<?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>93597</bug_id>
          
          <creation_ts>2012-08-09 01:42:04 -0700</creation_ts>
          <short_desc>Add DeviceController to support DOMWindow device events</short_desc>
          <delta_ts>2012-09-16 22:59:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/proximity/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>92837</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kihong Kwon">kihong.kwon</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>morrita</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>vimff0</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691350</commentid>
    <comment_count>0</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-09 01:42:04 -0700</bug_when>
    <thetext>Add DeviceProximityConroller class to support Proximity Events.(http://www.w3.org/TR/proximity/)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691367</commentid>
    <comment_count>1</comment_count>
      <attachid>157430</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-09 04:47:11 -0700</bug_when>
    <thetext>Created attachment 157430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691372</commentid>
    <comment_count>2</comment_count>
      <attachid>157430</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 04:55:06 -0700</bug_when>
    <thetext>Comment on attachment 157430
Patch

Attachment 157430 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13452978</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691378</commentid>
    <comment_count>3</comment_count>
      <attachid>157430</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-08-09 05:01:19 -0700</bug_when>
    <thetext>Comment on attachment 157430
Patch

Attachment 157430 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13458646</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691380</commentid>
    <comment_count>4</comment_count>
      <attachid>157430</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-09 05:01:35 -0700</bug_when>
    <thetext>Comment on attachment 157430
Patch

Attachment 157430 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13464281</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691382</commentid>
    <comment_count>5</comment_count>
      <attachid>157430</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-09 05:02:25 -0700</bug_when>
    <thetext>Comment on attachment 157430
Patch

Attachment 157430 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13471123</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691383</commentid>
    <comment_count>6</comment_count>
      <attachid>157430</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-09 05:02:26 -0700</bug_when>
    <thetext>Comment on attachment 157430
Patch

Attachment 157430 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13463338</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691394</commentid>
    <comment_count>7</comment_count>
      <attachid>157430</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-09 05:13:18 -0700</bug_when>
    <thetext>Comment on attachment 157430
Patch

Attachment 157430 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13471122</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691399</commentid>
    <comment_count>8</comment_count>
      <attachid>157439</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-09 05:16:56 -0700</bug_when>
    <thetext>Created attachment 157439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691482</commentid>
    <comment_count>9</comment_count>
      <attachid>157439</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-09 09:10:33 -0700</bug_when>
    <thetext>Comment on attachment 157439
Patch

Attachment 157439 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13463378</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691492</commentid>
    <comment_count>10</comment_count>
      <attachid>157439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-09 09:17:02 -0700</bug_when>
    <thetext>Comment on attachment 157439
Patch

Attachment 157439 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13454889</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691511</commentid>
    <comment_count>11</comment_count>
      <attachid>157439</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-09 09:42:26 -0700</bug_when>
    <thetext>Comment on attachment 157439
Patch

Attachment 157439 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13462487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691518</commentid>
    <comment_count>12</comment_count>
      <attachid>157439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-09 09:49:37 -0700</bug_when>
    <thetext>Comment on attachment 157439
Patch

Attachment 157439 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13455893</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691565</commentid>
    <comment_count>13</comment_count>
      <attachid>157439</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 10:36:22 -0700</bug_when>
    <thetext>Comment on attachment 157439
Patch

Attachment 157439 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13463398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691577</commentid>
    <comment_count>14</comment_count>
      <attachid>157439</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-09 10:44:35 -0700</bug_when>
    <thetext>Comment on attachment 157439
Patch

Attachment 157439 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13455908</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692179</commentid>
    <comment_count>15</comment_count>
      <attachid>157633</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-09 21:37:08 -0700</bug_when>
    <thetext>Created attachment 157633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692448</commentid>
    <comment_count>16</comment_count>
      <attachid>157633</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-10 04:43:21 -0700</bug_when>
    <thetext>Comment on attachment 157633
Patch

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

Almost looks OK to me, but I&apos;m not familiar with the code. Could any reviewer look at this patch?

&gt; Source/WebCore/Modules/proximity/DeviceProximityController.h:59
&gt; +    Page* m_page;

Is it needed?

&gt; LayoutTests/fast/dom/Proximity/add-listener-from-callback.html:6
&gt; +&lt;script src=&quot;script-tests/add-listener-from-callback.js&quot;&gt;&lt;/script&gt;

Nit: you can directly write JavaScript here.

&gt; LayoutTests/fast/dom/Proximity/basic-operation.html:6
&gt; +&lt;script src=&quot;script-tests/basic-operation.js&quot;&gt;&lt;/script&gt;

Ditto.

&gt; LayoutTests/fast/dom/Proximity/event-after-navigation.html:6
&gt; +&lt;script src=&quot;script-tests/event-after-navigation.js&quot;&gt;&lt;/script&gt;

Ditto.

&gt; LayoutTests/fast/dom/Proximity/multiple-frames.html:6
&gt; +&lt;script src=&quot;script-tests/multiple-frames.js&quot;&gt;&lt;/script&gt;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692492</commentid>
    <comment_count>17</comment_count>
      <attachid>157633</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-10 05:42:09 -0700</bug_when>
    <thetext>Comment on attachment 157633
Patch

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

&gt;&gt; Source/WebCore/Modules/proximity/DeviceProximityController.h:59
&gt;&gt; +    Page* m_page;
&gt; 
&gt; Is it needed?

No. It will be removed.

&gt;&gt; LayoutTests/fast/dom/Proximity/add-listener-from-callback.html:6
&gt;&gt; +&lt;script src=&quot;script-tests/add-listener-from-callback.js&quot;&gt;&lt;/script&gt;
&gt; 
&gt; Nit: you can directly write JavaScript here.

OK, I will merge html and js files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692512</commentid>
    <comment_count>18</comment_count>
      <attachid>157725</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-10 06:12:05 -0700</bug_when>
    <thetext>Created attachment 157725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692606</commentid>
    <comment_count>19</comment_count>
      <attachid>157725</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-10 09:29:22 -0700</bug_when>
    <thetext>Comment on attachment 157725
Patch

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

&gt; Source/WebCore/Modules/proximity/DeviceProximityClient.h:34
&gt; +    virtual void DeviceProximityControllerDestroyed() = 0;

DeviceProximityControllerDestroyed -&gt; deviceProximityControllerDestroyed

&gt; Source/WebCore/Modules/proximity/DeviceProximityController.cpp:44
&gt; +DeviceProximityController::~DeviceProximityController()
&gt; +{
&gt; +    m_client-&gt;DeviceProximityControllerDestroyed();
&gt; +}

I was under the impression that most objects like this don&apos;t need this sort of callback.  Typically the client and the controller are owned by the Page and get their destructors called at the same time.

&gt; Source/WebCore/Modules/proximity/DeviceProximityController.cpp:83
&gt; +void DeviceProximityController::addListener(DOMWindow* window)
&gt; +{
&gt; +    bool isEmpty = m_listeners.isEmpty();
&gt; +    m_listeners.add(window);
&gt; +    if (isEmpty)
&gt; +        m_client-&gt;startUpdating();
&gt; +}
&gt; +
&gt; +void DeviceProximityController::removeListener(DOMWindow* window)
&gt; +{
&gt; +    m_listeners.remove(window);
&gt; +    m_suspendedListeners.remove(window);
&gt; +    if (m_listeners.isEmpty())
&gt; +        m_client-&gt;stopUpdating();
&gt; +}
&gt; +
&gt; +void DeviceProximityController::removeAllListeners(DOMWindow* window)
&gt; +{
&gt; +    if (!m_listeners.contains(window))
&gt; +        return;
&gt; +
&gt; +    m_listeners.removeAll(window);
&gt; +    m_suspendedListeners.removeAll(window);
&gt; +    if (m_listeners.isEmpty())
&gt; +        m_client-&gt;stopUpdating();
&gt; +}
&gt; +
&gt; +void DeviceProximityController::suspendEventsForAllListeners(DOMWindow* window)
&gt; +{
&gt; +    if (!m_listeners.contains(window))
&gt; +        return;
&gt; +
&gt; +    int count = m_listeners.count(window);
&gt; +    removeAllListeners(window);
&gt; +    while (count--)
&gt; +        m_suspendedListeners.add(window);
&gt; +}

All this stuff doesn&apos;t look specific to DeviceProximity.  There are a number of features that follow this pattern.  Should we extract a base class to share this code?

&gt; Source/WebCore/dom/Document.cpp:2214
&gt; +#if ENABLE(PROXIMITY_EVENTS)
&gt; +    if (DeviceProximityController* controller = DeviceProximityController::from(page()))
&gt; +        controller-&gt;suspendEventsForAllListeners(domWindow());
&gt;  #endif

We shouldn&apos;t need to do this.  Perhaps DeviceProximityController should be an ActiveDOMObject?  I was looking at this code the other day and had the same thought about DeviceMotionController and DeviceOrientationController.

&gt; Source/WebCore/dom/Document.cpp:2233
&gt; +    if (!page())
&gt; +        return;

At the very least, this shouldn&apos;t be copy/pasted from line 2222

&gt; Source/WebCore/dom/Document.cpp:2235
&gt; +    if (DeviceProximityController* controller = DeviceProximityController::from(page()))
&gt; +        controller-&gt;resumeEventsForAllListeners(domWindow());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>693048</commentid>
    <comment_count>20</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-10 21:32:10 -0700</bug_when>
    <thetext>Thank you for your review, Adam.

I absolutely agree with you. There are many common parts among device controllers.
I will add a super class for device controller and after finishing Proximity Events, I will change device orientation controller and device motion controller also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694543</commentid>
    <comment_count>21</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-13 23:16:13 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/dom/Document.cpp:2214
&gt; &gt; +#if ENABLE(PROXIMITY_EVENTS)
&gt; &gt; +    if (DeviceProximityController* controller = DeviceProximityController::from(page()))
&gt; &gt; +        controller-&gt;suspendEventsForAllListeners(domWindow());
&gt; &gt;  #endif
&gt; 
&gt; We shouldn&apos;t need to do this.  Perhaps DeviceProximityController should be an ActiveDOMObject?  I was looking at this code the other day and had the same thought about DeviceMotionController and DeviceOrientationController.

IMHO, we couldn&apos;t make controller to ActiveDOMObject in current implementation structure, because the controller is shared by several DOMWindows in the page.
In addition, there is no document object when device controller is made.

I would like to get your opinion.
Thanks for advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694546</commentid>
    <comment_count>22</comment_count>
      <attachid>158229</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-13 23:19:32 -0700</bug_when>
    <thetext>Created attachment 158229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694558</commentid>
    <comment_count>23</comment_count>
      <attachid>158229</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-13 23:28:02 -0700</bug_when>
    <thetext>Comment on attachment 158229
Patch

Attachment 158229 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13487595</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694569</commentid>
    <comment_count>24</comment_count>
      <attachid>158229</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-13 23:56:27 -0700</bug_when>
    <thetext>Comment on attachment 158229
Patch

Attachment 158229 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13489516</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694575</commentid>
    <comment_count>25</comment_count>
      <attachid>158229</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-13 23:59:19 -0700</bug_when>
    <thetext>Comment on attachment 158229
Patch

Attachment 158229 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13485779</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694610</commentid>
    <comment_count>26</comment_count>
      <attachid>158229</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-08-14 00:41:26 -0700</bug_when>
    <thetext>Comment on attachment 158229
Patch

Attachment 158229 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/13493494</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694613</commentid>
    <comment_count>27</comment_count>
      <attachid>158229</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-14 00:44:06 -0700</bug_when>
    <thetext>Comment on attachment 158229
Patch

Attachment 158229 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13489542</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694743</commentid>
    <comment_count>28</comment_count>
      <attachid>158275</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-14 03:23:08 -0700</bug_when>
    <thetext>Created attachment 158275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695083</commentid>
    <comment_count>29</comment_count>
      <attachid>158275</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-14 10:02:03 -0700</bug_when>
    <thetext>Comment on attachment 158275
Patch

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

&gt; Source/WebCore/dom/Document.cpp:2211
&gt; +#if ENABLE(PROXIMITY_EVENTS)

We shouldn&apos;t have any ENABLE(PROXIMITY_EVENTS) ifdefs outside of Modules/proximity.

&gt; Source/WebCore/testing/Internals.cpp:1007
&gt; +#if ENABLE(PROXIMITY_EVENTS)

Well, this one is probably ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695142</commentid>
    <comment_count>30</comment_count>
      <attachid>158275</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-14 10:48:02 -0700</bug_when>
    <thetext>Comment on attachment 158275
Patch

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

&gt; Source/WebCore/Modules/proximity/DeviceProximityController.cpp:43
&gt; +    didChangeDeviceEvent(event);

Should this have a more &quot;verb-like&quot; name?  For example, dispatchDeviceEvent ?

&gt; Source/WebCore/dom/DeviceClient.h:27
&gt; +class DeviceClient {

This should be in WebCore/page because it&apos;s per-page state.

&gt; Source/WebCore/dom/DeviceController.cpp:31
&gt; +    , m_timer(this, &amp;DeviceController::timerFired)

Should we give this a more descriptive name?  What sort of timer is it?  What are we supposed to do when the timer fires?

&gt; Source/WebCore/dom/DeviceController.cpp:72
&gt; +void DeviceController::removeAllListeners(DOMWindow* window)

How does removeListener differ from removeAllListeners?  Can a DOMWindow be registered twice?  Does that mean it gets events fired twice?  I understand now how this works, but it&apos;s a bit confusing.  Likely we can solve this problem with better names.

&gt; Source/WebCore/dom/DeviceController.cpp:87
&gt; +    RefPtr&lt;Event&gt; rpEvent = event;

Usually we call the RefPtr version just &quot;event&quot; and the PassRefPtr version prpEvent

&gt; Source/WebCore/dom/DeviceController.cpp:98
&gt; +    int count = m_listeners.count(window);

Should count be a size_t?

&gt; Source/WebCore/dom/DeviceController.h:32
&gt; +class DeviceController : public Supplement&lt;Page&gt; {

This should be in WebCore/page because it&apos;s per-page state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695144</commentid>
    <comment_count>31</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-14 10:50:22 -0700</bug_when>
    <thetext>This iteration of the patch is much better than the earlier approach.  The comments above are all relatively minor.  In IRC we discussed a follow up patch that refactors some of the other device controllers to inherit from DeviceController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695829</commentid>
    <comment_count>32</comment_count>
      <attachid>158229</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-15 01:32:54 -0700</bug_when>
    <thetext>Comment on attachment 158229
Patch

Attachment 158229 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13503543</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698069</commentid>
    <comment_count>33</comment_count>
      <attachid>159052</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-17 02:15:53 -0700</bug_when>
    <thetext>Created attachment 159052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698089</commentid>
    <comment_count>34</comment_count>
      <attachid>159052</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 02:36:36 -0700</bug_when>
    <thetext>Comment on attachment 159052
Patch

Attachment 159052 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13521318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698090</commentid>
    <comment_count>35</comment_count>
      <attachid>159052</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-17 02:37:40 -0700</bug_when>
    <thetext>Comment on attachment 159052
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        and add proximity event to DeviceController for testing.

In my humble opinion, a patch for testing can be filed to new bug. But, if this patch is acceptable, I would like to recommend to add a newline for other description.

&gt; Source/WebCore/dom/DeviceController.h:45
&gt; +    DeviceController(Page*);

Missing explicit keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698109</commentid>
    <comment_count>36</comment_count>
      <attachid>159052</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-17 02:51:15 -0700</bug_when>
    <thetext>Comment on attachment 159052
Patch

Attachment 159052 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13522072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698113</commentid>
    <comment_count>37</comment_count>
      <attachid>159052</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-17 02:53:03 -0700</bug_when>
    <thetext>Comment on attachment 159052
Patch

Attachment 159052 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13514748</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698126</commentid>
    <comment_count>38</comment_count>
      <attachid>159052</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-08-17 03:05:26 -0700</bug_when>
    <thetext>Comment on attachment 159052
Patch

Attachment 159052 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13509960</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698148</commentid>
    <comment_count>39</comment_count>
      <attachid>159052</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-17 03:35:43 -0700</bug_when>
    <thetext>Comment on attachment 159052
Patch

Attachment 159052 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13520372</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699222</commentid>
    <comment_count>40</comment_count>
      <attachid>159329</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-19 22:03:48 -0700</bug_when>
    <thetext>Created attachment 159329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699244</commentid>
    <comment_count>41</comment_count>
      <attachid>159329</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-19 23:05:21 -0700</bug_when>
    <thetext>Comment on attachment 159329
Patch

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

&gt; Source/WebCore/GNUmakefile.list.am:2672
&gt; +	Source/WebCore/dom/DeviceClient.h \
&gt; +	Source/WebCore/dom/DeviceController.cpp \
&gt; +	Source/WebCore/dom/DeviceController.h \

I thought you were going to move these to the page directory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699297</commentid>
    <comment_count>42</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-20 01:08:53 -0700</bug_when>
    <thetext>(In reply to comment #41)
&gt; (From update of attachment 159329 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159329&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/GNUmakefile.list.am:2672
&gt; &gt; +	Source/WebCore/dom/DeviceClient.h \
&gt; &gt; +	Source/WebCore/dom/DeviceController.cpp \
&gt; &gt; +	Source/WebCore/dom/DeviceController.h \
&gt; 
&gt; I thought you were going to move these to the page directory?

I got it, You are right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699315</commentid>
    <comment_count>43</comment_count>
      <attachid>159363</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-20 01:29:44 -0700</bug_when>
    <thetext>Created attachment 159363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>699885</commentid>
    <comment_count>44</comment_count>
      <attachid>159363</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-20 13:42:10 -0700</bug_when>
    <thetext>Comment on attachment 159363
Patch

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

OK.  This is getting close.  Can we remove the PROXIMITY_EVENTS-specific code from this patch?  It doesn&apos;t seem like it actually does anything because nothing inherits from DeviceClient.

Rather than adding support for PROXIMITY_EVENTS in this patch, I&apos;d prefer if we:
1) Landed this patch
2) Changed the existing device code to use this mechanism (probably one per patch)
3) Added support for device proximity

Is that a reasonable course of action?

&gt; Source/WebCore/page/DeviceController.cpp:44
&gt; +#if ENABLE(PROXIMITY_EVENTS)
&gt; +    if (eventType == eventNames().webkitdeviceproximityEvent)
&gt; +        return true;
&gt; +#endif

Should we do the PROXIMITY_EVENTS specific work in the next patch?

&gt; Source/WebCore/page/DeviceController.cpp:58
&gt; +        listeners = new ListenersCountedSet();

This is a naked new.  Presumably we want adoptPtr here.

&gt; Source/WebCore/page/DeviceController.cpp:77
&gt; +        delete listeners;

Raw delete.  Let&apos;s use OwnPtr instead!

&gt; Source/WebCore/page/DeviceController.cpp:87
&gt; +    for (int i = 0; i &lt; m_listeners.size(); ++i) {

int -&gt; size_t ?

&gt; Source/WebCore/page/DeviceController.cpp:116
&gt; +        if (!listeners[i]-&gt;document()-&gt;activeDOMObjectsAreSuspended())

Is this the right semantics for suspended documents?  It&apos;s fine to just drop the events on the floor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700350</commentid>
    <comment_count>45</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-20 19:16:43 -0700</bug_when>
    <thetext>(In reply to comment #44)
&gt; (From update of attachment 159363 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159363&amp;action=review
&gt; 
&gt; OK.  This is getting close.  Can we remove the PROXIMITY_EVENTS-specific code from this patch?  It doesn&apos;t seem like it actually does anything because nothing inherits from DeviceClient.
&gt; 
&gt; Rather than adding support for PROXIMITY_EVENTS in this patch, I&apos;d prefer if we:
&gt; 1) Landed this patch
&gt; 2) Changed the existing device code to use this mechanism (probably one per patch)
&gt; 3) Added support for device proximity
&gt; 
&gt; Is that a reasonable course of action?

I think so. I will do that.

&gt; &gt; Source/WebCore/page/DeviceController.cpp:116
&gt; &gt; +        if (!listeners[i]-&gt;document()-&gt;activeDOMObjectsAreSuspended())
&gt; 
&gt; Is this the right semantics for suspended documents?  It&apos;s fine to just drop the events on the floor?

I think there is no problem about dropping events. this is only for specific window which is suspended.

IMHO, window doesn&apos;t need to get a device event, when it&apos;s state is suspeneded.
And window can receive a device event from client if it gets back to active state because listener still alive in the listeners.

Thank you for reviewing. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700575</commentid>
    <comment_count>46</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-21 03:25:41 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/page/DeviceController.cpp:87
&gt; &gt; +    for (int i = 0; i &lt; m_listeners.size(); ++i) {
&gt; 
&gt; int -&gt; size_t ?

It makes warning, because size() of HashMap returns int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700742</commentid>
    <comment_count>47</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-21 07:41:52 -0700</bug_when>
    <thetext>(In reply to comment #46)
&gt; &gt; &gt; Source/WebCore/page/DeviceController.cpp:87
&gt; &gt; &gt; +    for (int i = 0; i &lt; m_listeners.size(); ++i) {
&gt; &gt; 
&gt; &gt; int -&gt; size_t ?
&gt; 
&gt; It makes warning, because size() of HashMap returns int.

Ok.  We should keep it as int then.  Thanks.  (I forget which of these collections use size_t and which use int.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701467</commentid>
    <comment_count>48</comment_count>
      <attachid>159839</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-21 18:44:14 -0700</bug_when>
    <thetext>Created attachment 159839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702149</commentid>
    <comment_count>49</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-22 12:03:19 -0700</bug_when>
    <thetext>Did you mean to mark this patch for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702853</commentid>
    <comment_count>50</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-23 03:46:31 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; Did you mean to mark this patch for review?

Not yet, I think I need to add some more.
Thank you. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703932</commentid>
    <comment_count>51</comment_count>
      <attachid>160369</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-24 02:54:14 -0700</bug_when>
    <thetext>Created attachment 160369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703944</commentid>
    <comment_count>52</comment_count>
      <attachid>160375</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-08-24 03:13:55 -0700</bug_when>
    <thetext>Created attachment 160375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705432</commentid>
    <comment_count>53</comment_count>
      <attachid>160375</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-27 11:27:55 -0700</bug_when>
    <thetext>Comment on attachment 160375
Patch

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

I think we can improve this design substantially.  You&apos;re trying to have DeviceController do too much.  It&apos;s responsible for handling all types of events for all documents in a Page.  Instead, we should subclass DeviceController for each type of event and keep the per-DOMWindow state in a Supplement&lt;DOMWindow&gt;.  That way this state will be owned by the DOMWindow instead of needing to use a RefPtr&lt;DOMWindow&gt; to keep the DOMWindow alive.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:28545
&gt;  				FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
&gt; +				CC24D64A15E212E90079DD79 /* DeviceController.cpp in Sources */,

When you modify the Xcodeproj file, you might want to run Tools/Scrips/sort-xcodeproj .  That keeps the file sorted and reduces the risk of merge conflicts.

&gt; Source/WebCore/page/DeviceController.cpp:51
&gt; +    if (!m_clients.contains(eventType))
&gt; +        return;
&gt; +
&gt; +    DeviceClientMap::iterator iterClient = m_clients.find(eventType);

You can merge these calls together so we only do a find once.  The iterator will be end() if the eventType isn&apos;t in the map.

iterClient -&gt; client

&gt; Source/WebCore/page/DeviceController.cpp:52
&gt; +    if (iterClient != m_clients.end() &amp;&amp; iterClient-&gt;second-&gt;lastEvent()) {

iterClient != m_clients.end()   &lt;--  This is redundant with the contains check

&gt; Source/WebCore/page/DeviceController.cpp:53
&gt; +        m_lastEventHandler.append(LastEventHandler(window, iterClient-&gt;second-&gt;lastEvent()));

It&apos;s strange that window is being passed in here...  I&apos;ll keep reading to see how the lifetime issues work out.

&gt; Source/WebCore/page/DeviceController.cpp:74
&gt; +    ListenersCountedSet* listeners = m_listeners.find(eventType)-&gt;second.get();

Similar problem as above.  It&apos;s inefficient to do the contains and the find operation separately.

&gt; Source/WebCore/page/DeviceController.cpp:82
&gt; +    size_t lastEventHandlerCount = m_lastEventHandler.size();
&gt; +    for (size_t i = 0; i &lt; lastEventHandlerCount; ++i)

You don&apos;t need the lastEventHandlerCount variable.  You can just put m_lastEventHandler.size() in the loop condition.

&gt; Source/WebCore/page/DeviceController.cpp:90
&gt; +    int listenersCount = m_listeners.size();
&gt; +    for (int i = 0; i &lt; listenersCount; ++i) {

ditto

&gt; Source/WebCore/page/DeviceController.cpp:101
&gt; +            size_t lastEventHandlerCount = m_lastEventHandler.size();
&gt; +            for (size_t i = 0; i &lt; lastEventHandlerCount; ++i)

ditto

&gt; Source/WebCore/page/DeviceController.cpp:127
&gt; +    Vector&lt;RefPtr&lt;DOMWindow&gt; &gt; listeners;

It&apos;s not a good idea to grab a RefPtr to the DOMWindow.  DOMWindow is only RefCounted because for some odd cases involving initial documents.  This could shouldn&apos;t be holding references to DOMWindows.

&gt; Source/WebCore/page/Page.cpp:118
&gt; +    , m_deviceController(DeviceController::create(this))

We should avoid spamming Page with a bunch of random objects.  Instead, DeviceController should be a Supplement&lt;Page&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710975</commentid>
    <comment_count>54</comment_count>
      <attachid>162009</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-04 04:42:18 -0700</bug_when>
    <thetext>Created attachment 162009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710993</commentid>
    <comment_count>55</comment_count>
      <attachid>162009</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-04 05:03:59 -0700</bug_when>
    <thetext>Comment on attachment 162009
Patch

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

New failing tests:
accessibility/aria-checkbox-checked.html
http/tests/appcache/deferred-events-delete-while-raising.html
animations/3d/matrix-transform-type-animation.html
accessibility/aria-readonly.html
accessibility/canvas-description-and-role.html
http/tests/appcache/cyrillic-uri.html
animations/animation-add-events-in-handler.html
accessibility/aria-labelledby-on-input.html
http/tests/appcache/deferred-events-delete-while-raising-timer.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-direction-alternate-reverse.html
http/tests/appcache/credential-url.html
http/tests/appcache/access-via-redirect.php
http/tests/appcache/different-scheme.html
accessibility/aria-hidden.html
http/tests/appcache/destroyed-frame.html
animations/animation-controller-drt-api.html
animations/3d/transform-perspective.html
accessibility/aria-scrollbar-role.html
accessibility/accessibility-node-reparent.html
canvas/philip/tests/2d.canvas.reference.html
animations/3d/state-at-end-event-transform.html
accessibility/aria-labelledby-stay-within.html
animations/animation-direction-reverse-hardware.html
accessibility/aria-help.html
animations/animation-direction-reverse-fill-mode.html
accessibility/adjacent-continuations-cause-assertion-failure.html
http/tests/appcache/detached-iframe.html
animations/animation-direction-reverse-timing-functions-hardware.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713070</commentid>
    <comment_count>56</comment_count>
      <attachid>162456</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-06 02:28:40 -0700</bug_when>
    <thetext>Created attachment 162456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713469</commentid>
    <comment_count>57</comment_count>
      <attachid>162456</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-06 11:02:56 -0700</bug_when>
    <thetext>Comment on attachment 162456
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:1682
&gt; +    DeviceController::removeAllDeviceEvnetListener(this, page());

Evnet -&gt; Event

&gt; Source/WebCore/page/DOMWindowDeviceProvider.h:31
&gt; +class DOMWindowDeviceProvider : public Supplement&lt;DOMWindow&gt; {

I don&apos;t understand the point of DOMWindowDeviceProvider.  In a previous iteration of this patch, you were storing a bunch of per-DOMWindow state.  I asked you to create a Supplement&lt;DOMWindow&gt; to store that state, but this class doesn&apos;t actually store any state.

&gt; Source/WebCore/page/DeviceClient.h:34
&gt; +    virtual PassRefPtr&lt;Event&gt; lastEvent() const = 0;

Does this function transfer ownership of the last event?  I would have expected this to just be an getter.  If so, it should return a raw Event*

&gt; Source/WebCore/page/DeviceController.cpp:63
&gt; +    DOMWindowDeviceProvider* provider = static_cast&lt;DOMWindowDeviceProvider*&gt;(Supplement&lt;DOMWindow&gt;::from(window, supplementName()));
&gt; +    if (!provider) {
&gt; +        provider = new DOMWindowDeviceProvider(window);
&gt; +        Supplement&lt;DOMWindow&gt;::provideTo(window, supplementName(), adoptPtr(provider));
&gt; +    }
&gt; +    m_providers.add(provider);

This work should be done by DOMWindowDeviceProvider in a from() function.

&gt; Source/WebCore/page/DeviceController.cpp:101
&gt; +void DeviceController::dispatchDeivceEvent(PassRefPtr&lt;Event&gt; event)

Deivce -&gt; Device</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713472</commentid>
    <comment_count>58</comment_count>
      <attachid>162456</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-06 11:04:11 -0700</bug_when>
    <thetext>Comment on attachment 162456
Patch

I&apos;m sorry.  I&apos;m tired of reviewing these patches.  We don&apos;t seem to be getting anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720247</commentid>
    <comment_count>59</comment_count>
      <attachid>162456</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-13 19:56:12 -0700</bug_when>
    <thetext>Comment on attachment 162456
Patch

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

&gt;&gt; Source/WebCore/page/DOMWindowDeviceProvider.h:31
&gt;&gt; +class DOMWindowDeviceProvider : public Supplement&lt;DOMWindow&gt; {
&gt; 
&gt; I don&apos;t understand the point of DOMWindowDeviceProvider.  In a previous iteration of this patch, you were storing a bunch of per-DOMWindow state.  I asked you to create a Supplement&lt;DOMWindow&gt; to store that state, but this class doesn&apos;t actually store any state.

If I make Supplement&lt;DOMWindow&gt;, I need to make unnecessary object for attaching DOMWindow.
But I think in this case it is enough to keep window pointer in the DeviceController.
Therefore I will remove this class.

&gt;&gt; Source/WebCore/page/DeviceClient.h:34
&gt;&gt; +    virtual PassRefPtr&lt;Event&gt; lastEvent() const = 0;
&gt; 
&gt; Does this function transfer ownership of the last event?  I would have expected this to just be an getter.  If so, it should return a raw Event*

Yes, we need to transfer ownership to EventTarget When client create a event to fire.
But, I think this function is not good to check weather there is a preserved event or not in the client, therefore I will add hasPreservedEvent() for checking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720249</commentid>
    <comment_count>60</comment_count>
      <attachid>164033</attachid>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-13 20:04:31 -0700</bug_when>
    <thetext>Created attachment 164033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721454</commentid>
    <comment_count>61</comment_count>
      <attachid>164033</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-15 09:52:36 -0700</bug_when>
    <thetext>Comment on attachment 164033
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Add DeviceController to support device related event control.
&gt; +        DeviceController can be used by inherit to the all kind of device controller.

&quot;Add DeviceController base-class for soon-to-be-added DeviceMotionController, DeviceOrientationController and ProximityController.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721455</commentid>
    <comment_count>62</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-15 09:53:38 -0700</bug_when>
    <thetext>Why is a m_timer needed?

It may be time to close this bug and start-over.  This one is quite long now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721682</commentid>
    <comment_count>63</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-16 21:55:29 -0700</bug_when>
    <thetext>(In reply to comment #62)
&gt; Why is a m_timer needed?

We don&apos;t know exactly when event is fired by device after addEventListener called.
But if there is a event which is already set by other addEventListener, we can fire a event instantly.
In this case, a m_timer is used to fire a reserved event asynchronously.

&gt; 
&gt; It may be time to close this bug and start-over.  This one is quite long now.

OK, I will do that.
Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721688</commentid>
    <comment_count>64</comment_count>
    <who name="Kihong Kwon">kihong.kwon</who>
    <bug_when>2012-09-16 22:59:34 -0700</bug_when>
    <thetext>This patch is move to bug 96894 because this thread is too long.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157430</attachid>
            <date>2012-08-09 04:47:11 -0700</date>
            <delta_ts>2012-08-09 05:16:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120809204643.patch</filename>
            <type>text/plain</type>
            <size>34012</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU4MWQzYTc4OTQ0NzIx
Yjg3MzMyNzFjMzEwMjI2YmJjZjVhMDkzOS4uM2M5MTY4ZTY4ODQ2ZjVmMWVhZGUyOGFjZTQ3N2E4
NzlmNGRhYjJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA4LTA5ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQ
cm94aW1pdHlDb250cm9sbGVyIHRvIHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVjIDogaHR0cDovL3d3dy53
My5vcmcvVFIvcHJveGltaXR5LworCisgICAgICAgIEFkZCBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyIGNsYXNzIHRvIGNvbnRyb2wgYSBkZXZpY2Vwcm94aW1pdHkgZXZlbnQgZnJvbSBjbGllbnQu
CisgICAgICAgIEluIGFkZGl0aW9uLCBhZGQgc2V0UHJveGltaXR5IGZ1bmN0aW9uIGluIHRoZSBJ
bnRlcm5hbHMgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hpbWl0
eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VQcm94aW1pdHlDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlUHJveGltaXR5Q2xpZW50Ojp+RGV2aWNlUHJveGlt
aXR5Q2xpZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6On5EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNv
bnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hp
bWl0eUNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50
c0ZvckFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmVBdCk6CisgICAgICAgIChXZWJD
b3JlOjpwcm92aWRlRGV2aWNlUHJveGltaXR5VG8pOgorICAgICAgICAqIE1vZHVsZXMvcHJveGlt
aXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMp
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJl
bW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVB
bGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA4LTA3ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBPcHRpbWl6ZSBFbGVtZW50
OjpnZXRBdHRyaWJ1dGVOb2RlKCkgYnkgcmVwbGFjaW5nIFN0cmluZyB3aXRoIEF0b21pY1N0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YWNhNGRjYzlmNWFiYmY2NTE3MGVlY2MzN2RlMDFh
NDIwMzkwMzNmLi4wZjhjODM5OGExMjc3YmYxNWVkYzMwNTQzODRjMDFlNmY3ZWI2NjZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtODU4LDYgKzg1OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
IAogICAgIE1vZHVsZXMvcHJvdG9jb2xoYW5kbGVyL05hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyLmNwcAogCisgICAgTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlci5jcHAKICAgICBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlFdmVudC5jcHAK
IAogICAgIE1vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkM2Q1NGI2ZGVjOWE2ZGY2YTY2MjhlNzg0NzgxMDQwNjcwMDg4ZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94
aW1pdHlDbGllbnQuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlUHJveGltaXR5
Q2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlUHJveGltaXR5Q2xpZW50X2gKKworI2lmIEVOQUJMRShQ
Uk9YSU1JVFlfRVZFTlRTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisK
K2NsYXNzIERldmljZVByb3hpbWl0eUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2
aWNlUHJveGltaXR5Q2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmco
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKK307CisKK3Zv
aWQgcHJvdmlkZURldmljZVByb3hpbWl0eVRvKFBhZ2UqLCBEZXZpY2VQcm94aW1pdHlDbGllbnQq
KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUFJPWElNSVRZX0VWRU5U
UworI2VuZGlmIC8vIERldmljZVByb3hpbWl0eUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwZTNjOTkwYzk0YTllNDVmZDllYzAyNzJhZDZkOGUwMTJjZGYz
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9E
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqICBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgorCisj
aWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlD
bGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlFdmVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcj4gRGV2aWNl
UHJveGltaXR5Q29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZVByb3hpbWl0eUNs
aWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKworRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
cjo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcihQYWdlKiBwYWdlLCBEZXZpY2VQcm94aW1pdHlD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdl
KQoreworICAgIEFTU0VSVChtX2NsaWVudCk7Cit9CisKK0RldmljZVByb3hpbWl0eUNvbnRyb2xs
ZXI6On5EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+RGV2aWNl
UHJveGltaXR5Q29udHJvbGxlckRlc3Ryb3llZCgpOworfQorCisKK3ZvaWQgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlcjo6YWRkTGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgYm9v
bCBpc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOworICAgIG1fbGlzdGVuZXJzLmFkZCh3
aW5kb3cpOworICAgIGlmIChpc0VtcHR5KQorICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGlu
ZygpOworfQorCit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVy
KERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwor
ICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmIChtX2xpc3Rl
bmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwor
dm9pZCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAg
ICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBpZiAobV9saXN0
ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisK
K3ZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRhaW5z
KHdpbmRvdykpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9IG1fbGlzdGVuZXJz
LmNvdW50KHdpbmRvdyk7CisgICAgcmVtb3ZlQWxsTGlzdGVuZXJzKHdpbmRvdyk7CisgICAgd2hp
bGUgKGNvdW50LS0pCisgICAgICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLmFkZCh3aW5kb3cpOwor
fQorCit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50c0ZvckFsbExp
c3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fc3VzcGVuZGVkTGlzdGVu
ZXJzLmNvbnRhaW5zKHdpbmRvdykpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9
IG1fc3VzcGVuZGVkTGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7CisgICAgbV9zdXNwZW5kZWRMaXN0
ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgIGFk
ZExpc3RlbmVyKHdpbmRvdyk7Cit9CisKK3ZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6
ZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KGRvdWJsZSB2YWx1ZSwgZG91YmxlIG1pbiwgZG91Ymxl
IG1heCkKK3sKKyAgICBSZWZQdHI8RGV2aWNlUHJveGltaXR5RXZlbnQ+IGV2ZW50ID0gRGV2aWNl
UHJveGltaXR5RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5
RXZlbnQsIHZhbHVlLCBtaW4sIG1heCk7CisgICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4g
bGlzdGVuZXJzOworICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVycy5zaXplKCk7ICsraSkKKyAgICAgICAg
bGlzdGVuZXJzW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworY29uc3QgQXRvbWljU3Ry
aW5nJiBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlciIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworYm9vbCBEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCit7CisgICAgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZy
b20ocGFnZSk7CisgICAgaWYgKGNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBjb250cm9sbGVy
LT5pc0FjdGl2ZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBwcm92aWRlRGV2aWNl
UHJveGltaXR5VG8oUGFnZSogcGFnZSwgRGV2aWNlUHJveGltaXR5Q2xpZW50KiBjbGllbnQpCit7
CisgICAgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6cHJvdmlkZVRvKHBhZ2UsIERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCksIERldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmNyZWF0ZShwYWdlLCBjbGllbnQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gUFJPWElNSVRZX0VWRU5UUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ0ODkwMjc2NWVkMjQ1MDZiYTM4ZTg3NGFhYzJhN2FkYWM0MThjNGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXJfaAorI2RlZmluZSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKKwor
I2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZVByb3hpbWl0eUNsaWVudDsKKworY2xhc3Mg
RGV2aWNlUHJveGltaXR5Q29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1
YmxpYzoKKyAgICB+RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcigpOworCisgICAgc3RhdGljIFBh
c3NPd25QdHI8RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqLCBEZXZpY2VQ
cm94aW1pdHlDbGllbnQqKTsKKworICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7Cisg
ICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZUFsbExp
c3RlbmVycyhET01XaW5kb3cqKTsKKworICAgIHZvaWQgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhE
T01XaW5kb3cqKTsKKworICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KGRvdWJsZSB2
YWx1ZSwgZG91YmxlIG1pbiwgZG91YmxlIG1heCk7CisgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0
dXJuICFtX2xpc3RlbmVycy5pc0VtcHR5KCk7IH0KKworICAgIERldmljZVByb3hpbWl0eUNsaWVu
dCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3Vw
cGxlbWVudE5hbWUoKSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNBY3RpdmVBdChQYWdlKik7CisK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcihQYWdlKiwg
RGV2aWNlUHJveGltaXR5Q2xpZW50Kik7CisKKyAgICBEZXZpY2VQcm94aW1pdHlDbGllbnQqIG1f
Y2xpZW50OworICAgIFBhZ2UqIG1fcGFnZTsKKworICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8
UmVmUHRyPERPTVdpbmRvdz4gPiBMaXN0ZW5lcnNDb3VudGVkU2V0OworICAgIExpc3RlbmVyc0Nv
dW50ZWRTZXQgbV9saXN0ZW5lcnM7CisgICAgTGlzdGVuZXJzQ291bnRlZFNldCBtX3N1c3BlbmRl
ZExpc3RlbmVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBS
T1hJTUlUWV9FVkVOVFMKKyNlbmRpZiAvLyBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDZlNTg4MzhkMzQ4ZDhiMjEwNWE5Mzc2ZjJmNWMwODc0
YWFhZDk3NGIuLjY1ZGM5NWVlOTM4NjQ1NTVkN2VhM2FjMzFhOTIzZjVjZjFhNjg5OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21w
b25lbnRzLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZVByb3hpbWl0
eUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTIx
OTMsMTUgKzIxOTQsMTkgQEAgdm9pZCBEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMo
QWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uIHdoeSkKIHsKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyh3aHkpOwogCi0jaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSB8
fCBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAgcmV0
dXJuOwotCisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIGlmIChE
ZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxl
cjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRzRm9yQWxs
TGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9t
V2luZG93KCkpOwotCisjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyAgICBp
ZiAoRGV2aWNlUHJveGltaXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0
eUNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2
ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CiAjZW5kaWYKIH0KIApAQCAtMjIwOSwx
NSArMjIxNCwyMiBAQCB2b2lkIERvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKCkKIHsK
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKCk7CiAK
LSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pIHx8IEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQogICAgIGlmICghcGFnZSgpKQogICAg
ICAgICByZXR1cm47Ci0KKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAg
ICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25D
b250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50
c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CiAgICAgaWYgKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5l
cnMoZG9tV2luZG93KCkpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisg
ICAgaWYgKCFwYWdlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20o
cGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJz
KGRvbVdpbmRvdygpKTsKKyNlbmRpZgogfQogCiBSZW5kZXJWaWV3KiBEb2N1bWVudDo6cmVuZGVy
VmlldygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOWFjOTk5NmE1NmIy
ZmRmMTM1MTQ2YzU4ZTFkMjZmOWRjMDZiMDIyMC4uYWViZDk0YzcwM2E1YTIxNDIzYzIzZDZkNmMx
ZmFhYjhhNTk0YTk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNTAsNiArNTAs
NyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlQ2FsbGJhY2suaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rp
b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgi
CisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50Lmgi
CkBAIC0xNTk0LDYgKzE1OTUsMTIgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQKICAgICAgICAg
ICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgorI2lmIEVO
QUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5RXZlbnQpIHsKKyAgICAgICAgaWYgKERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlz
KTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTYyMyw2ICsxNjMw
LDEyIEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgICAgICBjb250cm9sbGVyLT5y
ZW1vdmVMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZ
X0VWRU5UUykKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdGRl
dmljZXByb3hpbWl0eUV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyKiBjb250cm9sbGVyID0gRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkp
KQorICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgfQor
I2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2NzksNiArMTY5MiwxMCBAQCB2b2lk
IERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIGlmIChEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVuZXJz
KHRoaXMpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgaWYgKERl
dmljZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbExpc3Rl
bmVycyh0aGlzKTsKKyNlbmRpZgogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnMo
dGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMmZkYzA2NmQ2NWE2NTY1N2EzYmZi
YTIyYzU4YjAwYjNkMzNlNmY2MC4uOTMxMDdlODQxZjRjZmU2NWIzMDllYzI2YWQ3ZmE1YjQyMTRl
MWI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIkRPTU5v
ZGVIaWdobGlnaHRlci5oIgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5oIgpAQCAtOTkzLDYgKzk5NCwyMyBAQCB2b2lkIEludGVybmFsczo6c2V0TmV0d29ya0luZm9y
bWF0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBldmVudFR5cAogI2VuZGlm
CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRQcm94aW1pdHkoRG9jdW1lbnQqIGRvY3VtZW50LCBk
b3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBFTkFC
TEUoTkVUV09SS19JTkZPKQorICAgIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20oZG9j
dW1lbnQtPnBhZ2UoKSktPmRpZENoYW5nZURldmljZVByb3hpbWl0eSh2YWx1ZSwgbWluLCBtYXgp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXZlbnRUeXBlKTsKKyAgICBVTlVTRURfUEFSQU0o
dmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShtaW4pOworICAgIFVOVVNFRF9QQVJBTShtYXgpOwor
I2VuZGlmCit9CisKIGJvb2wgSW50ZXJuYWxzOjpoYXNTcGVsbGluZ01hcmtlcihEb2N1bWVudCog
ZG9jdW1lbnQsIGludCBmcm9tLCBpbnQgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBp
ZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IDE1NzY2MmMzZGU2YjRlZDE0NGEyOTk5ODM2MDNjY2ViNjQwMGFiZGUuLmNh
ODM4NzI5NWMzOGI4MjhiYWFmN2ZkMTEzMGRhZmViYzc0MTQ2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0
TmV0d29ya0luZm9ybWF0aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIGRv
dWJsZSBiYW5kd2lkdGgsIGJvb2wgbWV0ZXJlZCwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdm9p
ZCBzZXRQcm94aW1pdHkoRG9jdW1lbnQqLCBkb3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJs
ZSBtYXgsIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoRG9j
dW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25z
KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKaW5kZXggNjAxZThhNzRmOWYxMGQyNGU0MThmMTM4MzM4NmUwNTdmNThhMDRi
Zi4uYzA0ZjhhMWJhMjcwMTk1YjUyMTZjZGRhNDhjYWE4YWFlOGRkN2Q2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTY3LDYgKzE2NywxMCBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgdm9pZCBzZXROZXR3b3JrSW5mb3JtYXRpb24oaW4gRG9jdW1lbnQgZG9jdW1l
bnQsIGluIERPTVN0cmluZyBldmVudFR5cGUsIGluIGRvdWJsZSBiYW5kd2lkdGgsIGluIGJvb2xl
YW4gbWV0ZXJlZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAmJiBFTkFCTEVfUFJPWElNSVRZX0VWRU5UUworICAg
ICAgICB2b2lkIHNldFByb3hpbWl0eShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZG91YmxlIHZh
bHVlLCBpbiBkb3VibGUgbWluLCBpbiBkb3VibGUgbWF4KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CisjZW5kaWYKKwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25n
IG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7CiAgICAgICAgIFtDb25kaXRpb25h
bD1JTlNQRUNUT1JdIHNlcXVlbmNlPFN0cmluZz4gY29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50
cyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWM5ODI1OWQyZDFjMzQ1ZWFjODkxMjdi
N2YzODBiN2Y5ZTc1YzE5ZC4uMzU2Mjg2M2NlM2E5MDgwNTEwOTM1YWIyZDU4MWQxNGQyMzllNzc1
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA4LTA5ICBLaWhvbmcgS3dvbiAgPGtpaG9u
Zy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyIHRvIHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIERldmljZVByb3hpbWl0eUNvbnRy
b2xsZXIuCisgICAgICAgIC0gYmFzaWMgZXZlbnQgb3BlcmF0aW9uCisgICAgICAgIC0gYWRkIGV2
ZW50IGxpc3RlbmVyCisgICAgICAgIC0gZXZlbnQgYWZ0ZXIgbGVhdmluZyB0aGUgcGFnZQorICAg
ICAgICAtIGV2ZW50IGluIHRoZSBtdWx0aXBsZSBmcmFtZXMKKyAgICAgICAgLSByZW1vdmUgYW5k
IHJlLWFkZCBldmVudCBsaXN0ZW5lcnMKKworICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9h
ZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXIt
bmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hp
bWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlv
bi1uZXcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10
ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5qczogQWRkZWQuCisgICAgICAgIChjaGVj
a1Byb3hpbWl0eSk6CisgICAgICAgIChmaXJzdExpc3RlbmVyKToKKyAgICAgICAgKHNlY29uZExp
c3RlbmVyKToKKyAgICAgICAgKG1heWJlRmluaXNoVGVzdCk6CisgICAgICAgICogZmFzdC9kb20v
UHJveGltaXR5L3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlv
bi5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9t
dWx0aXBsZS1mcmFtZXMuanM6IEFkZGVkLgorICAgICAgICAobWFpbkZyYW1lTGlzdGVuZXIpOgor
ICAgICAgICAoY2hpbGRGcmFtZUxpc3RlbmVyKToKKyAgICAgICAgKG1heWJlRmluaXNoVGVzdCk6
CisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy91cGRhdGVzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGNoZWNrUHJveGltaXR5RXZlbnQpOgorICAgICAgICAoc2V0UHJveGlt
aXR5KToKKyAgICAgICAgKGZpcnN0TGlzdGVuZXIpOgorICAgICAgICAodXBkYXRlTGlzdGVuZXIp
OgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbDogQWRkZWQuCisK
IDIwMTItMDgtMDcgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICB0cmFuc2xhdGVaKDApIHNoaWZ0cyBmaWxlIG5hbWUgaW4gZmlsZSBpbnB1dApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNh
bGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQt
bGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRmOWFhMTRk
NjhkZmJhMjI4NWUzNTgzNWQyODliOTJiNTVmYzgyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQg
bGlzdGVuZXIgZnJvbSBhIGNhbGxiYWNrIHdvcmtzIGFzIGV4cGVjdGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5t
aW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQ
QVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1MgZXZlbnQudmFs
dWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxs
YmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1m
cm9tLWNhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFkOTk4NGIwNDE1NDAyNTFmYTQxMDJlOGM5
YzE2ZGY3NGNkN2M2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1By
b3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsOSBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNp
Yy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5
L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFmMjc2OGMxOGJiY2Jk
NGFlNDYzN2U1N2MzOWIyNTg4MTdkZDNlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgUHJveGltaXR5IEV2ZW50Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAor
UEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkx
NTdiZTZlNjllY2E5NjRjN2VmNDg5NTY5NjRhZTQ4NjA4ZGQ0MzgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKQEAg
LTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9l
dmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZTZiYzM5ODI2Nzc3YjE4M2U0YjBmY2JlY2NlN2VjMjZmZDBmZDFkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUg
YW4gZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkIGF3YXkg
d2hlbiB0aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4KKworU1VDQ0VTUwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5h
dmlnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRl
ci1uYXZpZ2F0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA1N2FlZmViODVlNjhhNTQxNzI3YWFkOGY3
ZWJmZTlhYmRmNmZkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1By
b3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
ZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJh
bWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBs
ZS1mcmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YzUxNGI1MDM3OTRlOGUzY2E2NDkw
YjU1ZjlkNWQ4YTRiM2VlOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBA
CitUZXN0cyB1c2luZyBQcm94aW1pdHkgRXZlbnQgZnJvbSBtdWx0aXBsZSBmcmFtZXMuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNoaWxkRnJhbWUuY29udGVudFdpbmRv
dy5ldmVudC52YWx1ZSBpcyAzMAorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuZXZlbnQu
bWluIGlzIDAKK1BBU1MgY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50Lm1heCBpcyAxMDAK
K1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQu
bWF4IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBs
ZS1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1m
cmFtZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Zjc5Y2FjZjY2MjgyYzFmMzQyMTM1NmNjZDcxNjg4YmQ1
YzFlYjU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5
L211bHRpcGxlLWZyYW1lcy5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL211bHRpcGxlLWZyYW1l
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvcmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24t
bmV3Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvcmVzb3VyY2VzL2V2ZW50
LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBiOWExNjU3NDcxMTRlNTYy
MGFmZWYyNjVkMzBlMmFhNmU0MjM1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRt
bApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+
CisgICAgVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4gZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhl
IHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkCisgICAgYXdheSB3aGVuIHRoZSBvcmlnaW5hbCBwYWdl
IGlzIGluIHRoZSBwYWdlIGNhY2hlLjxicj48YnI+CisgICAgU1VDQ0VTUworICAgIDxzY3JpcHQ+
CisgICAgICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIDMwLCAwLCAxMDApOwor
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3Nj
cmlwdC10ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2su
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDAzZjY5ZDdmOTQ3MGIxMjhiOWI3MzZlM2I2NTMyYzIzNmZiYTVlMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQt
dGVzdHMvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suanMKQEAgLTAsMCArMSw0MCBAQAorZGVz
Y3JpcHRpb24oJ1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVyIGZyb20gYSBj
YWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWlu
ID0gMDsKK3ZhciBtYXggPSAxMDA7CisKK2Z1bmN0aW9uIGNoZWNrUHJveGltaXR5KCkgeworICAg
IHNob3VsZEJlKCJldmVudC52YWx1ZSIsICIzMCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4i
LCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5tYXgiLCAiMTAwIik7Cit9CisKK3ZhciBmaXJz
dExpc3RlbmVyRXZlbnRzID0gMDsKK2Z1bmN0aW9uIGZpcnN0TGlzdGVuZXIoKSB7CisgICAgY2hl
Y2tQcm94aW1pdHkoKTsKKyAgICBpZiAoKytmaXJzdExpc3RlbmVyRXZlbnRzID09IDEpIHsKKyAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIHNl
Y29uZExpc3RlbmVyKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwg
dmFsdWUsIG1pbiwgbWF4KTsKKyAgICB9CisgICAgZWxzZSBpZiAoZmlyc3RMaXN0ZW5lckV2ZW50
cyA+IDIpCisgICAgICAgIHRlc3RGYWlsZWQoJ1RvbyBtYW55IGV2ZW50cyBmb3IgZmlyc3QgbGlz
dGVuZXIuJyk7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK3ZhciBzZWNvbmRMaXN0ZW5l
ckV2ZW50cyA9IDA7CitmdW5jdGlvbiBzZWNvbmRMaXN0ZW5lcigpIHsKKyAgICBjaGVja1Byb3hp
bWl0eSgpOworICAgIGlmICgrK3NlY29uZExpc3RlbmVyRXZlbnRzID4gMSkKKyAgICAgICAgdGVz
dEZhaWxlZCgnVG9vIG1hbnkgZXZlbnRzIGZvciBzZWNvbmQgbGlzdGVuZXIuJyk7CisgICAgbWF5
YmVGaW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG1heWJlRmluaXNoVGVzdCgpIHsKKyAgICBp
ZiAoZmlyc3RMaXN0ZW5lckV2ZW50cyA9PSAyICYmIHNlY29uZExpc3RlbmVyRXZlbnRzID09IDEp
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
d2Via2l0ZGV2aWNlcHJveGltaXR5JywgZmlyc3RMaXN0ZW5lcik7CitpbnRlcm5hbHMuc2V0UHJv
eGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3Njcmlw
dC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1p
dHkvc2NyaXB0LXRlc3RzL2Jhc2ljLW9wZXJhdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzFmZWNmNjk1
OTFlMTUzODk0ZWU2MjlhM2Q3ZGQ2ZmQ4MWEwZjViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMK
QEAgLTAsMCArMSwxNSBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoZSBiYXNpYyBvcGVyYXRpb24g
b2YgUHJveGltaXR5IEV2ZW50LicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBtaW4gPSAwOwor
dmFyIG1heCA9IDEwMDsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXBy
b3hpbWl0eScsIGZ1bmN0aW9uKCkgeworICAgIHNob3VsZEJlKCJldmVudC52YWx1ZSIsICIzMCIp
OworICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5t
YXgiLCAiMTAwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworaW50ZXJuYWxzLnNldFBy
b3hpbWl0eShkb2N1bWVudCwgdmFsdWUsIG1pbiwgbWF4KTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3Jp
cHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZjNmMDNmYzQ0MWZkYjJhMmZmNmRlODk4M2QyYjE1OGUyZDU5ZTQ4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9ldmVu
dC1hZnRlci1uYXZpZ2F0aW9uLmpzCkBAIC0wLDAgKzEsMTMgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0
cyBmb3IgYSBjcmFzaCB3aGVyZSBhbiBldmVudCBpcyBmaXJlZCBhZnRlciB0aGUgcGFnZSBoYXMg
YmVlbiBuYXZpZ2F0ZWQgYXdheSB3aGVuIHRoZSBvcmlnaW5hbCBwYWdlIGlzIGluIHRoZSBwYWdl
IGNhY2hlLicpOworCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVy
cmlkZVByZWZlcmVuY2UoJ1dlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5JywgMSk7Citl
bHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0
UnVubmVyJyk7CisKK2RvY3VtZW50LmJvZHkub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIGZ1bmN0aW9uKCkg
eyB9ICk7CisgICAgd2luZG93LmxvY2F0aW9uID0gInJlc291cmNlcy9ldmVudC1hZnRlci1uYXZp
Z2F0aW9uLW5ldy5odG1sIjsKK30KKword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9tdWx0
aXBsZS1mcmFtZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRl
c3RzL211bHRpcGxlLWZyYW1lcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmVhNmY1OWIzNWFlNzIxOGQ5MzA1
NTU0NTk0MTA2NzFkMGRhNmNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9tdWx0aXBsZS1mcmFtZXMuanMKQEAgLTAsMCArMSwz
NyBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHVzaW5nIFByb3hpbWl0eSBFdmVudCBmcm9tIG11bHRp
cGxlIGZyYW1lcy4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXgg
PSAxMDA7CisKK3ZhciBoYXNNYWluRnJhbWVFdmVudEZpcmVkID0gZmFsc2U7CitmdW5jdGlvbiBt
YWluRnJhbWVMaXN0ZW5lcigpIHsKKyAgICBoYXNNYWluRnJhbWVFdmVudEZpcmVkID0gdHJ1ZTsK
KyAgICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
bWluIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworICAgIG1heWJl
RmluaXNoVGVzdCgpOworfQorCit2YXIgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSBmYWxzZTsK
K2Z1bmN0aW9uIGNoaWxkRnJhbWVMaXN0ZW5lcigpIHsKKyAgICBoYXNDaGlsZEZyYW1lRXZlbnRG
aXJlZCA9IHRydWU7CisgICAgc2hvdWxkQmUoImNoaWxkRnJhbWUuY29udGVudFdpbmRvdy5ldmVu
dC52YWx1ZSIsICIzMCIpOworICAgIHNob3VsZEJlKCJjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cu
ZXZlbnQubWluIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiY2hpbGRGcmFtZS5jb250ZW50V2luZG93
LmV2ZW50Lm1heCIsICIxMDAiKTsKKyAgICBtYXliZUZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rp
b24gbWF5YmVGaW5pc2hUZXN0KCkgeworICAgIGlmIChoYXNNYWluRnJhbWVFdmVudEZpcmVkICYm
IGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0KK30KKwordmFyIGNoaWxkRnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUn
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2hpbGRGcmFtZSk7CitjaGlsZEZyYW1lLmNv
bnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgY2hp
bGRGcmFtZUxpc3RlbmVyKTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vw
cm94aW1pdHknLCBtYWluRnJhbWVMaXN0ZW5lcik7CisKK2ludGVybmFscy5zZXRQcm94aW1pdHko
ZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3Rz
L3VwZGF0ZXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3Rz
L3VwZGF0ZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVlODc2M2I5MWQ5NTUwODZhNTUxOTdhNzE4NTIxNDY3
ZjRmNzU0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0
eS9zY3JpcHQtdGVzdHMvdXBkYXRlcy5qcwpAQCAtMCwwICsxLDM2IEBACitkZXNjcmlwdGlvbign
VGVzdHMgdGhhdCB1cGRhdGVzIHRvIHRoZSBwcm94aW1pdHkgZXZlbnQgY2F1c2VzIG5ldyBldmVu
dHMgdG8gZmlyZS4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXgg
PSAxMDA7CisKK2Z1bmN0aW9uIGNoZWNrUHJveGltaXR5RXZlbnQoKSB7CisgICAgc2hvdWxkQmUo
ImV2ZW50LnZhbHVlIiwgIjMwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICIwIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50Lm1heCIsICIxMDAiKTsKK30KKworZnVuY3Rpb24gc2V0UHJveGlt
aXR5KCkgeworICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBtaW4s
IG1heCk7Cit9CisKK2Z1bmN0aW9uIGZpcnN0TGlzdGVuZXIoKSB7CisJY2hlY2tQcm94aW1pdHlF
dmVudCgpOworICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94
aW1pdHknLCBmaXJzdExpc3RlbmVyKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Vi
a2l0ZGV2aWNlcHJveGltaXR5JywgdXBkYXRlTGlzdGVuZXIpOworICAgIHZhbHVlID0gMTAwOwor
ICAgIG1pbiA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICBtYXggPSBOdW1iZXIuUE9T
SVRJVkVfSU5GSU5JVFk7CisJc2V0UHJveGltaXR5KCk7Cit9CisKK2Z1bmN0aW9uIHVwZGF0ZUxp
c3RlbmVyKGV2ZW50KSB7CisgICAgc2hvdWxkQmUoImV2ZW50LnZhbHVlIiwgIjEwMCIpOworICAg
IHNob3VsZEJlKCJldmVudC5taW4iLCAiLUluZmluaXR5Iik7CisgICAgc2hvdWxkQmUoImV2ZW50
Lm1heCIsICJJbmZpbml0eSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgZmlyc3RMaXN0ZW5lcik7Citz
ZXRQcm94aW1pdHkoKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMGM5YzU3ZWYzNjAxN2Y0M2YwNmQwNDkyNzE0YzlmZGVlYTQ3MjE5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgdXBkYXRlcyB0byB0aGUgcHJveGltaXR5
IGV2ZW50IGNhdXNlcyBuZXcgZXZlbnRzIHRvIGZpcmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQ
QVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1MgZXZlbnQudmFsdWUgaXMgMTAwCitQQVNTIGV2ZW50
Lm1pbiBpcyAtSW5maW5pdHkKK1BBU1MgZXZlbnQubWF4IGlzIEluZmluaXR5CitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIyNTI2OTY5MDA0Y2Jl
OWFlN2E2MDFlNjc2MTliOGIxODIwY2VlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvdXBk
YXRlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157439</attachid>
            <date>2012-08-09 05:16:56 -0700</date>
            <delta_ts>2012-08-09 21:37:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120809211629.patch</filename>
            <type>text/plain</type>
            <size>33986</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU4MWQzYTc4OTQ0NzIx
Yjg3MzMyNzFjMzEwMjI2YmJjZjVhMDkzOS4uM2M5MTY4ZTY4ODQ2ZjVmMWVhZGUyOGFjZTQ3N2E4
NzlmNGRhYjJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA4LTA5ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQ
cm94aW1pdHlDb250cm9sbGVyIHRvIHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVjIDogaHR0cDovL3d3dy53
My5vcmcvVFIvcHJveGltaXR5LworCisgICAgICAgIEFkZCBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyIGNsYXNzIHRvIGNvbnRyb2wgYSBkZXZpY2Vwcm94aW1pdHkgZXZlbnQgZnJvbSBjbGllbnQu
CisgICAgICAgIEluIGFkZGl0aW9uLCBhZGQgc2V0UHJveGltaXR5IGZ1bmN0aW9uIGluIHRoZSBJ
bnRlcm5hbHMgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hpbWl0
eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VQcm94aW1pdHlDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlUHJveGltaXR5Q2xpZW50Ojp+RGV2aWNlUHJveGlt
aXR5Q2xpZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6On5EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNv
bnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hp
bWl0eUNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50
c0ZvckFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmVBdCk6CisgICAgICAgIChXZWJD
b3JlOjpwcm92aWRlRGV2aWNlUHJveGltaXR5VG8pOgorICAgICAgICAqIE1vZHVsZXMvcHJveGlt
aXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMp
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJl
bW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVB
bGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA4LTA3ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBPcHRpbWl6ZSBFbGVtZW50
OjpnZXRBdHRyaWJ1dGVOb2RlKCkgYnkgcmVwbGFjaW5nIFN0cmluZyB3aXRoIEF0b21pY1N0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YWNhNGRjYzlmNWFiYmY2NTE3MGVlY2MzN2RlMDFh
NDIwMzkwMzNmLi4wZjhjODM5OGExMjc3YmYxNWVkYzMwNTQzODRjMDFlNmY3ZWI2NjZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtODU4LDYgKzg1OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
IAogICAgIE1vZHVsZXMvcHJvdG9jb2xoYW5kbGVyL05hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyLmNwcAogCisgICAgTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlci5jcHAKICAgICBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlFdmVudC5jcHAK
IAogICAgIE1vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkM2Q1NGI2ZGVjOWE2ZGY2YTY2MjhlNzg0NzgxMDQwNjcwMDg4ZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94
aW1pdHlDbGllbnQuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlUHJveGltaXR5
Q2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlUHJveGltaXR5Q2xpZW50X2gKKworI2lmIEVOQUJMRShQ
Uk9YSU1JVFlfRVZFTlRTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisK
K2NsYXNzIERldmljZVByb3hpbWl0eUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2
aWNlUHJveGltaXR5Q2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmco
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKK307CisKK3Zv
aWQgcHJvdmlkZURldmljZVByb3hpbWl0eVRvKFBhZ2UqLCBEZXZpY2VQcm94aW1pdHlDbGllbnQq
KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUFJPWElNSVRZX0VWRU5U
UworI2VuZGlmIC8vIERldmljZVByb3hpbWl0eUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwZTNjOTkwYzk0YTllNDVmZDllYzAyNzJhZDZkOGUwMTJjZGYz
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9E
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqICBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgorCisj
aWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlD
bGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlFdmVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcj4gRGV2aWNl
UHJveGltaXR5Q29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZVByb3hpbWl0eUNs
aWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKworRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
cjo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcihQYWdlKiBwYWdlLCBEZXZpY2VQcm94aW1pdHlD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdl
KQoreworICAgIEFTU0VSVChtX2NsaWVudCk7Cit9CisKK0RldmljZVByb3hpbWl0eUNvbnRyb2xs
ZXI6On5EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+RGV2aWNl
UHJveGltaXR5Q29udHJvbGxlckRlc3Ryb3llZCgpOworfQorCisKK3ZvaWQgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlcjo6YWRkTGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgYm9v
bCBpc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOworICAgIG1fbGlzdGVuZXJzLmFkZCh3
aW5kb3cpOworICAgIGlmIChpc0VtcHR5KQorICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGlu
ZygpOworfQorCit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVy
KERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwor
ICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmIChtX2xpc3Rl
bmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwor
dm9pZCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAg
ICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBpZiAobV9saXN0
ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisK
K3ZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRhaW5z
KHdpbmRvdykpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9IG1fbGlzdGVuZXJz
LmNvdW50KHdpbmRvdyk7CisgICAgcmVtb3ZlQWxsTGlzdGVuZXJzKHdpbmRvdyk7CisgICAgd2hp
bGUgKGNvdW50LS0pCisgICAgICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLmFkZCh3aW5kb3cpOwor
fQorCit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50c0ZvckFsbExp
c3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fc3VzcGVuZGVkTGlzdGVu
ZXJzLmNvbnRhaW5zKHdpbmRvdykpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9
IG1fc3VzcGVuZGVkTGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7CisgICAgbV9zdXNwZW5kZWRMaXN0
ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgIGFk
ZExpc3RlbmVyKHdpbmRvdyk7Cit9CisKK3ZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6
ZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KGRvdWJsZSB2YWx1ZSwgZG91YmxlIG1pbiwgZG91Ymxl
IG1heCkKK3sKKyAgICBSZWZQdHI8RGV2aWNlUHJveGltaXR5RXZlbnQ+IGV2ZW50ID0gRGV2aWNl
UHJveGltaXR5RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5
RXZlbnQsIHZhbHVlLCBtaW4sIG1heCk7CisgICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4g
bGlzdGVuZXJzOworICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVycy5zaXplKCk7ICsraSkKKyAgICAgICAg
bGlzdGVuZXJzW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworY29uc3QgQXRvbWljU3Ry
aW5nJiBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlciIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworYm9vbCBEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCit7CisgICAgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZy
b20ocGFnZSk7CisgICAgaWYgKGNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBjb250cm9sbGVy
LT5pc0FjdGl2ZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBwcm92aWRlRGV2aWNl
UHJveGltaXR5VG8oUGFnZSogcGFnZSwgRGV2aWNlUHJveGltaXR5Q2xpZW50KiBjbGllbnQpCit7
CisgICAgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6cHJvdmlkZVRvKHBhZ2UsIERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCksIERldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmNyZWF0ZShwYWdlLCBjbGllbnQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gUFJPWElNSVRZX0VWRU5UUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ0ODkwMjc2NWVkMjQ1MDZiYTM4ZTg3NGFhYzJhN2FkYWM0MThjNGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXJfaAorI2RlZmluZSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKKwor
I2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZVByb3hpbWl0eUNsaWVudDsKKworY2xhc3Mg
RGV2aWNlUHJveGltaXR5Q29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1
YmxpYzoKKyAgICB+RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcigpOworCisgICAgc3RhdGljIFBh
c3NPd25QdHI8RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqLCBEZXZpY2VQ
cm94aW1pdHlDbGllbnQqKTsKKworICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7Cisg
ICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZUFsbExp
c3RlbmVycyhET01XaW5kb3cqKTsKKworICAgIHZvaWQgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhE
T01XaW5kb3cqKTsKKworICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KGRvdWJsZSB2
YWx1ZSwgZG91YmxlIG1pbiwgZG91YmxlIG1heCk7CisgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0
dXJuICFtX2xpc3RlbmVycy5pc0VtcHR5KCk7IH0KKworICAgIERldmljZVByb3hpbWl0eUNsaWVu
dCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3Vw
cGxlbWVudE5hbWUoKSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNBY3RpdmVBdChQYWdlKik7CisK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcihQYWdlKiwg
RGV2aWNlUHJveGltaXR5Q2xpZW50Kik7CisKKyAgICBEZXZpY2VQcm94aW1pdHlDbGllbnQqIG1f
Y2xpZW50OworICAgIFBhZ2UqIG1fcGFnZTsKKworICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8
UmVmUHRyPERPTVdpbmRvdz4gPiBMaXN0ZW5lcnNDb3VudGVkU2V0OworICAgIExpc3RlbmVyc0Nv
dW50ZWRTZXQgbV9saXN0ZW5lcnM7CisgICAgTGlzdGVuZXJzQ291bnRlZFNldCBtX3N1c3BlbmRl
ZExpc3RlbmVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBS
T1hJTUlUWV9FVkVOVFMKKyNlbmRpZiAvLyBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDZlNTg4MzhkMzQ4ZDhiMjEwNWE5Mzc2ZjJmNWMwODc0
YWFhZDk3NGIuLjY1ZGM5NWVlOTM4NjQ1NTVkN2VhM2FjMzFhOTIzZjVjZjFhNjg5OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkRhdGVDb21w
b25lbnRzLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkRldmljZVByb3hpbWl0
eUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRl
ICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTIx
OTMsMTUgKzIxOTQsMTkgQEAgdm9pZCBEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMo
QWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uIHdoeSkKIHsKICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyh3aHkpOwogCi0jaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSB8
fCBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBpZiAoIXBhZ2UoKSkKICAgICAgICAgcmV0
dXJuOwotCisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIGlmIChE
ZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlTW90aW9uQ29udHJvbGxl
cjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRzRm9yQWxs
TGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Uo
KSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9t
V2luZG93KCkpOwotCisjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyAgICBp
ZiAoRGV2aWNlUHJveGltaXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0
eUNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2
ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CiAjZW5kaWYKIH0KIApAQCAtMjIwOSwx
NSArMjIxNCwyMiBAQCB2b2lkIERvY3VtZW50OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKCkKIHsK
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXN1bWVBY3RpdmVET01PYmplY3RzKCk7CiAK
LSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pIHx8IEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQogICAgIGlmICghcGFnZSgpKQogICAg
ICAgICByZXR1cm47Ci0KKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAg
ICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rpb25D
b250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50
c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CiAgICAgaWYgKERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJv
bShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5l
cnMoZG9tV2luZG93KCkpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisg
ICAgaWYgKCFwYWdlKCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20o
cGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJz
KGRvbVdpbmRvdygpKTsKKyNlbmRpZgogfQogCiBSZW5kZXJWaWV3KiBEb2N1bWVudDo6cmVuZGVy
VmlldygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOWFjOTk5NmE1NmIy
ZmRmMTM1MTQ2YzU4ZTFkMjZmOWRjMDZiMDIyMC4uYWViZDk0YzcwM2E1YTIxNDIzYzIzZDZkNmMx
ZmFhYjhhNTk0YTk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNTAsNiArNTAs
NyBAQAogI2luY2x1ZGUgIkRhdGFiYXNlQ2FsbGJhY2suaCIKICNpbmNsdWRlICJEZXZpY2VNb3Rp
b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgi
CisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbGVtZW50Lmgi
CkBAIC0xNTk0LDYgKzE1OTUsMTIgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQKICAgICAgICAg
ICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgorI2lmIEVO
QUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5h
bWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5RXZlbnQpIHsKKyAgICAgICAgaWYgKERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlz
KTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTYyMyw2ICsxNjMw
LDEyIEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgICAgICBjb250cm9sbGVyLT5y
ZW1vdmVMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZ
X0VWRU5UUykKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdGRl
dmljZXByb3hpbWl0eUV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyKiBjb250cm9sbGVyID0gRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkp
KQorICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgfQor
I2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2NzksNiArMTY5MiwxMCBAQCB2b2lk
IERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIGlmIChEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVuZXJz
KHRoaXMpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgaWYgKERl
dmljZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbExpc3Rl
bmVycyh0aGlzKTsKKyNlbmRpZgogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnMo
dGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMmZkYzA2NmQ2NWE2NTY1N2EzYmZi
YTIyYzU4YjAwYjNkMzNlNmY2MC4uYTMxM2IwYzg5NDY1OTE3NzUzNDBhMTk5NzU1MzAyZjkxM2Vi
MzUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIkRPTU5v
ZGVIaWdobGlnaHRlci5oIgogI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5oIgpAQCAtOTkzLDYgKzk5NCwyMiBAQCB2b2lkIEludGVybmFsczo6c2V0TmV0d29ya0luZm9y
bWF0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiBldmVudFR5cAogI2VuZGlm
CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRQcm94aW1pdHkoRG9jdW1lbnQqIGRvY3VtZW50LCBk
b3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBFTkFC
TEUoUFJPWElNSVRZX0VWRU5UUykKKyAgICBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpmcm9t
KGRvY3VtZW50LT5wYWdlKCkpLT5kaWRDaGFuZ2VEZXZpY2VQcm94aW1pdHkodmFsdWUsIG1pbiwg
bWF4KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0o
bWluKTsKKyAgICBVTlVTRURfUEFSQU0obWF4KTsKKyNlbmRpZgorfQorCiBib29sIEludGVybmFs
czo6aGFzU3BlbGxpbmdNYXJrZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgZnJvbSwgaW50IGxl
bmd0aCwgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQt
PmZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAxNTc2NjJjM2RlNmI0
ZWQxNDRhMjk5OTgzNjAzY2NlYjY0MDBhYmRlLi5jYTgzODcyOTVjMzhiODI4YmFhZjdmZDExMzBk
YWZlYmM3NDE0NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE4MCw2ICsx
ODAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5ldHdvcmtJbmZvcm1hdGlvbihEb2N1bWVu
dCosIGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgYmFuZHdpZHRoLCBib29sIG1ldGVy
ZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0UHJveGltaXR5KERvY3VtZW50Kiwg
ZG91YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBFeGNlcHRpb25Db2RlJik7CisK
ICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNv
bnN0OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUm
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDYwMWU4YTc0
ZjlmMTBkMjRlNDE4ZjEzODMzODZlMDU3ZjU4YTA0YmYuLmMwNGY4YTFiYTI3MDE5NWI1MjE2Y2Rk
YTQ4Y2FhOGFhZThkZDdkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAg
LTE2Nyw2ICsxNjcsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0TmV0d29y
a0luZm9ybWF0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBET01TdHJpbmcgZXZlbnRUeXBl
LCBpbiBkb3VibGUgYmFuZHdpZHRoLCBpbiBib29sZWFuIG1ldGVyZWQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykg
JiYgRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMKKyAgICAgICAgdm9pZCBzZXRQcm94aW1pdHkoaW4g
RG9jdW1lbnQgZG9jdW1lbnQsIGluIGRvdWJsZSB2YWx1ZSwgaW4gZG91YmxlIG1pbiwgaW4gZG91
YmxlIG1heCkgcmFpc2VzIChET01FeGNlcHRpb24pOworI2VuZGlmCisKICAgICAgICAgW0NvbmRp
dGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVOb2RlcygpOwogICAg
ICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZURv
Y3VtZW50cygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSBzZXF1ZW5jZTxTdHJp
bmc+IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGVjOTgyNTlkMmQxYzM0NWVhYzg5MTI3YjdmMzgwYjdmOWU3NWMxOWQuLjM1NjI4NjNj
ZTNhOTA4MDUxMDkzNWFiMmQ1ODFkMTRkMjM5ZTc3NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAor
MjAxMi0wOC0wOSAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBBZGQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlciB0byBzdXBwb3J0IFByb3hpbWl0eSBF
dmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkz
NTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHRlc3RzIGZvciBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLgorICAgICAgICAtIGJhc2ljIGV2
ZW50IG9wZXJhdGlvbgorICAgICAgICAtIGFkZCBldmVudCBsaXN0ZW5lcgorICAgICAgICAtIGV2
ZW50IGFmdGVyIGxlYXZpbmcgdGhlIHBhZ2UKKyAgICAgICAgLSBldmVudCBpbiB0aGUgbXVsdGlw
bGUgZnJhbWVzCisgICAgICAgIC0gcmVtb3ZlIGFuZCByZS1hZGQgZXZlbnQgbGlzdGVuZXJzCisK
KyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2st
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxp
c3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJv
eGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJh
bWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L211
bHRpcGxlLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkv
cmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvYWRkLWxpc3RlbmVyLWZyb20tY2Fs
bGJhY2suanM6IEFkZGVkLgorICAgICAgICAoY2hlY2tQcm94aW1pdHkpOgorICAgICAgICAoZmly
c3RMaXN0ZW5lcik6CisgICAgICAgIChzZWNvbmRMaXN0ZW5lcik6CisgICAgICAgIChtYXliZUZp
bmlzaFRlc3QpOgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvYmFz
aWMtb3BlcmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvc2Ny
aXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanM6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtZnJhbWVzLmpzOiBBZGRlZC4K
KyAgICAgICAgKG1haW5GcmFtZUxpc3RlbmVyKToKKyAgICAgICAgKGNoaWxkRnJhbWVMaXN0ZW5l
cik6CisgICAgICAgIChtYXliZUZpbmlzaFRlc3QpOgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hp
bWl0eS9zY3JpcHQtdGVzdHMvdXBkYXRlcy5qczogQWRkZWQuCisgICAgICAgIChjaGVja1Byb3hp
bWl0eUV2ZW50KToKKyAgICAgICAgKHNldFByb3hpbWl0eSk6CisgICAgICAgIChmaXJzdExpc3Rl
bmVyKToKKyAgICAgICAgKHVwZGF0ZUxpc3RlbmVyKToKKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94
aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1By
b3hpbWl0eS91cGRhdGVzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTA3ICBZb3NoaWZ1bWkgSW5v
dWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgdHJhbnNsYXRlWigwKSBzaGlmdHMg
ZmlsZSBuYW1lIGluIGZpbGUgaW5wdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2stZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZjlhYTE0ZDY4ZGZiYTIyODVlMzU4MzVkMjg5YjkyYjU1
ZmM4MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkv
YWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAK
K1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVyIGZyb20gYSBjYWxsYmFjayB3
b3JrcyBhcyBleHBlY3RlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlz
IDEwMAorUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBl
dmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBp
cyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Q
cm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZhZDk5ODRiMDQxNTQwMjUxZmE0MTAyZThjOWMxNmRmNzRjZDdjNjgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20t
Y2FsbGJhY2suaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hZGQtbGlzdGVuZXItZnJvbS1jYWxs
YmFjay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJhZjI3NjhjMThiYmNiZDRhZTQ2MzdlNTdjMzliMjU4ODE3ZGQzZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMt
b3BlcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGUgYmFzaWMg
b3BlcmF0aW9uIG9mIFByb3hpbWl0eSBFdmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1Mg
ZXZlbnQubWF4IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9i
YXNpYy1vcGVyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNp
Yy1vcGVyYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTU3YmU2ZTY5ZWNhOTY0YzdlZjQ4OTU2OTY0
YWU0ODYwOGRkNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJv
eGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2Jhc2ljLW9w
ZXJhdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2
aWdhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU2YmMzOTgyNjc3N2IxODNlNGIwZmNi
ZWNjZTdlYzI2ZmQwZmQxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKK1Rlc3RzIGZvciBhIGNyYXNoIHdoZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRo
ZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRlZCBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2UgaXMg
aW4gdGhlIHBhZ2UgY2FjaGUuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcwNTdhZWZlYjg1ZTY4YTU0MTcyN2FhZDhmN2ViZmU5YWJkZjZmZDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdh
dGlvbi5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zN2M1MTRiNTAzNzk0ZThlM2NhNjQ5MGI1NWY5ZDVkOGE0YjNlZThkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1l
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdXNpbmcgUHJveGltaXR5IEV2
ZW50IGZyb20gbXVsdGlwbGUgZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuZXZlbnQudmFsdWUgaXMgMzAKK1BBU1Mg
Y2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50Lm1pbiBpcyAwCitQQVNTIGNoaWxkRnJhbWUu
Y29udGVudFdpbmRvdy5ldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQ
QVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY3
OWNhY2Y2NjI4MmMxZjM0MjEzNTZjY2Q3MTY4OGJkNWMxZWI1NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbApAQCAt
MCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9tdWx0aXBsZS1mcmFtZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3Jl
c291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUHJveGltaXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmEwYjlhMTY1NzQ3MTE0ZTU2MjBhZmVmMjY1ZDMwZTJhYTZlNDIzNTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvcmVzb3VyY2Vz
L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0bWw+
CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIFRlc3RzIGZvciBhIGNyYXNoIHdo
ZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRlZAor
ICAgIGF3YXkgd2hlbiB0aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS48YnI+
PGJyPgorICAgIFNVQ0NFU1MKKyAgICA8c2NyaXB0PgorICAgICAgICBpbnRlcm5hbHMuc2V0UHJv
eGltaXR5KGRvY3VtZW50LCAzMCwgMCwgMTAwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvYWRkLWxpc3RlbmVyLWZy
b20tY2FsbGJhY2suanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRl
c3RzL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwM2Y2OWQ3Zjk0
NzBiMTI4YjliNzM2ZTNiNjUzMmMyMzZmYmE1ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1mcm9tLWNh
bGxiYWNrLmpzCkBAIC0wLDAgKzEsNDAgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IGFkZGlu
ZyBhIG5ldyBldmVudCBsaXN0ZW5lciBmcm9tIGEgY2FsbGJhY2sgd29ya3MgYXMgZXhwZWN0ZWQu
Jyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIgbWF4ID0gMTAwOworCitm
dW5jdGlvbiBjaGVja1Byb3hpbWl0eSgpIHsKKyAgICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAi
MzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZl
bnQubWF4IiwgIjEwMCIpOworfQorCit2YXIgZmlyc3RMaXN0ZW5lckV2ZW50cyA9IDA7CitmdW5j
dGlvbiBmaXJzdExpc3RlbmVyKCkgeworICAgIGNoZWNrUHJveGltaXR5KCk7CisgICAgaWYgKCsr
Zmlyc3RMaXN0ZW5lckV2ZW50cyA9PSAxKSB7CisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBzZWNvbmRMaXN0ZW5lcik7CisgICAgICAgIGlu
dGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7CisgICAgfQor
ICAgIGVsc2UgaWYgKGZpcnN0TGlzdGVuZXJFdmVudHMgPiAyKQorICAgICAgICB0ZXN0RmFpbGVk
KCdUb28gbWFueSBldmVudHMgZm9yIGZpcnN0IGxpc3RlbmVyLicpOworICAgIG1heWJlRmluaXNo
VGVzdCgpOworfQorCit2YXIgc2Vjb25kTGlzdGVuZXJFdmVudHMgPSAwOworZnVuY3Rpb24gc2Vj
b25kTGlzdGVuZXIoKSB7CisgICAgY2hlY2tQcm94aW1pdHkoKTsKKyAgICBpZiAoKytzZWNvbmRM
aXN0ZW5lckV2ZW50cyA+IDEpCisgICAgICAgIHRlc3RGYWlsZWQoJ1RvbyBtYW55IGV2ZW50cyBm
b3Igc2Vjb25kIGxpc3RlbmVyLicpOworICAgIG1heWJlRmluaXNoVGVzdCgpOworfQorCitmdW5j
dGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7CisgICAgaWYgKGZpcnN0TGlzdGVuZXJFdmVudHMgPT0g
MiAmJiBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9PSAxKQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIGZp
cnN0TGlzdGVuZXIpOworaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgdmFsdWUsIG1p
biwgbWF4KTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9iYXNpYy1vcGVy
YXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODcxZmVjZjY5NTkxZTE1Mzg5NGVlNjI5YTNkN2RkNmZkODFh
MGY1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9z
Y3JpcHQtdGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpzCkBAIC0wLDAgKzEsMTUgQEAKK2Rlc2NyaXB0
aW9uKCdUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIFByb3hpbWl0eSBFdmVudC4nKTsKKwor
dmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXggPSAxMDA7CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmdW5jdGlvbigpIHsKKyAg
ICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWlu
IiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSk7CisKK2ludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBt
aW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmln
YXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3RzL2V2
ZW50LWFmdGVyLW5hdmlnYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYzZjAzZmM0NDFmZGIyYTJmZjZk
ZTg5ODNkMmIxNThlMmQ1OWU0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5qcwpAQCAt
MCwwICsxLDEzIEBACitkZXNjcmlwdGlvbignVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4gZXZl
bnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkIGF3YXkgd2hlbiB0
aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4nKTsKKworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCdXZWJLaXRVc2Vz
UGFnZUNhY2hlUHJlZmVyZW5jZUtleScsIDEpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRlc3Qg
Y2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCitkb2N1bWVudC5ib2R5
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJr
aXRkZXZpY2Vwcm94aW1pdHknLCBmdW5jdGlvbigpIHsgfSApOworICAgIHdpbmRvdy5sb2NhdGlv
biA9ICJyZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRtbCI7Cit9CisKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtZnJhbWVzLmpzIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9tdWx0aXBsZS1mcmFtZXMuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzZlYTZmNTliMzVhZTcyMThkOTMwNTU1NDU5NDEwNjcxZDBkYTZjYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMv
bXVsdGlwbGUtZnJhbWVzLmpzCkBAIC0wLDAgKzEsMzcgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyB1
c2luZyBQcm94aW1pdHkgRXZlbnQgZnJvbSBtdWx0aXBsZSBmcmFtZXMuJyk7CisKK3ZhciB2YWx1
ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIgbWF4ID0gMTAwOworCit2YXIgaGFzTWFpbkZyYW1l
RXZlbnRGaXJlZCA9IGZhbHNlOworZnVuY3Rpb24gbWFpbkZyYW1lTGlzdGVuZXIoKSB7CisgICAg
aGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IHRydWU7CisgICAgc2hvdWxkQmUoImV2ZW50LnZhbHVl
IiwgIjMwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICIwIik7CisgICAgc2hvdWxkQmUo
ImV2ZW50Lm1heCIsICIxMDAiKTsKKyAgICBtYXliZUZpbmlzaFRlc3QoKTsKK30KKwordmFyIGhh
c0NoaWxkRnJhbWVFdmVudEZpcmVkID0gZmFsc2U7CitmdW5jdGlvbiBjaGlsZEZyYW1lTGlzdGVu
ZXIoKSB7CisgICAgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSB0cnVlOworICAgIHNob3VsZEJl
KCJjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91
bGRCZSgiY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50Lm1pbiIsICIwIik7CisgICAgc2hv
dWxkQmUoImNoaWxkRnJhbWUuY29udGVudFdpbmRvdy5ldmVudC5tYXgiLCAiMTAwIik7CisgICAg
bWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG1heWJlRmluaXNoVGVzdCgpIHsKKyAg
ICBpZiAoaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCAmJiBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCkg
eworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisKK3ZhciBjaGlsZEZyYW1lID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENo
aWxkKGNoaWxkRnJhbWUpOworY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIGNoaWxkRnJhbWVMaXN0ZW5lcik7Cit3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgbWFpbkZyYW1lTGlzdGVu
ZXIpOworCitpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgp
Oword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy91cGRhdGVzLmpzIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy91cGRhdGVzLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFl
ZTg3NjNiOTFkOTU1MDg2YTU1MTk3YTcxODUyMTQ2N2Y0Zjc1NDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3RzL3VwZGF0ZXMuanMK
QEAgLTAsMCArMSwzNiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgdXBkYXRlcyB0byB0aGUg
cHJveGltaXR5IGV2ZW50IGNhdXNlcyBuZXcgZXZlbnRzIHRvIGZpcmUuJyk7CisKK3ZhciB2YWx1
ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIgbWF4ID0gMTAwOworCitmdW5jdGlvbiBjaGVja1By
b3hpbWl0eUV2ZW50KCkgeworICAgIHNob3VsZEJlKCJldmVudC52YWx1ZSIsICIzMCIpOworICAg
IHNob3VsZEJlKCJldmVudC5taW4iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5tYXgiLCAi
MTAwIik7Cit9CisKK2Z1bmN0aW9uIHNldFByb3hpbWl0eSgpIHsKKyAgICBpbnRlcm5hbHMuc2V0
UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOworfQorCitmdW5jdGlvbiBmaXJz
dExpc3RlbmVyKCkgeworCWNoZWNrUHJveGltaXR5RXZlbnQoKTsKKyAgICB3aW5kb3cucmVtb3Zl
RXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgZmlyc3RMaXN0ZW5lcik7Cisg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIHVwZGF0
ZUxpc3RlbmVyKTsKKyAgICB2YWx1ZSA9IDEwMDsKKyAgICBtaW4gPSBOdW1iZXIuTkVHQVRJVkVf
SU5GSU5JVFk7CisgICAgbWF4ID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworCXNldFByb3hp
bWl0eSgpOworfQorCitmdW5jdGlvbiB1cGRhdGVMaXN0ZW5lcihldmVudCkgeworICAgIHNob3Vs
ZEJlKCJldmVudC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIi1J
bmZpbml0eSIpOworICAgIHNob3VsZEJlKCJldmVudC5tYXgiLCAiSW5maW5pdHkiKTsKKyAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmlj
ZXByb3hpbWl0eScsIGZpcnN0TGlzdGVuZXIpOworc2V0UHJveGltaXR5KCk7Cit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94
aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1p
dHkvdXBkYXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBjOWM1N2VmMzYwMTdmNDNmMDZk
MDQ5MjcxNGM5ZmRlZWE0NzIxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0
cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIHByb3hpbWl0eSBldmVudCBjYXVzZXMgbmV3IGV2ZW50cyB0
byBmaXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC52YWx1
ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNT
IGV2ZW50LnZhbHVlIGlzIDEwMAorUEFTUyBldmVudC5taW4gaXMgLUluZmluaXR5CitQQVNTIGV2
ZW50Lm1heCBpcyBJbmZpbml0eQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0
eS91cGRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgyMjUyNjk2OTAwNGNiZTlhZTdhNjAxZTY3NjE5YjhiMTgyMGNlZTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRl
cy5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3VwZGF0ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157633</attachid>
            <date>2012-08-09 21:37:08 -0700</date>
            <delta_ts>2012-08-10 06:11:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120810133640.patch</filename>
            <type>text/plain</type>
            <size>33833</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU4MWQzYTc4OTQ0NzIx
Yjg3MzMyNzFjMzEwMjI2YmJjZjVhMDkzOS4uM2M5MTY4ZTY4ODQ2ZjVmMWVhZGUyOGFjZTQ3N2E4
NzlmNGRhYjJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA4LTA5ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQ
cm94aW1pdHlDb250cm9sbGVyIHRvIHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVjIDogaHR0cDovL3d3dy53
My5vcmcvVFIvcHJveGltaXR5LworCisgICAgICAgIEFkZCBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyIGNsYXNzIHRvIGNvbnRyb2wgYSBkZXZpY2Vwcm94aW1pdHkgZXZlbnQgZnJvbSBjbGllbnQu
CisgICAgICAgIEluIGFkZGl0aW9uLCBhZGQgc2V0UHJveGltaXR5IGZ1bmN0aW9uIGluIHRoZSBJ
bnRlcm5hbHMgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hpbWl0
eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VQcm94aW1pdHlDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlUHJveGltaXR5Q2xpZW50Ojp+RGV2aWNlUHJveGlt
aXR5Q2xpZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6On5EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNv
bnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hp
bWl0eUNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50
c0ZvckFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmVBdCk6CisgICAgICAgIChXZWJD
b3JlOjpwcm92aWRlRGV2aWNlUHJveGltaXR5VG8pOgorICAgICAgICAqIE1vZHVsZXMvcHJveGlt
aXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMp
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJl
bW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVB
bGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA4LTA3ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBPcHRpbWl6ZSBFbGVtZW50
OjpnZXRBdHRyaWJ1dGVOb2RlKCkgYnkgcmVwbGFjaW5nIFN0cmluZyB3aXRoIEF0b21pY1N0cmlu
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5YWNhNGRjYzlmNWFiYmY2NTE3MGVlY2MzN2RlMDFh
NDIwMzkwMzNmLi4wZjhjODM5OGExMjc3YmYxNWVkYzMwNTQzODRjMDFlNmY3ZWI2NjZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtODU4LDYgKzg1OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
IAogICAgIE1vZHVsZXMvcHJvdG9jb2xoYW5kbGVyL05hdmlnYXRvclJlZ2lzdGVyUHJvdG9jb2xI
YW5kbGVyLmNwcAogCisgICAgTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlci5jcHAKICAgICBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlFdmVudC5jcHAK
IAogICAgIE1vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVkM2Q1NGI2ZGVjOWE2ZGY2YTY2MjhlNzg0NzgxMDQwNjcwMDg4ZjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94
aW1pdHlDbGllbnQuaApAQCAtMCwwICsxLDQyIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlUHJveGltaXR5
Q2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlUHJveGltaXR5Q2xpZW50X2gKKworI2lmIEVOQUJMRShQ
Uk9YSU1JVFlfRVZFTlRTKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisK
K2NsYXNzIERldmljZVByb3hpbWl0eUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2
aWNlUHJveGltaXR5Q2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmco
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlckRlc3Ryb3llZCgpID0gMDsKK307CisKK3Zv
aWQgcHJvdmlkZURldmljZVByb3hpbWl0eVRvKFBhZ2UqLCBEZXZpY2VQcm94aW1pdHlDbGllbnQq
KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUFJPWElNSVRZX0VWRU5U
UworI2VuZGlmIC8vIERldmljZVByb3hpbWl0eUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwZTNjOTkwYzk0YTllNDVmZDllYzAyNzJhZDZkOGUwMTJjZGYz
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9E
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqICBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgorCisj
aWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlD
bGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlFdmVudC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcj4gRGV2aWNl
UHJveGltaXR5Q29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UsIERldmljZVByb3hpbWl0eUNs
aWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlcihwYWdlLCBjbGllbnQpKTsKK30KKworRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
cjo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcihQYWdlKiBwYWdlLCBEZXZpY2VQcm94aW1pdHlD
bGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdl
KQoreworICAgIEFTU0VSVChtX2NsaWVudCk7Cit9CisKK0RldmljZVByb3hpbWl0eUNvbnRyb2xs
ZXI6On5EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+RGV2aWNl
UHJveGltaXR5Q29udHJvbGxlckRlc3Ryb3llZCgpOworfQorCisKK3ZvaWQgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlcjo6YWRkTGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgYm9v
bCBpc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNFbXB0eSgpOworICAgIG1fbGlzdGVuZXJzLmFkZCh3
aW5kb3cpOworICAgIGlmIChpc0VtcHR5KQorICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGlu
ZygpOworfQorCit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVy
KERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOwor
ICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmIChtX2xpc3Rl
bmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwor
dm9pZCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2lu
ZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAg
ICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBpZiAobV9saXN0
ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisK
K3ZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRhaW5z
KHdpbmRvdykpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9IG1fbGlzdGVuZXJz
LmNvdW50KHdpbmRvdyk7CisgICAgcmVtb3ZlQWxsTGlzdGVuZXJzKHdpbmRvdyk7CisgICAgd2hp
bGUgKGNvdW50LS0pCisgICAgICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLmFkZCh3aW5kb3cpOwor
fQorCit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50c0ZvckFsbExp
c3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fc3VzcGVuZGVkTGlzdGVu
ZXJzLmNvbnRhaW5zKHdpbmRvdykpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9
IG1fc3VzcGVuZGVkTGlzdGVuZXJzLmNvdW50KHdpbmRvdyk7CisgICAgbV9zdXNwZW5kZWRMaXN0
ZW5lcnMucmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgIGFk
ZExpc3RlbmVyKHdpbmRvdyk7Cit9CisKK3ZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6
ZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KGRvdWJsZSB2YWx1ZSwgZG91YmxlIG1pbiwgZG91Ymxl
IG1heCkKK3sKKyAgICBSZWZQdHI8RGV2aWNlUHJveGltaXR5RXZlbnQ+IGV2ZW50ID0gRGV2aWNl
UHJveGltaXR5RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5
RXZlbnQsIHZhbHVlLCBtaW4sIG1heCk7CisgICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4g
bGlzdGVuZXJzOworICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVycy5zaXplKCk7ICsraSkKKyAgICAgICAg
bGlzdGVuZXJzW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworY29uc3QgQXRvbWljU3Ry
aW5nJiBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlciIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworYm9vbCBEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyOjppc0FjdGl2ZUF0KFBhZ2UqIHBhZ2UpCit7CisgICAgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZy
b20ocGFnZSk7CisgICAgaWYgKGNvbnRyb2xsZXIpCisgICAgICAgIHJldHVybiBjb250cm9sbGVy
LT5pc0FjdGl2ZSgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBwcm92aWRlRGV2aWNl
UHJveGltaXR5VG8oUGFnZSogcGFnZSwgRGV2aWNlUHJveGltaXR5Q2xpZW50KiBjbGllbnQpCit7
CisgICAgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6cHJvdmlkZVRvKHBhZ2UsIERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCksIERldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmNyZWF0ZShwYWdlLCBjbGllbnQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gUFJPWElNSVRZX0VWRU5UUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ0ODkwMjc2NWVkMjQ1MDZiYTM4ZTg3NGFhYzJhN2FkYWM0MThjNGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXJfaAorI2RlZmluZSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKKwor
I2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZVByb3hpbWl0eUNsaWVudDsKKworY2xhc3Mg
RGV2aWNlUHJveGltaXR5Q29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1
YmxpYzoKKyAgICB+RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcigpOworCisgICAgc3RhdGljIFBh
c3NPd25QdHI8RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqLCBEZXZpY2VQ
cm94aW1pdHlDbGllbnQqKTsKKworICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93Kik7Cisg
ICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZUFsbExp
c3RlbmVycyhET01XaW5kb3cqKTsKKworICAgIHZvaWQgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhE
T01XaW5kb3cqKTsKKworICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KGRvdWJsZSB2
YWx1ZSwgZG91YmxlIG1pbiwgZG91YmxlIG1heCk7CisgICAgYm9vbCBpc0FjdGl2ZSgpIHsgcmV0
dXJuICFtX2xpc3RlbmVycy5pc0VtcHR5KCk7IH0KKworICAgIERldmljZVByb3hpbWl0eUNsaWVu
dCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyBjb25z
dCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3Vw
cGxlbWVudE5hbWUoKSkpOyB9CisgICAgc3RhdGljIGJvb2wgaXNBY3RpdmVBdChQYWdlKik7CisK
K3ByaXZhdGU6CisgICAgZXhwbGljaXQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcihQYWdlKiwg
RGV2aWNlUHJveGltaXR5Q2xpZW50Kik7CisKKyAgICBEZXZpY2VQcm94aW1pdHlDbGllbnQqIG1f
Y2xpZW50OworICAgIFBhZ2UqIG1fcGFnZTsKKworICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8
UmVmUHRyPERPTVdpbmRvdz4gPiBMaXN0ZW5lcnNDb3VudGVkU2V0OworICAgIExpc3RlbmVyc0Nv
dW50ZWRTZXQgbV9saXN0ZW5lcnM7CisgICAgTGlzdGVuZXJzQ291bnRlZFNldCBtX3N1c3BlbmRl
ZExpc3RlbmVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBS
T1hJTUlUWV9FVkVOVFMKKyNlbmRpZiAvLyBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDZlNTg4MzhkMzQ4ZDhiMjEwNWE5Mzc2ZjJmNWMwODc0
YWFhZDk3NGIuLjdhMDQxMDc0MTZmNDZiMDk5ZjZlNTMxYmQ4M2JhODdiNzYyNzZkNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjI0LDYgKzIyNCwxMCBAQAogI2luY2x1ZGUgIkRPTVNl
Y3VyaXR5UG9saWN5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQor
I2luY2x1ZGUgIkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiB1c2luZyBu
YW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmlj
b2RlOwpAQCAtMjE5MywxNSArMjE5NywxOSBAQCB2b2lkIERvY3VtZW50OjpzdXNwZW5kQWN0aXZl
RE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24gd2h5KQogewog
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKHdoeSk7
CiAKLSNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pIHx8IEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQogICAgIGlmICghcGFnZSgpKQog
ICAgICAgICByZXR1cm47Ci0KKyNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CiAgICAgaWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VNb3Rp
b25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRF
dmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwogICAgIGlmIChEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+c3VzcGVuZEV2ZW50c0ZvckFsbExp
c3RlbmVycyhkb21XaW5kb3coKSk7Ci0KKyNlbmRpZgorI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZF
TlRTKQorICAgIGlmIChEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQorICAgICAgICBjb250cm9sbGVy
LT5zdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKICNlbmRpZgogfQog
CkBAIC0yMjA5LDE1ICsyMjE3LDIyIEBAIHZvaWQgRG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9i
amVjdHMoKQogewogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlc3VtZUFjdGl2ZURPTU9i
amVjdHMoKTsKIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikgfHwgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAgICAgaWYgKCFw
YWdlKCkpCiAgICAgICAgIHJldHVybjsKLQorI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERl
dmljZU1vdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+
cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKICAgICBpZiAoRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0Zv
ckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZ
X0VWRU5UUykKKyAgICBpZiAoIXBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChEZXZp
Y2VQcm94aW1pdHlDb250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlcjo6ZnJvbShwYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5yZXN1bWVFdmVudHNGb3JB
bGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOworI2VuZGlmCiB9CiAKIFJlbmRlclZpZXcqIERvY3Vt
ZW50OjpyZW5kZXJWaWV3KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5
YWM5OTk2YTU2YjJmZGYxMzUxNDZjNThlMWQyNmY5ZGMwNmIwMjIwLi44YmYzNDQwMjJlYjc3MzBi
MzM3YWUyODVmNmNjMmFjODc1OWUwMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBA
IC0xMDYsNiArMTA2LDEwIEBACiAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisjaW5jbHVkZSAi
RGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgorI2VuZGlmCisKIHVzaW5nIHN0ZDo6bWluOwog
dXNpbmcgc3RkOjptYXg7CiAKQEAgLTE1OTQsNiArMTU5OCwxMiBAQCBib29sIERPTVdpbmRvdzo6
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0
cjxFdmVudAogICAgICAgICAgICAgY29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CiAgICAg
fQogI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgZWxzZSBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRkZXZpY2Vwcm94aW1pdHlFdmVudCkgeworICAg
ICAgICBpZiAoRGV2aWNlUHJveGltaXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKKyAgICAgICAgICAgIGNvbnRyb2xsZXIt
PmFkZExpc3RlbmVyKHRoaXMpOworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC0xNjIzLDYgKzE2MzMsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVu
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICAgICAg
ICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgorI2lm
IEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5RXZlbnQpIHsKKyAgICAgICAgaWYgKERldmlj
ZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVMaXN0ZW5l
cih0aGlzKTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTY3OSw2
ICsxNjk1LDEwIEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAg
ICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5y
ZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VW
RU5UUykKKyAgICBpZiAoRGV2aWNlUHJveGltaXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERl
dmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKKyAgICAgICAgY29udHJvbGxl
ci0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOworI2VuZGlmCiAKICAgICByZW1vdmVBbGxVbmxv
YWRFdmVudExpc3RlbmVycyh0aGlzKTsKICAgICByZW1vdmVBbGxCZWZvcmVVbmxvYWRFdmVudExp
c3RlbmVycyh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyZmRj
MDY2ZDY1YTY1NjU3YTNiZmJhMjJjNThiMDBiM2QzM2U2ZjYwLi5lZWY2NzQwMTFiMjJiNjkzYjgx
ZDA3YjdjODI3MzQ1ZjI0ZjJkOGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC05OSw2ICs5OSwxMCBAQAogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyNpbmNsdWRlICJEZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtOTkzLDYgKzk5NywyMiBAQCB2b2lkIEludGVybmFs
czo6c2V0TmV0d29ya0luZm9ybWF0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBldmVudFR5cAogI2VuZGlmCiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRQcm94aW1pdHkoRG9j
dW1lbnQqIGRvY3VtZW50LCBkb3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdl
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyAgICBEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyOjpmcm9tKGRvY3VtZW50LT5wYWdlKCkpLT5kaWRDaGFuZ2VEZXZpY2VQcm94
aW1pdHkodmFsdWUsIG1pbiwgbWF4KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsK
KyAgICBVTlVTRURfUEFSQU0obWluKTsKKyAgICBVTlVTRURfUEFSQU0obWF4KTsKKyNlbmRpZgor
fQorCiBib29sIEludGVybmFsczo6aGFzU3BlbGxpbmdNYXJrZXIoRG9jdW1lbnQqIGRvY3VtZW50
LCBpbnQgZnJvbSwgaW50IGxlbmd0aCwgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgaWYgKCFkb2N1
bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCAxNTc2NjJjM2RlNmI0ZWQxNDRhMjk5OTgzNjAzY2NlYjY0MDBhYmRlLi5jYTgzODcyOTVj
MzhiODI4YmFhZjdmZDExMzBkYWZlYmM3NDE0NjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTE4MCw2ICsxODAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5ldHdvcmtJ
bmZvcm1hdGlvbihEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgYmFu
ZHdpZHRoLCBib29sIG1ldGVyZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0UHJv
eGltaXR5KERvY3VtZW50KiwgZG91YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBF
eGNlcHRpb25Db2RlJik7CisKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVu
dCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IDYwMWU4YTc0ZjlmMTBkMjRlNDE4ZjEzODMzODZlMDU3ZjU4YTA0YmYuLmMwNGY4
YTFiYTI3MDE5NWI1MjE2Y2RkYTQ4Y2FhOGFhZThkZDdkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKQEAgLTE2Nyw2ICsxNjcsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIHZvaWQgc2V0TmV0d29ya0luZm9ybWF0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBE
T01TdHJpbmcgZXZlbnRUeXBlLCBpbiBkb3VibGUgYmFuZHdpZHRoLCBpbiBib29sZWFuIG1ldGVy
ZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVf
UFJPWElNSVRZX0VWRU5UUykgJiYgRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMKKyAgICAgICAgdm9p
ZCBzZXRQcm94aW1pdHkoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGRvdWJsZSB2YWx1ZSwgaW4g
ZG91YmxlIG1pbiwgaW4gZG91YmxlIG1heCkgcmFpc2VzIChET01FeGNlcHRpb24pOworI2VuZGlm
CisKICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJP
ZkxpdmVOb2RlcygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBs
b25nIG51bWJlck9mTGl2ZURvY3VtZW50cygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVD
VE9SXSBzZXF1ZW5jZTxTdHJpbmc+IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoaW4gRG9j
dW1lbnQgZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjOTgyNTlkMmQxYzM0NWVhYzg5MTI3YjdmMzgwYjdm
OWU3NWMxOWQuLjM1NjI4NjNjZTNhOTA4MDUxMDkzNWFiMmQ1ODFkMTRkMjM5ZTc3NTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NSBAQAorMjAxMi0wOC0wOSAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBz
YW1zdW5nLmNvbT4KKworICAgICAgICBBZGQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlciB0byBz
dXBwb3J0IFByb3hpbWl0eSBFdmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZvciBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLgor
ICAgICAgICAtIGJhc2ljIGV2ZW50IG9wZXJhdGlvbgorICAgICAgICAtIGFkZCBldmVudCBsaXN0
ZW5lcgorICAgICAgICAtIGV2ZW50IGFmdGVyIGxlYXZpbmcgdGhlIHBhZ2UKKyAgICAgICAgLSBl
dmVudCBpbiB0aGUgbXVsdGlwbGUgZnJhbWVzCisgICAgICAgIC0gcmVtb3ZlIGFuZCByZS1hZGQg
ZXZlbnQgbGlzdGVuZXJzCisKKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3Rl
bmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24uaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvZXZl
bnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94
aW1pdHkvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9Qcm94aW1pdHkvcmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvYWRk
LWxpc3RlbmVyLWZyb20tY2FsbGJhY2suanM6IEFkZGVkLgorICAgICAgICAoY2hlY2tQcm94aW1p
dHkpOgorICAgICAgICAoZmlyc3RMaXN0ZW5lcik6CisgICAgICAgIChzZWNvbmRMaXN0ZW5lcik6
CisgICAgICAgIChtYXliZUZpbmlzaFRlc3QpOgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0
eS9zY3JpcHQtdGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanM6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvbXVsdGlwbGUt
ZnJhbWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKG1haW5GcmFtZUxpc3RlbmVyKToKKyAgICAgICAg
KGNoaWxkRnJhbWVMaXN0ZW5lcik6CisgICAgICAgIChtYXliZUZpbmlzaFRlc3QpOgorICAgICAg
ICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvdXBkYXRlcy5qczogQWRkZWQuCisg
ICAgICAgIChjaGVja1Byb3hpbWl0eUV2ZW50KToKKyAgICAgICAgKHNldFByb3hpbWl0eSk6Cisg
ICAgICAgIChmaXJzdExpc3RlbmVyKToKKyAgICAgICAgKHVwZGF0ZUxpc3RlbmVyKToKKyAgICAg
ICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4
LTA3ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgdHJh
bnNsYXRlWigwKSBzaGlmdHMgZmlsZSBuYW1lIGluIGZpbGUgaW5wdXQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVy
LWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZjlhYTE0ZDY4ZGZiYTIy
ODVlMzU4MzVkMjg5YjkyYjU1ZmM4MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVy
IGZyb20gYSBjYWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAK
K1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVu
dC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMw
CitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxs
YmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZDk5ODRiMDQxNTQwMjUxZmE0MTAyZThjOWMxNmRmNzRj
ZDdjNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkv
YWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hZGQt
bGlzdGVuZXItZnJvbS1jYWxsYmFjay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1v
cGVyYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZjI3NjhjMThiYmNiZDRhZTQ2Mzdl
NTdjMzliMjU4ODE3ZGQzZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIFByb3hpbWl0eSBFdmVudC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZl
bnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTU3YmU2ZTY5
ZWNhOTY0YzdlZjQ4OTU2OTY0YWU0ODYwOGRkNDM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5odG1sCkBAIC0wLDAgKzEs
OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2Ny
aXB0LXRlc3RzL2Jhc2ljLW9wZXJhdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1p
dHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU2YmMz
OTgyNjc3N2IxODNlNGIwZmNiZWNjZTdlYzI2ZmQwZmQxZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIGZvciBhIGNyYXNoIHdoZXJlIGFuIGV2ZW50
IGlzIGZpcmVkIGFmdGVyIHRoZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRlZCBhd2F5IHdoZW4gdGhl
IG9yaWdpbmFsIHBhZ2UgaXMgaW4gdGhlIHBhZ2UgY2FjaGUuCisKK1NVQ0NFU1MKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdh
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwNTdhZWZlYjg1ZTY4YTU0MTcyN2FhZDhmN2ViZmU5YWJk
ZjZmZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkv
ZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2V2ZW50LWFm
dGVyLW5hdmlnYXRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zN2M1MTRiNTAzNzk0ZThlM2NhNjQ5MGI1NWY5ZDVk
OGE0YjNlZThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGlt
aXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMg
dXNpbmcgUHJveGltaXR5IEV2ZW50IGZyb20gbXVsdGlwbGUgZnJhbWVzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuZXZlbnQu
dmFsdWUgaXMgMzAKK1BBU1MgY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50Lm1pbiBpcyAw
CitQQVNTIGNoaWxkRnJhbWUuY29udGVudFdpbmRvdy5ldmVudC5tYXggaXMgMTAwCitQQVNTIGV2
ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAx
MDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGY3OWNhY2Y2NjI4MmMxZjM0MjEzNTZjY2Q3MTY4OGJkNWMxZWI1Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBs
ZS1mcmFtZXMuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9tdWx0aXBsZS1mcmFtZXMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUHJveGltaXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1u
YXZpZ2F0aW9uLW5ldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwYjlhMTY1NzQ3MTE0ZTU2MjBhZmVmMjY1
ZDMwZTJhYTZlNDIzNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Q
cm94aW1pdHkvcmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWwKQEAgLTAs
MCArMSwxMyBAQAorPGh0bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIFRl
c3RzIGZvciBhIGNyYXNoIHdoZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZSBwYWdlIGhh
cyBiZWVuIG5hdmlnYXRlZAorICAgIGF3YXkgd2hlbiB0aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0
aGUgcGFnZSBjYWNoZS48YnI+PGJyPgorICAgIFNVQ0NFU1MKKyAgICA8c2NyaXB0PgorICAgICAg
ICBpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRvY3VtZW50LCAzMCwgMCwgMTAwKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVz
dHMvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Q
cm94aW1pdHkvc2NyaXB0LXRlc3RzL2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQwM2Y2OWQ3Zjk0NzBiMTI4YjliNzM2ZTNiNjUzMmMyMzZmYmE1ZTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3RzL2Fk
ZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmpzCkBAIC0wLDAgKzEsNDAgQEAKK2Rlc2NyaXB0aW9u
KCdUZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBldmVudCBsaXN0ZW5lciBmcm9tIGEgY2FsbGJhY2sg
d29ya3MgYXMgZXhwZWN0ZWQuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2
YXIgbWF4ID0gMTAwOworCitmdW5jdGlvbiBjaGVja1Byb3hpbWl0eSgpIHsKKyAgICBzaG91bGRC
ZSgiZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsK
KyAgICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworfQorCit2YXIgZmlyc3RMaXN0ZW5l
ckV2ZW50cyA9IDA7CitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKCkgeworICAgIGNoZWNrUHJveGlt
aXR5KCk7CisgICAgaWYgKCsrZmlyc3RMaXN0ZW5lckV2ZW50cyA9PSAxKSB7CisgICAgICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBzZWNvbmRMaXN0
ZW5lcik7CisgICAgICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBt
aW4sIG1heCk7CisgICAgfQorICAgIGVsc2UgaWYgKGZpcnN0TGlzdGVuZXJFdmVudHMgPiAyKQor
ICAgICAgICB0ZXN0RmFpbGVkKCdUb28gbWFueSBldmVudHMgZm9yIGZpcnN0IGxpc3RlbmVyLicp
OworICAgIG1heWJlRmluaXNoVGVzdCgpOworfQorCit2YXIgc2Vjb25kTGlzdGVuZXJFdmVudHMg
PSAwOworZnVuY3Rpb24gc2Vjb25kTGlzdGVuZXIoKSB7CisgICAgY2hlY2tQcm94aW1pdHkoKTsK
KyAgICBpZiAoKytzZWNvbmRMaXN0ZW5lckV2ZW50cyA+IDEpCisgICAgICAgIHRlc3RGYWlsZWQo
J1RvbyBtYW55IGV2ZW50cyBmb3Igc2Vjb25kIGxpc3RlbmVyLicpOworICAgIG1heWJlRmluaXNo
VGVzdCgpOworfQorCitmdW5jdGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7CisgICAgaWYgKGZpcnN0
TGlzdGVuZXJFdmVudHMgPT0gMiAmJiBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9PSAxKQorICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRl
dmljZXByb3hpbWl0eScsIGZpcnN0TGlzdGVuZXIpOworaW50ZXJuYWxzLnNldFByb3hpbWl0eShk
b2N1bWVudCwgdmFsdWUsIG1pbiwgbWF4KTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMv
YmFzaWMtb3BlcmF0aW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3Njcmlw
dC10ZXN0cy9iYXNpYy1vcGVyYXRpb24uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODcxZmVjZjY5NTkxZTE1Mzg5
NGVlNjI5YTNkN2RkNmZkODFhMGY1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvYmFzaWMtb3BlcmF0aW9uLmpzCkBAIC0wLDAg
KzEsMTUgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIFByb3hp
bWl0eSBFdmVudC4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXgg
PSAxMDA7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHkn
LCBmdW5jdGlvbigpIHsKKyAgICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEw
MCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK2ludGVybmFscy5zZXRQcm94aW1pdHko
ZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0LXRlc3Rz
L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1p
dHkvc2NyaXB0LXRlc3RzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWYz
ZjAzZmM0NDFmZGIyYTJmZjZkZTg5ODNkMmIxNThlMmQ1OWU0OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvZXZlbnQtYWZ0ZXIt
bmF2aWdhdGlvbi5qcwpAQCAtMCwwICsxLDEzIEBACitkZXNjcmlwdGlvbignVGVzdHMgZm9yIGEg
Y3Jhc2ggd2hlcmUgYW4gZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2
aWdhdGVkIGF3YXkgd2hlbiB0aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4n
KTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlKCdXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleScsIDEpOworZWxzZQorICAg
IGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicp
OworCitkb2N1bWVudC5ib2R5Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmdW5jdGlvbigpIHsgfSApOwor
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1u
ZXcuaHRtbCI7Cit9CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtZnJh
bWVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy9tdWx0
aXBsZS1mcmFtZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZlYTZmNTliMzVhZTcyMThkOTMwNTU1NDU5NDEw
NjcxZDBkYTZjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hp
bWl0eS9zY3JpcHQtdGVzdHMvbXVsdGlwbGUtZnJhbWVzLmpzCkBAIC0wLDAgKzEsMzcgQEAKK2Rl
c2NyaXB0aW9uKCdUZXN0cyB1c2luZyBQcm94aW1pdHkgRXZlbnQgZnJvbSBtdWx0aXBsZSBmcmFt
ZXMuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIgbWF4ID0gMTAwOwor
Cit2YXIgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IGZhbHNlOworZnVuY3Rpb24gbWFpbkZyYW1l
TGlzdGVuZXIoKSB7CisgICAgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IHRydWU7CisgICAgc2hv
dWxkQmUoImV2ZW50LnZhbHVlIiwgIjMwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICIw
Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1heCIsICIxMDAiKTsKKyAgICBtYXliZUZpbmlzaFRl
c3QoKTsKK30KKwordmFyIGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkID0gZmFsc2U7CitmdW5jdGlv
biBjaGlsZEZyYW1lTGlzdGVuZXIoKSB7CisgICAgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSB0
cnVlOworICAgIHNob3VsZEJlKCJjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuZXZlbnQudmFsdWUi
LCAiMzAiKTsKKyAgICBzaG91bGRCZSgiY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50Lm1p
biIsICIwIik7CisgICAgc2hvdWxkQmUoImNoaWxkRnJhbWUuY29udGVudFdpbmRvdy5ldmVudC5t
YXgiLCAiMTAwIik7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG1heWJl
RmluaXNoVGVzdCgpIHsKKyAgICBpZiAoaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCAmJiBoYXNDaGls
ZEZyYW1lRXZlbnRGaXJlZCkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9Cit9CisK
K3ZhciBjaGlsZEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7Citkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGNoaWxkRnJhbWUpOworY2hpbGRGcmFtZS5jb250ZW50V2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIGNoaWxkRnJhbWVM
aXN0ZW5lcik7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5
JywgbWFpbkZyYW1lTGlzdGVuZXIpOworCitpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRvY3VtZW50
LCB2YWx1ZSwgbWluLCBtYXgpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy91cGRhdGVz
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3NjcmlwdC10ZXN0cy91cGRhdGVz
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFlZTg3NjNiOTFkOTU1MDg2YTU1MTk3YTcxODUyMTQ2N2Y0Zjc1NDEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvc2NyaXB0
LXRlc3RzL3VwZGF0ZXMuanMKQEAgLTAsMCArMSwzNiBAQAorZGVzY3JpcHRpb24oJ1Rlc3RzIHRo
YXQgdXBkYXRlcyB0byB0aGUgcHJveGltaXR5IGV2ZW50IGNhdXNlcyBuZXcgZXZlbnRzIHRvIGZp
cmUuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIgbWF4ID0gMTAwOwor
CitmdW5jdGlvbiBjaGVja1Byb3hpbWl0eUV2ZW50KCkgeworICAgIHNob3VsZEJlKCJldmVudC52
YWx1ZSIsICIzMCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiMCIpOworICAgIHNob3Vs
ZEJlKCJldmVudC5tYXgiLCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNldFByb3hpbWl0eSgpIHsK
KyAgICBpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOwor
fQorCitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKCkgeworCWNoZWNrUHJveGltaXR5RXZlbnQoKTsK
KyAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5Jywg
Zmlyc3RMaXN0ZW5lcik7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmlj
ZXByb3hpbWl0eScsIHVwZGF0ZUxpc3RlbmVyKTsKKyAgICB2YWx1ZSA9IDEwMDsKKyAgICBtaW4g
PSBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7CisgICAgbWF4ID0gTnVtYmVyLlBPU0lUSVZFX0lO
RklOSVRZOworCXNldFByb3hpbWl0eSgpOworfQorCitmdW5jdGlvbiB1cGRhdGVMaXN0ZW5lcihl
dmVudCkgeworICAgIHNob3VsZEJlKCJldmVudC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQubWluIiwgIi1JbmZpbml0eSIpOworICAgIHNob3VsZEJlKCJldmVudC5tYXgiLCAi
SW5maW5pdHkiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIGZpcnN0TGlzdGVuZXIpOworc2V0UHJveGlt
aXR5KCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBj
OWM1N2VmMzYwMTdmNDNmMDZkMDQ5MjcxNGM5ZmRlZWE0NzIxOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE1IEBACitUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIHByb3hpbWl0eSBldmVudCBj
YXVzZXMgbmV3IGV2ZW50cyB0byBmaXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBldmVu
dC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDEwMAorUEFTUyBldmVudC5taW4gaXMg
LUluZmluaXR5CitQQVNTIGV2ZW50Lm1heCBpcyBJbmZpbml0eQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Q
cm94aW1pdHkvdXBkYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyMjUyNjk2OTAwNGNiZTlhZTdhNjAx
ZTY3NjE5YjhiMTgyMGNlZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Qcm94aW1pdHkvdXBkYXRlcy5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3VwZGF0ZXMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157725</attachid>
            <date>2012-08-10 06:12:05 -0700</date>
            <delta_ts>2012-08-13 23:19:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120810221136.patch</filename>
            <type>text/plain</type>
            <size>31252</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODMzMDM3MDMzYzFmNzJh
MzZmMzRlNDc0MjU1YmUwNzQ5MTY1MThjNS4uOWVhMTAxYWQ3MTY2ZWFjMDZhMGJhNTg5MGVmZTcx
OTczZTViZDUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTA4LTEwICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQ
cm94aW1pdHlDb250cm9sbGVyIHRvIHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVjIDogaHR0cDovL3d3dy53
My5vcmcvVFIvcHJveGltaXR5LworCisgICAgICAgIEFkZCBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyIGNsYXNzIHRvIGNvbnRyb2wgYSBkZXZpY2Vwcm94aW1pdHkgZXZlbnQgZnJvbSBjbGllbnQu
CisgICAgICAgIEluIGFkZGl0aW9uLCBhZGQgc2V0UHJveGltaXR5IGZ1bmN0aW9uIGluIHRoZSBJ
bnRlcm5hbHMgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hpbWl0
eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VQcm94aW1pdHlDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlUHJveGltaXR5Q2xpZW50Ojp+RGV2aWNlUHJveGlt
aXR5Q2xpZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6On5EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNv
bnRyb2xsZXI6OnJlbW92ZUxpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hp
bWl0eUNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXNwZW5kRXZlbnRzRm9yQWxsTGlzdGVuZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50
c0ZvckFsbExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmVBdCk6CisgICAgICAgIChXZWJD
b3JlOjpwcm92aWRlRGV2aWNlUHJveGltaXR5VG8pOgorICAgICAgICAqIE1vZHVsZXMvcHJveGlt
aXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3VzcGVuZEFjdGl2ZURPTU9iamVj
dHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMp
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJl
bW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVB
bGxFdmVudExpc3RlbmVycyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQcm94aW1pdHkpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTA4LTEwICBNaWhuZWEg
T3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc10gcmVn
aW9uLW92ZXJmbG93OiBicmVhayBzdGlsbCByZW5kZXJzIHRoZSBjb250ZW50IHRoYXQgZG9lcyBu
b3QgZml0IGluIHRoZSBsYXN0IHJlZ2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDlhMGQz
NzVhZjNhZDQyOTFhZjBiMGFjYzlkNDc5M2MyNGNlMWFlYy4uOWI1Mjc4N2FmM2ViMmZkNzRjM2Iw
YjU5YTlkZWQxNDlmYzRjMjI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTg2Nyw2ICs4Njcs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBNb2R1bGVzL3Byb3RvY29saGFuZGxlci9O
YXZpZ2F0b3JSZWdpc3RlclByb3RvY29sSGFuZGxlci5jcHAKIAorICAgIE1vZHVsZXMvcHJveGlt
aXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuY3BwCiAgICAgTW9kdWxlcy9wcm94aW1pdHkv
RGV2aWNlUHJveGltaXR5RXZlbnQuY3BwCiAKICAgICBNb2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1
b3RhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2
aWNlUHJveGltaXR5Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9E
ZXZpY2VQcm94aW1pdHlDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjk0ODE1NjM3MDU1MzVmOTc0YmVl
M2IwYWQ3MjMyNjkyYWMwYTZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q2xpZW50LmgKQEAgLTAsMCArMSw0MiBAQAor
LyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBEZXZpY2VQcm94aW1pdHlDbGllbnRfaAor
I2RlZmluZSBEZXZpY2VQcm94aW1pdHlDbGllbnRfaAorCisjaWYgRU5BQkxFKFBST1hJTUlUWV9F
VkVOVFMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUGFnZTsKKworY2xhc3MgRGV2
aWNlUHJveGltaXR5Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5EZXZpY2VQcm94aW1p
dHlDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBEZXZp
Y2VQcm94aW1pdHlDb250cm9sbGVyRGVzdHJveWVkKCkgPSAwOworfTsKKwordm9pZCBwcm92aWRl
RGV2aWNlUHJveGltaXR5VG8oUGFnZSosIERldmljZVByb3hpbWl0eUNsaWVudCopOworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQUk9YSU1JVFlfRVZFTlRTCisjZW5kaWYg
Ly8gRGV2aWNlUHJveGltaXR5Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWFkMmE2NmFmYTE3ZDgyNWM0ZDcyODkwYWQ4ZTI4OWE5ODEyZDk2NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsMTI2IEBACisvKgorICogIENvcHlyaWdodCAo
QykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlci5oIgorCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisKKyNpbmNsdWRlICJEZXZp
Y2VQcm94aW1pdHlDbGllbnQuaCIKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlFdmVudC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8RGV2aWNlUHJveGltaXR5Q29udHJv
bGxlcj4gRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6Y3JlYXRlKERldmljZVByb3hpbWl0eUNs
aWVudCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlcihjbGllbnQpKTsKK30KKworRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6RGV2
aWNlUHJveGltaXR5Q29udHJvbGxlcihEZXZpY2VQcm94aW1pdHlDbGllbnQqIGNsaWVudCkKKyAg
ICA6IG1fY2xpZW50KGNsaWVudCkKK3sKKyAgICBBU1NFUlQobV9jbGllbnQpOworfQorCitEZXZp
Y2VQcm94aW1pdHlDb250cm9sbGVyOjp+RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcigpCit7Cisg
ICAgbV9jbGllbnQtPkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXJEZXN0cm95ZWQoKTsKK30KKwor
Cit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmFkZExpc3RlbmVyKERPTVdpbmRvdyog
d2luZG93KQoreworICAgIGJvb2wgaXNFbXB0eSA9IG1fbGlzdGVuZXJzLmlzRW1wdHkoKTsKKyAg
ICBtX2xpc3RlbmVycy5hZGQod2luZG93KTsKKyAgICBpZiAoaXNFbXB0eSkKKyAgICAgICAgbV9j
bGllbnQtPnN0YXJ0VXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyOjpyZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBtX2xpc3RlbmVy
cy5yZW1vdmUod2luZG93KTsKKyAgICBtX3N1c3BlbmRlZExpc3RlbmVycy5yZW1vdmUod2luZG93
KTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2NsaWVudC0+c3Rv
cFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6cmVtb3Zl
QWxsTGlzdGVuZXJzKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghbV9saXN0ZW5lcnMu
Y29udGFpbnMod2luZG93KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5lcnMucmVt
b3ZlQWxsKHdpbmRvdyk7CisgICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMucmVtb3ZlQWxsKHdpbmRv
dyk7CisgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jbGllbnQtPnN0
b3BVcGRhdGluZygpOworfQorCit2b2lkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnN1c3Bl
bmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFt
X2xpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQg
Y291bnQgPSBtX2xpc3RlbmVycy5jb3VudCh3aW5kb3cpOworICAgIHJlbW92ZUFsbExpc3RlbmVy
cyh3aW5kb3cpOworICAgIHdoaWxlIChjb3VudC0tKQorICAgICAgICBtX3N1c3BlbmRlZExpc3Rl
bmVycy5hZGQod2luZG93KTsKK30KKwordm9pZCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpy
ZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYg
KCFtX3N1c3BlbmRlZExpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpbnQgY291bnQgPSBtX3N1c3BlbmRlZExpc3RlbmVycy5jb3VudCh3aW5kb3cpOwor
ICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIHdoaWxlIChj
b3VudC0tKQorICAgICAgICBhZGRMaXN0ZW5lcih3aW5kb3cpOworfQorCit2b2lkIERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXI6OmRpZENoYW5nZURldmljZVByb3hpbWl0eShkb3VibGUgdmFsdWUs
IGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgpCit7CisgICAgUmVmUHRyPERldmljZVByb3hpbWl0eUV2
ZW50PiBldmVudCA9IERldmljZVByb3hpbWl0eUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndl
YmtpdGRldmljZXByb3hpbWl0eUV2ZW50LCB2YWx1ZSwgbWluLCBtYXgpOworICAgIFZlY3RvcjxS
ZWZQdHI8RE9NV2luZG93PiA+IGxpc3RlbmVyczsKKyAgICBjb3B5VG9WZWN0b3IobV9saXN0ZW5l
cnMsIGxpc3RlbmVycyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lcnMuc2l6
ZSgpOyArK2kpCisgICAgICAgIGxpc3RlbmVyc1tpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7Cit9
CisKK2NvbnN0IEF0b21pY1N0cmluZyYgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VwcGxl
bWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1l
LCAoIkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXIiKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisK
K2Jvb2wgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6aXNBY3RpdmVBdChQYWdlKiBwYWdlKQor
eworICAgIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyOjpmcm9tKHBhZ2UpOworICAgIGlmIChjb250cm9sbGVyKQorICAgICAg
ICByZXR1cm4gY29udHJvbGxlci0+aXNBY3RpdmUoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K3ZvaWQgcHJvdmlkZURldmljZVByb3hpbWl0eVRvKFBhZ2UqIHBhZ2UsIERldmljZVByb3hpbWl0
eUNsaWVudCogY2xpZW50KQoreworICAgIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnByb3Zp
ZGVUbyhwYWdlLCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpjcmVhdGUoY2xpZW50KSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBST1hJTUlUWV9FVkVOVFMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNv
bnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MjNjYjM2NmYxMjdiZmY1OTk0YWE5MjJiMzliYjZiOWMy
ZDA2MmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcm94aW1p
dHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcl9oCisjZGVm
aW5lIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXJfaAorCisjaWYgRU5BQkxFKFBST1hJTUlUWV9F
VkVOVFMpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGV2aWNlUHJveGltaXR5Q2xpZW50OworCitjbGFzcyBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworcHVibGljOgorICAgIH5EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyKCk7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyPiBjcmVhdGUoRGV2aWNlUHJveGltaXR5Q2xpZW50Kik7CisKKyAgICB2b2lk
IGFkZExpc3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlTGlzdGVuZXIoRE9NV2lu
ZG93Kik7CisgICAgdm9pZCByZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2luZG93Kik7CisKKyAgICB2
b2lkIHN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2luZG93Kik7CisgICAgdm9pZCBy
ZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2luZG93Kik7CisKKyAgICB2b2lkIGRpZENo
YW5nZURldmljZVByb3hpbWl0eShkb3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgp
OworICAgIGJvb2wgaXNBY3RpdmUoKSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9
CisKKyAgICBEZXZpY2VQcm94aW1pdHlDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y2xpZW50OyB9CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFt
ZSgpOworICAgIHN0YXRpYyBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKiBmcm9tKFBhZ2UqIHBh
Z2UpIHsgcmV0dXJuIHN0YXRpY19jYXN0PERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIqPihTdXBw
bGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsgfQorICAgIHN0YXRp
YyBib29sIGlzQWN0aXZlQXQoUGFnZSopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERldmlj
ZVByb3hpbWl0eUNvbnRyb2xsZXIoRGV2aWNlUHJveGltaXR5Q2xpZW50Kik7CisKKyAgICBEZXZp
Y2VQcm94aW1pdHlDbGllbnQqIG1fY2xpZW50OworCisgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNl
dDxSZWZQdHI8RE9NV2luZG93PiA+IExpc3RlbmVyc0NvdW50ZWRTZXQ7CisgICAgTGlzdGVuZXJz
Q291bnRlZFNldCBtX2xpc3RlbmVyczsKKyAgICBMaXN0ZW5lcnNDb3VudGVkU2V0IG1fc3VzcGVu
ZGVkTGlzdGVuZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
UFJPWElNSVRZX0VWRU5UUworI2VuZGlmIC8vIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNmIxM2Q4ZjEzMWEwNDZlNzU2MWE3NjViZGMyMjJm
ZWJlNDIzODI3Ny4uMTBhZmEwOTdhZTg4MTI4Y2NhZjFlYzg1OWFkM2NkYWE0MDNlZDkyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMjQsNiArMjI0LDEwIEBACiAjaW5jbHVkZSAiRE9N
U2VjdXJpdHlQb2xpY3kuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMp
CisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgorI2VuZGlmCisKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2UgV1RGOwogdXNpbmcgbmFtZXNwYWNlIFVu
aWNvZGU7CkBAIC0yMTk0LDE1ICsyMTk4LDE5IEBAIHZvaWQgRG9jdW1lbnQ6OnN1c3BlbmRBY3Rp
dmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lvbiB3aHkpCiB7
CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMod2h5
KTsKIAotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikgfHwgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCiAgICAgaWYgKCFwYWdlKCkp
CiAgICAgICAgIHJldHVybjsKLQorI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU1v
dGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+c3VzcGVu
ZEV2ZW50c0ZvckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CiAgICAgaWYgKERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
cjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5zdXNwZW5kRXZlbnRzRm9yQWxs
TGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKLQorI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9F
VkVOVFMpCisgICAgaWYgKERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xs
ZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwogI2VuZGlmCiB9
CiAKQEAgLTIyMTAsMTUgKzIyMTgsMjIgQEAgdm9pZCBEb2N1bWVudDo6cmVzdW1lQWN0aXZlRE9N
T2JqZWN0cygpCiB7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVzdW1lQWN0aXZlRE9N
T2JqZWN0cygpOwogCi0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKSB8fCBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKICAgICBpZiAo
IXBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwotCisjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQogICAgIGlmIChEZXZpY2VNb3Rpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0g
RGV2aWNlTW90aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVy
LT5yZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoZG9tV2luZG93KCkpOwogICAgIGlmIChEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRz
Rm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRvdygpKTsKICNlbmRpZgorI2lmIEVOQUJMRShQUk9YSU1J
VFlfRVZFTlRTKQorICAgIGlmICghcGFnZSgpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKERl
dmljZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlc3VtZUV2ZW50c0Zv
ckFsbExpc3RlbmVycyhkb21XaW5kb3coKSk7CisjZW5kaWYKIH0KIAogUmVuZGVyVmlldyogRG9j
dW1lbnQ6OnJlbmRlclZpZXcoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4
IDgzMDQ4OTk1MWJiNzUxNDE5YTIzMGExNWFkNzQzZDNiNGU0YjFlMWIuLjUyMTZlMjgxNjdjMDQ3
YmZmZTgzYzgyNTM1YjJjYmM0YWZhNDBjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
QEAgLTEwNiw2ICsxMDYsMTAgQEAKICNpbmNsdWRlICJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyNpbmNsdWRl
ICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCisjZW5kaWYKKwogdXNpbmcgc3RkOjptaW47
CiB1c2luZyBzdGQ6Om1heDsKIApAQCAtMTU4OCw2ICsxNTkyLDEyIEBAIGJvb2wgRE9NV2luZG93
OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVm
UHRyPEV2ZW50CiAgICAgICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlzKTsKICAg
ICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyAgICBlbHNlIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdGRldmljZXByb3hpbWl0eUV2ZW50KSB7Cisg
ICAgICAgIGlmIChEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNl
UHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQorICAgICAgICAgICAgY29udHJvbGxl
ci0+YWRkTGlzdGVuZXIodGhpcyk7CisgICAgfQorI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTE2MTcsNiArMTYyNywxMiBAQCBib29sIERPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0
ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lcgogICAgICAg
ICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CiAgICAgfQogI2VuZGlmCisj
aWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2
ZW50TmFtZXMoKS53ZWJraXRkZXZpY2Vwcm94aW1pdHlFdmVudCkgeworICAgICAgICBpZiAoRGV2
aWNlUHJveGltaXR5Q29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRy
b2xsZXI6OmZyb20ocGFnZSgpKSkKKyAgICAgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUxpc3Rl
bmVyKHRoaXMpOworICAgIH0KKyNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNjcz
LDYgKzE2ODksMTAgQEAgdm9pZCBET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkK
ICAgICBpZiAoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCiAgICAgICAgIGNvbnRyb2xsZXIt
PnJlbW92ZUFsbExpc3RlbmVycyh0aGlzKTsKICNlbmRpZgorI2lmIEVOQUJMRShQUk9YSU1JVFlf
RVZFTlRTKQorICAgIGlmIChEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKiBjb250cm9sbGVyID0g
RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQorICAgICAgICBjb250cm9s
bGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CisjZW5kaWYKIAogICAgIHJlbW92ZUFsbFVu
bG9hZEV2ZW50TGlzdGVuZXJzKHRoaXMpOwogICAgIHJlbW92ZUFsbEJlZm9yZVVubG9hZEV2ZW50
TGlzdGVuZXJzKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDZh
YWE3ZjE3Mjg3NTdhMWU0YmMwNGE3ZDk5MWMzM2Y2OTJlYjI3NDIuLmQ0Mzc5NWU2ZTU2ZWIzNDBm
YWIzZTVmNTA1MDQ4YjEzODQ5MGZmNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKQEAgLTk5LDYgKzk5LDEwIEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorI2luY2x1ZGUgIkRldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CkBAIC05OTMsNiArOTk3LDIyIEBAIHZvaWQgSW50ZXJu
YWxzOjpzZXROZXR3b3JrSW5mb3JtYXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJp
bmcmIGV2ZW50VHlwCiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbHM6OnNldFByb3hpbWl0eShE
b2N1bWVudCogZG9jdW1lbnQsIGRvdWJsZSB2YWx1ZSwgZG91YmxlIG1pbiwgZG91YmxlIG1heCwg
RXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBh
Z2UoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQtPnBhZ2UoKSktPmRpZENoYW5nZURldmljZVBy
b3hpbWl0eSh2YWx1ZSwgbWluLCBtYXgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odmFsdWUp
OworICAgIFVOVVNFRF9QQVJBTShtaW4pOworICAgIFVOVVNFRF9QQVJBTShtYXgpOworI2VuZGlm
Cit9CisKIGJvb2wgSW50ZXJuYWxzOjpoYXNTcGVsbGluZ01hcmtlcihEb2N1bWVudCogZG9jdW1l
bnQsIGludCBmcm9tLCBpbnQgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJikKIHsKICAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDE1NzY2MmMzZGU2YjRlZDE0NGEyOTk5ODM2MDNjY2ViNjQwMGFiZGUuLmNhODM4NzI5
NWMzOGI4MjhiYWFmN2ZkMTEzMGRhZmViYzc0MTQ2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMTgwLDYgKzE4MCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TmV0d29y
a0luZm9ybWF0aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZSBi
YW5kd2lkdGgsIGJvb2wgbWV0ZXJlZCwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdm9pZCBzZXRQ
cm94aW1pdHkoRG9jdW1lbnQqLCBkb3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgs
IEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQq
LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25zKERvY3Vt
ZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKaW5kZXggNjAxZThhNzRmOWYxMGQyNGU0MThmMTM4MzM4NmUwNTdmNThhMDRiZi4uYzA0
ZjhhMWJhMjcwMTk1YjUyMTZjZGRhNDhjYWE4YWFlOGRkN2Q2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbApAQCAtMTY3LDYgKzE2NywxMCBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgdm9pZCBzZXROZXR3b3JrSW5mb3JtYXRpb24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGlu
IERPTVN0cmluZyBldmVudFR5cGUsIGluIGRvdWJsZSBiYW5kd2lkdGgsIGluIGJvb2xlYW4gbWV0
ZXJlZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEVOQUJM
RV9QUk9YSU1JVFlfRVZFTlRTKSAmJiBFTkFCTEVfUFJPWElNSVRZX0VWRU5UUworICAgICAgICB2
b2lkIHNldFByb3hpbWl0eShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZG91YmxlIHZhbHVlLCBp
biBkb3VibGUgbWluLCBpbiBkb3VibGUgbWF4KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZW5k
aWYKKwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJl
ck9mTGl2ZU5vZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVk
IGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQ
RUNUT1JdIHNlcXVlbmNlPFN0cmluZz4gY29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cyhpbiBE
b2N1bWVudCBkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODg4NzM3ZDU3MTFkODM0ZmRjZThjNzA5N2YzNGFh
Y2U5MTFlNDA1OS4uOTYxYjI4MTIyMzFlMzBmMjkzYWJiZWY2OTI2ZDkxNGRmOWJhYmFlYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA4LTEwICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29u
QHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyIHRv
IHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIu
CisgICAgICAgIC0gYmFzaWMgZXZlbnQgb3BlcmF0aW9uCisgICAgICAgIC0gYWRkIGV2ZW50IGxp
c3RlbmVyCisgICAgICAgIC0gZXZlbnQgYWZ0ZXIgbGVhdmluZyB0aGUgcGFnZQorICAgICAgICAt
IGV2ZW50IGluIHRoZSBtdWx0aXBsZSBmcmFtZXMKKyAgICAgICAgLSByZW1vdmUgYW5kIHJlLWFk
ZCBldmVudCBsaXN0ZW5lcnMKKworICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlz
dGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdh
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9l
dmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1By
b3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1s
OiBBZGRlZC4KKwogMjAxMi0wOC0xMCAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2JlLmNv
bT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIHJlZ2lvbi1vdmVyZmxvdzogYnJlYWsgc3RpbGwg
cmVuZGVycyB0aGUgY29udGVudCB0aGF0IGRvZXMgbm90IGZpdCBpbiB0aGUgbGFzdCByZWdpb24u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVy
LWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGlt
aXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
NGY5YWExNGQ2OGRmYmEyMjg1ZTM1ODM1ZDI4OWI5MmI1NWZjODJkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxi
YWNrLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyB0aGF0IGFkZGluZyBhIG5l
dyBldmVudCBsaXN0ZW5lciBmcm9tIGEgY2FsbGJhY2sgd29ya3MgYXMgZXhwZWN0ZWQuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQQVNT
IGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1MgZXZlbnQudmFsdWUg
aXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBl
dmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMg
MTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1m
cm9tLWNhbGxiYWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxp
c3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2NiMDVhMTMxYTNlOTQwMTlm
ZGFiYTRjYTM1OTczNmZlMGIxMTgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCAr
MSw1MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oJ1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVyIGZyb20gYSBj
YWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWlu
ID0gMDsKK3ZhciBtYXggPSAxMDA7CisKK2Z1bmN0aW9uIGNoZWNrUHJveGltaXR5KCkgeworICAg
IHNob3VsZEJlKCJldmVudC52YWx1ZSIsICIzMCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4i
LCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5tYXgiLCAiMTAwIik7Cit9CisKK3ZhciBmaXJz
dExpc3RlbmVyRXZlbnRzID0gMDsKK2Z1bmN0aW9uIGZpcnN0TGlzdGVuZXIoKSB7CisgICAgY2hl
Y2tQcm94aW1pdHkoKTsKKyAgICBpZiAoKytmaXJzdExpc3RlbmVyRXZlbnRzID09IDEpIHsKKyAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIHNl
Y29uZExpc3RlbmVyKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwg
dmFsdWUsIG1pbiwgbWF4KTsKKyAgICB9CisgICAgZWxzZSBpZiAoZmlyc3RMaXN0ZW5lckV2ZW50
cyA+IDIpCisgICAgICAgIHRlc3RGYWlsZWQoJ1RvbyBtYW55IGV2ZW50cyBmb3IgZmlyc3QgbGlz
dGVuZXIuJyk7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK3ZhciBzZWNvbmRMaXN0ZW5l
ckV2ZW50cyA9IDA7CitmdW5jdGlvbiBzZWNvbmRMaXN0ZW5lcigpIHsKKyAgICBjaGVja1Byb3hp
bWl0eSgpOworICAgIGlmICgrK3NlY29uZExpc3RlbmVyRXZlbnRzID4gMSkKKyAgICAgICAgdGVz
dEZhaWxlZCgnVG9vIG1hbnkgZXZlbnRzIGZvciBzZWNvbmQgbGlzdGVuZXIuJyk7CisgICAgbWF5
YmVGaW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIG1heWJlRmluaXNoVGVzdCgpIHsKKyAgICBp
ZiAoZmlyc3RMaXN0ZW5lckV2ZW50cyA9PSAyICYmIHNlY29uZExpc3RlbmVyRXZlbnRzID09IDEp
CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
d2Via2l0ZGV2aWNlcHJveGltaXR5JywgZmlyc3RMaXN0ZW5lcik7CitpbnRlcm5hbHMuc2V0UHJv
eGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOword2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJhZjI3NjhjMThiYmNiZDRhZTQ2MzdlNTdjMzliMjU4ODE3ZGQzZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMt
b3BlcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGUgYmFzaWMg
b3BlcmF0aW9uIG9mIFByb3hpbWl0eSBFdmVudC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1Mg
ZXZlbnQubWF4IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9i
YXNpYy1vcGVyYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNp
Yy1vcGVyYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDBiZTk4MzA3Zjk5ZGU3MGY2OWZjNzBlZDZl
ZjdkMzFiNmJhMjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJv
eGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGUg
YmFzaWMgb3BlcmF0aW9uIG9mIFByb3hpbWl0eSBFdmVudC4nKTsKKwordmFyIHZhbHVlID0gMzA7
Cit2YXIgbWluID0gMDsKK3ZhciBtYXggPSAxMDA7CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmdW5jdGlvbigpIHsKKyAgICBzaG91bGRCZSgiZXZl
bnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisK
K2ludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7Cit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1u
YXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9l
dmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTZiYzM5ODI2
Nzc3YjE4M2U0YjBmY2JlY2NlN2VjMjZmZDBmZDFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4gZXZlbnQgaXMg
ZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkIGF3YXkgd2hlbiB0aGUgb3Jp
Z2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4KKworU1VDQ0VTUwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGZmYmI2Y2I4NzRiNDBiM2YzMmQzMWQ1NTZiZTE2YjMyZGRlN2My
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVu
dC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBhIGNy
YXNoIHdoZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZSBwYWdlIGhhcyBiZWVuIG5hdmln
YXRlZCBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2UgaXMgaW4gdGhlIHBhZ2UgY2FjaGUuJyk7
CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgnV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXknLCAxKTsKK2Vsc2UKKyAgICBk
ZWJ1ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsK
KworZG9jdW1lbnQuYm9keS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgZnVuY3Rpb24oKSB7IH0gKTsKKyAg
ICB3aW5kb3cubG9jYXRpb24gPSAicmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3
Lmh0bWwiOworfQorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hp
bWl0eS9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
UHJveGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdjNTE0
YjUwMzc5NGU4ZTNjYTY0OTBiNTVmOWQ1ZDhhNGIzZWU4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTUgQEAKK1Rlc3RzIHVzaW5nIFByb3hpbWl0eSBFdmVudCBmcm9tIG11bHRp
cGxlIGZyYW1lcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY2hpbGRG
cmFtZS5jb250ZW50V2luZG93LmV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGNoaWxkRnJhbWUuY29u
dGVudFdpbmRvdy5ldmVudC5taW4gaXMgMAorUEFTUyBjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cu
ZXZlbnQubWF4IGlzIDEwMAorUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4g
aXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
UHJveGltaXR5L211bHRpcGxlLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJv
eGltaXR5L211bHRpcGxlLWZyYW1lcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjNTVlNGIxMDFlMTUzNzZl
NDE5MTc0ZTEyMWEzZmNhN2YxZTVlMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0bWwKQEAgLTAsMCArMSw0NyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
J1Rlc3RzIHVzaW5nIFByb3hpbWl0eSBFdmVudCBmcm9tIG11bHRpcGxlIGZyYW1lcy4nKTsKKwor
dmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXggPSAxMDA7CisKK3ZhciBoYXNN
YWluRnJhbWVFdmVudEZpcmVkID0gZmFsc2U7CitmdW5jdGlvbiBtYWluRnJhbWVMaXN0ZW5lcigp
IHsKKyAgICBoYXNNYWluRnJhbWVFdmVudEZpcmVkID0gdHJ1ZTsKKyAgICBzaG91bGRCZSgiZXZl
bnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworICAgIG1heWJlRmluaXNoVGVzdCgpOworfQor
Cit2YXIgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIGNoaWxkRnJh
bWVMaXN0ZW5lcigpIHsKKyAgICBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9IHRydWU7CisgICAg
c2hvdWxkQmUoImNoaWxkRnJhbWUuY29udGVudFdpbmRvdy5ldmVudC52YWx1ZSIsICIzMCIpOwor
ICAgIHNob3VsZEJlKCJjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuZXZlbnQubWluIiwgIjAiKTsK
KyAgICBzaG91bGRCZSgiY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50Lm1heCIsICIxMDAi
KTsKKyAgICBtYXliZUZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gbWF5YmVGaW5pc2hUZXN0
KCkgeworICAgIGlmIChoYXNNYWluRnJhbWVFdmVudEZpcmVkICYmIGhhc0NoaWxkRnJhbWVFdmVu
dEZpcmVkKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30KKwordmFyIGNoaWxk
RnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoY2hpbGRGcmFtZSk7CitjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgY2hpbGRGcmFtZUxpc3RlbmVyKTsK
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBtYWluRnJh
bWVMaXN0ZW5lcik7CisKK2ludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBt
aW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0
eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMGI5YTE2NTc0NzExNGU1NjIwYWZlZjI2NWQzMGUyYWE2ZTQyMzU3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3Jlc291
cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzxo
dG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICBUZXN0cyBmb3IgYSBjcmFz
aCB3aGVyZSBhbiBldmVudCBpcyBmaXJlZCBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBuYXZpZ2F0
ZWQKKyAgICBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2UgaXMgaW4gdGhlIHBhZ2UgY2FjaGUu
PGJyPjxicj4KKyAgICBTVUNDRVNTCisgICAgPHNjcmlwdD4KKyAgICAgICAgaW50ZXJuYWxzLnNl
dFByb3hpbWl0eShkb2N1bWVudCwgMzAsIDAsIDEwMCk7CisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDBjOWM1N2VmMzYwMTdmNDNmMDZkMDQ5MjcxNGM5ZmRlZWE0NzIxOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIHByb3hpbWl0
eSBldmVudCBjYXVzZXMgbmV3IGV2ZW50cyB0byBmaXJlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAor
UEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDEwMAorUEFTUyBldmVu
dC5taW4gaXMgLUluZmluaXR5CitQQVNTIGV2ZW50Lm1heCBpcyBJbmZpbml0eQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkYzk2ZWYyODRmYTM4
NjlhYWQ4ODIzNmFiNDUzMzA4OTI3YTVkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0
cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIHByb3hpbWl0eSBldmVudCBjYXVzZXMgbmV3IGV2ZW50cyB0
byBmaXJlLicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBtaW4gPSAwOwordmFyIG1heCA9IDEw
MDsKKworZnVuY3Rpb24gY2hlY2tQcm94aW1pdHlFdmVudCgpIHsKKyAgICBzaG91bGRCZSgiZXZl
bnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzZXRQcm94aW1pdHko
KSB7CisgICAgaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgdmFsdWUsIG1pbiwgbWF4
KTsKK30KKworZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcigpIHsKKwljaGVja1Byb3hpbWl0eUV2ZW50
KCk7CisgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0
eScsIGZpcnN0TGlzdGVuZXIpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRk
ZXZpY2Vwcm94aW1pdHknLCB1cGRhdGVMaXN0ZW5lcik7CisgICAgdmFsdWUgPSAxMDA7CisgICAg
bWluID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOworICAgIG1heCA9IE51bWJlci5QT1NJVElW
RV9JTkZJTklUWTsKKwlzZXRQcm94aW1pdHkoKTsKK30KKworZnVuY3Rpb24gdXBkYXRlTGlzdGVu
ZXIoZXZlbnQpIHsKKyAgICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAiMTAwIik7CisgICAgc2hv
dWxkQmUoImV2ZW50Lm1pbiIsICItSW5maW5pdHkiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWF4
IiwgIkluZmluaXR5Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmaXJzdExpc3RlbmVyKTsKK3NldFBy
b3hpbWl0eSgpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>158229</attachid>
            <date>2012-08-13 23:19:32 -0700</date>
            <delta_ts>2012-08-19 22:03:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120814151900.patch</filename>
            <type>text/plain</type>
            <size>34225</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQzMDMyYTk1ZDhiZjNi
Y2RhMTcwYTA0MDJiNmIwMGIyZTZkOGRhNy4uNTA5YmJiYmVjMWFhZjJlZDMxOTQxZGNmMTgzZTA4
ZmE1NDQ0YzQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA4LTEzICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQ
cm94aW1pdHlDb250cm9sbGVyIHRvIHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVjIDogaHR0cDovL3d3dy53
My5vcmcvVFIvcHJveGltaXR5LworCisgICAgICAgIEFkZCBEZXZpY2VDb250cm9sbGVyIHRvIHN1
cHBvcnQgZGV2aWNlIHJlbGF0ZWQgZXZlbnQgY29udHJvbCwKKyAgICAgICAgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlciB0byBzdXBwb3J0IGEgZGV2aWNlcHJveGltaXR5IGV2ZW50IGZyb20gY2xp
ZW50LgorICAgICAgICBJbiBhZGRpdGlvbiwgYWRkIHNldFByb3hpbWl0eSgpIHRvIHRoZSBJbnRl
cm5hbHMgY2xhc3MgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hp
bWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VQcm94aW1pdHlDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
UHJveGltaXR5Q29udHJvbGxlcjo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VQcm94
aW1pdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdmlkZURldmljZVByb3hpbWl0eVRv
KToKKyAgICAgICAgKiBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6
On5EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9EZXZpY2VDbGllbnQuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZUNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6On5EZXZpY2VDbGllbnQpOgorICAgICAgICAqIGRv
bS9EZXZpY2VDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6dGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VDb250cm9sbGVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyk6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMp
OgorICAgICAgICAqIGRvbS9EZXZpY2VDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChEZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6On5EZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6OmNsaWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphZGRF
dmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRM
aXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlz
dGVuZXJzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFByb3hpbWl0eSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDgtMTAgIEtpbnVrbyBZYXN1ZGEgIDxr
aW51a29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFN1cHBvcnQgY3JlYXRpbmcgRmlsZSBvYmpl
Y3QgZnJvbSBGaWxlU3lzdGVtIFVSTCBmb3IgZmlsZXMgaW4gRmlsZVN5c3RlbSBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggOWI5YzBhNmZiMWM1MDE1NzI0ZWEzMTZlNTMzMGM5YzNjNDQxM2Ux
Yy4uOWUzMTE3NDg5NWEzYTM3NDFmZDY3NzU1ZTllYjgxNzk5NzY2NWZjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTg2Nyw2ICs4NjcsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBN
b2R1bGVzL3Byb3RvY29saGFuZGxlci9OYXZpZ2F0b3JSZWdpc3RlclByb3RvY29sSGFuZGxlci5j
cHAKIAorICAgIE1vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuY3Bw
CiAgICAgTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5RXZlbnQuY3BwCiAKICAgICBN
b2R1bGVzL3F1b3RhL0RPTVdpbmRvd1F1b3RhLmNwcApAQCAtMTA5NCw2ICsxMDk1LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcAogICAgIGRv
bS9EYXRhVHJhbnNmZXJJdGVtLmNwcAogICAgIGRvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2Vy
LmNwcAorICAgIGRvbS9EZXZpY2VDb250cm9sbGVyLmNwcAogICAgIGRvbS9EZXZpY2VNb3Rpb25D
b250cm9sbGVyLmNwcAogICAgIGRvbS9EZXZpY2VNb3Rpb25EYXRhLmNwcAogICAgIGRvbS9EZXZp
Y2VNb3Rpb25FdmVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJv
eGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmU1OTBjNTJjNjA1NzA0OGQ0NjQzNDEzZTI3ZjM4N2I1ZWVhMTM2OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRy
b2xsZXIuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCisK
KyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKworI2luY2x1ZGUgIkRldmljZUNsaWVudC5o
IgorI2luY2x1ZGUgIkRldmljZVByb3hpbWl0eUV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGFzc093blB0cjxEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyPiBEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFnZSwgRGV2aWNlQ2xpZW50KiBjbGllbnQpCit7
CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKHBhZ2Us
IGNsaWVudCkpOworfQorCitEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyKFBhZ2UqIHBhZ2UsIERldmljZUNsaWVudCogY2xpZW50KQorICAgIDogRGV2
aWNlQ29udHJvbGxlcihwYWdlLCBjbGllbnQpCit7Cit9CisKK3ZvaWQgRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KGRvdWJsZSB2YWx1ZSwgZG91Ymxl
IG1pbiwgZG91YmxlIG1heCkKK3sKKyAgICBSZWZQdHI8RGV2aWNlUHJveGltaXR5RXZlbnQ+IGV2
ZW50ID0gRGV2aWNlUHJveGltaXR5RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0ZGV2
aWNlcHJveGltaXR5RXZlbnQsIHZhbHVlLCBtaW4sIG1heCk7CisgICAgZGlkQ2hhbmdlRGV2aWNl
RXZlbnQoZXZlbnQpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIERldmljZVByb3hpbWl0eUNv
bnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbmFtZSwgKCJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyIikpOworICAgIHJl
dHVybiBuYW1lOworfQorCit2b2lkIHByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhQYWdlKiBwYWdl
LCBEZXZpY2VDbGllbnQqIGNsaWVudCkKK3sKKyAgICBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
Ojpwcm92aWRlVG8ocGFnZSwgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VwcGxlbWVudE5h
bWUoKSwgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6Y3JlYXRlKHBhZ2UsIGNsaWVudCkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQUk9YSU1JVFlfRVZFTlRT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94
aW1pdHlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZp
Y2VQcm94aW1pdHlDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ4N2VjMTMzMmNiZGFiM2NjNDM2
ZWZjZDQ0ZGM1NTkxMDI3MTIyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZVByb3hpbWl0eUNvbnRy
b2xsZXJfaAorI2RlZmluZSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKKworI2lmIEVOQUJM
RShQUk9YSU1JVFlfRVZFTlRTKQorCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIgOiBw
dWJsaWMgRGV2aWNlQ29udHJvbGxlciB7CitwdWJsaWM6CisgICAgfkRldmljZVByb3hpbWl0eUNv
bnRyb2xsZXIoKSB7IH07CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxEZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyPiBjcmVhdGUoUGFnZSosIERldmljZUNsaWVudCopOworCisgICAgdm9pZCBkaWRD
aGFuZ2VEZXZpY2VQcm94aW1pdHkoZG91YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4
KTsKKworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7Cisg
ICAgc3RhdGljIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcio+KFN1cHBsZW1lbnQ8
UGFnZT46OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CisKK3ByaXZhdGU6CisgICAg
RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcihQYWdlKiwgRGV2aWNlQ2xpZW50Kik7Cit9OworCit2
b2lkIHByb3ZpZGVEZXZpY2VQcm94aW1pdHlUbyhQYWdlKiwgRGV2aWNlQ2xpZW50Kik7CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBST1hJTUlUWV9FVkVOVFMKKyNlbmRp
ZiAvLyBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yOGRhYjNhZDkxM2JmMGNiY2YwY2UxNDVkN2RkNjI1MGQ4MGRhOWRiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNsaWVudC5oCkBAIC0w
LDAgKzEsMzcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ2xpZW50
X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBFdmVudDsKKworY2xhc3MgRGV2aWNlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5E
ZXZpY2VDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOworICAgIHZpcnR1YWwgRXZlbnQq
IGxhc3RFdmVudCgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIERldmljZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNl
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzUzNGQ0NTdlZGRjM2VlYmJiN2NlODQ4ZmMwMTc4YmJmZjRjYzQ3YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDb250cm9sbGVyLmNwcApA
QCAtMCwwICsxLDExNSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkRldmljZUNs
aWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGV2
aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJvbGxlcihQYWdlKiBwYWdlLCBEZXZpY2VDbGllbnQq
IGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGFnZShwYWdlKQorICAg
ICwgbV90aW1lcih0aGlzLCAmRGV2aWNlQ29udHJvbGxlcjo6dGltZXJGaXJlZCkKK3sKKyAgICBB
U1NFUlQobV9jbGllbnQpOworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OnRpbWVyRmlyZWQo
VGltZXI8RGV2aWNlQ29udHJvbGxlcj4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGlt
ZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKKyAgICBBU1NFUlQobV9jbGllbnQtPmxhc3RFdmVudCgp
KTsKKyAgICBtX3RpbWVyLnN0b3AoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RE9NV2luZG93PiA+
IGxpc3RlbmVyc1ZlY3RvcjsKKyAgICBjb3B5VG9WZWN0b3IobV9uZXdMaXN0ZW5lcnMsIGxpc3Rl
bmVyc1ZlY3Rvcik7CisgICAgbV9uZXdMaXN0ZW5lcnMuY2xlYXIoKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxpc3RlbmVyc1ZlY3Rvci5zaXplKCk7ICsraSkKKyAgICAgICAgbGlzdGVu
ZXJzVmVjdG9yW2ldLT5kaXNwYXRjaEV2ZW50KG1fY2xpZW50LT5sYXN0RXZlbnQoKSk7Cit9CisK
K3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6YWRkTGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7
CisgICAgaWYgKG1fY2xpZW50LT5sYXN0RXZlbnQoKSkgeworICAgICAgICBtX25ld0xpc3RlbmVy
cy5hZGQod2luZG93KTsKKyAgICAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAg
ICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9CisKKyAgICBib29sIGlzRW1wdHkg
PSBtX2xpc3RlbmVycy5pc0VtcHR5KCk7CisgICAgbV9saXN0ZW5lcnMuYWRkKHdpbmRvdyk7Cisg
ICAgaWYgKGlzRW1wdHkpCisgICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0aW5nKCk7Cit9CisK
K3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlTGlzdGVuZXIoRE9NV2luZG93KiB3aW5kb3cp
Cit7CisgICAgbV9saXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgbV9zdXNwZW5kZWRMaXN0
ZW5lcnMucmVtb3ZlKHdpbmRvdyk7CisgICAgbV9uZXdMaXN0ZW5lcnMucmVtb3ZlKHdpbmRvdyk7
CisgICAgaWYgKG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jbGllbnQtPnN0b3BV
cGRhdGluZygpOworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVy
cyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRhaW5zKHdp
bmRvdykpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5k
b3cpOworICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIG1f
bmV3TGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5
KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VD
b250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkK
K3sKKyAgICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnM7CisgICAgUmVmUHRy
PEV2ZW50PiBycEV2ZW50ID0gZXZlbnQ7CisgICAgY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzLCBs
aXN0ZW5lcnMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzLnNpemUoKTsg
KytpKQorICAgICAgICBsaXN0ZW5lcnNbaV0tPmRpc3BhdGNoRXZlbnQocnBFdmVudCk7Cit9CisK
K3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyhET01X
aW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRhaW5zKHdpbmRvdykp
CisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9IG1fbGlzdGVuZXJzLmNvdW50KHdp
bmRvdyk7CisgICAgcmVtb3ZlQWxsTGlzdGVuZXJzKHdpbmRvdyk7CisgICAgd2hpbGUgKGNvdW50
LS0pCisgICAgICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLmFkZCh3aW5kb3cpOworfQorCit2b2lk
IERldmljZUNvbnRyb2xsZXI6OnJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICBpZiAoIW1fc3VzcGVuZGVkTGlzdGVuZXJzLmNvbnRhaW5zKHdpbmRv
dykpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBjb3VudCA9IG1fc3VzcGVuZGVkTGlzdGVu
ZXJzLmNvdW50KHdpbmRvdyk7CisgICAgbV9zdXNwZW5kZWRMaXN0ZW5lcnMucmVtb3ZlQWxsKHdp
bmRvdyk7CisgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgIGFkZExpc3RlbmVyKHdpbmRvdyk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJv
bGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMxZTFhZmViYTAzM2ZhNWI2ZjE5OTIxNGRiMThjMDg3ZmRlNTli
ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2
aWNlQ29udHJvbGxlcl9oCisjZGVmaW5lIERldmljZUNvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAi
RE9NV2luZG93LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgRGV2aWNlQ2xpZW50OworCitjbGFzcyBEZXZpY2VDb250cm9sbGVyIDogcHVibGljIFN1cHBs
ZW1lbnQ8UGFnZT4geworcHVibGljOgorICAgIERldmljZUNvbnRyb2xsZXIoUGFnZSosIERldmlj
ZUNsaWVudCopOworICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9OworCisgICAgdm9pZCBhZGRM
aXN0ZW5lcihET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKERPTVdpbmRvdyop
OworICAgIHZvaWQgcmVtb3ZlQWxsTGlzdGVuZXJzKERPTVdpbmRvdyopOworCisgICAgdm9pZCBk
aWRDaGFuZ2VEZXZpY2VFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CisgICAgRGV2aWNlQ2xpZW50
KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCBzdXNwZW5k
RXZlbnRzRm9yQWxsTGlzdGVuZXJzKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVzdW1lRXZlbnRz
Rm9yQWxsTGlzdGVuZXJzKERPTVdpbmRvdyopOworCitwcml2YXRlOgorICAgIHZvaWQgdGltZXJG
aXJlZChUaW1lcjxEZXZpY2VDb250cm9sbGVyPiopOworCisgICAgRGV2aWNlQ2xpZW50KiBtX2Ns
aWVudDsKKyAgICBQYWdlKiBtX3BhZ2U7CisgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxSZWZQ
dHI8RE9NV2luZG93PiA+IExpc3RlbmVyc0NvdW50ZWRTZXQ7CisgICAgTGlzdGVuZXJzQ291bnRl
ZFNldCBtX2xpc3RlbmVyczsKKyAgICBMaXN0ZW5lcnNDb3VudGVkU2V0IG1fc3VzcGVuZGVkTGlz
dGVuZXJzOworICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8RE9NV2luZG93PiA+IExpc3RlbmVy
c1NldDsKKyAgICBMaXN0ZW5lcnNTZXQgbV9uZXdMaXN0ZW5lcnM7CisgICAgVGltZXI8RGV2aWNl
Q29udHJvbGxlcj4gbV90aW1lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIERldmljZUNvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjQz
MDRjNjA3NGYxNzM4ZmRkOTIwZGI1MWFhMjNmMGFjMDU5NDQ3Ny4uYmVkYjZiODY3OWZlNjhhODAw
NDQ3ODFhMjc0MTM3ZjJjNWZkYTI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01Miw2
ICs1Miw3IEBACiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEZXZpY2VN
b3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
LmgiCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMjIwNCw2ICsyMjA1LDEzIEBAIHZvaWQgRG9jdW1l
bnQ6OnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3Vz
cGVuc2lvbiB3aHkpCiAgICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0
ZW5lcnMoZG9tV2luZG93KCkpOwogCiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5U
UykKKyAgICBpZiAoIXBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKERldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
Ojpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxM
aXN0ZW5lcnMoZG9tV2luZG93KCkpOworI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlc3Vt
ZUFjdGl2ZURPTU9iamVjdHMoKQpAQCAtMjIxOSw2ICsyMjI3LDEzIEBAIHZvaWQgRG9jdW1lbnQ6
OnJlc3VtZUFjdGl2ZURPTU9iamVjdHMoKQogICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFn
ZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRv
bVdpbmRvdygpKTsKICNlbmRpZgorI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGlm
ICghcGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoRGV2aWNlUHJveGltaXR5Q29u
dHJvbGxlciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20ocGFn
ZSgpKSkKKyAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRv
bVdpbmRvdygpKTsKKyNlbmRpZgogfQogCiBSZW5kZXJWaWV3KiBEb2N1bWVudDo6cmVuZGVyVmll
dygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNDQ4MTUwMzYzM2Q1NDQ3
MzU1NGZiZjdlYzBmZTg2YzkwMmQ5N2Q2Zi4uYzE1ZjE5MDJkN2M5YzE2MGJkYzBhYjQ5NTVhZDA2
NGE1OTdmYTQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTA2LDYgKzEwNiwx
MCBAQAogI2luY2x1ZGUgIlJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorI2luY2x1ZGUgIkRldmljZVByb3hpbWl0
eUNvbnRyb2xsZXIuaCIKKyNlbmRpZgorCiB1c2luZyBzdGQ6Om1pbjsKIHVzaW5nIHN0ZDo6bWF4
OwogCkBAIC0xNTg4LDYgKzE1OTIsMTIgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVu
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQKICAgICAg
ICAgICAgIGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgorI2lm
IEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5RXZlbnQpIHsKKyAgICAgICAgaWYgKERldmlj
ZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0
aGlzKTsKKyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTYxNyw2ICsx
NjI3LDEyIEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgICAgICBjb250cm9sbGVy
LT5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElN
SVRZX0VWRU5UUykKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtp
dGRldmljZXByb3hpbWl0eUV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VQcm94aW1pdHlDb250
cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShwYWdl
KCkpKQorICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAg
fQorI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2NzMsNiArMTY4OSwxMCBAQCB2
b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIGlmIChEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVu
ZXJzKHRoaXMpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgaWYg
KERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbExp
c3RlbmVycyh0aGlzKTsKKyNlbmRpZgogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5l
cnModGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNmFhYTdmMTcyODc1N2ExZTRi
YzA0YTdkOTkxYzMzZjY5MmViMjc0Mi4uZDQzNzk1ZTZlNTZlYjM0MGZhYjNlNWY1MDUwNDhiMTM4
NDkwZmY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTksNiArOTks
MTAgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNlbmRpZgogCisjaWYgRU5B
QkxFKFBST1hJTUlUWV9FVkVOVFMpCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
ci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKQEAgLTk5Myw2ICs5OTcsMjIgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE5ldHdvcmtJ
bmZvcm1hdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZXZlbnRUeXAKICNl
bmRpZgogfQogCit2b2lkIEludGVybmFsczo6c2V0UHJveGltaXR5KERvY3VtZW50KiBkb2N1bWVu
dCwgZG91YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYg
RU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6
ZnJvbShkb2N1bWVudC0+cGFnZSgpKS0+ZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KHZhbHVlLCBt
aW4sIG1heCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BB
UkFNKG1pbik7CisgICAgVU5VU0VEX1BBUkFNKG1heCk7CisjZW5kaWYKK30KKwogYm9vbCBJbnRl
cm5hbHM6Omhhc1NwZWxsaW5nTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGlu
dCBsZW5ndGgsIEV4Y2VwdGlvbkNvZGUmKQogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3Vt
ZW50LT5mcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMTU3NjYyYzNk
ZTZiNGVkMTQ0YTI5OTk4MzYwM2NjZWI2NDAwYWJkZS4uY2E4Mzg3Mjk1YzM4YjgyOGJhYWY3ZmQx
MTMwZGFmZWJjNzQxNDYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xODAs
NiArMTgwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXROZXR3b3JrSW5mb3JtYXRpb24oRG9j
dW1lbnQqLCBjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGJhbmR3aWR0aCwgYm9vbCBt
ZXRlcmVkLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2b2lkIHNldFByb3hpbWl0eShEb2N1bWVu
dCosIGRvdWJsZSB2YWx1ZSwgZG91YmxlIG1pbiwgZG91YmxlIG1heCwgRXhjZXB0aW9uQ29kZSYp
OworCiAgICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUm
KSBjb25zdDsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoRG9jdW1lbnQqLCBFeGNlcHRpb25D
b2RlJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2MDFl
OGE3NGY5ZjEwZDI0ZTQxOGYxMzgzMzg2ZTA1N2Y1OGEwNGJmLi5jMDRmOGExYmEyNzAxOTViNTIx
NmNkZGE0OGNhYThhYWU4ZGQ3ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CkBAIC0xNjcsNiArMTY3LDEwIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldE5l
dHdvcmtJbmZvcm1hdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIGV2ZW50
VHlwZSwgaW4gZG91YmxlIGJhbmR3aWR0aCwgaW4gYm9vbGVhbiBtZXRlcmVkKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoRU5BQkxFX1BST1hJTUlUWV9FVkVO
VFMpICYmIEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTCisgICAgICAgIHZvaWQgc2V0UHJveGltaXR5
KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBkb3VibGUgdmFsdWUsIGluIGRvdWJsZSBtaW4sIGlu
IGRvdWJsZSBtYXgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgorCiAgICAgICAgIFtD
b25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsK
ICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxp
dmVEb2N1bWVudHMoKTsKICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gc2VxdWVuY2U8
U3RyaW5nPiBjb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzKGluIERvY3VtZW50IGRvY3VtZW50
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA2NDcyY2NkZTBmNTYwYzRhMTdmNjcyYWNhZTNmMWQ5MDU3MGEwOTAyLi4zNDlm
NDAwZGEzZDFkNWNmNWI0OWNlMDNlYzQ2YzZkYjYwZjdhNTU5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMDgtMTMgIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CisK
KyAgICAgICAgQWRkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIgdG8gc3VwcG9ydCBQcm94aW1p
dHkgRXZlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MzU5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCB0ZXN0cyBmb3IgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci4KKyAgICAgICAgLSBiYXNp
YyBldmVudCBvcGVyYXRpb24KKyAgICAgICAgLSBhZGQgZXZlbnQgbGlzdGVuZXIKKyAgICAgICAg
LSBldmVudCBhZnRlciBsZWF2aW5nIHRoZSBwYWdlCisgICAgICAgIC0gZXZlbnQgaW4gdGhlIG11
bHRpcGxlIGZyYW1lcworICAgICAgICAtIHJlbW92ZSBhbmQgcmUtYWRkIGV2ZW50IGxpc3RlbmVy
cworCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxi
YWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2Fk
ZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmln
YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxl
LWZyYW1lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0
eS9tdWx0aXBsZS1mcmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGlt
aXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWw6IEFkZGVkLgorCiAyMDEy
LTA4LTEyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI1MzkyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJv
bS1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRmOWFhMTRkNjhkZmJhMjI4NWUz
NTgzNWQyODliOTJiNTVmYzgyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxOCBAQAorVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQgbGlzdGVuZXIgZnJv
bSBhIGNhbGxiYWNrIHdvcmtzIGFzIGV4cGVjdGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFT
UyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1p
biBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BB
U1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNr
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmNjYjA1YTEzMWEzZTk0MDE5ZmRhYmE0Y2EzNTk3MzZmZTBiMTE4
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQt
bGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0
IGFkZGluZyBhIG5ldyBldmVudCBsaXN0ZW5lciBmcm9tIGEgY2FsbGJhY2sgd29ya3MgYXMgZXhw
ZWN0ZWQuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIgbWF4ID0gMTAw
OworCitmdW5jdGlvbiBjaGVja1Byb3hpbWl0eSgpIHsKKyAgICBzaG91bGRCZSgiZXZlbnQudmFs
dWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQubWF4IiwgIjEwMCIpOworfQorCit2YXIgZmlyc3RMaXN0ZW5lckV2ZW50cyA9IDA7
CitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKCkgeworICAgIGNoZWNrUHJveGltaXR5KCk7CisgICAg
aWYgKCsrZmlyc3RMaXN0ZW5lckV2ZW50cyA9PSAxKSB7CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBzZWNvbmRMaXN0ZW5lcik7CisgICAg
ICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7Cisg
ICAgfQorICAgIGVsc2UgaWYgKGZpcnN0TGlzdGVuZXJFdmVudHMgPiAyKQorICAgICAgICB0ZXN0
RmFpbGVkKCdUb28gbWFueSBldmVudHMgZm9yIGZpcnN0IGxpc3RlbmVyLicpOworICAgIG1heWJl
RmluaXNoVGVzdCgpOworfQorCit2YXIgc2Vjb25kTGlzdGVuZXJFdmVudHMgPSAwOworZnVuY3Rp
b24gc2Vjb25kTGlzdGVuZXIoKSB7CisgICAgY2hlY2tQcm94aW1pdHkoKTsKKyAgICBpZiAoKytz
ZWNvbmRMaXN0ZW5lckV2ZW50cyA+IDEpCisgICAgICAgIHRlc3RGYWlsZWQoJ1RvbyBtYW55IGV2
ZW50cyBmb3Igc2Vjb25kIGxpc3RlbmVyLicpOworICAgIG1heWJlRmluaXNoVGVzdCgpOworfQor
CitmdW5jdGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7CisgICAgaWYgKGZpcnN0TGlzdGVuZXJFdmVu
dHMgPT0gMiAmJiBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9PSAxKQorICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0
eScsIGZpcnN0TGlzdGVuZXIpOworaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgdmFs
dWUsIG1pbiwgbWF4KTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJv
eGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWYy
NzY4YzE4YmJjYmQ0YWU0NjM3ZTU3YzM5YjI1ODgxN2RkM2UxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhlIGJhc2ljIG9wZXJhdGlvbiBvZiBQcm94aW1p
dHkgRXZlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV2ZW50LnZh
bHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTQwYmU5ODMwN2Y5OWRlNzBmNjlmYzcwZWQ2ZWY3ZDMxYjZiYTI5MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRp
b24uaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhlIGJhc2ljIG9wZXJhdGlvbiBvZiBQ
cm94aW1pdHkgRXZlbnQuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIg
bWF4ID0gMTAwOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGlt
aXR5JywgZnVuY3Rpb24oKSB7CisgICAgc2hvdWxkQmUoImV2ZW50LnZhbHVlIiwgIjMwIik7Cisg
ICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICIwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1heCIs
ICIxMDAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCitpbnRlcm5hbHMuc2V0UHJveGlt
aXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU2YmMzOTgyNjc3N2IxODNlNGIwZmNiZWNjZTdl
YzI2ZmQwZmQxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hp
bWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
K1Rlc3RzIGZvciBhIGNyYXNoIHdoZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZSBwYWdl
IGhhcyBiZWVuIG5hdmlnYXRlZCBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2UgaXMgaW4gdGhl
IHBhZ2UgY2FjaGUuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhm
ZmJiNmNiODc0YjQwYjNmMzJkMzFkNTU2YmUxNmIzMmRkZTdjMjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyBmb3IgYSBjcmFzaCB3aGVyZSBhbiBldmVudCBp
cyBmaXJlZCBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBuYXZpZ2F0ZWQgYXdheSB3aGVuIHRoZSBv
cmlnaW5hbCBwYWdlIGlzIGluIHRoZSBwYWdlIGNhY2hlLicpOworCitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoJ1dlYktpdFVzZXNQYWdl
Q2FjaGVQcmVmZXJlbmNlS2V5JywgMSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMgdGVzdCBjYW4g
bm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK2RvY3VtZW50LmJvZHkub25s
b2FkID0gZnVuY3Rpb24oKSB7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRl
dmljZXByb3hpbWl0eScsIGZ1bmN0aW9uKCkgeyB9ICk7CisgICAgd2luZG93LmxvY2F0aW9uID0g
InJlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sIjsKK30KKword2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1m
cmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZjU5MDZlMjM2ZWM4NDM0NWE4NWM3NTRj
MjIwNTEzNTY5YTYyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Q
cm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitU
ZXN0cyB1c2luZyBQcm94aW1pdHkgRXZlbnQgZnJvbSBtdWx0aXBsZSBmcmFtZXMuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdC52YWx1ZSBpcyAzMAorUEFTUyBy
ZXN1bHQubWluIGlzIDAKK1BBU1MgcmVzdWx0Lm1heCBpcyAxMDAKK1BBU1MgcmVzdWx0LnZhbHVl
IGlzIDMwCitQQVNTIHJlc3VsdC5taW4gaXMgMAorUEFTUyByZXN1bHQubWF4IGlzIDEwMAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZGRiYzdlMDhjMTFhMjcwNGU0ZjUwOWUwMTNhMGExZWI5OGQ3ODEyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1l
cy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB1c2luZyBQcm94aW1pdHkgRXZlbnQgZnJv
bSBtdWx0aXBsZSBmcmFtZXMuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2
YXIgbWF4ID0gMTAwOwordmFyIHJlc3VsdDsKKworZnVuY3Rpb24gY2hlY2tQcm94aW1pdHlFdmVu
dChwcm94aW1pdHlWYWx1ZSwgcHJveGltaXR5TWluLCBwcm94aW1pdHlNYXgpIHsKKyAgICBzaG91
bGRCZSgicmVzdWx0LnZhbHVlIiwgIjMwIik7CisgICAgc2hvdWxkQmUoInJlc3VsdC5taW4iLCAi
MCIpOworICAgIHNob3VsZEJlKCJyZXN1bHQubWF4IiwgIjEwMCIpOworfQorCit2YXIgaGFzTWFp
bkZyYW1lRXZlbnRGaXJlZCA9IGZhbHNlOworZnVuY3Rpb24gbWFpbkZyYW1lTGlzdGVuZXIoKSB7
CisgICAgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IHRydWU7CisgICAgcmVzdWx0ID0gZXZlbnQ7
CisgICAgY2hlY2tQcm94aW1pdHlFdmVudCgpOworICAgIG1heWJlRmluaXNoVGVzdCgpOworfQor
Cit2YXIgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIGNoaWxkRnJh
bWVMaXN0ZW5lcigpIHsKKyAgICBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9IHRydWU7CisgICAg
cmVzdWx0ID0gY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50OworICAgIGNoZWNrUHJveGlt
aXR5RXZlbnQoKTsKKyAgICBtYXliZUZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gbWF5YmVG
aW5pc2hUZXN0KCkgeworICAgIGlmIChoYXNNYWluRnJhbWVFdmVudEZpcmVkICYmIGhhc0NoaWxk
RnJhbWVFdmVudEZpcmVkKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30KKwor
dmFyIGNoaWxkRnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2hpbGRGcmFtZSk7CitjaGlsZEZyYW1lLmNvbnRlbnRXaW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgY2hpbGRGcmFtZUxp
c3RlbmVyKTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHkn
LCBtYWluRnJhbWVMaXN0ZW5lcik7CisKK2ludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQs
IHZhbHVlLCBtaW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdh
dGlvbi1uZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGI5YTE2NTc0NzExNGU1NjIwYWZlZjI2NWQzMGUy
YWE2ZTQyMzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGlt
aXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sCkBAIC0wLDAgKzEs
MTMgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICBUZXN0cyBm
b3IgYSBjcmFzaCB3aGVyZSBhbiBldmVudCBpcyBmaXJlZCBhZnRlciB0aGUgcGFnZSBoYXMgYmVl
biBuYXZpZ2F0ZWQKKyAgICBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2UgaXMgaW4gdGhlIHBh
Z2UgY2FjaGUuPGJyPjxicj4KKyAgICBTVUNDRVNTCisgICAgPHNjcmlwdD4KKyAgICAgICAgaW50
ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgMzAsIDAsIDEwMCk7CisgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDBjOWM1N2VmMzYwMTdmNDNmMDZkMDQ5MjcxNGM5ZmRlZWE0NzIxOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhl
IHByb3hpbWl0eSBldmVudCBjYXVzZXMgbmV3IGV2ZW50cyB0byBmaXJlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5t
aW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDEwMAor
UEFTUyBldmVudC5taW4gaXMgLUluZmluaXR5CitQQVNTIGV2ZW50Lm1heCBpcyBJbmZpbml0eQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkYzk2
ZWYyODRmYTM4NjlhYWQ4ODIzNmFiNDUzMzA4OTI3YTVkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1sCkBAIC0wLDAgKzEsNDYg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIHByb3hpbWl0eSBldmVudCBjYXVzZXMgbmV3
IGV2ZW50cyB0byBmaXJlLicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBtaW4gPSAwOwordmFy
IG1heCA9IDEwMDsKKworZnVuY3Rpb24gY2hlY2tQcm94aW1pdHlFdmVudCgpIHsKKyAgICBzaG91
bGRCZSgiZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAi
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworfQorCitmdW5jdGlvbiBzZXRQ
cm94aW1pdHkoKSB7CisgICAgaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgdmFsdWUs
IG1pbiwgbWF4KTsKK30KKworZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcigpIHsKKwljaGVja1Byb3hp
bWl0eUV2ZW50KCk7CisgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmlj
ZXByb3hpbWl0eScsIGZpcnN0TGlzdGVuZXIpOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCB1cGRhdGVMaXN0ZW5lcik7CisgICAgdmFsdWUgPSAx
MDA7CisgICAgbWluID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOworICAgIG1heCA9IE51bWJl
ci5QT1NJVElWRV9JTkZJTklUWTsKKwlzZXRQcm94aW1pdHkoKTsKK30KKworZnVuY3Rpb24gdXBk
YXRlTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAiMTAwIik7
CisgICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICItSW5maW5pdHkiKTsKKyAgICBzaG91bGRCZSgi
ZXZlbnQubWF4IiwgIkluZmluaXR5Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmaXJzdExpc3RlbmVy
KTsKK3NldFByb3hpbWl0eSgpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="168295"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158275</attachid>
            <date>2012-08-14 03:23:08 -0700</date>
            <delta_ts>2012-08-17 02:15:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120814192236.patch</filename>
            <type>text/plain</type>
            <size>34688</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDg4YWU4YTNjNDUyYTYw
N2ZiMzBmMGNiMmUyNWVjOWJiNTA4OWI3Ny4uZWE1MzQyMjA4OWRmZDdlYzVkNmRlMWFiZDk5ZjBl
N2NjNDE0NmFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTA4LTEzICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VQ
cm94aW1pdHlDb250cm9sbGVyIHRvIHN1cHBvcnQgUHJveGltaXR5IEV2ZW50cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVjIDogaHR0cDovL3d3dy53
My5vcmcvVFIvcHJveGltaXR5LworCisgICAgICAgIEFkZCBEZXZpY2VDb250cm9sbGVyIHRvIHN1
cHBvcnQgZGV2aWNlIHJlbGF0ZWQgZXZlbnQgY29udHJvbCwKKyAgICAgICAgRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlciB0byBzdXBwb3J0IGEgZGV2aWNlcHJveGltaXR5IGV2ZW50IGZyb20gY2xp
ZW50LgorICAgICAgICBJbiBhZGRpdGlvbiwgYWRkIHNldFByb3hpbWl0eSgpIHRvIHRoZSBJbnRl
cm5hbHMgY2xhc3MgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hp
bWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
ci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VQcm94aW1pdHlDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNl
UHJveGltaXR5Q29udHJvbGxlcjo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VQcm94
aW1pdHkpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3Vw
cGxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdmlkZURldmljZVByb3hpbWl0eVRv
KToKKyAgICAgICAgKiBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6
On5EZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZVBy
b3hpbWl0eUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAqIGRvbS9EZXZpY2VDbGllbnQuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERldmljZUNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6On5EZXZpY2VDbGllbnQpOgorICAgICAgICAqIGRv
bS9EZXZpY2VDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6dGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VDb250cm9sbGVyOjpyZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlQ29udHJvbGxlcjo6ZGlkQ2hhbmdlRGV2aWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6c3VzcGVuZEV2ZW50c0ZvckFsbExpc3RlbmVycyk6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMp
OgorICAgICAgICAqIGRvbS9EZXZpY2VDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChEZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6On5EZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6OmNsaWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyk6CisgICAgICAg
ICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphZGRF
dmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRM
aXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlz
dGVuZXJzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldFByb3hpbWl0eSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDgtMTMgIEtlaXNoaSBIYXR0b3JpICA8
a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGZhZGUgaW4gdHJhbnNpdGlvbiBm
cm9tIGNhbGVuZGFyIHBpY2tlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMTE1NGU5NGE3MzFk
MjNmZjE2Yzk1ZDA3MGVjMjU2NTE5MmVmYzNmLi4wZjFmNzIxYTBjMzM2NGRkNTg2NGY4YTlhNDE0
YWEyZTYxYmM0NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODY3LDYgKzg2Nyw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKIAogICAgIE1vZHVsZXMvcHJvdG9jb2xoYW5kbGVyL05hdmlnYXRv
clJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyLmNwcAogCisgICAgTW9kdWxlcy9wcm94aW1pdHkvRGV2
aWNlUHJveGltaXR5Q29udHJvbGxlci5jcHAKICAgICBNb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQ
cm94aW1pdHlFdmVudC5jcHAKIAogICAgIE1vZHVsZXMvcXVvdGEvRE9NV2luZG93UXVvdGEuY3Bw
CkBAIC0xMDk0LDYgKzEwOTUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RhdGFz
ZXRET01TdHJpbmdNYXAuY3BwCiAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uY3BwCiAgICAgZG9t
L0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwCisgICAgZG9tL0RldmljZUNvbnRyb2xsZXIu
Y3BwCiAgICAgZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwCiAgICAgZG9tL0RldmljZU1v
dGlvbkRhdGEuY3BwCiAgICAgZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Byb3hpbWl0eS9EZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTU5MGM1MmM2MDU3MDQ4ZDQ2NDM0MTNlMjdmMzg3
YjVlZWExMzY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcm94
aW1pdHkvRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmlj
ZVByb3hpbWl0eUNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQor
CisjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5RXZl
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPERldmljZVByb3hpbWl0
eUNvbnRyb2xsZXI+IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdl
LCBEZXZpY2VDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERldmlj
ZVByb3hpbWl0eUNvbnRyb2xsZXIocGFnZSwgY2xpZW50KSk7Cit9CisKK0RldmljZVByb3hpbWl0
eUNvbnRyb2xsZXI6OkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXIoUGFnZSogcGFnZSwgRGV2aWNl
Q2xpZW50KiBjbGllbnQpCisgICAgOiBEZXZpY2VDb250cm9sbGVyKHBhZ2UsIGNsaWVudCkKK3sK
K30KKwordm9pZCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpkaWRDaGFuZ2VEZXZpY2VQcm94
aW1pdHkoZG91YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4KQoreworICAgIFJlZlB0
cjxEZXZpY2VQcm94aW1pdHlFdmVudD4gZXZlbnQgPSBEZXZpY2VQcm94aW1pdHlFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS53ZWJraXRkZXZpY2Vwcm94aW1pdHlFdmVudCwgdmFsdWUsIG1pbiwg
bWF4KTsKKyAgICBkaWRDaGFuZ2VEZXZpY2VFdmVudChldmVudCk7Cit9CisKK2NvbnN0IEF0b21p
Y1N0cmluZyYgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkRldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIiKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisKK3ZvaWQgcHJvdmlkZURl
dmljZVByb3hpbWl0eVRvKFBhZ2UqIHBhZ2UsIERldmljZUNsaWVudCogY2xpZW50KQoreworICAg
IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OnByb3ZpZGVUbyhwYWdlLCBEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
OjpjcmVhdGUocGFnZSwgY2xpZW50KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFBST1hJTUlUWV9FVkVOVFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcHJveGltaXR5L0RldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yZDg3ZWMxMzMyY2JkYWIzY2M0MzZlZmNkNDRkYzU1OTEwMjcxMjJjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wcm94aW1pdHkvRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
ICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
Zm5kZWYgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcl9oCisjZGVmaW5lIERldmljZVByb3hpbWl0
eUNvbnRyb2xsZXJfaAorCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisKKyNpbmNsdWRl
ICJEZXZpY2VDb250cm9sbGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2
aWNlUHJveGltaXR5Q29udHJvbGxlciA6IHB1YmxpYyBEZXZpY2VDb250cm9sbGVyIHsKK3B1Ymxp
YzoKKyAgICB+RGV2aWNlUHJveGltaXR5Q29udHJvbGxlcigpIHsgfTsKKworICAgIHN0YXRpYyBQ
YXNzT3duUHRyPERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKiwgRGV2aWNl
Q2xpZW50Kik7CisKKyAgICB2b2lkIGRpZENoYW5nZURldmljZVByb3hpbWl0eShkb3VibGUgdmFs
dWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgpOworCisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0
cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0aWMgRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxEZXZpY2VQcm94aW1p
dHlDb250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFt
ZSgpKSk7IH0KKworcHJpdmF0ZToKKyAgICBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyKFBhZ2Uq
LCBEZXZpY2VDbGllbnQqKTsKK307CisKK3ZvaWQgcHJvdmlkZURldmljZVByb3hpbWl0eVRvKFBh
Z2UqLCBEZXZpY2VDbGllbnQqKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gUFJPWElNSVRZX0VWRU5UUworI2VuZGlmIC8vIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggYmU3YmQwN2MxMGZlMGM5YTIyYWNh
Y2NkOTg4ZjBlYzY2NzVlMWRhZC4uNGNjOGQ2N2QxN2JhMTUwZWY4ZDEwYTQ2OTMxNTZlMWM0NGNh
ZDNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAj
aW5jbHVkZSAiRE9NU3RyaW5nTWFwLmNwcCIKICNpbmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFw
LmNwcCIKICNpbmNsdWRlICJEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCIKKyNpbmNsdWRl
ICJEZXZpY2VDb250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25Db250cm9sbGVy
LmNwcCIKICNpbmNsdWRlICJEZXZpY2VNb3Rpb25EYXRhLmNwcCIKICNpbmNsdWRlICJEZXZpY2VN
b3Rpb25FdmVudC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhk
YWIzYWQ5MTNiZjBjYmNmMGNlMTQ1ZDdkZDYyNTBkODBkYTlkYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDM3IEBACisvKgor
ICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIu
ICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmlj
ZUNsaWVudF9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRXZlbnQ7CisKK2NsYXNz
IERldmljZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2aWNlQ2xpZW50KCkgeyB9
CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHN0b3BVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIEV2ZW50KiBsYXN0RXZlbnQoKSA9IDA7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDbGllbnRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MzRk
NDU3ZWRkYzNlZWJiYjdjZTg0OGZjMDE3OGJiZmY0Y2M0N2MKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMTUgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
ZXZpY2VDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRl
ICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZUNvbnRyb2xsZXI6OkRl
dmljZUNvbnRyb2xsZXIoUGFnZSogcGFnZSwgRGV2aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBt
X2NsaWVudChjbGllbnQpCisgICAgLCBtX3BhZ2UocGFnZSkKKyAgICAsIG1fdGltZXIodGhpcywg
JkRldmljZUNvbnRyb2xsZXI6OnRpbWVyRmlyZWQpCit7CisgICAgQVNTRVJUKG1fY2xpZW50KTsK
K30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjp0aW1lckZpcmVkKFRpbWVyPERldmljZUNvbnRy
b2xsZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90
aW1lcik7CisgICAgQVNTRVJUKG1fY2xpZW50LT5sYXN0RXZlbnQoKSk7CisgICAgbV90aW1lci5z
dG9wKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnNWZWN0b3I7
CisgICAgY29weVRvVmVjdG9yKG1fbmV3TGlzdGVuZXJzLCBsaXN0ZW5lcnNWZWN0b3IpOworICAg
IG1fbmV3TGlzdGVuZXJzLmNsZWFyKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0
ZW5lcnNWZWN0b3Iuc2l6ZSgpOyArK2kpCisgICAgICAgIGxpc3RlbmVyc1ZlY3RvcltpXS0+ZGlz
cGF0Y2hFdmVudChtX2NsaWVudC0+bGFzdEV2ZW50KCkpOworfQorCit2b2lkIERldmljZUNvbnRy
b2xsZXI6OmFkZExpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmIChtX2NsaWVu
dC0+bGFzdEV2ZW50KCkpIHsKKyAgICAgICAgbV9uZXdMaXN0ZW5lcnMuYWRkKHdpbmRvdyk7Cisg
ICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdGFy
dE9uZVNob3QoMCk7CisgICAgfQorCisgICAgYm9vbCBpc0VtcHR5ID0gbV9saXN0ZW5lcnMuaXNF
bXB0eSgpOworICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOworICAgIGlmIChpc0VtcHR5KQor
ICAgICAgICBtX2NsaWVudC0+c3RhcnRVcGRhdGluZygpOworfQorCit2b2lkIERldmljZUNvbnRy
b2xsZXI6OnJlbW92ZUxpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAgIG1fbGlzdGVu
ZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZSh3aW5k
b3cpOworICAgIG1fbmV3TGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmIChtX2xpc3Rl
bmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwor
dm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5k
b3cpCit7CisgICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2xpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBtX3N1c3Bl
bmRlZExpc3RlbmVycy5yZW1vdmVBbGwod2luZG93KTsKKyAgICBtX25ld0xpc3RlbmVycy5yZW1v
dmUod2luZG93KTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX2Ns
aWVudC0+c3RvcFVwZGF0aW5nKCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlkQ2hh
bmdlRGV2aWNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgVmVjdG9yPFJl
ZlB0cjxET01XaW5kb3c+ID4gbGlzdGVuZXJzOworICAgIFJlZlB0cjxFdmVudD4gcnBFdmVudCA9
IGV2ZW50OworICAgIGNvcHlUb1ZlY3RvcihtX2xpc3RlbmVycywgbGlzdGVuZXJzKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3RlbmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgbGlz
dGVuZXJzW2ldLT5kaXNwYXRjaEV2ZW50KHJwRXZlbnQpOworfQorCit2b2lkIERldmljZUNvbnRy
b2xsZXI6OnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit7
CisgICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQorICAgICAgICByZXR1cm47
CisKKyAgICBpbnQgY291bnQgPSBtX2xpc3RlbmVycy5jb3VudCh3aW5kb3cpOworICAgIHJlbW92
ZUFsbExpc3RlbmVycyh3aW5kb3cpOworICAgIHdoaWxlIChjb3VudC0tKQorICAgICAgICBtX3N1
c3BlbmRlZExpc3RlbmVycy5hZGQod2luZG93KTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVy
OjpyZXN1bWVFdmVudHNGb3JBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAg
aWYgKCFtX3N1c3BlbmRlZExpc3RlbmVycy5jb250YWlucyh3aW5kb3cpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpbnQgY291bnQgPSBtX3N1c3BlbmRlZExpc3RlbmVycy5jb3VudCh3aW5kb3cp
OworICAgIG1fc3VzcGVuZGVkTGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIHdoaWxl
IChjb3VudC0tKQorICAgICAgICBhZGRMaXN0ZW5lcih3aW5kb3cpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMWUxYWZlYmEwMzNmYTViNmYxOTkyMTRkYjE4YzA4N2ZkZTU5YmY5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDYy
IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZUNvbnRyb2xsZXJfaAor
I2RlZmluZSBEZXZpY2VDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291
bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNsaWVudDsK
KworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1
YmxpYzoKKyAgICBEZXZpY2VDb250cm9sbGVyKFBhZ2UqLCBEZXZpY2VDbGllbnQqKTsKKyAgICB+
RGV2aWNlQ29udHJvbGxlcigpIHsgfTsKKworICAgIHZvaWQgYWRkTGlzdGVuZXIoRE9NV2luZG93
Kik7CisgICAgdm9pZCByZW1vdmVMaXN0ZW5lcihET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92
ZUFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKKworICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIERldmljZUNsaWVudCogY2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHZvaWQgc3VzcGVuZEV2ZW50c0ZvckFsbExpc3Rl
bmVycyhET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlc3VtZUV2ZW50c0ZvckFsbExpc3RlbmVycyhE
T01XaW5kb3cqKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8RGV2aWNl
Q29udHJvbGxlcj4qKTsKKworICAgIERldmljZUNsaWVudCogbV9jbGllbnQ7CisgICAgUGFnZSog
bV9wYWdlOworICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8UmVmUHRyPERPTVdpbmRvdz4gPiBM
aXN0ZW5lcnNDb3VudGVkU2V0OworICAgIExpc3RlbmVyc0NvdW50ZWRTZXQgbV9saXN0ZW5lcnM7
CisgICAgTGlzdGVuZXJzQ291bnRlZFNldCBtX3N1c3BlbmRlZExpc3RlbmVyczsKKyAgICB0eXBl
ZGVmIEhhc2hTZXQ8UmVmUHRyPERPTVdpbmRvdz4gPiBMaXN0ZW5lcnNTZXQ7CisgICAgTGlzdGVu
ZXJzU2V0IG1fbmV3TGlzdGVuZXJzOworICAgIFRpbWVyPERldmljZUNvbnRyb2xsZXI+IG1fdGlt
ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDb250
cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY0MzA0YzYwNzRmMTczOGZkZDky
MGRiNTFhYTIzZjBhYzA1OTQ0NzcuLjkwYWM1ZWJhZGUzYTBkZmYwMjllNDg3OTY1OTFlOGVhOTVk
NGNkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjI0LDYgKzIyNCwxMCBAQAogI2lu
Y2x1ZGUgIkRPTVNlY3VyaXR5UG9saWN5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShQUk9YSU1J
VFlfRVZFTlRTKQorI2luY2x1ZGUgIkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaCIKKyNlbmRp
ZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5h
bWVzcGFjZSBVbmljb2RlOwpAQCAtMjIwNCw2ICsyMjA4LDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnN1
c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lv
biB3aHkpCiAgICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5lcnMo
ZG9tV2luZG93KCkpOwogCiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyAg
ICBpZiAoIXBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKERldmljZVByb3hpbWl0
eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpmcm9t
KHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnN1c3BlbmRFdmVudHNGb3JBbGxMaXN0ZW5l
cnMoZG9tV2luZG93KCkpOworI2VuZGlmCiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlc3VtZUFjdGl2
ZURPTU9iamVjdHMoKQpAQCAtMjIxOSw2ICsyMjMwLDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnJlc3Vt
ZUFjdGl2ZURPTU9iamVjdHMoKQogICAgIGlmIChEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
ICAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRv
dygpKTsKICNlbmRpZgorI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGlmICghcGFn
ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoRGV2aWNlUHJveGltaXR5Q29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmZyb20ocGFnZSgpKSkK
KyAgICAgICAgY29udHJvbGxlci0+cmVzdW1lRXZlbnRzRm9yQWxsTGlzdGVuZXJzKGRvbVdpbmRv
dygpKTsKKyNlbmRpZgogfQogCiBSZW5kZXJWaWV3KiBEb2N1bWVudDo6cmVuZGVyVmlldygpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNDQ4MTUwMzYzM2Q1NDQ3MzU1NGZi
ZjdlYzBmZTg2YzkwMmQ5N2Q2Zi4uYzE1ZjE5MDJkN2M5YzE2MGJkYzBhYjQ5NTVhZDA2NGE1OTdm
YTQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTA2LDYgKzEwNiwxMCBAQAog
I2luY2x1ZGUgIlJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmgiCiAjZW5kaWYKIAorI2lm
IEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorI2luY2x1ZGUgIkRldmljZVByb3hpbWl0eUNvbnRy
b2xsZXIuaCIKKyNlbmRpZgorCiB1c2luZyBzdGQ6Om1pbjsKIHVzaW5nIHN0ZDo6bWF4OwogCkBA
IC0xNTg4LDYgKzE1OTIsMTIgQEAgYm9vbCBET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnQKICAgICAgICAgICAg
IGNvbnRyb2xsZXItPmFkZExpc3RlbmVyKHRoaXMpOwogICAgIH0KICNlbmRpZgorI2lmIEVOQUJM
RShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkud2Via2l0ZGV2aWNlcHJveGltaXR5RXZlbnQpIHsKKyAgICAgICAgaWYgKERldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyOjpm
cm9tKHBhZ2UoKSkpCisgICAgICAgICAgICBjb250cm9sbGVyLT5hZGRMaXN0ZW5lcih0aGlzKTsK
KyAgICB9CisjZW5kaWYKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTYxNyw2ICsxNjI3LDEy
IEBAIGJvb2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgICAgICAgICBjb250cm9sbGVyLT5yZW1v
dmVMaXN0ZW5lcih0aGlzKTsKICAgICB9CiAjZW5kaWYKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VW
RU5UUykKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdGRldmlj
ZXByb3hpbWl0eUV2ZW50KSB7CisgICAgICAgIGlmIChEZXZpY2VQcm94aW1pdHlDb250cm9sbGVy
KiBjb250cm9sbGVyID0gRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQor
ICAgICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlTGlzdGVuZXIodGhpcyk7CisgICAgfQorI2Vu
ZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE2NzMsNiArMTY4OSwxMCBAQCB2b2lkIERP
TVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIGlmIChEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI6
OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRo
aXMpOwogI2VuZGlmCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgaWYgKERldmlj
ZVByb3hpbWl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VQcm94aW1pdHlDb250cm9s
bGVyOjpmcm9tKHBhZ2UoKSkpCisgICAgICAgIGNvbnRyb2xsZXItPnJlbW92ZUFsbExpc3RlbmVy
cyh0aGlzKTsKKyNlbmRpZgogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhp
cyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNmFhYTdmMTcyODc1N2ExZTRiYzA0YTdk
OTkxYzMzZjY5MmViMjc0Mi4uZDQzNzk1ZTZlNTZlYjM0MGZhYjNlNWY1MDUwNDhiMTM4NDkwZmY1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTksNiArOTksMTAgQEAK
ICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFBS
T1hJTUlUWV9FVkVOVFMpCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKQEAgLTk5Myw2ICs5OTcsMjIgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE5ldHdvcmtJbmZvcm1h
dGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZXZlbnRUeXAKICNlbmRpZgog
fQogCit2b2lkIEludGVybmFsczo6c2V0UHJveGltaXR5KERvY3VtZW50KiBkb2N1bWVudCwgZG91
YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5BQkxF
KFBST1hJTUlUWV9FVkVOVFMpCisgICAgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6ZnJvbShk
b2N1bWVudC0+cGFnZSgpKS0+ZGlkQ2hhbmdlRGV2aWNlUHJveGltaXR5KHZhbHVlLCBtaW4sIG1h
eCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFNKG1p
bik7CisgICAgVU5VU0VEX1BBUkFNKG1heCk7CisjZW5kaWYKK30KKwogYm9vbCBJbnRlcm5hbHM6
Omhhc1NwZWxsaW5nTWFya2VyKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBsZW5n
dGgsIEV4Y2VwdGlvbkNvZGUmKQogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5m
cmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMTU3NjYyYzNkZTZiNGVk
MTQ0YTI5OTk4MzYwM2NjZWI2NDAwYWJkZS4uY2E4Mzg3Mjk1YzM4YjgyOGJhYWY3ZmQxMTMwZGFm
ZWJjNzQxNDYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xODAsNiArMTgw
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXROZXR3b3JrSW5mb3JtYXRpb24oRG9jdW1lbnQq
LCBjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlIGJhbmR3aWR0aCwgYm9vbCBtZXRlcmVk
LCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2b2lkIHNldFByb3hpbWl0eShEb2N1bWVudCosIGRv
dWJsZSB2YWx1ZSwgZG91YmxlIG1pbiwgZG91YmxlIG1heCwgRXhjZXB0aW9uQ29kZSYpOworCiAg
ICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25z
dDsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2MDFlOGE3NGY5
ZjEwZDI0ZTQxOGYxMzgzMzg2ZTA1N2Y1OGEwNGJmLi5jMDRmOGExYmEyNzAxOTViNTIxNmNkZGE0
OGNhYThhYWU4ZGQ3ZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0x
NjcsNiArMTY3LDEwIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldE5ldHdvcmtJ
bmZvcm1hdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSwg
aW4gZG91YmxlIGJhbmR3aWR0aCwgaW4gYm9vbGVhbiBtZXRlcmVkKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICYm
IEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTCisgICAgICAgIHZvaWQgc2V0UHJveGltaXR5KGluIERv
Y3VtZW50IGRvY3VtZW50LCBpbiBkb3VibGUgdmFsdWUsIGluIGRvdWJsZSBtaW4sIGluIGRvdWJs
ZSBtYXgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgorCiAgICAgICAgIFtDb25kaXRp
b25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsKICAgICAg
ICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1
bWVudHMoKTsKICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gc2VxdWVuY2U8U3RyaW5n
PiBjb25zb2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzKGluIERvY3VtZW50IGRvY3VtZW50KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA3MTM1ZDczMzZjYWU0NTM4NzVlZDc2MjQxNDNjNzNiODI3Y2FlOWFhLi43ZTM3MjYwYjAz
YWUzM2UxNjE2MmE2NGIyYzkwNDZjYWNhMWVjMGY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MTItMDgtMTMgIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgQWRkIERldmljZVByb3hpbWl0eUNvbnRyb2xsZXIgdG8gc3VwcG9ydCBQcm94aW1pdHkgRXZl
bnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzU5
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0
ZXN0cyBmb3IgRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci4KKyAgICAgICAgLSBiYXNpYyBldmVu
dCBvcGVyYXRpb24KKyAgICAgICAgLSBhZGQgZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgLSBldmVu
dCBhZnRlciBsZWF2aW5nIHRoZSBwYWdlCisgICAgICAgIC0gZXZlbnQgaW4gdGhlIG11bHRpcGxl
IGZyYW1lcworICAgICAgICAtIHJlbW92ZSBhbmQgcmUtYWRkIGV2ZW50IGxpc3RlbmVycworCisg
ICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0
ZW5lci1mcm9tLWNhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hp
bWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24u
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1l
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9tdWx0
aXBsZS1mcmFtZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3Jl
c291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTEz
ICBKb29uZSBIdXIgIDxqb29uZS5odXJAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2
aWV3ZWQgZ2FyZGVuaW5nLCByZWJhc2VsaW5pbmcgYWZ0ZXIgcjEyNTQ2Mi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFj
ay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3Rl
bmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ZjlhYTE0ZDY4ZGZi
YTIyODVlMzU4MzVkMjg5YjkyYjU1ZmM4MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIHRoYXQgYWRkaW5nIGEgbmV3IGV2ZW50IGxpc3Rl
bmVyIGZyb20gYSBjYWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlz
IDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBl
dmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlz
IDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2su
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1j
YWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjY2IwNWExMzFhM2U5NDAxOWZkYWJhNGNhMzU5NzM2
ZmUwYjExODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1p
dHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbApAQCAtMCwwICsxLDUwIEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVz
dHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQgbGlzdGVuZXIgZnJvbSBhIGNhbGxiYWNrIHdvcmtz
IGFzIGV4cGVjdGVkLicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBtaW4gPSAwOwordmFyIG1h
eCA9IDEwMDsKKworZnVuY3Rpb24gY2hlY2tQcm94aW1pdHkoKSB7CisgICAgc2hvdWxkQmUoImV2
ZW50LnZhbHVlIiwgIjMwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICIwIik7CisgICAg
c2hvdWxkQmUoImV2ZW50Lm1heCIsICIxMDAiKTsKK30KKwordmFyIGZpcnN0TGlzdGVuZXJFdmVu
dHMgPSAwOworZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcigpIHsKKyAgICBjaGVja1Byb3hpbWl0eSgp
OworICAgIGlmICgrK2ZpcnN0TGlzdGVuZXJFdmVudHMgPT0gMSkgeworICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5Jywgc2Vjb25kTGlzdGVuZXIp
OworICAgICAgICBpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBt
YXgpOworICAgIH0KKyAgICBlbHNlIGlmIChmaXJzdExpc3RlbmVyRXZlbnRzID4gMikKKyAgICAg
ICAgdGVzdEZhaWxlZCgnVG9vIG1hbnkgZXZlbnRzIGZvciBmaXJzdCBsaXN0ZW5lci4nKTsKKyAg
ICBtYXliZUZpbmlzaFRlc3QoKTsKK30KKwordmFyIHNlY29uZExpc3RlbmVyRXZlbnRzID0gMDsK
K2Z1bmN0aW9uIHNlY29uZExpc3RlbmVyKCkgeworICAgIGNoZWNrUHJveGltaXR5KCk7CisgICAg
aWYgKCsrc2Vjb25kTGlzdGVuZXJFdmVudHMgPiAxKQorICAgICAgICB0ZXN0RmFpbGVkKCdUb28g
bWFueSBldmVudHMgZm9yIHNlY29uZCBsaXN0ZW5lci4nKTsKKyAgICBtYXliZUZpbmlzaFRlc3Qo
KTsKK30KKworZnVuY3Rpb24gbWF5YmVGaW5pc2hUZXN0KCkgeworICAgIGlmIChmaXJzdExpc3Rl
bmVyRXZlbnRzID09IDIgJiYgc2Vjb25kTGlzdGVuZXJFdmVudHMgPT0gMSkKKyAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vw
cm94aW1pdHknLCBmaXJzdExpc3RlbmVyKTsKK2ludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1l
bnQsIHZhbHVlLCBtaW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYmFmMjc2OGMxOGJiY2JkNGFlNDYzN2U1N2MzOWIyNTg4MTdkZDNlMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoZSBiYXNpYyBvcGVyYXRpb24gb2Yg
UHJveGltaXR5IEV2ZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBl
dmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMg
MTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU0MGJlOTgzMDdmOTlkZTcwZjY5ZmM3MGVkNmVmN2QzMWI2YmEyOTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMt
b3BlcmF0aW9uLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoZSBiYXNpYyBvcGVyYXRp
b24gb2YgUHJveGltaXR5IEV2ZW50LicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBtaW4gPSAw
OwordmFyIG1heCA9IDEwMDsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmlj
ZXByb3hpbWl0eScsIGZ1bmN0aW9uKCkgeworICAgIHNob3VsZEJlKCJldmVudC52YWx1ZSIsICIz
MCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVu
dC5tYXgiLCAiMTAwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworaW50ZXJuYWxzLnNl
dFByb3hpbWl0eShkb2N1bWVudCwgdmFsdWUsIG1pbiwgbWF4KTsKK3dpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5h
dmlnYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlNmJjMzk4MjY3NzdiMTgzZTRiMGZj
YmVjY2U3ZWMyNmZkMGZkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACitUZXN0cyBmb3IgYSBjcmFzaCB3aGVyZSBhbiBldmVudCBpcyBmaXJlZCBhZnRlciB0
aGUgcGFnZSBoYXMgYmVlbiBuYXZpZ2F0ZWQgYXdheSB3aGVuIHRoZSBvcmlnaW5hbCBwYWdlIGlz
IGluIHRoZSBwYWdlIGNhY2hlLgorCitTVUNDRVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44ZmZiYjZjYjg3NGI0MGIzZjMyZDMxZDU1NmJlMTZiMzJkZGU3YzI3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmln
YXRpb24uaHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4g
ZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkIGF3YXkgd2hl
biB0aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4nKTsKKworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCdXZWJLaXRV
c2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleScsIDEpOworZWxzZQorICAgIGRlYnVnKCdUaGlzIHRl
c3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicpOworCitkb2N1bWVudC5i
b2R5Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3
ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmdW5jdGlvbigpIHsgfSApOworICAgIHdpbmRvdy5sb2Nh
dGlvbiA9ICJyZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRtbCI7Cit9CisK
K3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxl
LWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVs
dGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGY1OTA2ZTIzNmVjODQzNDVh
ODVjNzU0YzIyMDUxMzU2OWE2MmYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NSBAQAorVGVzdHMgdXNpbmcgUHJveGltaXR5IEV2ZW50IGZyb20gbXVsdGlwbGUgZnJhbWVzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1bHQudmFsdWUgaXMgMzAK
K1BBU1MgcmVzdWx0Lm1pbiBpcyAwCitQQVNTIHJlc3VsdC5tYXggaXMgMTAwCitQQVNTIHJlc3Vs
dC52YWx1ZSBpcyAzMAorUEFTUyByZXN1bHQubWluIGlzIDAKK1BBU1MgcmVzdWx0Lm1heCBpcyAx
MDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmRkYmM3ZTA4YzExYTI3MDRlNGY1MDllMDEzYTBhMWViOThkNzgxMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBs
ZS1mcmFtZXMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdXNpbmcgUHJveGltaXR5IEV2
ZW50IGZyb20gbXVsdGlwbGUgZnJhbWVzLicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBtaW4g
PSAwOwordmFyIG1heCA9IDEwMDsKK3ZhciByZXN1bHQ7CisKK2Z1bmN0aW9uIGNoZWNrUHJveGlt
aXR5RXZlbnQocHJveGltaXR5VmFsdWUsIHByb3hpbWl0eU1pbiwgcHJveGltaXR5TWF4KSB7Cisg
ICAgc2hvdWxkQmUoInJlc3VsdC52YWx1ZSIsICIzMCIpOworICAgIHNob3VsZEJlKCJyZXN1bHQu
bWluIiwgIjAiKTsKKyAgICBzaG91bGRCZSgicmVzdWx0Lm1heCIsICIxMDAiKTsKK30KKwordmFy
IGhhc01haW5GcmFtZUV2ZW50RmlyZWQgPSBmYWxzZTsKK2Z1bmN0aW9uIG1haW5GcmFtZUxpc3Rl
bmVyKCkgeworICAgIGhhc01haW5GcmFtZUV2ZW50RmlyZWQgPSB0cnVlOworICAgIHJlc3VsdCA9
IGV2ZW50OworICAgIGNoZWNrUHJveGltaXR5RXZlbnQoKTsKKyAgICBtYXliZUZpbmlzaFRlc3Qo
KTsKK30KKwordmFyIGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkID0gZmFsc2U7CitmdW5jdGlvbiBj
aGlsZEZyYW1lTGlzdGVuZXIoKSB7CisgICAgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSB0cnVl
OworICAgIHJlc3VsdCA9IGNoaWxkRnJhbWUuY29udGVudFdpbmRvdy5ldmVudDsKKyAgICBjaGVj
a1Byb3hpbWl0eUV2ZW50KCk7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK2Z1bmN0aW9u
IG1heWJlRmluaXNoVGVzdCgpIHsKKyAgICBpZiAoaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCAmJiBo
YXNDaGlsZEZyYW1lRXZlbnRGaXJlZCkgeworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9
Cit9CisKK3ZhciBjaGlsZEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7
Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNoaWxkRnJhbWUpOworY2hpbGRGcmFtZS5jb250
ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIGNoaWxk
RnJhbWVMaXN0ZW5lcik7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJv
eGltaXR5JywgbWFpbkZyYW1lTGlzdGVuZXIpOworCitpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRv
Y3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvcmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvcmVzb3VyY2VzL2V2ZW50LWFmdGVy
LW5hdmlnYXRpb24tbmV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBiOWExNjU3NDcxMTRlNTYyMGFmZWYy
NjVkMzBlMmFhNmU0MjM1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcuaHRtbApAQCAt
MCwwICsxLDEzIEBACis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAg
VGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4gZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2Ug
aGFzIGJlZW4gbmF2aWdhdGVkCisgICAgYXdheSB3aGVuIHRoZSBvcmlnaW5hbCBwYWdlIGlzIGlu
IHRoZSBwYWdlIGNhY2hlLjxicj48YnI+CisgICAgU1VDQ0VTUworICAgIDxzY3JpcHQ+CisgICAg
ICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIDMwLCAwLCAxMDApOworICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYzljNTdlZjM2MDE3ZjQzZjA2ZDA0OTI3MTRjOWZkZWVh
NDcyMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkv
dXBkYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdGhhdCB1cGRhdGVz
IHRvIHRoZSBwcm94aW1pdHkgZXZlbnQgY2F1c2VzIG5ldyBldmVudHMgdG8gZmlyZS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1Mg
ZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBldmVudC52YWx1ZSBp
cyAxMDAKK1BBU1MgZXZlbnQubWluIGlzIC1JbmZpbml0eQorUEFTUyBldmVudC5tYXggaXMgSW5m
aW5pdHkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZGM5NmVmMjg0ZmEzODY5YWFkODgyMzZhYjQ1MzMwODkyN2E1ZDY0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbApAQCAtMCww
ICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdHMgdGhhdCB1cGRhdGVzIHRvIHRoZSBwcm94aW1pdHkgZXZlbnQgY2F1
c2VzIG5ldyBldmVudHMgdG8gZmlyZS4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0g
MDsKK3ZhciBtYXggPSAxMDA7CisKK2Z1bmN0aW9uIGNoZWNrUHJveGltaXR5RXZlbnQoKSB7Cisg
ICAgc2hvdWxkQmUoImV2ZW50LnZhbHVlIiwgIjMwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1p
biIsICIwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1heCIsICIxMDAiKTsKK30KKworZnVuY3Rp
b24gc2V0UHJveGltaXR5KCkgeworICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQs
IHZhbHVlLCBtaW4sIG1heCk7Cit9CisKK2Z1bmN0aW9uIGZpcnN0TGlzdGVuZXIoKSB7CisJY2hl
Y2tQcm94aW1pdHlFdmVudCgpOworICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd3ZWJr
aXRkZXZpY2Vwcm94aW1pdHknLCBmaXJzdExpc3RlbmVyKTsKKyAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgdXBkYXRlTGlzdGVuZXIpOworICAgIHZh
bHVlID0gMTAwOworICAgIG1pbiA9IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICBtYXgg
PSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisJc2V0UHJveGltaXR5KCk7Cit9CisKK2Z1bmN0
aW9uIHVwZGF0ZUxpc3RlbmVyKGV2ZW50KSB7CisgICAgc2hvdWxkQmUoImV2ZW50LnZhbHVlIiwg
IjEwMCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiLUluZmluaXR5Iik7CisgICAgc2hv
dWxkQmUoImV2ZW50Lm1heCIsICJJbmZpbml0eSIpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgZmlyc3RM
aXN0ZW5lcik7CitzZXRQcm94aW1pdHkoKTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159052</attachid>
            <date>2012-08-17 02:15:53 -0700</date>
            <delta_ts>2012-08-19 22:03:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120817181517.patch</filename>
            <type>text/plain</type>
            <size>30472</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1ODYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDU1N2I4MTMxMDEzZTBm
NWVmNWZiYjZkZWFmMDliNjk0ZjMzYzNhNC4uOTU3YjEwMjJmNDRiNWYxNDYyZDdkODA1YjY2MDE5
ZDJhNDdlNTcxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA4LTE3ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLAorICAgICAgICBhbmQgYWRk
IHByb3hpbWl0eSBldmVudCB0byBEZXZpY2VDb250cm9sbGVyIGZvciB0ZXN0aW5nLgorICAgICAg
ICBJbiBhZGRpdGlvbiwgYWRkIHNldFByb3hpbWl0eSgpIHRvIHRoZSBJbnRlcm5hbHMgY2xhc3Mg
Zm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlz
dGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9Qcm94aW1p
dHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1Byb3hpbWl0
eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1By
b3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vUHJv
eGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRGV2aWNlQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRldmljZUNsaWVudDo6RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKiBkb20vRGV2aWNlQ29u
dHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29u
dHJvbGxlcjo6RGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250
cm9sbGVyOjppc0RldmljZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xs
ZXI6OmFkZERldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29u
dHJvbGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGVpdmNlRXZlbnQpOgorICAgICAgICAqIGRvbS9EZXZp
Y2VDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZp
Y2VDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6On5EZXZp
Y2VDb250cm9sbGVyKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChQYWdlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFByb3hpbWl0eSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJu
YWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDgtMTYgIFZz
ZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU25pcHBldCBzY3JpcHQgbWFwcGluZyBzaG91bGQgbm90IGxvYWQgc25pcHBldHMgdW50
aWwgd29ya3NwYWNlIHJlc2V0IGV2ZW50IGlzIGRpc3BhdGNoZWQgb24gc2NyaXB0cyBwYW5lbC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMGFlZDM5MmNiODBhOGIyN2FiNmIxYjY1OTA5MDdmNTg3
MTgzMWZhNC4uNTAzZjFkNTEwNjc2MDQ5MDQ0NWNmYzU3YjcwMzRhZTg1NDhmNTVmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTEwOTQsNiArMTA5NCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMK
ICAgICBkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKICAgICBkb20vRGF0YVRyYW5zZmVySXRl
bS5jcHAKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAKKyAgICBkb20vRGV2
aWNlQ29udHJvbGxlci5jcHAKICAgICBkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKICAg
ICBkb20vRGV2aWNlTW90aW9uRGF0YS5jcHAKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBiZTdiZDA3YzEwZmUwYzlhMjJhY2Fj
Y2Q5ODhmMGVjNjY3NWUxZGFkLi40Y2M4ZDY3ZDE3YmExNTBlZjhkMTBhNDY5MzE1NmUxYzQ0Y2Fk
M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTUyLDYgKzUyLDcgQEAKICNp
bmNsdWRlICJET01TdHJpbmdNYXAuY3BwIgogI2luY2x1ZGUgIkRhdGFzZXRET01TdHJpbmdNYXAu
Y3BwIgogI2luY2x1ZGUgIkRlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIgorI2luY2x1ZGUg
IkRldmljZUNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkRhdGEuY3BwIgogI2luY2x1ZGUgIkRldmljZU1v
dGlvbkV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWNk
MWVmZGZmYjNkM2ZmMjExYjM5NTM2M2I0NjdmOWM5ODdlY2YxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNsaWVudC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ2xpZW50X2gKKyNkZWZpbmUgRGV2aWNl
Q2xpZW50X2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VDbGllbnQg
OiBwdWJsaWMgUmVmQ291bnRlZDxEZXZpY2VDbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5EZXZpY2VDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSA9IDA7CisKK3Byb3RlY3RlZDoK
KyAgICBEZXZpY2VDbGllbnQoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIERldmljZUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzc5ODcyM2FhODFlNDQxMWI0ZDNkODc5MmEwZjY4OGNiMGIwZTlk
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDb250cm9sbGVy
LmNwcApAQCAtMCwwICsxLDExOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3Vu
ZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIkRl
dmljZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPERldmljZUNvbnRyb2xsZXI+IERl
dmljZUNvbnRyb2xsZXI6OmNyZWF0ZShQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRGV2aWNlQ29udHJvbGxlcihwYWdlKSk7Cit9CisKK0RldmljZUNvbnRyb2xsZXI6OkRl
dmljZUNvbnRyb2xsZXIoUGFnZSogcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCiti
b29sIERldmljZUNvbnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUpCit7CisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgaWYgKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0ZGV2aWNlcHJveGltaXR5RXZlbnQpCisgICAgICAg
IHJldHVybiB0cnVlOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIERldmlj
ZUNvbnRyb2xsZXI6OmFkZERldmljZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghbV9jbGllbnRzLmNvbnRh
aW5zKGV2ZW50VHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIExpc3RlbmVyc01h
cDo6aXRlcmF0b3IgaXRlciA9IG1fbGlzdGVuZXJzLmZpbmQoZXZlbnRUeXBlKTsKKyAgICBMaXN0
ZW5lcnNDb3VudGVkU2V0KiBsaXN0ZW5lcnM7CisgICAgaWYgKGl0ZXIgPT0gbV9saXN0ZW5lcnMu
ZW5kKCkpIHsKKyAgICAgICAgbV9jbGllbnRzLmZpbmQoZXZlbnRUeXBlKS0+c2Vjb25kLT5zdGFy
dFVwZGF0aW5nKCk7CisgICAgICAgIGxpc3RlbmVycyA9IG5ldyBMaXN0ZW5lcnNDb3VudGVkU2V0
KCk7CisgICAgICAgIG1fbGlzdGVuZXJzLmFkZChldmVudFR5cGUsIGxpc3RlbmVycyk7CisgICAg
fSBlbHNlCisgICAgICAgIGxpc3RlbmVycyA9IGl0ZXItPnNlY29uZDsKKworICAgIGxpc3RlbmVy
cy0+YWRkKHdpbmRvdyk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRGV2aWNlQ29udHJv
bGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFtX2NsaWVudHMuY29udGFpbnMo
ZXZlbnRUeXBlKSB8fCAhbV9saXN0ZW5lcnMuY29udGFpbnMoZXZlbnRUeXBlKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgTGlzdGVuZXJzQ291bnRlZFNldCogbGlzdGVuZXJzID0gbV9s
aXN0ZW5lcnMuZmluZChldmVudFR5cGUpLT5zZWNvbmQ7CisgICAgbGlzdGVuZXJzLT5yZW1vdmUo
d2luZG93KTsKKworICAgIGlmIChsaXN0ZW5lcnMtPmlzRW1wdHkoKSkgeworICAgICAgICBtX2xp
c3RlbmVycy5yZW1vdmUoZXZlbnRUeXBlKTsKKyAgICAgICAgZGVsZXRlIGxpc3RlbmVyczsKKyAg
ICAgICAgbV9jbGllbnRzLmZpbmQoZXZlbnRUeXBlKS0+c2Vjb25kLT5zdG9wVXBkYXRpbmcoKTsK
KyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpy
ZW1vdmVBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgTGlzdGVuZXJzTWFw
OjppdGVyYXRvciBpdGVyID0gbV9saXN0ZW5lcnMuYmVnaW4oKTsKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IG1fbGlzdGVuZXJzLnNpemUoKTsgKytpKSB7CisgICAgICAgIEF0b21pY1N0cmluZyBl
dmVudFR5cGUgPSBpdGVyLT5maXJzdDsKKyAgICAgICAgTGlzdGVuZXJzQ291bnRlZFNldCogbGlz
dGVuZXJzID0gaXRlci0+c2Vjb25kOworICAgICAgICBpZiAoIWxpc3RlbmVycy0+Y29udGFpbnMo
d2luZG93KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBsaXN0ZW5lcnMtPnJlbW92
ZUFsbCh3aW5kb3cpOworICAgICAgICBpZiAobGlzdGVuZXJzLT5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgICAgIG1fbGlzdGVuZXJzLnJlbW92ZShldmVudFR5cGUpOworICAgICAgICAgICAgZGVsZXRl
IGxpc3RlbmVyczsKKyAgICAgICAgICAgIG1fY2xpZW50cy5maW5kKGV2ZW50VHlwZSktPnNlY29u
ZC0+c3RvcFVwZGF0aW5nKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgRGV2aWNlQ29u
dHJvbGxlcjo6YWRkRGV2aWNlQ2xpZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQ
YXNzUmVmUHRyPERldmljZUNsaWVudD4gY2xpZW50KQoreworICAgIG1fY2xpZW50cy5hZGQoZXZl
bnRUeXBlLCBjbGllbnQpOworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGVp
dmNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gcHJwRXZlbnQpCit7CisgICAgUmVmUHRyPEV2ZW50
PiBldmVudCA9IHBycEV2ZW50OworICAgIGlmICghbV9saXN0ZW5lcnMuY29udGFpbnMoZXZlbnQt
PnR5cGUoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxSZWZQdHI8RE9NV2luZG93
PiA+IGxpc3RlbmVyczsKKyAgICBMaXN0ZW5lcnNDb3VudGVkU2V0KiBsaXN0ZW5lcnNTZXQgPSBt
X2xpc3RlbmVycy5maW5kKGV2ZW50LT50eXBlKCkpLT5zZWNvbmQ7CisgICAgY29weVRvVmVjdG9y
KCpsaXN0ZW5lcnNTZXQsIGxpc3RlbmVycyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0ZW5lcnMuc2l6ZSgpOyArK2kpCisgICAgICAgIGlmICghbGlzdGVuZXJzW2ldLT5kb2N1bWVu
dCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkpCisgICAgICAgICAgICBsaXN0ZW5l
cnNbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjY1OGI4NTU4
YzEzNTI2OGFiMjliOWQyMGYwZWEyMTk0NTQ3OWMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDU3IEBACisvKgorICog
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZUNvbnRyb2xsZXJfaAorI2RlZmluZSBEZXZp
Y2VDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRldmlj
ZUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRT
ZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEZXZpY2VDb250cm9sbGVyIHsK
K3B1YmxpYzoKKyAgICB+RGV2aWNlQ29udHJvbGxlcigpIHsgfTsKKworICAgIHN0YXRpYyBQYXNz
T3duUHRyPERldmljZUNvbnRyb2xsZXI+IGNyZWF0ZShQYWdlKik7CisgICAgc3RhdGljIGJvb2wg
aXNEZXZpY2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CisKKyAgICBib29s
IGFkZERldmljZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERP
TVdpbmRvdyopOworICAgIGJvb2wgcmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1vdmVBbGxMaXN0
ZW5lcnMoRE9NV2luZG93Kik7CisKKyAgICB2b2lkIGFkZERldmljZUNsaWVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxEZXZpY2VDbGllbnQ+KTsKKyAgICB2b2lk
IGRpc3BhdGNoRGVpdmNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworCitwcml2YXRlOgorICAg
IERldmljZUNvbnRyb2xsZXIoUGFnZSopOworCisgICAgUGFnZSogbV9wYWdlOworICAgIHR5cGVk
ZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFJlZlB0cjxEZXZpY2VDbGllbnQ+ID4gRGV2aWNlQ2xp
ZW50TWFwOworICAgIERldmljZUNsaWVudE1hcCBtX2NsaWVudHM7CisgICAgdHlwZWRlZiBIYXNo
Q291bnRlZFNldDxSZWZQdHI8RE9NV2luZG93PiA+IExpc3RlbmVyc0NvdW50ZWRTZXQ7CisgICAg
dHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgTGlzdGVuZXJzQ291bnRlZFNldCo+IExpc3Rl
bmVyc01hcDsKKyAgICBMaXN0ZW5lcnNNYXAgbV9saXN0ZW5lcnM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAppbmRleCAyNTdmOGYyMzQ2ZGE4NWJiZjJkOGYzZGRiYzY5OGM1NGQzOGM4
MTQ1Li5kMzBkZTg5MDZlNTEyYTgzM2VmNTE2Y2Q5MjAyMjc5ZWY2N2U0NzQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5oIgogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2VDYWxsYmFjay5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJE
ZXZpY2VNb3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTE1ODUsNiArMTU4NiwxMiBAQCBi
b29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAgIH0KICNlbmRpZgogCisgICAgaWYgKERldmljZUNv
bnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQoZXZlbnRUeXBlKSkgeworICAgICAgICBpZiAocGFnZSgp
KQorICAgICAgICAgICAgcmV0dXJuIHBhZ2UoKS0+ZGV2aWNlQ29udHJvbGxlcigpLT5hZGREZXZp
Y2VFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgdGhpcyk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTYxNCw2ICsxNjIxLDEyIEBAIGJv
b2wgRE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBFdmVudExpc3RlbmVyCiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAoRGV2aWNlQ29u
dHJvbGxlcjo6aXNEZXZpY2VFdmVudChldmVudFR5cGUpKSB7CisgICAgICAgIGlmIChwYWdlKCkp
CisgICAgICAgICAgICByZXR1cm4gcGFnZSgpLT5kZXZpY2VDb250cm9sbGVyKCktPnJlbW92ZURl
dmljZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNjY5LDYgKzE2ODIsOCBAQCB2
b2lkIERPTVdpbmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKQogICAgIGlmIChEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXI6OmZyb20ocGFnZSgpKSkKICAgICAgICAgY29udHJvbGxlci0+cmVtb3ZlQWxsTGlzdGVu
ZXJzKHRoaXMpOwogI2VuZGlmCisgICAgaWYgKHBhZ2UoKSkKKyAgICAgICAgcGFnZSgpLT5kZXZp
Y2VDb250cm9sbGVyKCktPnJlbW92ZUFsbExpc3RlbmVycyh0aGlzKTsKIAogICAgIHJlbW92ZUFs
bFVubG9hZEV2ZW50TGlzdGVuZXJzKHRoaXMpOwogICAgIHJlbW92ZUFsbEJlZm9yZVVubG9hZEV2
ZW50TGlzdGVuZXJzKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggOGM3MGY3ODU0YzU1NmI4
ZTlhNTIyNzQxNGQyNDBjYWYwZWNhYzA5Mi4uNzRlZTQ3NzgwZDA5ODQ1Y2ViYzg3OTZjNDU1Yjcy
NzZiMGE1YTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0Nv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKQEAgLTExNCw2ICsxMTUsNyBA
QCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcihGcmFtZSogZnJhbWUpCiAKIFBhZ2U6OlBhZ2UoUGFn
ZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogICAgIDogbV9jaHJvbWUoQ2hyb21lOjpjcmVhdGUodGhp
cywgcGFnZUNsaWVudHMuY2hyb21lQ2xpZW50KSkKKyAgICAsIG1fZGV2aWNlQ29udHJvbGxlcihE
ZXZpY2VDb250cm9sbGVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX2RyYWdDYXJldENvbnRyb2xs
ZXIoRHJhZ0NhcmV0Q29udHJvbGxlcjo6Y3JlYXRlKCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICAsIG1fZHJhZ0NvbnRyb2xsZXIoRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBw
YWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZjhiMDI2ZjczY2Q4NTAw
ODg0YzcyZGE0YjYyOWRlMTEzMDM4MGVlNC4uMjlhNGMxNDdkMTBiNzIxMWExODkxNjZiMzUzMTNj
YWI5ZTU3ZDgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlcjsKICNlbmRpZgogICAgIGNs
YXNzIERvY3VtZW50OworICAgIGNsYXNzIERldmljZUNvbnRyb2xsZXI7CiAgICAgY2xhc3MgRHJh
Z0NhcmV0Q29udHJvbGxlcjsKICAgICBjbGFzcyBEcmFnQ2xpZW50OwogICAgIGNsYXNzIERyYWdD
b250cm9sbGVyOwpAQCAtMTcxLDYgKzE3Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgaW50IGZyYW1lQ291bnQoKSBjb25zdCB7IGNoZWNrRnJhbWVDb3VudENvbnNpc3RlbmN5KCk7
IHJldHVybiBtX2ZyYW1lQ291bnQ7IH0KIAogICAgICAgICBDaHJvbWUqIGNocm9tZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hyb21lLmdldCgpOyB9CisgICAgICAgIERldmljZUNvbnRyb2xsZXIqIGRl
dmljZUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2RldmljZUNvbnRyb2xsZXIuZ2V0KCk7
IH0KICAgICAgICAgRHJhZ0NhcmV0Q29udHJvbGxlciogZHJhZ0NhcmV0Q29udHJvbGxlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZHJhZ0NhcmV0Q29udHJvbGxlci5nZXQoKTsgfQogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCiAgICAgICAgIERyYWdDb250cm9sbGVyKiBkcmFnQ29udHJvbGxlcigpIGNv
bnN0IHsgcmV0dXJuIG1fZHJhZ0NvbnRyb2xsZXIuZ2V0KCk7IH0KQEAgLTM2OCw2ICszNzAsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZh
bCgpIGNvbnN0OwogCiAgICAgICAgIE93blB0cjxDaHJvbWU+IG1fY2hyb21lOworICAgICAgICBP
d25QdHI8RGV2aWNlQ29udHJvbGxlcj4gbV9kZXZpY2VDb250cm9sbGVyOwogICAgICAgICBPd25Q
dHI8RHJhZ0NhcmV0Q29udHJvbGxlcj4gbV9kcmFnQ2FyZXRDb250cm9sbGVyOwogCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBm
ZTA0OGMwNDUwYWMzYjAxZmQxNzg1ZjA5MGEwMjc3YTRiZTJiMmRmLi5kZDEyN2U1ZDUzMjk5ODE3
MTQzOWVmOGE1MTI4Y2I4NzFlNGMxMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNs
dWRlICJDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJET01TdHJpbmdMaXN0
LmgiCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuaCIKQEAgLTkzLDYgKzk0LDEwIEBACiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisjaW5jbHVkZSAiRGV2aWNl
UHJveGltaXR5RXZlbnQuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAjaW5j
bHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9ucy5oIgpA
QCAtOTk1LDYgKzEwMDAsMjIgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE5ldHdvcmtJbmZvcm1hdGlv
bihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZXZlbnRUeXAKICNlbmRpZgogfQog
Cit2b2lkIEludGVybmFsczo6c2V0UHJveGltaXR5KERvY3VtZW50KiBkb2N1bWVudCwgZG91Ymxl
IHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5BQkxFKFBS
T1hJTUlUWV9FVkVOVFMpCisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+ZGV2aWNlQ29udHJvbGxlcigp
LT5kaXNwYXRjaERlaXZjZUV2ZW50KERldmljZVByb3hpbWl0eUV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLndlYmtpdGRldmljZXByb3hpbWl0eUV2ZW50LCB2YWx1ZSwgbWluLCBtYXgpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0obWluKTsKKyAg
ICBVTlVTRURfUEFSQU0obWF4KTsKKyNlbmRpZgorfQorCiBib29sIEludGVybmFsczo6aGFzU3Bl
bGxpbmdNYXJrZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgZnJvbSwgaW50IGxlbmd0aCwgRXhj
ZXB0aW9uQ29kZSYpCiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBiOGI1MDRmNDhlMGQxZjJiYWRkN2Jh
MDMwY2FiMjA5OGY1MWMyZTAzLi4yZWI5YTc3NGVhMjNmODFiYTc2NjlmN2QyM2JiOTMwYWEwZDQy
OWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE4MCw2ICsxODAsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldE5ldHdvcmtJbmZvcm1hdGlvbihEb2N1bWVudCosIGNvbnN0
IFN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgYmFuZHdpZHRoLCBib29sIG1ldGVyZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0UHJveGltaXR5KERvY3VtZW50KiwgZG91YmxlIHZh
bHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBFeGNlcHRpb25Db2RlJik7CisKICAgICB2b2lk
IHN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAg
IHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGZlZDIyMGQxNTViOTI4YmMw
NzJhM2MxMzUwODNmMTNhYmE1ZDc0YTYuLjAxYWI5MTA0N2VhZTkzOGJkMWU4MjZiNWFmMTI1ODcz
YWQ4YzYxM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE2Nyw2ICsx
NjcsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0TmV0d29ya0luZm9ybWF0
aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBET01TdHJpbmcgZXZlbnRUeXBlLCBpbiBkb3Vi
bGUgYmFuZHdpZHRoLCBpbiBib29sZWFuIG1ldGVyZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
ICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJiYgRU5BQkxF
X1BST1hJTUlUWV9FVkVOVFMKKyAgICAgICAgdm9pZCBzZXRQcm94aW1pdHkoaW4gRG9jdW1lbnQg
ZG9jdW1lbnQsIGluIGRvdWJsZSB2YWx1ZSwgaW4gZG91YmxlIG1pbiwgaW4gZG91YmxlIG1heCkg
cmFpc2VzIChET01FeGNlcHRpb24pOworI2VuZGlmCisKICAgICAgICAgW0NvbmRpdGlvbmFsPUlO
U1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVOb2RlcygpOwogICAgICAgICBbQ29u
ZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZURvY3VtZW50cygp
OwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSBzZXF1ZW5jZTxTdHJpbmc+IGNvbnNv
bGVNZXNzYWdlQXJndW1lbnRDb3VudHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFm
MTA5YjlkNGRkYjJkNTU5Y2Y0ZTZjMjhiOGQ1ZDg0YzA2Yzg0M2UuLjMzYTkzNzg1ZmRlNTMwMTMy
ZjgwOTA1MGUzNzNkNjhhZjNlMzY2MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wOC0x
NyAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBBZGQg
RGV2aWNlQ29udHJvbGxlciB0byBzdXBwb3J0IERPTVdpbmRvdyBkZXZpY2UgZXZlbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzU5NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3Ig
RGV2aWNlQ29udHJvbGxlci4KKyAgICAgICAgLSBiYXNpYyBldmVudCBvcGVyYXRpb24KKyAgICAg
ICAgLSBhZGQgZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgLSBldmVudCBhZnRlciBsZWF2aW5nIHRo
ZSBwYWdlCisgICAgICAgIC0gZXZlbnQgaW4gdGhlIG11bHRpcGxlIGZyYW1lcworICAgICAgICAt
IHJlbW92ZSBhbmQgcmUtYWRkIGV2ZW50IGxpc3RlbmVycworCisgICAgICAgICogZmFzdC9kb20v
UHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNr
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvYmFz
aWMtb3BlcmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9l
dmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3Jlc291cmNlcy9ldmVudC1hZnRl
ci1uYXZpZ2F0aW9uLW5ldy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1p
dHkvdXBkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hp
bWl0eS91cGRhdGVzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTE2ICBBZHJpZW5uZSBXYWxrZXIg
IDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZWJhc2VsaW5lIG1lZGlh
LWRvY3VtZW50LWF1ZGlvLXJlcGFpbnQgYWZ0ZXIgQ2hyb21pdW0gcjE1MTk4OApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxi
YWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlz
dGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRmOWFhMTRkNjhk
ZmJhMjI4NWUzNTgzNWQyODliOTJiNTVmYzgyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQgbGlz
dGVuZXIgZnJvbSBhIGNhbGxiYWNrIHdvcmtzIGFzIGV4cGVjdGVkLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4g
aXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQQVNT
IGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1MgZXZlbnQudmFsdWUg
aXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFj
ay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9t
LWNhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNjYjA1YTEzMWEzZTk0MDE5ZmRhYmE0Y2EzNTk3
MzZmZTBiMTE4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hp
bWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdU
ZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBldmVudCBsaXN0ZW5lciBmcm9tIGEgY2FsbGJhY2sgd29y
a3MgYXMgZXhwZWN0ZWQuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIg
bWF4ID0gMTAwOworCitmdW5jdGlvbiBjaGVja1Byb3hpbWl0eSgpIHsKKyAgICBzaG91bGRCZSgi
ZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwgIjAiKTsKKyAg
ICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworfQorCit2YXIgZmlyc3RMaXN0ZW5lckV2
ZW50cyA9IDA7CitmdW5jdGlvbiBmaXJzdExpc3RlbmVyKCkgeworICAgIGNoZWNrUHJveGltaXR5
KCk7CisgICAgaWYgKCsrZmlyc3RMaXN0ZW5lckV2ZW50cyA9PSAxKSB7CisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBzZWNvbmRMaXN0ZW5l
cik7CisgICAgICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBtaW4s
IG1heCk7CisgICAgfQorICAgIGVsc2UgaWYgKGZpcnN0TGlzdGVuZXJFdmVudHMgPiAyKQorICAg
ICAgICB0ZXN0RmFpbGVkKCdUb28gbWFueSBldmVudHMgZm9yIGZpcnN0IGxpc3RlbmVyLicpOwor
ICAgIG1heWJlRmluaXNoVGVzdCgpOworfQorCit2YXIgc2Vjb25kTGlzdGVuZXJFdmVudHMgPSAw
OworZnVuY3Rpb24gc2Vjb25kTGlzdGVuZXIoKSB7CisgICAgY2hlY2tQcm94aW1pdHkoKTsKKyAg
ICBpZiAoKytzZWNvbmRMaXN0ZW5lckV2ZW50cyA+IDEpCisgICAgICAgIHRlc3RGYWlsZWQoJ1Rv
byBtYW55IGV2ZW50cyBmb3Igc2Vjb25kIGxpc3RlbmVyLicpOworICAgIG1heWJlRmluaXNoVGVz
dCgpOworfQorCitmdW5jdGlvbiBtYXliZUZpbmlzaFRlc3QoKSB7CisgICAgaWYgKGZpcnN0TGlz
dGVuZXJFdmVudHMgPT0gMiAmJiBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9PSAxKQorICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmlj
ZXByb3hpbWl0eScsIGZpcnN0TGlzdGVuZXIpOworaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1
bWVudCwgdmFsdWUsIG1pbiwgbWF4KTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iYWYyNzY4YzE4YmJjYmQ0YWU0NjM3ZTU3YzM5YjI1ODgxN2RkM2UxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhlIGJhc2ljIG9wZXJhdGlvbiBv
ZiBQcm94aW1pdHkgRXZlbnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBp
cyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9u
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTQwYmU5ODMwN2Y5OWRlNzBmNjlmYzcwZWQ2ZWY3ZDMxYjZiYTI5
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNp
Yy1vcGVyYXRpb24uaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhlIGJhc2ljIG9wZXJh
dGlvbiBvZiBQcm94aW1pdHkgRXZlbnQuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1pbiA9
IDA7Cit2YXIgbWF4ID0gMTAwOworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2
aWNlcHJveGltaXR5JywgZnVuY3Rpb24oKSB7CisgICAgc2hvdWxkQmUoImV2ZW50LnZhbHVlIiwg
IjMwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICIwIik7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm1heCIsICIxMDAiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCitpbnRlcm5hbHMu
c2V0UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXIt
bmF2aWdhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU2YmMzOTgyNjc3N2IxODNlNGIw
ZmNiZWNjZTdlYzI2ZmQwZmQxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK1Rlc3RzIGZvciBhIGNyYXNoIHdoZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVy
IHRoZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRlZCBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2Ug
aXMgaW4gdGhlIHBhZ2UgY2FjaGUuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhmZmJiNmNiODc0YjQwYjNmMzJkMzFkNTU2YmUxNmIzMmRkZTdjMjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2
aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyBmb3IgYSBjcmFzaCB3aGVyZSBh
biBldmVudCBpcyBmaXJlZCBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBuYXZpZ2F0ZWQgYXdheSB3
aGVuIHRoZSBvcmlnaW5hbCBwYWdlIGlzIGluIHRoZSBwYWdlIGNhY2hlLicpOworCitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoJ1dlYktp
dFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5JywgMSk7CitlbHNlCisgICAgZGVidWcoJ1RoaXMg
dGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyJyk7CisKK2RvY3VtZW50
LmJvZHkub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J3dlYmtpdGRldmljZXByb3hpbWl0eScsIGZ1bmN0aW9uKCkgeyB9ICk7CisgICAgd2luZG93Lmxv
Y2F0aW9uID0gInJlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sIjsKK30K
Kword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlw
bGUtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9t
dWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZjU5MDZlMjM2ZWM4NDM0
NWE4NWM3NTRjMjIwNTEzNTY5YTYyZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE1IEBACitUZXN0cyB1c2luZyBQcm94aW1pdHkgRXZlbnQgZnJvbSBtdWx0aXBsZSBmcmFtZXMu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHJlc3VsdC52YWx1ZSBpcyAz
MAorUEFTUyByZXN1bHQubWluIGlzIDAKK1BBU1MgcmVzdWx0Lm1heCBpcyAxMDAKK1BBU1MgcmVz
dWx0LnZhbHVlIGlzIDMwCitQQVNTIHJlc3VsdC5taW4gaXMgMAorUEFTUyByZXN1bHQubWF4IGlz
IDEwMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFt
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZGRiYzdlMDhjMTFhMjcwNGU0ZjUwOWUwMTNhMGExZWI5OGQ3ODEy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRp
cGxlLWZyYW1lcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUZXN0cyB1c2luZyBQcm94aW1pdHkg
RXZlbnQgZnJvbSBtdWx0aXBsZSBmcmFtZXMuJyk7CisKK3ZhciB2YWx1ZSA9IDMwOwordmFyIG1p
biA9IDA7Cit2YXIgbWF4ID0gMTAwOwordmFyIHJlc3VsdDsKKworZnVuY3Rpb24gY2hlY2tQcm94
aW1pdHlFdmVudChwcm94aW1pdHlWYWx1ZSwgcHJveGltaXR5TWluLCBwcm94aW1pdHlNYXgpIHsK
KyAgICBzaG91bGRCZSgicmVzdWx0LnZhbHVlIiwgIjMwIik7CisgICAgc2hvdWxkQmUoInJlc3Vs
dC5taW4iLCAiMCIpOworICAgIHNob3VsZEJlKCJyZXN1bHQubWF4IiwgIjEwMCIpOworfQorCit2
YXIgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IGZhbHNlOworZnVuY3Rpb24gbWFpbkZyYW1lTGlz
dGVuZXIoKSB7CisgICAgaGFzTWFpbkZyYW1lRXZlbnRGaXJlZCA9IHRydWU7CisgICAgcmVzdWx0
ID0gZXZlbnQ7CisgICAgY2hlY2tQcm94aW1pdHlFdmVudCgpOworICAgIG1heWJlRmluaXNoVGVz
dCgpOworfQorCit2YXIgaGFzQ2hpbGRGcmFtZUV2ZW50RmlyZWQgPSBmYWxzZTsKK2Z1bmN0aW9u
IGNoaWxkRnJhbWVMaXN0ZW5lcigpIHsKKyAgICBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9IHRy
dWU7CisgICAgcmVzdWx0ID0gY2hpbGRGcmFtZS5jb250ZW50V2luZG93LmV2ZW50OworICAgIGNo
ZWNrUHJveGltaXR5RXZlbnQoKTsKKyAgICBtYXliZUZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rp
b24gbWF5YmVGaW5pc2hUZXN0KCkgeworICAgIGlmIChoYXNNYWluRnJhbWVFdmVudEZpcmVkICYm
IGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkKSB7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAg
IH0KK30KKwordmFyIGNoaWxkRnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUn
KTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY2hpbGRGcmFtZSk7CitjaGlsZEZyYW1lLmNv
bnRlbnRXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgY2hp
bGRGcmFtZUxpc3RlbmVyKTsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vw
cm94aW1pdHknLCBtYWluRnJhbWVMaXN0ZW5lcik7CisKK2ludGVybmFscy5zZXRQcm94aW1pdHko
ZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1uZXcu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi1uZXcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGI5YTE2NTc0NzExNGU1NjIwYWZl
ZjI2NWQzMGUyYWE2ZTQyMzU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vUHJveGltaXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sCkBA
IC0wLDAgKzEsMTMgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAg
ICBUZXN0cyBmb3IgYSBjcmFzaCB3aGVyZSBhbiBldmVudCBpcyBmaXJlZCBhZnRlciB0aGUgcGFn
ZSBoYXMgYmVlbiBuYXZpZ2F0ZWQKKyAgICBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2UgaXMg
aW4gdGhlIHBhZ2UgY2FjaGUuPGJyPjxicj4KKyAgICBTVUNDRVNTCisgICAgPHNjcmlwdD4KKyAg
ICAgICAgaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgMzAsIDAsIDEwMCk7CisgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIDwvc2NyaXB0PgorICA8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRl
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDBjOWM1N2VmMzYwMTdmNDNmMDZkMDQ5MjcxNGM5ZmRl
ZWE0NzIxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0
eS91cGRhdGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUZXN0cyB0aGF0IHVwZGF0
ZXMgdG8gdGhlIHByb3hpbWl0eSBldmVudCBjYXVzZXMgbmV3IGV2ZW50cyB0byBmaXJlLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFT
UyBldmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIGV2ZW50LnZhbHVl
IGlzIDEwMAorUEFTUyBldmVudC5taW4gaXMgLUluZmluaXR5CitQQVNTIGV2ZW50Lm1heCBpcyBJ
bmZpbml0eQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhkYzk2ZWYyODRmYTM4NjlhYWQ4ODIzNmFiNDUzMzA4OTI3YTVkNjQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy5odG1sCkBAIC0w
LDAgKzEsNDYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IHVwZGF0ZXMgdG8gdGhlIHByb3hpbWl0eSBldmVudCBj
YXVzZXMgbmV3IGV2ZW50cyB0byBmaXJlLicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBtaW4g
PSAwOwordmFyIG1heCA9IDEwMDsKKworZnVuY3Rpb24gY2hlY2tQcm94aW1pdHlFdmVudCgpIHsK
KyAgICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
bWluIiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworfQorCitmdW5j
dGlvbiBzZXRQcm94aW1pdHkoKSB7CisgICAgaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVu
dCwgdmFsdWUsIG1pbiwgbWF4KTsKK30KKworZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcigpIHsKKwlj
aGVja1Byb3hpbWl0eUV2ZW50KCk7CisgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dl
YmtpdGRldmljZXByb3hpbWl0eScsIGZpcnN0TGlzdGVuZXIpOworICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCB1cGRhdGVMaXN0ZW5lcik7CisgICAg
dmFsdWUgPSAxMDA7CisgICAgbWluID0gTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOworICAgIG1h
eCA9IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKKwlzZXRQcm94aW1pdHkoKTsKK30KKworZnVu
Y3Rpb24gdXBkYXRlTGlzdGVuZXIoZXZlbnQpIHsKKyAgICBzaG91bGRCZSgiZXZlbnQudmFsdWUi
LCAiMTAwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1pbiIsICItSW5maW5pdHkiKTsKKyAgICBz
aG91bGRCZSgiZXZlbnQubWF4IiwgIkluZmluaXR5Iik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmaXJz
dExpc3RlbmVyKTsKK3NldFByb3hpbWl0eSgpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="169289"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159329</attachid>
            <date>2012-08-19 22:03:48 -0700</date>
            <delta_ts>2012-08-20 01:29:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>deviceController.patch</filename>
            <type>text/plain</type>
            <size>38428</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlYzNjM2I3Li42ODM1MWZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDgt
MTkgIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQWRk
IERldmljZUNvbnRyb2xsZXIgdG8gc3VwcG9ydCBET01XaW5kb3cgZGV2aWNlIGV2ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1OTcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9y
IERldmljZUNvbnRyb2xsZXIuCisgICAgICAgIC0gYmFzaWMgZXZlbnQgb3BlcmF0aW9uCisgICAg
ICAgIC0gYWRkIGV2ZW50IGxpc3RlbmVyCisgICAgICAgIC0gZXZlbnQgYWZ0ZXIgbGVhdmluZyB0
aGUgcGFnZQorICAgICAgICAtIGV2ZW50IGluIHRoZSBtdWx0aXBsZSBmcmFtZXMKKyAgICAgICAg
LSByZW1vdmUgYW5kIHJlLWFkZCBldmVudCBsaXN0ZW5lcnMKKworICAgICAgICAqIGZhc3QvZG9t
L1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJvbS1jYWxsYmFj
ay5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0
aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2Jh
c2ljLW9wZXJhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkv
ZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0
ZXItbmF2aWdhdGlvbi1uZXcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGlt
aXR5L3VwZGF0ZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94
aW1pdHkvdXBkYXRlcy5odG1sOiBBZGRlZC4KKwogMjAxMi0wOC0xOSAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBET00gbXV0YXRpb24gYWdhaW5zdCBpbmNs
dWRpbmcgPGxpbms+IHNob3VsZG4ndCB0cmlnZ2VyIHBlbmRpbmcgSFRNTCBwYXJzZXIuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20t
Y2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Fk
ZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jNGY5YWExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE4IEBACitUZXN0cyB0aGF0IGFkZGluZyBhIG5ldyBldmVudCBsaXN0ZW5l
ciBmcm9tIGEgY2FsbGJhY2sgd29ya3MgYXMgZXhwZWN0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAw
CitQQVNTIGV2ZW50Lm1heCBpcyAxMDAKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BBU1MgZXZl
bnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBldmVudC52YWx1ZSBpcyAz
MAorUEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2Fs
bGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2NiMDVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0
ZW5lci1mcm9tLWNhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgYWRk
aW5nIGEgbmV3IGV2ZW50IGxpc3RlbmVyIGZyb20gYSBjYWxsYmFjayB3b3JrcyBhcyBleHBlY3Rl
ZC4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXggPSAxMDA7CisK
K2Z1bmN0aW9uIGNoZWNrUHJveGltaXR5KCkgeworICAgIHNob3VsZEJlKCJldmVudC52YWx1ZSIs
ICIzMCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiMCIpOworICAgIHNob3VsZEJlKCJl
dmVudC5tYXgiLCAiMTAwIik7Cit9CisKK3ZhciBmaXJzdExpc3RlbmVyRXZlbnRzID0gMDsKK2Z1
bmN0aW9uIGZpcnN0TGlzdGVuZXIoKSB7CisgICAgY2hlY2tQcm94aW1pdHkoKTsKKyAgICBpZiAo
KytmaXJzdExpc3RlbmVyRXZlbnRzID09IDEpIHsKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIHNlY29uZExpc3RlbmVyKTsKKyAgICAgICAg
aW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgdmFsdWUsIG1pbiwgbWF4KTsKKyAgICB9
CisgICAgZWxzZSBpZiAoZmlyc3RMaXN0ZW5lckV2ZW50cyA+IDIpCisgICAgICAgIHRlc3RGYWls
ZWQoJ1RvbyBtYW55IGV2ZW50cyBmb3IgZmlyc3QgbGlzdGVuZXIuJyk7CisgICAgbWF5YmVGaW5p
c2hUZXN0KCk7Cit9CisKK3ZhciBzZWNvbmRMaXN0ZW5lckV2ZW50cyA9IDA7CitmdW5jdGlvbiBz
ZWNvbmRMaXN0ZW5lcigpIHsKKyAgICBjaGVja1Byb3hpbWl0eSgpOworICAgIGlmICgrK3NlY29u
ZExpc3RlbmVyRXZlbnRzID4gMSkKKyAgICAgICAgdGVzdEZhaWxlZCgnVG9vIG1hbnkgZXZlbnRz
IGZvciBzZWNvbmQgbGlzdGVuZXIuJyk7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisKK2Z1
bmN0aW9uIG1heWJlRmluaXNoVGVzdCgpIHsKKyAgICBpZiAoZmlyc3RMaXN0ZW5lckV2ZW50cyA9
PSAyICYmIHNlY29uZExpc3RlbmVyRXZlbnRzID09IDEpCisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5Jywg
Zmlyc3RMaXN0ZW5lcik7CitpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwg
bWluLCBtYXgpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1p
dHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1By
b3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJhZjI3NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIFByb3hpbWl0eSBFdmVudC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BB
U1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi41NDBiZTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi5odG1sCkBAIC0wLDAgKzEsMjUg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUZXN0cyB0aGUgYmFzaWMgb3BlcmF0aW9uIG9mIFByb3hpbWl0eSBFdmVudC4nKTsKKwor
dmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXggPSAxMDA7CisKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmdW5jdGlvbigpIHsKKyAg
ICBzaG91bGRCZSgiZXZlbnQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWlu
IiwgIjAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWF4IiwgIjEwMCIpOworICAgIGZpbmlzaEpT
VGVzdCgpOworfSk7CisKK2ludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBt
aW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0
eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTZiYzM5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4gZXZl
bnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkIGF3YXkgd2hlbiB0
aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4KKworU1VDQ0VTUwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1hZnRlci1uYXZp
Z2F0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZmYmI2Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1h
ZnRlci1uYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBhIGNyYXNo
IHdoZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRl
ZCBhd2F5IHdoZW4gdGhlIG9yaWdpbmFsIHBhZ2UgaXMgaW4gdGhlIHBhZ2UgY2FjaGUuJyk7CisK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgnV2ViS2l0VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXknLCAxKTsKK2Vsc2UKKyAgICBkZWJ1
ZygnVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQgdGhlIHRlc3RSdW5uZXInKTsKKwor
ZG9jdW1lbnQuYm9keS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgZnVuY3Rpb24oKSB7IH0gKTsKKyAgICB3
aW5kb3cubG9jYXRpb24gPSAicmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0
bWwiOworfQorCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0
eS9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJv
eGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMmRmNTkwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTUgQEAKK1Rlc3RzIHVzaW5nIFByb3hpbWl0eSBFdmVudCBmcm9tIG11bHRpcGxlIGZyYW1lcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVzdWx0LnZhbHVlIGlzIDMw
CitQQVNTIHJlc3VsdC5taW4gaXMgMAorUEFTUyByZXN1bHQubWF4IGlzIDEwMAorUEFTUyByZXN1
bHQudmFsdWUgaXMgMzAKK1BBU1MgcmVzdWx0Lm1pbiBpcyAwCitQQVNTIHJlc3VsdC5tYXggaXMg
MTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1l
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkZGJjN2UKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVz
Lmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHVzaW5nIFByb3hpbWl0eSBFdmVudCBmcm9t
IG11bHRpcGxlIGZyYW1lcy4nKTsKKwordmFyIHZhbHVlID0gMzA7Cit2YXIgbWluID0gMDsKK3Zh
ciBtYXggPSAxMDA7Cit2YXIgcmVzdWx0OworCitmdW5jdGlvbiBjaGVja1Byb3hpbWl0eUV2ZW50
KHByb3hpbWl0eVZhbHVlLCBwcm94aW1pdHlNaW4sIHByb3hpbWl0eU1heCkgeworICAgIHNob3Vs
ZEJlKCJyZXN1bHQudmFsdWUiLCAiMzAiKTsKKyAgICBzaG91bGRCZSgicmVzdWx0Lm1pbiIsICIw
Iik7CisgICAgc2hvdWxkQmUoInJlc3VsdC5tYXgiLCAiMTAwIik7Cit9CisKK3ZhciBoYXNNYWlu
RnJhbWVFdmVudEZpcmVkID0gZmFsc2U7CitmdW5jdGlvbiBtYWluRnJhbWVMaXN0ZW5lcigpIHsK
KyAgICBoYXNNYWluRnJhbWVFdmVudEZpcmVkID0gdHJ1ZTsKKyAgICByZXN1bHQgPSBldmVudDsK
KyAgICBjaGVja1Byb3hpbWl0eUV2ZW50KCk7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7Cit9CisK
K3ZhciBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCA9IGZhbHNlOworZnVuY3Rpb24gY2hpbGRGcmFt
ZUxpc3RlbmVyKCkgeworICAgIGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSBjaGlsZEZyYW1lLmNvbnRlbnRXaW5kb3cuZXZlbnQ7CisgICAgY2hlY2tQcm94aW1p
dHlFdmVudCgpOworICAgIG1heWJlRmluaXNoVGVzdCgpOworfQorCitmdW5jdGlvbiBtYXliZUZp
bmlzaFRlc3QoKSB7CisgICAgaWYgKGhhc01haW5GcmFtZUV2ZW50RmlyZWQgJiYgaGFzQ2hpbGRG
cmFtZUV2ZW50RmlyZWQpIHsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfQorfQorCit2
YXIgY2hpbGRGcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChjaGlsZEZyYW1lKTsKK2NoaWxkRnJhbWUuY29udGVudFdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBjaGlsZEZyYW1lTGlz
dGVuZXIpOword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScs
IG1haW5GcmFtZUxpc3RlbmVyKTsKKworaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwg
dmFsdWUsIG1pbiwgbWF4KTsKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
UHJveGltaXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3Jlc291cmNlcy9ldmVudC1hZnRlci1uYXZpZ2F0
aW9uLW5ldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwYjlhMTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvcmVzb3Vy
Y2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPGh0
bWw+CisgIDxoZWFkPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIFRlc3RzIGZvciBhIGNyYXNo
IHdoZXJlIGFuIGV2ZW50IGlzIGZpcmVkIGFmdGVyIHRoZSBwYWdlIGhhcyBiZWVuIG5hdmlnYXRl
ZAorICAgIGF3YXkgd2hlbiB0aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS48
YnI+PGJyPgorICAgIFNVQ0NFU1MKKyAgICA8c2NyaXB0PgorICAgICAgICBpbnRlcm5hbHMuc2V0
UHJveGltaXR5KGRvY3VtZW50LCAzMCwgMCwgMTAwKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgPC9zY3JpcHQ+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS91cGRhdGVzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGM5YzU3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTUgQEAKK1Rlc3RzIHRoYXQgdXBkYXRlcyB0byB0aGUgcHJveGltaXR5IGV2ZW50IGNh
dXNlcyBuZXcgZXZlbnRzIHRvIGZpcmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50
Lm1heCBpcyAxMDAKK1BBU1MgZXZlbnQudmFsdWUgaXMgMTAwCitQQVNTIGV2ZW50Lm1pbiBpcyAt
SW5maW5pdHkKK1BBU1MgZXZlbnQubWF4IGlzIEluZmluaXR5CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1By
b3hpbWl0eS91cGRhdGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OGRjOTZlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0
eS91cGRhdGVzLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRoYXQgdXBkYXRlcyB0byB0
aGUgcHJveGltaXR5IGV2ZW50IGNhdXNlcyBuZXcgZXZlbnRzIHRvIGZpcmUuJyk7CisKK3ZhciB2
YWx1ZSA9IDMwOwordmFyIG1pbiA9IDA7Cit2YXIgbWF4ID0gMTAwOworCitmdW5jdGlvbiBjaGVj
a1Byb3hpbWl0eUV2ZW50KCkgeworICAgIHNob3VsZEJlKCJldmVudC52YWx1ZSIsICIzMCIpOwor
ICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiMCIpOworICAgIHNob3VsZEJlKCJldmVudC5tYXgi
LCAiMTAwIik7Cit9CisKK2Z1bmN0aW9uIHNldFByb3hpbWl0eSgpIHsKKyAgICBpbnRlcm5hbHMu
c2V0UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOworfQorCitmdW5jdGlvbiBm
aXJzdExpc3RlbmVyKCkgeworCWNoZWNrUHJveGltaXR5RXZlbnQoKTsKKyAgICB3aW5kb3cucmVt
b3ZlRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgZmlyc3RMaXN0ZW5lcik7
CisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIHVw
ZGF0ZUxpc3RlbmVyKTsKKyAgICB2YWx1ZSA9IDEwMDsKKyAgICBtaW4gPSBOdW1iZXIuTkVHQVRJ
VkVfSU5GSU5JVFk7CisgICAgbWF4ID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOworCXNldFBy
b3hpbWl0eSgpOworfQorCitmdW5jdGlvbiB1cGRhdGVMaXN0ZW5lcihldmVudCkgeworICAgIHNo
b3VsZEJlKCJldmVudC52YWx1ZSIsICIxMDAiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQubWluIiwg
Ii1JbmZpbml0eSIpOworICAgIHNob3VsZEJlKCJldmVudC5tYXgiLCAiSW5maW5pdHkiKTsKKyAg
ICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRl
dmljZXByb3hpbWl0eScsIGZpcnN0TGlzdGVuZXIpOworc2V0UHJveGltaXR5KCk7Cit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggMzY0MzY5Zi4uMjk2MjlhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTEwOTUsNiArMTA5NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vRGF0
YXNldERPTVN0cmluZ01hcC5jcHAKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKICAgICBk
b20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAKKyAgICBkb20vRGV2aWNlQ29udHJvbGxl
ci5jcHAKICAgICBkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAKICAgICBkb20vRGV2aWNl
TW90aW9uRGF0YS5jcHAKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNjZmZGNkMS4uNjEyODk1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2IEBACisyMDEyLTA4
LTE5ICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFk
ZCBEZXZpY2VDb250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNv
bnRyb2xsZXIgdG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAg
ICBEZXZpY2VDb250cm9sbGVyIGNvbnRyb2xzIGFsbCBraW5kIG9mIGRldmljZSBjbGllbnRzIGZv
ciBkZXZpY2UgZXZlbnRzIG9mIERPTVdpbmRvdy4KKyAgICAgICAgZS5nLikgUHJveGltaXR5IEV2
ZW50cywgRGV2aWNlIE9yaWVudGF0aW9uIEV2ZW50cywgRGV2aWNlIE1vdGlvbiBFdmVudHMuCisK
KyAgICAgICAgSW4gYWRkaXRpb24sIGFkZCBwcm94aW1pdHkgZXZlbnQgdG8gRGV2aWNlQ29udHJv
bGxlciwKKyAgICAgICAgQW5kIHNldFByb3hpbWl0eSgpIHRvIHRoZSBJbnRlcm5hbHMgY2xhc3Mg
Zm9yIHRlc3RpbmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlz
dGVuZXItZnJvbS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9Qcm94aW1p
dHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1Byb3hpbWl0
eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1By
b3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vUHJv
eGltaXR5L3VwZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRGV2aWNlQ2xpZW50Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDbGllbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZUNsaWVudDo6RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKiBkb20vRGV2aWNlQ29udHJv
bGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJv
bGxlcjo6RGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9s
bGVyOjppc0RldmljZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6
OmFkZERldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJv
bGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpyZW1vdmVBbGxMaXN0ZW5lcnMpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmlj
ZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGVpdmNlRXZlbnQpOgorICAgICAgICAqIGRvbS9EZXZpY2VD
b250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VD
b250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6On5EZXZpY2VD
b250cm9sbGVyKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZGV2aWNlQ29udHJvbGxl
cik6CisgICAgICAgIChQYWdlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFByb3hpbWl0eSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxz
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDgtMTkgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgRE9NIG11dGF0aW9uIGFn
YWluc3QgaW5jbHVkaW5nIDxsaW5rPiBzaG91bGRuJ3QgdHJpZ2dlciBwZW5kaW5nIEhUTUwgcGFy
c2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMmJjOTg3OS4uOWRmNTQ2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yNjY3LDYgKzI2NjcsOSBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZWNvZGVkRGF0YURvY3VtZW50
UGFyc2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNsaWVudC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxlci5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL2RvbS9EZXZpY2VDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VN
b3Rpb25DbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU1vdGlvbkNvbnRyb2xs
ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IGJmOTQzNzIuLmVlNzk4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzU4LDYg
KzM1OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwIFwKICAg
ICBkb20vQ3VzdG9tRXZlbnQuY3BwIFwKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNl
ci5jcHAgXAorICAgIGRvbS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCiAgICAgZG9tL0RldmljZU1v
dGlvbkNvbnRyb2xsZXIuY3BwIFwKICAgICBkb20vRGV2aWNlTW90aW9uRGF0YS5jcHAgXAogICAg
IGRvbS9EZXZpY2VNb3Rpb25FdmVudC5jcHAgXApAQCAtMTUwMSw2ICsxNTAyLDggQEAgSEVBREVS
UyArPSBcCiAgICAgZG9tL0NvbnRleHRGZWF0dXJlcy5oIFwKICAgICBkb20vQ3VzdG9tRXZlbnQu
aCBcCiAgICAgZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBcCisgICAg
ZG9tL0RldmljZUNsaWVudC5oIFwKKyAgICBkb20vRGV2aWNlQ29udHJvbGxlci5oIFwKICAgICBk
b20vRGV2aWNlTW90aW9uQ2xpZW50LmggXAogICAgIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVy
LmggXAogICAgIGRvbS9EZXZpY2VNb3Rpb25EYXRhLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDlj
ZjFkNzIuLjlhM2M3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUxNTMsNiArNTE1Myw5IEBACiAg
ICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9t
L0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRGVjb2Rl
ZERhdGFEb2N1bWVudFBhcnNlci5oJywKKyAgICAgICAgICAgICdkb20vRGV2aWNlQ2xpZW50Lmgn
LAorICAgICAgICAgICAgJ2RvbS9EZXZpY2VDb250cm9sbGVyLmNwcCcsCisgICAgICAgICAgICAn
ZG9tL0RldmljZUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU1vdGlvbkNs
aWVudC5oJywKICAgICAgICAgICAgICdkb20vRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmgnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA3N2FlYTFiLi4xZTRhOWQz
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NDk0NjIsNiArNDk0NjIsNjYgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEZWNvZGVkRGF0
YURvY3VtZW50UGFyc2VyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgPEZpbGUK
KyAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEZXZpY2VDbGllbnQuaCIKKyAg
ICAgICAgICAgICAgICA+CisgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICA8RmlsZQor
ICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cZG9tXERldmljZUNvbnRyb2xsZXIuY3Bw
IgorICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZpZ3VyYXRpb24K
KyAgICAgICAgICAgICAgICAgICAgTmFtZT0iRGVidWd8V2luMzIiCisgICAgICAgICAgICAgICAg
ICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAg
ICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwv
RmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IlJlbGVhc2V8V2luMzIiCisgICAgICAgICAgICAgICAg
ICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAgICAgICAgICAgICAgICAgICA+CisgICAg
ICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAgICAgICAgICAgICAgICBOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAgICAvPgorICAgICAgICAgICAgICAgIDwv
RmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgICAgPEZpbGVDb25maWd1cmF0aW9uCisg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKyAgICAg
ICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisgICAgICAgICAgICAgICAg
ICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAg
ICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8RmlsZUNvbmZp
Z3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCisgICAgICAgICAgICAgICAgICAgIEV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorICAg
ICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgIDxUb29sCisgICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorICAgICAgICAgICAgICAgICAg
ICAvPgorICAgICAgICAgICAgICAgIDwvRmlsZUNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAg
ICAgPEZpbGVDb25maWd1cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIE5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisg
ICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAgICAg
ICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAgICAg
ICAgICA8RmlsZUNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgTmFtZT0iUHJvZHVj
dGlvbnxXaW4zMiIKKyAgICAgICAgICAgICAgICAgICAgRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgPFRvb2wKKyAgICAg
ICAgICAgICAgICAgICAgICAgIE5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisgICAgICAgICAgICAg
ICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9GaWxlQ29uZmlndXJhdGlvbj4KKyAgICAgICAg
ICAgIDwvRmlsZT4KKyAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgUmVsYXRpdmVQ
YXRoPSIuLlxkb21cRGV2aWNlQ29udHJvbGxlci5oIgorICAgICAgICAgICAgICAgID4KKyAgICAg
ICAgICAgIDwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGV2aWNl
TW90aW9uQ2xpZW50LmgiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIzMjliN2YuLjBlMWUzZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4MjMs
NiArNTgyMyw5IEBACiAJCUNBRTlGOTBGMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRp
b1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsg
fTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2
NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggKi87IH07CiAJCUNBRTlGOTEw
MTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyog
Q1NTVmFyaWFibGVWYWx1ZS5oICovOyB9OworCQlDQzA2QTI2MDE1REY1NjFGMDA5RjA3MUUgLyog
RGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDQzA2QTI1RDE1REY1NjFGMDA5RjA3MUUgLyogRGV2aWNlQ2xpZW50LmggKi87IH07CisJ
CUNDMDZBMjYxMTVERjU2MUYwMDlGMDcxRSAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDMDZBMjVFMTVERjU2MUYw
MDlGMDcxRSAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJQ0MwNkEyNjIxNURGNTYx
RjAwOUYwNzFFIC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDMDZBMjVGMTVERjU2MUYwMDlGMDcxRSAvKiBEZXZpY2VD
b250cm9sbGVyLmggKi87IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDI3
RjZFNTE0NTc2ODVBMDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgy
MDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTEzMTE1LDYgKzEzMTE4LDkg
QEAKIAkJQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMy
NDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU0FzcGVjdFJhdGlvVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFyaWFibGVWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDQzA2QTI1RDE1REY1NjFGMDA5RjA3MUUgLyogRGV2aWNlQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDQzA2QTI1RTE1REY1NjFGMDA5RjA3MUUgLyog
RGV2aWNlQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBEZXZpY2VDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Mw
NkEyNUYxNURGNTYxRjAwOUYwNzFFIC8qIERldmljZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XaW5kb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUIxNEYz
MDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMjdGNkUwMTQ1NzVDMUIwMDc4MjA3RCAvKiBN
ZWRpYUNvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTUxMyw2ICsyMTUxOSw5IEBACiAJCQkJODFBQzVBRTkxMzE2
MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCAqLywKIAkJCQlBOEMyMjhB
MDExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAgKi8sCiAJ
CQkJQThDMjI4OUYxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIu
aCAqLywKKwkJCQlDQzA2QTI1RDE1REY1NjFGMDA5RjA3MUUgLyogRGV2aWNlQ2xpZW50LmggKi8s
CisJCQkJQ0MwNkEyNUUxNURGNTYxRjAwOUYwNzFFIC8qIERldmljZUNvbnRyb2xsZXIuY3BwICov
LAorCQkJCUNDMDZBMjVGMTVERjU2MUYwMDlGMDcxRSAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8s
CiAJCQkJMzFGQjFBNEYxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVudC5oICov
LAogCQkJCTMxRkIxQTUwMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVy
LmNwcCAqLywKIAkJCQkzMUZCMUE1MTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uQ29u
dHJvbGxlci5oICovLApAQCAtMjU0MjAsNiArMjU0MjksOCBAQAogCQkJCUUxQkU1MTJFMENGNkM1
MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0Uy
RTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNDMDZBMjYwMTVERjU2MUYwMDlGMDcxRSAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUNDMDZBMjYyMTVERjU2MUYwMDlGMDcxRSAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTI4NTAwLDYgKzI4NTExLDcgQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEy
MDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0Uy
RTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDQzA2QTI2MTE1REY1NjFGMDA5RjA3MUUgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IGJlN2JkMDcuLjRj
YzhkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNTIsNiArNTIsNyBAQAog
I2luY2x1ZGUgIkRPTVN0cmluZ01hcC5jcHAiCiAjaW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01h
cC5jcHAiCiAjaW5jbHVkZSAiRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAiCisjaW5jbHVk
ZSAiRGV2aWNlQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxl
ci5jcHAiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uRGF0YS5jcHAiCiAjaW5jbHVkZSAiRGV2aWNl
TW90aW9uRXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhY2QxZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGV2aWNlQ2xpZW50LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqICBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDbGllbnRfaAorI2RlZmluZSBEZXZpY2VDbGllbnRf
aAorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNsaWVudCA6IHB1Ymxp
YyBSZWZDb3VudGVkPERldmljZUNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmlj
ZUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKworcHJvdGVjdGVkOgorICAgIERl
dmljZUNsaWVudCgpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRGV2aWNlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDb250cm9sbGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjhhNWRhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEs
MTIwIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK1Bhc3NPd25QdHI8RGV2aWNlQ29udHJvbGxlcj4gRGV2aWNlQ29udHJvbGxlcjo6
Y3JlYXRlKFBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEZXZpY2VDb250
cm9sbGVyKHBhZ2UpKTsKK30KKworRGV2aWNlQ29udHJvbGxlcjo6RGV2aWNlQ29udHJvbGxlcihQ
YWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK2Jvb2wgRGV2aWNlQ29udHJv
bGxlcjo6aXNEZXZpY2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSkKK3sKKyNp
ZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS53ZWJraXRkZXZpY2Vwcm94aW1pdHlFdmVudCkKKyAgICAgICAgcmV0dXJuIHRydWU7Cisj
ZW5kaWYKKyAgICBVTlVTRURfUEFSQU0oZXZlbnRUeXBlKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgRGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaWYgKCFt
X2NsaWVudHMuY29udGFpbnMoZXZlbnRUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgTGlzdGVuZXJzTWFwOjppdGVyYXRvciBpdGVyID0gbV9saXN0ZW5lcnMuZmluZChldmVudFR5
cGUpOworICAgIExpc3RlbmVyc0NvdW50ZWRTZXQqIGxpc3RlbmVyczsKKyAgICBpZiAoaXRlciA9
PSBtX2xpc3RlbmVycy5lbmQoKSkgeworICAgICAgICBtX2NsaWVudHMuZmluZChldmVudFR5cGUp
LT5zZWNvbmQtPnN0YXJ0VXBkYXRpbmcoKTsKKyAgICAgICAgbGlzdGVuZXJzID0gbmV3IExpc3Rl
bmVyc0NvdW50ZWRTZXQoKTsKKyAgICAgICAgbV9saXN0ZW5lcnMuYWRkKGV2ZW50VHlwZSwgbGlz
dGVuZXJzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbGlzdGVuZXJzID0gaXRlci0+c2Vjb25kOwor
CisgICAgbGlzdGVuZXJzLT5hZGQod2luZG93KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9v
bCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fY2xp
ZW50cy5jb250YWlucyhldmVudFR5cGUpIHx8ICFtX2xpc3RlbmVycy5jb250YWlucyhldmVudFR5
cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMaXN0ZW5lcnNDb3VudGVkU2V0KiBs
aXN0ZW5lcnMgPSBtX2xpc3RlbmVycy5maW5kKGV2ZW50VHlwZSktPnNlY29uZDsKKyAgICBsaXN0
ZW5lcnMtPnJlbW92ZSh3aW5kb3cpOworCisgICAgaWYgKGxpc3RlbmVycy0+aXNFbXB0eSgpKSB7
CisgICAgICAgIG1fbGlzdGVuZXJzLnJlbW92ZShldmVudFR5cGUpOworICAgICAgICBkZWxldGUg
bGlzdGVuZXJzOworICAgICAgICBtX2NsaWVudHMuZmluZChldmVudFR5cGUpLT5zZWNvbmQtPnN0
b3BVcGRhdGluZygpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIERldmlj
ZUNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAg
ICBMaXN0ZW5lcnNNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2xpc3RlbmVycy5iZWdpbigpOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
QXRvbWljU3RyaW5nIGV2ZW50VHlwZSA9IGl0ZXItPmZpcnN0OworICAgICAgICBMaXN0ZW5lcnND
b3VudGVkU2V0KiBsaXN0ZW5lcnMgPSBpdGVyLT5zZWNvbmQ7CisgICAgICAgIGlmICghbGlzdGVu
ZXJzLT5jb250YWlucyh3aW5kb3cpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGxp
c3RlbmVycy0+cmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgICAgIGlmIChsaXN0ZW5lcnMtPmlzRW1w
dHkoKSkgeworICAgICAgICAgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGV2ZW50VHlwZSk7CisgICAg
ICAgICAgICBkZWxldGUgbGlzdGVuZXJzOworICAgICAgICAgICAgbV9jbGllbnRzLmZpbmQoZXZl
bnRUeXBlKS0+c2Vjb25kLT5zdG9wVXBkYXRpbmcoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwor
dm9pZCBEZXZpY2VDb250cm9sbGVyOjphZGREZXZpY2VDbGllbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RGV2aWNlQ2xpZW50PiBjbGllbnQpCit7CisgICAgbV9j
bGllbnRzLmFkZChldmVudFR5cGUsIGNsaWVudCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxl
cjo6ZGlzcGF0Y2hEZWl2Y2VFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBwcnBFdmVudCkKK3sKKyAg
ICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gcHJwRXZlbnQ7CisgICAgaWYgKCFtX2xpc3RlbmVycy5j
b250YWlucyhldmVudC0+dHlwZSgpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPFJl
ZlB0cjxET01XaW5kb3c+ID4gbGlzdGVuZXJzOworICAgIExpc3RlbmVyc0NvdW50ZWRTZXQqIGxp
c3RlbmVyc1NldCA9IG1fbGlzdGVuZXJzLmZpbmQoZXZlbnQtPnR5cGUoKSktPnNlY29uZDsKKyAg
ICBjb3B5VG9WZWN0b3IoKmxpc3RlbmVyc1NldCwgbGlzdGVuZXJzKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxpc3RlbmVycy5zaXplKCk7ICsraSkKKyAgICAgICAgaWYgKCFsaXN0ZW5l
cnNbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNBcmVTdXNwZW5kZWQoKSkKKyAgICAg
ICAgICAgIGxpc3RlbmVyc1tpXS0+ZGlzcGF0Y2hFdmVudChldmVudCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4YmU1OGEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5l
IERldmljZUNvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAi
RGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291
bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNvbnRyb2xs
ZXIgeworcHVibGljOgorICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9OworCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8RGV2aWNlQ29udHJvbGxlcj4gY3JlYXRlKFBhZ2UqKTsKKyAgICBzdGF0aWMg
Ym9vbCBpc0RldmljZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsKKworICAg
IGJvb2wgYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgRE9NV2luZG93Kik7CisgICAgYm9vbCByZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZUFs
bExpc3RlbmVycyhET01XaW5kb3cqKTsKKworICAgIHZvaWQgYWRkRGV2aWNlQ2xpZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPERldmljZUNsaWVudD4pOworICAg
IHZvaWQgZGlzcGF0Y2hEZWl2Y2VFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgRGV2aWNlQ29udHJvbGxlcihQYWdlKik7CisKKyAgICBQYWdlKiBtX3Bh
Z2U7CisgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgUmVmUHRyPERldmljZUNsaWVu
dD4gPiBEZXZpY2VDbGllbnRNYXA7CisgICAgRGV2aWNlQ2xpZW50TWFwIG1fY2xpZW50czsKKyAg
ICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFJlZlB0cjxET01XaW5kb3c+ID4gTGlzdGVuZXJzQ291
bnRlZFNldDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBMaXN0ZW5lcnNDb3Vu
dGVkU2V0Kj4gTGlzdGVuZXJzTWFwOworICAgIExpc3RlbmVyc01hcCBtX2xpc3RlbmVyczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZUNvbnRyb2xsZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDI1N2Y4ZjIuLmQzMGRlODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJET01X
aW5kb3dOb3RpZmljYXRpb25zLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJE
YXRhYmFzZUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTU4NSw2ICsxNTg2LDEy
IEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50CiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAoRGV2
aWNlQ29udHJvbGxlcjo6aXNEZXZpY2VFdmVudChldmVudFR5cGUpKSB7CisgICAgICAgIGlmIChw
YWdlKCkpCisgICAgICAgICAgICByZXR1cm4gcGFnZSgpLT5kZXZpY2VDb250cm9sbGVyKCktPmFk
ZERldmljZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xNjE0LDYgKzE2MjEsMTIg
QEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChEZXZp
Y2VDb250cm9sbGVyOjppc0RldmljZUV2ZW50KGV2ZW50VHlwZSkpIHsKKyAgICAgICAgaWYgKHBh
Z2UoKSkKKyAgICAgICAgICAgIHJldHVybiBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIoKS0+cmVt
b3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHRoaXMpOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE2NjksNiArMTY4Miw4
IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgaWYgKERl
dmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxM
aXN0ZW5lcnModGhpcyk7CiAjZW5kaWYKKyAgICBpZiAocGFnZSgpKQorICAgICAgICBwYWdlKCkt
PmRldmljZUNvbnRyb2xsZXIoKS0+cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwogCiAgICAgcmVt
b3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5s
b2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4YzcwZjc4Li43
NGVlNDc3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IkNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCkBAIC0xMTQsNiArMTE1LDcgQEAg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoRnJhbWUqIGZyYW1lKQogCiBQYWdlOjpQYWdlKFBhZ2VD
bGllbnRzJiBwYWdlQ2xpZW50cykKICAgICA6IG1fY2hyb21lKENocm9tZTo6Y3JlYXRlKHRoaXMs
IHBhZ2VDbGllbnRzLmNocm9tZUNsaWVudCkpCisgICAgLCBtX2RldmljZUNvbnRyb2xsZXIoRGV2
aWNlQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVy
KERyYWdDYXJldENvbnRyb2xsZXI6OmNyZWF0ZSgpKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQp
CiAgICAgLCBtX2RyYWdDb250cm9sbGVyKERyYWdDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFn
ZUNsaWVudHMuZHJhZ0NsaWVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGY4YjAyNmYuLjI5YTRjMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC01OSw2ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7CiAjZW5kaWYKICAgICBjbGFzcyBEb2N1bWVu
dDsKKyAgICBjbGFzcyBEZXZpY2VDb250cm9sbGVyOwogICAgIGNsYXNzIERyYWdDYXJldENvbnRy
b2xsZXI7CiAgICAgY2xhc3MgRHJhZ0NsaWVudDsKICAgICBjbGFzcyBEcmFnQ29udHJvbGxlcjsK
QEAgLTE3MSw2ICsxNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBmcmFt
ZUNvdW50KCkgY29uc3QgeyBjaGVja0ZyYW1lQ291bnRDb25zaXN0ZW5jeSgpOyByZXR1cm4gbV9m
cmFtZUNvdW50OyB9CiAKICAgICAgICAgQ2hyb21lKiBjaHJvbWUoKSBjb25zdCB7IHJldHVybiBt
X2Nocm9tZS5nZXQoKTsgfQorICAgICAgICBEZXZpY2VDb250cm9sbGVyKiBkZXZpY2VDb250cm9s
bGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VDb250cm9sbGVyLmdldCgpOyB9CiAgICAgICAg
IERyYWdDYXJldENvbnRyb2xsZXIqIGRyYWdDYXJldENvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX2RyYWdDYXJldENvbnRyb2xsZXIuZ2V0KCk7IH0KICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQogICAgICAgICBEcmFnQ29udHJvbGxlciogZHJhZ0NvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX2RyYWdDb250cm9sbGVyLmdldCgpOyB9CkBAIC0zNjgsNiArMzcwLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25zdDsK
IAogICAgICAgICBPd25QdHI8Q2hyb21lPiBtX2Nocm9tZTsKKyAgICAgICAgT3duUHRyPERldmlj
ZUNvbnRyb2xsZXI+IG1fZGV2aWNlQ29udHJvbGxlcjsKICAgICAgICAgT3duUHRyPERyYWdDYXJl
dENvbnRyb2xsZXI+IG1fZHJhZ0NhcmV0Q29udHJvbGxlcjsKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMTYxMmRmOC4uNmU0
YzIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmgiCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkRldmlj
ZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TWFya2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCkBAIC05Myw2
ICs5NCwxMCBAQAogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShQUk9YSU1JVFlfRVZFTlRTKQorI2luY2x1ZGUgIkRldmljZVByb3hpbWl0eUV2ZW50LmgiCisj
ZW5kaWYKKwogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlv
bi5oIgogI2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbnMuaCIKQEAgLTEwMzEsNiArMTAzNiwyMiBA
QCB2b2lkIEludGVybmFsczo6c2V0TmV0d29ya0luZm9ybWF0aW9uKERvY3VtZW50KiBkb2N1bWVu
dCwgY29uc3QgU3RyaW5nJiBldmVudFR5cAogI2VuZGlmCiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpz
ZXRQcm94aW1pdHkoRG9jdW1lbnQqIGRvY3VtZW50LCBkb3VibGUgdmFsdWUsIGRvdWJsZSBtaW4s
IGRvdWJsZSBtYXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZG9jdW1lbnQgfHwg
IWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyAg
ICBkb2N1bWVudC0+cGFnZSgpLT5kZXZpY2VDb250cm9sbGVyKCktPmRpc3BhdGNoRGVpdmNlRXZl
bnQoRGV2aWNlUHJveGltaXR5RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkud2Via2l0ZGV2aWNl
cHJveGltaXR5RXZlbnQsIHZhbHVlLCBtaW4sIG1heCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShtaW4pOworICAgIFVOVVNFRF9QQVJBTShtYXgp
OworI2VuZGlmCit9CisKIGJvb2wgSW50ZXJuYWxzOjpoYXNTcGVsbGluZ01hcmtlcihEb2N1bWVu
dCogZG9jdW1lbnQsIGludCBmcm9tLCBpbnQgbGVuZ3RoLCBFeGNlcHRpb25Db2RlJikKIHsKICAg
ICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCmluZGV4IGU5NDhkZGEuLjU4YmM1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMTgyLDYgKzE4Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TmV0d29y
a0luZm9ybWF0aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZSBi
YW5kd2lkdGgsIGJvb2wgbWV0ZXJlZCwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdm9pZCBzZXRQ
cm94aW1pdHkoRG9jdW1lbnQqLCBkb3VibGUgdmFsdWUsIGRvdWJsZSBtaW4sIGRvdWJsZSBtYXgs
IEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoRG9jdW1lbnQq
LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25zKERvY3Vt
ZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKaW5kZXggY2Q1YjQyYi4uYTFmYTE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtMTY5LDYgKzE2OSwxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9p
ZCBzZXROZXR3b3JrSW5mb3JtYXRpb24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIERPTVN0cmlu
ZyBldmVudFR5cGUsIGluIGRvdWJsZSBiYW5kd2lkdGgsIGluIGJvb2xlYW4gbWV0ZXJlZCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEVOQUJMRV9QUk9YSU1J
VFlfRVZFTlRTKSAmJiBFTkFCTEVfUFJPWElNSVRZX0VWRU5UUworICAgICAgICB2b2lkIHNldFBy
b3hpbWl0eShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZG91YmxlIHZhbHVlLCBpbiBkb3VibGUg
bWluLCBpbiBkb3VibGUgbWF4KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKKwogICAg
ICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZU5v
ZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVt
YmVyT2ZMaXZlRG9jdW1lbnRzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHNl
cXVlbmNlPFN0cmluZz4gY29uc29sZU1lc3NhZ2VBcmd1bWVudENvdW50cyhpbiBEb2N1bWVudCBk
b2N1bWVudCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159363</attachid>
            <date>2012-08-20 01:29:44 -0700</date>
            <delta_ts>2012-08-21 18:44:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120820172905.patch</filename>
            <type>text/plain</type>
            <size>37781</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNiZGIxNjhkNjEzYWE3
NGI4MWVmOWE2YWM0YmU1YmJlODJjMzU2OC4uOWRmZGE5ZjI0YjYxOGYyMjdlN2RjOWJjZDY1ZWU0
ZTZmNWY1YWZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDEyLTA4LTIwICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAgICBEZXZpY2VD
b250cm9sbGVyIGNvbnRyb2xzIGFsbCBraW5kIG9mIGRldmljZSBjbGllbnRzIGZvciBkZXZpY2Ug
ZXZlbnRzIG9mIERPTVdpbmRvdy4KKyAgICAgICAgZS5nLikgUHJveGltaXR5IEV2ZW50cywgRGV2
aWNlIE9yaWVudGF0aW9uIEV2ZW50cywgRGV2aWNlIE1vdGlvbiBFdmVudHMuCisKKyAgICAgICAg
SW4gYWRkaXRpb24sIGFkZCBwcm94aW1pdHkgZXZlbnQgdG8gRGV2aWNlQ29udHJvbGxlciwKKyAg
ICAgICAgQW5kIHNldFByb3hpbWl0eSgpIHRvIHRoZSBJbnRlcm5hbHMgY2xhc3MgZm9yIHRlc3Rp
bmcuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVuZXItZnJv
bS1jYWxsYmFjay5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9Qcm94aW1pdHkvYmFzaWMt
b3BlcmF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1Byb3hpbWl0eS9ldmVudC1h
ZnRlci1uYXZpZ2F0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1Byb3hpbWl0eS9t
dWx0aXBsZS1mcmFtZXMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vUHJveGltaXR5L3Vw
ZGF0ZXMuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjphZGRFdmVudExpc3RlbmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKToKKyAg
ICAgICAgKiBwYWdlL0RldmljZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoRGV2aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6
fkRldmljZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDbGllbnQ6OkRldmljZUNs
aWVudCk6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpEZXZpY2VDb250cm9sbGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5l
cik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFs
bExpc3RlbmVycyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjphZGREZXZp
Y2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hE
ZWl2Y2VFdmVudCk6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6On5EZXZpY2VDb250cm9sbGVyKToKKyAgICAgICAg
KiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAoUGFnZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQcm94aW1p
dHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoK
KyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CiAyMDEyLTA4LTE5ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbVjhdIE1vdmUgVjhQcm94eTo6Y2FsbEZ1bmN0aW9uKCkgdG8gU2NyaXB0Q29udHJvbGxl
cgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzNjQzNjlmYmVhMGRiNWM2YjUxMjI2ZjllZGIzOTQ1
MWIwOGNlNmJhLi42NjNjYTVlYWM5MWFkZWE5ZTUwOTMwYjk4OTBlMGM1ODA0NWVjMDJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtMTY2MSw2ICsxNjYxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvQ3J5cHRvLmNwcAorICAgIHBhZ2UvRGV2aWNlQ29u
dHJvbGxlci5jcHAKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKICAgICBwYWdl
L0RPTVNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMmJjOTg3OTdmMTdlODRhZDFkNzhiODUxOWJjZWJh
M2FiMTM5M2E2My4uNzBmYjVkYWE0NDJjZmFmZGJjNmE3NmEyMWYzYjM5ODg5ZGMyZGY3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zODk2LDYgKzM4OTYsOSBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0
by5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0Rl
dmljZUNvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2lu
Z0tleXMuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCBiZjk0MzcyYmM2ZWYwNzQ1MTBjMGVjZjRhZTAwOWUxYzllMzc4Zjc0Li5lNDUzMDli
ZTJiMWY2NDhlOGZiNzQyNzI4ZmM5NGY2MTcxMGIzZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg1NCw2
ICs4NTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5j
cHAgXAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9Dcnlw
dG8uY3BwIFwKKyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0RpYWdu
b3N0aWNMb2dnaW5nS2V5cy5jcHAgXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcCBcCiAgICAg
cGFnZS9ET01UaW1lci5jcHAgXApAQCAtMTk2MSw2ICsxOTYyLDggQEAgSEVBREVSUyArPSBcCiAg
ICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9Db250ZXh0TWVudVBy
b3ZpZGVyLmggXAogICAgIHBhZ2UvQ29vcmRpbmF0ZXMuaCBcCisgICAgcGFnZS9EZXZpY2VDbGll
bnQuaCBcCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogICAgIHBhZ2UvRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmggXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmggXAogICAgIHBhZ2UvRE9N
VGltZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjU3OWFjYjIzZTlkMmEwYzM2OWRmYTg4OTZi
OTgwNDM4NjQ2NzVlOC4uYjQ2Y2I4MzliMDlkNzIyYzc5ODAwZjhiNTkyZWQ2ZDAwYmQ3OGM3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzA1Nyw2ICszMDU3LDkgQEAKICAgICAgICAgICAgICdwYWdl
L0NvbnRleHRNZW51UHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uY3BwJywK
ICAgICAgICAgICAgICdwYWdlL0NyeXB0by5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNs
aWVudC5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwJywKKyAgICAg
ICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9EaWFn
bm9zdGljTG9nZ2luZ0tleXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dn
aW5nS2V5cy5oJywKICAgICAgICAgICAgICdwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc3YWVh
MWIyYzNlNDUwZDBhZjk4MzAyNWJlODk0YmE0ODc4ZmY2Y2QuLmUzMDQ0MjQ4YWUxZTlhYzRiZGNm
MjcxMDliNzgzMzBkMWY0ZGE0NTIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC0yNjg5NSw2ICsyNjg5NSwxOCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERl
dmljZUNvbnRyb2xsZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+
CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMzI5YjdmM2JmMGQ5YzVlZmY5MzIwZWJl
NmQxN2IxYjA1ZmY2OGZhLi5lOThmN2FmZjRlZTRkMTY1ODI4NTE4MjQwMThjNGY4YzZhYmRlMjg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01ODIzLDYgKzU4MjMsOSBAQAogCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyog
Q1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9W
YWx1ZS5jcHAgKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovOyB9
OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFG
MDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLzsgfTsKKwkJQ0MyNEQ2NDkxNUUyMTJF
OTAwNzlERDc5IC8qIERldmljZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNsaWVu
dC5oICovOyB9OworCQlDQzI0RDY0QTE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJvbGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQzI0
RDY0NzE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi87IH07CisJCUND
MjRENjRCMTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQzI0RDY0ODE1RTIxMkU5MDA3OURE
NzkgLyogRGV2aWNlQ29udHJvbGxlci5oICovOyB9OwogCQlDRDEyN0RFRDE0RjMwOTdEMDBFODQ3
NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29y
ZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi87IH07CiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAv
KiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUy
MTQ1NzY3NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xMzEx
NSw2ICsxMzExOCw5IEBACiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RS
YXRpb1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Fz
cGVjdFJhdGlvVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5Rjkw
RTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhcmlhYmxlVmFsdWUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5
IC8qIERldmljZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZp
Y2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDcxNUUyMTJF
OTAwNzlERDc5IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNDMjRENjQ4MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdl
YkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI3RjZFMDE0NTc1QzFC
MDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3MDAsNiArMTU3MDYsOSBAQAogCQkJ
CTk3NUNBMjg3MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uY3BwICovLAogCQkJCTk3NUNBMjg4
MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaCAqLywKIAkJCQk5NzVDQTI4OTEzMDM2NUY4MDBF
OTlBRDkgLyogQ3J5cHRvLmlkbCAqLywKKwkJCQlDQzI0RDY0NjE1RTIxMkU5MDA3OURENzkgLyog
RGV2aWNlQ2xpZW50LmggKi8sCisJCQkJQ0MyNEQ2NDcxNUUyMTJFOTAwNzlERDc5IC8qIERldmlj
ZUNvbnRyb2xsZXIuY3BwICovLAorCQkJCUNDMjRENjQ4MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZp
Y2VDb250cm9sbGVyLmggKi8sCiAJCQkJQ0QzN0IzNzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdu
b3N0aWNMb2dnaW5nS2V5cy5jcHAgKi8sCiAJCQkJQ0QzN0IzNzUxNUMxQTdFMTAwNkRDODk4IC8q
IERpYWdub3N0aWNMb2dnaW5nS2V5cy5oICovLAogCQkJCTJEOUEyNDZBMTVCOUJCREQwMEQzNDUy
NyAvKiBET01TZWN1cml0eVBvbGljeS5jcHAgKi8sCkBAIC0yNTQyMCw2ICsyNTQyOSw4IEBACiAJ
CQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQ0MyNEQ2NDkxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0MyNEQ2NEIxNUUyMTJFOTAwNzlERDc5IC8qIERldmlj
ZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg1MDAsNiArMjg1MTEsNyBAQAogCQkJ
CUUxQkU1MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNDMjRENjRBMTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmlu
ZGV4IDI1N2Y4ZjIzNDZkYTg1YmJmMmQ4ZjNkZGJjNjk4YzU0ZDM4YzgxNDUuLmQzMGRlODkwNmU1
MTJhODMzZWY1MTZjZDkyMDIyNzllZjY3ZTQ3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJET01XaW5kb3dOb3RpZmljYXRpb25zLmgi
CiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZUNhbGxiYWNrLmgiCisj
aW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtMTU4NSw2ICsxNTg2LDEyIEBAIGJvb2wgRE9NV2luZG93Ojph
ZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRy
PEV2ZW50CiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAoRGV2aWNlQ29udHJvbGxlcjo6aXNEZXZp
Y2VFdmVudChldmVudFR5cGUpKSB7CisgICAgICAgIGlmIChwYWdlKCkpCisgICAgICAgICAgICBy
ZXR1cm4gcGFnZSgpLT5kZXZpY2VDb250cm9sbGVyKCktPmFkZERldmljZUV2ZW50TGlzdGVuZXIo
ZXZlbnRUeXBlLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0xNjE0LDYgKzE2MjEsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJl
bW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlz
dGVuZXIKICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChEZXZpY2VDb250cm9sbGVyOjppc0Rldmlj
ZUV2ZW50KGV2ZW50VHlwZSkpIHsKKyAgICAgICAgaWYgKHBhZ2UoKSkKKyAgICAgICAgICAgIHJl
dHVybiBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIoKS0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5l
cihldmVudFR5cGUsIHRoaXMpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTE2NjksNiArMTY4Miw4IEBAIHZvaWQgRE9NV2luZG93Ojpy
ZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJv
bGxlciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdl
KCkpKQogICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CiAjZW5k
aWYKKyAgICBpZiAocGFnZSgpKQorICAgICAgICBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIoKS0+
cmVtb3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0
ZW5lcnModGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWNkMWVmZGZmYjNk
M2ZmMjExYjM5NTM2M2I0NjdmOWM5ODdlY2YxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogIENvcHly
aWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaWZuZGVmIERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmljZUNsaWVudF9o
CisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ2xpZW50IDogcHVibGlj
IFJlZkNvdW50ZWQ8RGV2aWNlQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2aWNl
Q2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgRGV2
aWNlQ2xpZW50KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBEZXZpY2VDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTI4YTVkYTJhNWYwMjZkZjIwYzk5ZmVmMWQzOTRlODUyYWY2ZWYyOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAK
QEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJEZXZpY2VDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJEZXZpY2VD
bGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc093blB0cjxEZXZpY2VDb250cm9sbGVyPiBEZXZpY2VD
b250cm9sbGVyOjpjcmVhdGUoUGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3
IERldmljZUNvbnRyb2xsZXIocGFnZSkpOworfQorCitEZXZpY2VDb250cm9sbGVyOjpEZXZpY2VD
b250cm9sbGVyKFBhZ2UqIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworYm9vbCBE
ZXZpY2VDb250cm9sbGVyOjppc0RldmljZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlKQoreworI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorICAgIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLndlYmtpdGRldmljZXByb3hpbWl0eUV2ZW50KQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyNlbmRpZgorICAgIFVOVVNFRF9QQVJBTShldmVudFR5cGUpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBEZXZpY2VDb250cm9sbGVyOjphZGREZXZpY2VFdmVudExpc3Rl
bmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqIHdpbmRvdykKK3sK
KyAgICBpZiAoIW1fY2xpZW50cy5jb250YWlucyhldmVudFR5cGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBMaXN0ZW5lcnNNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2xpc3RlbmVycy5m
aW5kKGV2ZW50VHlwZSk7CisgICAgTGlzdGVuZXJzQ291bnRlZFNldCogbGlzdGVuZXJzOworICAg
IGlmIChpdGVyID09IG1fbGlzdGVuZXJzLmVuZCgpKSB7CisgICAgICAgIG1fY2xpZW50cy5maW5k
KGV2ZW50VHlwZSktPnNlY29uZC0+c3RhcnRVcGRhdGluZygpOworICAgICAgICBsaXN0ZW5lcnMg
PSBuZXcgTGlzdGVuZXJzQ291bnRlZFNldCgpOworICAgICAgICBtX2xpc3RlbmVycy5hZGQoZXZl
bnRUeXBlLCBsaXN0ZW5lcnMpOworICAgIH0gZWxzZQorICAgICAgICBsaXN0ZW5lcnMgPSBpdGVy
LT5zZWNvbmQ7CisKKyAgICBsaXN0ZW5lcnMtPmFkZCh3aW5kb3cpOworICAgIHJldHVybiB0cnVl
OworfQorCitib29sIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogd2luZG93KQoreworICAg
IGlmICghbV9jbGllbnRzLmNvbnRhaW5zKGV2ZW50VHlwZSkgfHwgIW1fbGlzdGVuZXJzLmNvbnRh
aW5zKGV2ZW50VHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIExpc3RlbmVyc0Nv
dW50ZWRTZXQqIGxpc3RlbmVycyA9IG1fbGlzdGVuZXJzLmZpbmQoZXZlbnRUeXBlKS0+c2Vjb25k
OworICAgIGxpc3RlbmVycy0+cmVtb3ZlKHdpbmRvdyk7CisKKyAgICBpZiAobGlzdGVuZXJzLT5p
c0VtcHR5KCkpIHsKKyAgICAgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGV2ZW50VHlwZSk7CisgICAg
ICAgIGRlbGV0ZSBsaXN0ZW5lcnM7CisgICAgICAgIG1fY2xpZW50cy5maW5kKGV2ZW50VHlwZSkt
PnNlY29uZC0+c3RvcFVwZGF0aW5nKCk7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsTGlzdGVuZXJzKERPTVdpbmRvdyogd2lu
ZG93KQoreworICAgIExpc3RlbmVyc01hcDo6aXRlcmF0b3IgaXRlciA9IG1fbGlzdGVuZXJzLmJl
Z2luKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBtX2xpc3RlbmVycy5zaXplKCk7ICsraSkg
eworICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlID0gaXRlci0+Zmlyc3Q7CisgICAgICAg
IExpc3RlbmVyc0NvdW50ZWRTZXQqIGxpc3RlbmVycyA9IGl0ZXItPnNlY29uZDsKKyAgICAgICAg
aWYgKCFsaXN0ZW5lcnMtPmNvbnRhaW5zKHdpbmRvdykpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgbGlzdGVuZXJzLT5yZW1vdmVBbGwod2luZG93KTsKKyAgICAgICAgaWYgKGxpc3Rl
bmVycy0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBtX2xpc3RlbmVycy5yZW1vdmUoZXZlbnRU
eXBlKTsKKyAgICAgICAgICAgIGRlbGV0ZSBsaXN0ZW5lcnM7CisgICAgICAgICAgICBtX2NsaWVu
dHMuZmluZChldmVudFR5cGUpLT5zZWNvbmQtPnN0b3BVcGRhdGluZygpOworICAgICAgICB9Cisg
ICAgfQorfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmFkZERldmljZUNsaWVudChjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxEZXZpY2VDbGllbnQ+IGNsaWVudCkK
K3sKKyAgICBtX2NsaWVudHMuYWRkKGV2ZW50VHlwZSwgY2xpZW50KTsKK30KKwordm9pZCBEZXZp
Y2VDb250cm9sbGVyOjpkaXNwYXRjaERlaXZjZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IHBycEV2
ZW50KQoreworICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBwcnBFdmVudDsKKyAgICBpZiAoIW1f
bGlzdGVuZXJzLmNvbnRhaW5zKGV2ZW50LT50eXBlKCkpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnM7CisgICAgTGlzdGVuZXJzQ291
bnRlZFNldCogbGlzdGVuZXJzU2V0ID0gbV9saXN0ZW5lcnMuZmluZChldmVudC0+dHlwZSgpKS0+
c2Vjb25kOworICAgIGNvcHlUb1ZlY3RvcigqbGlzdGVuZXJzU2V0LCBsaXN0ZW5lcnMpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzLnNpemUoKTsgKytpKQorICAgICAgICBp
ZiAoIWxpc3RlbmVyc1tpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRl
ZCgpKQorICAgICAgICAgICAgbGlzdGVuZXJzW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZXZpY2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xs
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45OGJlNThhZTAyOTliNmQ1NjIyMmRhMmQ5MzI0NDZlMjIzMjE4Mzg5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVy
LmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBEZXZp
Y2VDb250cm9sbGVyX2gKKyNkZWZpbmUgRGV2aWNlQ29udHJvbGxlcl9oCisKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRGV2aWNlQ29udHJvbGxlciB7CitwdWJsaWM6CisgICAgfkRldmljZUNvbnRyb2xs
ZXIoKSB7IH07CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxEZXZpY2VDb250cm9sbGVyPiBjcmVh
dGUoUGFnZSopOworICAgIHN0YXRpYyBib29sIGlzRGV2aWNlRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUpOworCisgICAgYm9vbCBhZGREZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqKTsKKyAgICBib29sIHJlbW92ZURl
dmljZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRv
dyopOworICAgIHZvaWQgcmVtb3ZlQWxsTGlzdGVuZXJzKERPTVdpbmRvdyopOworCisgICAgdm9p
ZCBhZGREZXZpY2VDbGllbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQ
dHI8RGV2aWNlQ2xpZW50Pik7CisgICAgdm9pZCBkaXNwYXRjaERlaXZjZUV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+KTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBEZXZpY2VDb250cm9sbGVyKFBh
Z2UqKTsKKworICAgIFBhZ2UqIG1fcGFnZTsKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3Ry
aW5nLCBSZWZQdHI8RGV2aWNlQ2xpZW50PiA+IERldmljZUNsaWVudE1hcDsKKyAgICBEZXZpY2VD
bGllbnRNYXAgbV9jbGllbnRzOworICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8UmVmUHRyPERP
TVdpbmRvdz4gPiBMaXN0ZW5lcnNDb3VudGVkU2V0OworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9t
aWNTdHJpbmcsIExpc3RlbmVyc0NvdW50ZWRTZXQqPiBMaXN0ZW5lcnNNYXA7CisgICAgTGlzdGVu
ZXJzTWFwIG1fbGlzdGVuZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRGV2aWNlQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4YzcwZjc4NTRj
NTU2YjhlOWE1MjI3NDE0ZDI0MGNhZjBlY2FjMDkyLi43NGVlNDc3ODBkMDk4NDVjZWJjODc5NmM0
NTViNzI3NmIwYTVhNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRldmljZUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJE
cmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpAQCAtMTE0LDYgKzEx
NSw3IEBAIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKEZyYW1lKiBmcmFtZSkKIAogUGFnZTo6UGFn
ZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgOiBtX2Nocm9tZShDaHJvbWU6OmNyZWF0
ZSh0aGlzLCBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQpKQorICAgICwgbV9kZXZpY2VDb250cm9s
bGVyKERldmljZUNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1fZHJhZ0NhcmV0Q29u
dHJvbGxlcihEcmFnQ2FyZXRDb250cm9sbGVyOjpjcmVhdGUoKSkKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogICAgICwgbV9kcmFnQ29udHJvbGxlcihEcmFnQ29udHJvbGxlcjo6Y3JlYXRlKHRo
aXMsIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBmOGIwMjZmNzNj
ZDg1MDA4ODRjNzJkYTRiNjI5ZGUxMTMwMzgwZWU0Li4yOWE0YzE0N2QxMGI3MjExYTE4OTE2NmIz
NTMxM2NhYjllNTdkODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNTksNiArNTksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVyOwogI2VuZGlmCiAg
ICAgY2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRGV2aWNlQ29udHJvbGxlcjsKICAgICBjbGFz
cyBEcmFnQ2FyZXRDb250cm9sbGVyOwogICAgIGNsYXNzIERyYWdDbGllbnQ7CiAgICAgY2xhc3Mg
RHJhZ0NvbnRyb2xsZXI7CkBAIC0xNzEsNiArMTcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBpbnQgZnJhbWVDb3VudCgpIGNvbnN0IHsgY2hlY2tGcmFtZUNvdW50Q29uc2lzdGVu
Y3koKTsgcmV0dXJuIG1fZnJhbWVDb3VudDsgfQogCiAgICAgICAgIENocm9tZSogY2hyb21lKCkg
Y29uc3QgeyByZXR1cm4gbV9jaHJvbWUuZ2V0KCk7IH0KKyAgICAgICAgRGV2aWNlQ29udHJvbGxl
ciogZGV2aWNlQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlQ29udHJvbGxlci5n
ZXQoKTsgfQogICAgICAgICBEcmFnQ2FyZXRDb250cm9sbGVyKiBkcmFnQ2FyZXRDb250cm9sbGVy
KCkgY29uc3QgeyByZXR1cm4gbV9kcmFnQ2FyZXRDb250cm9sbGVyLmdldCgpOyB9CiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKICAgICAgICAgRHJhZ0NvbnRyb2xsZXIqIGRyYWdDb250cm9sbGVy
KCkgY29uc3QgeyByZXR1cm4gbV9kcmFnQ29udHJvbGxlci5nZXQoKTsgfQpAQCAtMzY4LDYgKzM3
MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZG91YmxlIG1pbmltdW1UaW1lcklu
dGVydmFsKCkgY29uc3Q7CiAKICAgICAgICAgT3duUHRyPENocm9tZT4gbV9jaHJvbWU7CisgICAg
ICAgIE93blB0cjxEZXZpY2VDb250cm9sbGVyPiBtX2RldmljZUNvbnRyb2xsZXI7CiAgICAgICAg
IE93blB0cjxEcmFnQ2FyZXRDb250cm9sbGVyPiBtX2RyYWdDYXJldENvbnRyb2xsZXI7CiAKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmlu
ZGV4IDE2MTJkZjhkYmM0OTdlZWEzZmIyNjg3YWRjZjM4YmIxNzUxOTY0NTguLjZlNGMyMWI5NDcw
OTQ2NjI4OWM0YzAzYjNkNjQ0YWQzYWMzNmY5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgog
I2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIkRPTVN0cmlu
Z0xpc3QuaCIKKyNpbmNsdWRlICJEZXZpY2VDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oIgpAQCAtOTMsNiArOTQsMTAgQEAKICNpbmNsdWRlICJXZWJLaXRQb2lu
dC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyNpbmNsdWRlICJE
ZXZpY2VQcm94aW1pdHlFdmVudC5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShDSFJPTUlVTSkK
ICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKICNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb25z
LmgiCkBAIC0xMDMxLDYgKzEwMzYsMjIgQEAgdm9pZCBJbnRlcm5hbHM6OnNldE5ldHdvcmtJbmZv
cm1hdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgZXZlbnRUeXAKICNlbmRp
ZgogfQogCit2b2lkIEludGVybmFsczo6c2V0UHJveGltaXR5KERvY3VtZW50KiBkb2N1bWVudCwg
ZG91YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgRU5B
QkxFKFBST1hJTUlUWV9FVkVOVFMpCisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+ZGV2aWNlQ29udHJv
bGxlcigpLT5kaXNwYXRjaERlaXZjZUV2ZW50KERldmljZVByb3hpbWl0eUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLndlYmtpdGRldmljZXByb3hpbWl0eUV2ZW50LCB2YWx1ZSwgbWluLCBtYXgp
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0obWlu
KTsKKyAgICBVTlVTRURfUEFSQU0obWF4KTsKKyNlbmRpZgorfQorCiBib29sIEludGVybmFsczo6
aGFzU3BlbGxpbmdNYXJrZXIoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgZnJvbSwgaW50IGxlbmd0
aCwgRXhjZXB0aW9uQ29kZSYpCiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZy
YW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlOTQ4ZGRhM2Y0YWEwMTMy
YjM0YjE2NDk4NDliOGVmNTIxYzY2YThiLi41OGJjNWJmZDk5M2JkMmRiMmU4NTYxZjM5Njg1NTAx
M2ZhMjJhZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE4Miw2ICsxODIs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE5ldHdvcmtJbmZvcm1hdGlvbihEb2N1bWVudCos
IGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBkb3VibGUgYmFuZHdpZHRoLCBib29sIG1ldGVyZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0UHJveGltaXR5KERvY3VtZW50KiwgZG91
YmxlIHZhbHVlLCBkb3VibGUgbWluLCBkb3VibGUgbWF4LCBFeGNlcHRpb25Db2RlJik7CisKICAg
ICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGNkNWI0MmJjZWU5
ZTY0OTRkMzk1NjYwN2FhYzBjNzk1ZTgzN2M3OTYuLmExZmExOTY5YWVlY2Q1MTgyYzdjZTA1MjNi
NThkMmM2NDY0MmZhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTE2
OSw2ICsxNjksMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0TmV0d29ya0lu
Zm9ybWF0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBET01TdHJpbmcgZXZlbnRUeXBlLCBp
biBkb3VibGUgYmFuZHdpZHRoLCBpbiBib29sZWFuIG1ldGVyZWQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJiYg
RU5BQkxFX1BST1hJTUlUWV9FVkVOVFMKKyAgICAgICAgdm9pZCBzZXRQcm94aW1pdHkoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGRvdWJsZSB2YWx1ZSwgaW4gZG91YmxlIG1pbiwgaW4gZG91Ymxl
IG1heCkgcmFpc2VzIChET01FeGNlcHRpb24pOworI2VuZGlmCisKICAgICAgICAgW0NvbmRpdGlv
bmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVOb2RlcygpOwogICAgICAg
ICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZURvY3Vt
ZW50cygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSBzZXF1ZW5jZTxTdHJpbmc+
IGNvbnNvbGVNZXNzYWdlQXJndW1lbnRDb3VudHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDk4OGMxZjU0NzUzZTg4NzZmNmNhMWM5NDgwNmEwNDc1MjBhOWQxOWYuLjMzOTliNmYxNGI4
YjQ1ODc2NGFmYTZmZDYyYjI2MTlmODAzZTIyYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAx
Mi0wOC0yMCAgS2lob25nIEt3b24gIDxraWhvbmcua3dvbkBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBBZGQgRGV2aWNlQ29udHJvbGxlciB0byBzdXBwb3J0IERPTVdpbmRvdyBkZXZpY2UgZXZlbnRz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzU5Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0
cyBmb3IgRGV2aWNlQ29udHJvbGxlci4KKyAgICAgICAgLSBiYXNpYyBldmVudCBvcGVyYXRpb24K
KyAgICAgICAgLSBhZGQgZXZlbnQgbGlzdGVuZXIKKyAgICAgICAgLSBldmVudCBhZnRlciBsZWF2
aW5nIHRoZSBwYWdlCisgICAgICAgIC0gZXZlbnQgaW4gdGhlIG11bHRpcGxlIGZyYW1lcworICAg
ICAgICAtIHJlbW92ZSBhbmQgcmUtYWRkIGV2ZW50IGxpc3RlbmVycworCisgICAgICAgICogZmFz
dC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNhbGxiYWNrLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L2FkZC1saXN0ZW5lci1mcm9tLWNh
bGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1v
cGVyYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Qcm94aW1p
dHkvYmFzaWMtb3BlcmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hp
bWl0eS9ldmVudC1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL1Byb3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUHJveGltaXR5L3Jlc291cmNlcy9ldmVu
dC1hZnRlci1uYXZpZ2F0aW9uLW5ldy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9Q
cm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L1Byb3hpbWl0eS91cGRhdGVzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTE5ICBZb3NoaWZ1bWkg
SW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Rlc3RzXSB0aW1lLW11bHRp
cGxlLWZpZWxkcy1hcHBlYXJhbmNlLWJhc2ljLmh0bWwgYW5kIHRpbWUtbXVsdGlwbGUtZmllbGRz
LWFwcGVhcmFuY2UtcHNldWRvLWVsZW1lbnRzLmh0bWwgYXJlIGZhaWxlZCBvbiBDaHJvbWl1bSBN
YWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQtbGlzdGVu
ZXItZnJvbS1jYWxsYmFjay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94
aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmM0ZjlhYTE0ZDY4ZGZiYTIyODVlMzU4MzVkMjg5YjkyYjU1ZmM4MmQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2Fs
bGJhY2stZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1Rlc3RzIHRoYXQgYWRkaW5nIGEg
bmV3IGV2ZW50IGxpc3RlbmVyIGZyb20gYSBjYWxsYmFjayB3b3JrcyBhcyBleHBlY3RlZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnQudmFsdWUgaXMgMzAKK1BB
U1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFTUyBldmVudC52YWx1
ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFTUyBldmVudC5tYXggaXMgMTAwCitQQVNT
IGV2ZW50LnZhbHVlIGlzIDMwCitQQVNTIGV2ZW50Lm1pbiBpcyAwCitQQVNTIGV2ZW50Lm1heCBp
cyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVy
LWZyb20tY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9hZGQt
bGlzdGVuZXItZnJvbS1jYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjY2IwNWExMzFhM2U5NDAx
OWZkYWJhNGNhMzU5NzM2ZmUwYjExODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9Qcm94aW1pdHkvYWRkLWxpc3RlbmVyLWZyb20tY2FsbGJhY2suaHRtbApAQCAtMCww
ICsxLDUwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbignVGVzdHMgdGhhdCBhZGRpbmcgYSBuZXcgZXZlbnQgbGlzdGVuZXIgZnJvbSBh
IGNhbGxiYWNrIHdvcmtzIGFzIGV4cGVjdGVkLicpOworCit2YXIgdmFsdWUgPSAzMDsKK3ZhciBt
aW4gPSAwOwordmFyIG1heCA9IDEwMDsKKworZnVuY3Rpb24gY2hlY2tQcm94aW1pdHkoKSB7Cisg
ICAgc2hvdWxkQmUoImV2ZW50LnZhbHVlIiwgIjMwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1p
biIsICIwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1heCIsICIxMDAiKTsKK30KKwordmFyIGZp
cnN0TGlzdGVuZXJFdmVudHMgPSAwOworZnVuY3Rpb24gZmlyc3RMaXN0ZW5lcigpIHsKKyAgICBj
aGVja1Byb3hpbWl0eSgpOworICAgIGlmICgrK2ZpcnN0TGlzdGVuZXJFdmVudHMgPT0gMSkgewor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5Jywg
c2Vjb25kTGlzdGVuZXIpOworICAgICAgICBpbnRlcm5hbHMuc2V0UHJveGltaXR5KGRvY3VtZW50
LCB2YWx1ZSwgbWluLCBtYXgpOworICAgIH0KKyAgICBlbHNlIGlmIChmaXJzdExpc3RlbmVyRXZl
bnRzID4gMikKKyAgICAgICAgdGVzdEZhaWxlZCgnVG9vIG1hbnkgZXZlbnRzIGZvciBmaXJzdCBs
aXN0ZW5lci4nKTsKKyAgICBtYXliZUZpbmlzaFRlc3QoKTsKK30KKwordmFyIHNlY29uZExpc3Rl
bmVyRXZlbnRzID0gMDsKK2Z1bmN0aW9uIHNlY29uZExpc3RlbmVyKCkgeworICAgIGNoZWNrUHJv
eGltaXR5KCk7CisgICAgaWYgKCsrc2Vjb25kTGlzdGVuZXJFdmVudHMgPiAxKQorICAgICAgICB0
ZXN0RmFpbGVkKCdUb28gbWFueSBldmVudHMgZm9yIHNlY29uZCBsaXN0ZW5lci4nKTsKKyAgICBt
YXliZUZpbmlzaFRlc3QoKTsKK30KKworZnVuY3Rpb24gbWF5YmVGaW5pc2hUZXN0KCkgeworICAg
IGlmIChmaXJzdExpc3RlbmVyRXZlbnRzID09IDIgJiYgc2Vjb25kTGlzdGVuZXJFdmVudHMgPT0g
MSkKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmaXJzdExpc3RlbmVyKTsKK2ludGVybmFscy5zZXRQ
cm94aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7Cit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNpYy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jhc2ljLW9wZXJhdGlvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmFmMjc2OGMxOGJiY2JkNGFlNDYzN2U1N2MzOWIyNTg4MTdkZDNl
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9iYXNp
Yy1vcGVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3RzIHRoZSBiYXNp
YyBvcGVyYXRpb24gb2YgUHJveGltaXR5IEV2ZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBldmVudC52YWx1ZSBpcyAzMAorUEFTUyBldmVudC5taW4gaXMgMAorUEFT
UyBldmVudC5tYXggaXMgMTAwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5
L2Jhc2ljLW9wZXJhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2Jh
c2ljLW9wZXJhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0MGJlOTgzMDdmOTlkZTcwZjY5ZmM3MGVk
NmVmN2QzMWI2YmEyOTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Q
cm94aW1pdHkvYmFzaWMtb3BlcmF0aW9uLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Rlc3RzIHRo
ZSBiYXNpYyBvcGVyYXRpb24gb2YgUHJveGltaXR5IEV2ZW50LicpOworCit2YXIgdmFsdWUgPSAz
MDsKK3ZhciBtaW4gPSAwOwordmFyIG1heCA9IDEwMDsKKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ3dlYmtpdGRldmljZXByb3hpbWl0eScsIGZ1bmN0aW9uKCkgeworICAgIHNob3VsZEJlKCJl
dmVudC52YWx1ZSIsICIzMCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiMCIpOworICAg
IHNob3VsZEJlKCJldmVudC5tYXgiLCAiMTAwIik7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsK
KworaW50ZXJuYWxzLnNldFByb3hpbWl0eShkb2N1bWVudCwgdmFsdWUsIG1pbiwgbWF4KTsKK3dp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVy
LW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5
L2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlNmJjMzk4
MjY3NzdiMTgzZTRiMGZjYmVjY2U3ZWMyNmZkMGZkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0cyBmb3IgYSBjcmFzaCB3aGVyZSBhbiBldmVudCBp
cyBmaXJlZCBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBuYXZpZ2F0ZWQgYXdheSB3aGVuIHRoZSBv
cmlnaW5hbCBwYWdlIGlzIGluIHRoZSBwYWdlIGNhY2hlLgorCitTVUNDRVNTCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2ZW50LWFmdGVyLW5hdmlnYXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZmZiYjZjYjg3NGI0MGIzZjMyZDMxZDU1NmJlMTZiMzJkZGU3
YzI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L2V2
ZW50LWFmdGVyLW5hdmlnYXRpb24uaHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgZm9yIGEg
Y3Jhc2ggd2hlcmUgYW4gZXZlbnQgaXMgZmlyZWQgYWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2
aWdhdGVkIGF3YXkgd2hlbiB0aGUgb3JpZ2luYWwgcGFnZSBpcyBpbiB0aGUgcGFnZSBjYWNoZS4n
KTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlKCdXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVyZW5jZUtleScsIDEpOworZWxzZQorICAg
IGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lcicp
OworCitkb2N1bWVudC5ib2R5Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmdW5jdGlvbigpIHsgfSApOwor
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJyZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlvbi1u
ZXcuaHRtbCI7Cit9CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJv
eGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9Qcm94aW1pdHkvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGY1
OTA2ZTIzNmVjODQzNDVhODVjNzU0YzIyMDUxMzU2OWE2MmYyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L211bHRpcGxlLWZyYW1lcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNSBAQAorVGVzdHMgdXNpbmcgUHJveGltaXR5IEV2ZW50IGZyb20gbXVs
dGlwbGUgZnJhbWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyByZXN1
bHQudmFsdWUgaXMgMzAKK1BBU1MgcmVzdWx0Lm1pbiBpcyAwCitQQVNTIHJlc3VsdC5tYXggaXMg
MTAwCitQQVNTIHJlc3VsdC52YWx1ZSBpcyAzMAorUEFTUyByZXN1bHQubWluIGlzIDAKK1BBU1Mg
cmVzdWx0Lm1heCBpcyAxMDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkv
bXVsdGlwbGUtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvbXVs
dGlwbGUtZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmRkYmM3ZTA4YzExYTI3MDRlNGY1MDllMDEz
YTBhMWViOThkNzgxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1By
b3hpbWl0eS9tdWx0aXBsZS1mcmFtZXMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdXNp
bmcgUHJveGltaXR5IEV2ZW50IGZyb20gbXVsdGlwbGUgZnJhbWVzLicpOworCit2YXIgdmFsdWUg
PSAzMDsKK3ZhciBtaW4gPSAwOwordmFyIG1heCA9IDEwMDsKK3ZhciByZXN1bHQ7CisKK2Z1bmN0
aW9uIGNoZWNrUHJveGltaXR5RXZlbnQocHJveGltaXR5VmFsdWUsIHByb3hpbWl0eU1pbiwgcHJv
eGltaXR5TWF4KSB7CisgICAgc2hvdWxkQmUoInJlc3VsdC52YWx1ZSIsICIzMCIpOworICAgIHNo
b3VsZEJlKCJyZXN1bHQubWluIiwgIjAiKTsKKyAgICBzaG91bGRCZSgicmVzdWx0Lm1heCIsICIx
MDAiKTsKK30KKwordmFyIGhhc01haW5GcmFtZUV2ZW50RmlyZWQgPSBmYWxzZTsKK2Z1bmN0aW9u
IG1haW5GcmFtZUxpc3RlbmVyKCkgeworICAgIGhhc01haW5GcmFtZUV2ZW50RmlyZWQgPSB0cnVl
OworICAgIHJlc3VsdCA9IGV2ZW50OworICAgIGNoZWNrUHJveGltaXR5RXZlbnQoKTsKKyAgICBt
YXliZUZpbmlzaFRlc3QoKTsKK30KKwordmFyIGhhc0NoaWxkRnJhbWVFdmVudEZpcmVkID0gZmFs
c2U7CitmdW5jdGlvbiBjaGlsZEZyYW1lTGlzdGVuZXIoKSB7CisgICAgaGFzQ2hpbGRGcmFtZUV2
ZW50RmlyZWQgPSB0cnVlOworICAgIHJlc3VsdCA9IGNoaWxkRnJhbWUuY29udGVudFdpbmRvdy5l
dmVudDsKKyAgICBjaGVja1Byb3hpbWl0eUV2ZW50KCk7CisgICAgbWF5YmVGaW5pc2hUZXN0KCk7
Cit9CisKK2Z1bmN0aW9uIG1heWJlRmluaXNoVGVzdCgpIHsKKyAgICBpZiAoaGFzTWFpbkZyYW1l
RXZlbnRGaXJlZCAmJiBoYXNDaGlsZEZyYW1lRXZlbnRGaXJlZCkgeworICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICB9Cit9CisKK3ZhciBjaGlsZEZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaWZyYW1lJyk7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNoaWxkRnJhbWUpOwor
Y2hpbGRGcmFtZS5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGRldmljZXBy
b3hpbWl0eScsIGNoaWxkRnJhbWVMaXN0ZW5lcik7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
d2Via2l0ZGV2aWNlcHJveGltaXR5JywgbWFpbkZyYW1lTGlzdGVuZXIpOworCitpbnRlcm5hbHMu
c2V0UHJveGltaXR5KGRvY3VtZW50LCB2YWx1ZSwgbWluLCBtYXgpOword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvcmVzb3VyY2VzL2V2ZW50LWFmdGVyLW5h
dmlnYXRpb24tbmV3Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1pdHkvcmVzb3Vy
Y2VzL2V2ZW50LWFmdGVyLW5hdmlnYXRpb24tbmV3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBiOWExNjU3
NDcxMTRlNTYyMGFmZWYyNjVkMzBlMmFhNmU0MjM1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1Byb3hpbWl0eS9yZXNvdXJjZXMvZXZlbnQtYWZ0ZXItbmF2aWdhdGlv
bi1uZXcuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKyAgPGhlYWQ+CisgIDwvaGVhZD4K
KyAgPGJvZHk+CisgICAgVGVzdHMgZm9yIGEgY3Jhc2ggd2hlcmUgYW4gZXZlbnQgaXMgZmlyZWQg
YWZ0ZXIgdGhlIHBhZ2UgaGFzIGJlZW4gbmF2aWdhdGVkCisgICAgYXdheSB3aGVuIHRoZSBvcmln
aW5hbCBwYWdlIGlzIGluIHRoZSBwYWdlIGNhY2hlLjxicj48YnI+CisgICAgU1VDQ0VTUworICAg
IDxzY3JpcHQ+CisgICAgICAgIGludGVybmFscy5zZXRQcm94aW1pdHkoZG9jdW1lbnQsIDMwLCAw
LCAxMDApOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICA8L3NjcmlwdD4K
KyAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJv
eGltaXR5L3VwZGF0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGlt
aXR5L3VwZGF0ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwYzljNTdlZjM2MDE3ZjQzZjA2
ZDA0OTI3MTRjOWZkZWVhNDcyMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9Qcm94aW1pdHkvdXBkYXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGVz
dHMgdGhhdCB1cGRhdGVzIHRvIHRoZSBwcm94aW1pdHkgZXZlbnQgY2F1c2VzIG5ldyBldmVudHMg
dG8gZmlyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZXZlbnQudmFs
dWUgaXMgMzAKK1BBU1MgZXZlbnQubWluIGlzIDAKK1BBU1MgZXZlbnQubWF4IGlzIDEwMAorUEFT
UyBldmVudC52YWx1ZSBpcyAxMDAKK1BBU1MgZXZlbnQubWluIGlzIC1JbmZpbml0eQorUEFTUyBl
dmVudC5tYXggaXMgSW5maW5pdHkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9Qcm94aW1p
dHkvdXBkYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0ZXMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZGM5NmVmMjg0ZmEzODY5YWFkODgyMzZhYjQ1MzMwODkyN2E1ZDY0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUHJveGltaXR5L3VwZGF0
ZXMuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGVzdHMgdGhhdCB1cGRhdGVzIHRvIHRoZSBwcm94
aW1pdHkgZXZlbnQgY2F1c2VzIG5ldyBldmVudHMgdG8gZmlyZS4nKTsKKwordmFyIHZhbHVlID0g
MzA7Cit2YXIgbWluID0gMDsKK3ZhciBtYXggPSAxMDA7CisKK2Z1bmN0aW9uIGNoZWNrUHJveGlt
aXR5RXZlbnQoKSB7CisgICAgc2hvdWxkQmUoImV2ZW50LnZhbHVlIiwgIjMwIik7CisgICAgc2hv
dWxkQmUoImV2ZW50Lm1pbiIsICIwIik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1heCIsICIxMDAi
KTsKK30KKworZnVuY3Rpb24gc2V0UHJveGltaXR5KCkgeworICAgIGludGVybmFscy5zZXRQcm94
aW1pdHkoZG9jdW1lbnQsIHZhbHVlLCBtaW4sIG1heCk7Cit9CisKK2Z1bmN0aW9uIGZpcnN0TGlz
dGVuZXIoKSB7CisJY2hlY2tQcm94aW1pdHlFdmVudCgpOworICAgIHdpbmRvdy5yZW1vdmVFdmVu
dExpc3RlbmVyKCd3ZWJraXRkZXZpY2Vwcm94aW1pdHknLCBmaXJzdExpc3RlbmVyKTsKKyAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJveGltaXR5JywgdXBkYXRlTGlz
dGVuZXIpOworICAgIHZhbHVlID0gMTAwOworICAgIG1pbiA9IE51bWJlci5ORUdBVElWRV9JTkZJ
TklUWTsKKyAgICBtYXggPSBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7CisJc2V0UHJveGltaXR5
KCk7Cit9CisKK2Z1bmN0aW9uIHVwZGF0ZUxpc3RlbmVyKGV2ZW50KSB7CisgICAgc2hvdWxkQmUo
ImV2ZW50LnZhbHVlIiwgIjEwMCIpOworICAgIHNob3VsZEJlKCJldmVudC5taW4iLCAiLUluZmlu
aXR5Iik7CisgICAgc2hvdWxkQmUoImV2ZW50Lm1heCIsICJJbmZpbml0eSIpOworICAgIGZpbmlz
aEpTVGVzdCgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZGV2aWNlcHJv
eGltaXR5JywgZmlyc3RMaXN0ZW5lcik7CitzZXRQcm94aW1pdHkoKTsKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159839</attachid>
            <date>2012-08-21 18:44:14 -0700</date>
            <delta_ts>2012-08-24 02:54:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120822104412.patch</filename>
            <type>text/plain</type>
            <size>21727</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmViMTA2NmJjOGNjZWY1
MTliMWZkNjFlOWI2NjBlOWExYTk3MmU4OC4uMDQ1NDU2NzMxMWNiYWRkODJhOGQ1NjQzZTNjYmU4
ZGJmYjAzOWMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTA4LTIwICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAgICBEZXZpY2VD
b250cm9sbGVyIGNvbnRyb2xzIGFsbCBraW5kIG9mIGRldmljZSBjbGllbnRzIGZvciBkZXZpY2Ug
ZXZlbnRzIG9mIERPTVdpbmRvdy4KKyAgICAgICAgZS5nLikgRGV2aWNlIE1vdGlvbiBFdmVudHMs
IERldmljZSBPcmllbnRhdGlvbiBFdmVudHMsIFByb3hpbWl0eSBFdmVudHMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ2xp
ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKiBwYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6aXNEZXZpY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjphZGREZXZpY2VFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsTGlzdGVuZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OmFkZERldmljZUNsaWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERlaXZjZUV2ZW50KToKKyAgICAgICAg
KiBwYWdlL0RldmljZUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKERldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJv
bGxlcjo6fkRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZGV2aWNlQ29udHJvbGxlcik6
CisgICAgICAgIChQYWdlKToKKwogMjAxMi0wOC0yMCAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBYU1NBdWRpdG9yIHRvbyB0b2xlcmFudCBvZiBpbmplY3RlZCBk
YXRhOiBVUkxzIGZyb20gb3RoZXIgImhvc3RsZXNzIiBzY2hlbWVzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCAzNjQzNjlmYmVhMGRiNWM2YjUxMjI2ZjllZGIzOTQ1MWIwOGNlNmJhLi42NjNjYTVl
YWM5MWFkZWE5ZTUwOTMwYjk4OTBlMGM1ODA0NWVjMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMTY2MSw2ICsxNjYxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvQ29udGVu
dFNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAog
ICAgIHBhZ2UvQ3J5cHRvLmNwcAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKICAgICBw
YWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKICAgICBwYWdlL0RPTVNlY3VyaXR5UG9saWN5
LmNwcAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggMmJjOTg3OTdmMTdlODRhZDFkNzhiODUxOWJjZWJhM2FiMTM5M2E2My4uNzBmYjVk
YWE0NDJjZmFmZGJjNmE3NmEyMWYzYjM5ODg5ZGMyZGY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0zODk2LDYgKzM4OTYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9D
cnlwdG8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RldmljZUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNv
bnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBiZjk0MzcyYmM2
ZWYwNzQ1MTBjMGVjZjRhZTAwOWUxYzllMzc4Zjc0Li5lNDUzMDliZTJiMWY2NDhlOGZiNzQyNzI4
ZmM5NGY2MTcxMGIzZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg1NCw2ICs4NTQsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgXAogICAgIHBhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9DcnlwdG8uY3BwIFwKKyAgICBwYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5j
cHAgXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcCBcCiAgICAgcGFnZS9ET01UaW1lci5jcHAg
XApAQCAtMTk2MSw2ICsxOTYyLDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmggXAogICAgIHBh
Z2UvQ29vcmRpbmF0ZXMuaCBcCisgICAgcGFnZS9EZXZpY2VDbGllbnQuaCBcCisgICAgcGFnZS9E
ZXZpY2VDb250cm9sbGVyLmggXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggXAog
ICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmggXAogICAgIHBhZ2UvRE9NVGltZXIuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggOTUyYjgwMDFkYzkwMzQ0MGZlMzk4MTQ3MDZiNDc5NTM3ZjYzOWNiZC4uZWRk
ZjM2N2FlMTY0YzllYjk4MTJiZTU5ZTU0MGNkYWU3ODRjYmVhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMzA1OSw2ICszMDU5LDkgQEAKICAgICAgICAgICAgICdwYWdlL0NvbnRleHRNZW51UHJvdmlk
ZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uY3BwJywKICAgICAgICAgICAgICdwYWdl
L0NyeXB0by5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNsaWVudC5oJywKKyAgICAgICAg
ICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdwYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oJywKICAgICAg
ICAgICAgICdwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQ2ZTZhYTcyYmM1NmJkZjUxZDdlM2Uy
YWJjZjM1OWY0ZTBkZTA4YWUuLmUyZGI5MWYxMGYyNjk1NjAzYjA1YTNhODlkNzJlODE0YjMwY2Mx
MWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yNjg5NSw2ICsyNjg5NSwxOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuY3Bw
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XERldmljZUNvbnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGFnZVxEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiMTIyNzcxNTkzODhkYWU4NDM1MTEyNDBhYzYzYzEwYmM0NjE0NWYyLi40
OWFjYjJjZDNjODc4MzY5YjQ1ZDdhZTY1M2I3NGIxNjA5ZDgwNGZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODIzLDYgKzU4
MjMsOSBAQAogCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5
RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi87IH07CiAJ
CUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYw
MDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0
MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1Zh
cmlhYmxlVmFsdWUuaCAqLzsgfTsKKwkJQ0MyNEQ2NDkxNUUyMTJFOTAwNzlERDc5IC8qIERldmlj
ZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNsaWVudC5oICovOyB9OworCQlDQzI0
RDY0QTE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQzI0RDY0NzE1RTIxMkU5MDA3OURE
NzkgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi87IH07CisJCUNDMjRENjRCMTVFMjEyRTkwMDc5
REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDQzI0RDY0ODE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJv
bGxlci5oICovOyB9OwogCQlDRDEyN0RFRDE0RjMwOTdEMDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxT
Y3JlZW5XaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cu
bW0gKi87IH07CiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0QyN0Y2RTUx
NDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUyMTQ1NzY3NTgwMDc4MjA3RCAv
KiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xMzExNSw2ICsxMzExOCw5IEBACiAJ
CUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlvVmFsdWUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAg
LyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNB
RTlGOTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhcmlhYmxlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDcxNUUyMTJFOTAwNzlERDc5IC8qIERldmlj
ZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2
aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDMjRENjQ4
MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVu
V2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVCMTRGMzA5Nzkw
MEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI3RjZFMDE0NTc1QzFCMDA3ODIwN0QgLyogTWVkaWFD
b250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTU3MDAsNiArMTU3MDYsOSBAQAogCQkJCTk3NUNBMjg3MTMwMzY1Rjgw
MEU5OUFEOSAvKiBDcnlwdG8uY3BwICovLAogCQkJCTk3NUNBMjg4MTMwMzY1RjgwMEU5OUFEOSAv
KiBDcnlwdG8uaCAqLywKIAkJCQk5NzVDQTI4OTEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmlk
bCAqLywKKwkJCQlDQzI0RDY0NjE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ2xpZW50LmggKi8s
CisJCQkJQ0MyNEQ2NDcxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICov
LAorCQkJCUNDMjRENjQ4MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8s
CiAJCQkJQ0QzN0IzNzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5nS2V5cy5j
cHAgKi8sCiAJCQkJQ0QzN0IzNzUxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dnaW5n
S2V5cy5oICovLAogCQkJCTJEOUEyNDZBMTVCOUJCREQwMEQzNDUyNyAvKiBET01TZWN1cml0eVBv
bGljeS5jcHAgKi8sCkBAIC0yNTQyMCw2ICsyNTQyOSw4IEBACiAJCQkJRTFCRTUxMkUwQ0Y2QzUx
MjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJF
MEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
NTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0MyNEQ2NDkxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQ0MyNEQ2NEIxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtMjg1MDEsNiArMjg1MTIsNyBAQAogCQkJCUUxQkU1MTJEMENGNkM1MTIw
MDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJF
MEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUNDMjRENjRBMTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGQ3ODdhNjViZDZkODBj
NTUwZjhkMTJhMGQ0ZjEzMWY3ODYxZDE3YWQuLjZhZTQ4ZWZhYzQyYTA5NmUwM2JiZjQyMDcyYzY1
ZjFmZjg4NGZmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTQ4LDYgKzQ4LDcg
QEAKICNpbmNsdWRlICJET01XaW5kb3dOb3RpZmljYXRpb25zLmgiCiAjaW5jbHVkZSAiRGF0YWJh
c2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiRGV2aWNlQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU1vdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpA
QCAtMTU4NSw2ICsxNTg2LDEyIEBAIGJvb2wgRE9NV2luZG93OjphZGRFdmVudExpc3RlbmVyKGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPEV2ZW50CiAgICAgfQogI2Vu
ZGlmCiAKKyAgICBpZiAoRGV2aWNlQ29udHJvbGxlcjo6aXNEZXZpY2VFdmVudChldmVudFR5cGUp
KSB7CisgICAgICAgIGlmIChwYWdlKCkpCisgICAgICAgICAgICByZXR1cm4gcGFnZSgpLT5kZXZp
Y2VDb250cm9sbGVyKCktPmFkZERldmljZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCB0aGlzKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC0xNjE0LDYgKzE2MjEsMTIgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICB9CiAjZW5k
aWYKIAorICAgIGlmIChEZXZpY2VDb250cm9sbGVyOjppc0RldmljZUV2ZW50KGV2ZW50VHlwZSkp
IHsKKyAgICAgICAgaWYgKHBhZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBwYWdlKCktPmRldmlj
ZUNvbnRyb2xsZXIoKS0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHRoaXMp
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTE2NjksNiArMTY4Miw4IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3Rl
bmVycygpCiAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9
IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkpKQogICAgICAgICBjb250
cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CiAjZW5kaWYKKyAgICBpZiAocGFnZSgp
KQorICAgICAgICBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIoKS0+cmVtb3ZlQWxsTGlzdGVuZXJz
KHRoaXMpOwogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CiAgICAg
cmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
ZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYWNkMWVmZGZmYjNkM2ZmMjExYjM5NTM2M2I0Njdm
OWM5ODdlY2YxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
bGllbnQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVm
IERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmljZUNsaWVudF9oCisKKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8RGV2aWNl
Q2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGV2aWNlQ2xpZW50KCkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3Rv
cFVwZGF0aW5nKCkgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgRGV2aWNlQ2xpZW50KCkgeyB9Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDbGllbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUwOWJl
N2YyNWYyZjk0Zjc0YTEyODUyYThiNGRlZWE3NDAzZGZlOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMTQgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
ZXZpY2VDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc093blB0cjxEZXZpY2VDb250cm9sbGVyPiBEZXZpY2VDb250cm9sbGVyOjpjcmVhdGUo
UGFnZSogcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IERldmljZUNvbnRyb2xsZXIo
cGFnZSkpOworfQorCitEZXZpY2VDb250cm9sbGVyOjpEZXZpY2VDb250cm9sbGVyKFBhZ2UqIHBh
Z2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKworYm9vbCBEZXZpY2VDb250cm9sbGVyOjpp
c0RldmljZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQoreworICAgIFVOVVNF
RF9QQVJBTShldmVudFR5cGUpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBEZXZpY2VD
b250cm9sbGVyOjphZGREZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fY2xpZW50cy5jb250YWlu
cyhldmVudFR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBMaXN0ZW5lcnNNYXA6
Oml0ZXJhdG9yIGl0ZXIgPSBtX2xpc3RlbmVycy5maW5kKGV2ZW50VHlwZSk7CisgICAgTGlzdGVu
ZXJzQ291bnRlZFNldCogbGlzdGVuZXJzOworICAgIGlmIChpdGVyID09IG1fbGlzdGVuZXJzLmVu
ZCgpKSB7CisgICAgICAgIG1fY2xpZW50cy5maW5kKGV2ZW50VHlwZSktPnNlY29uZC0+c3RhcnRV
cGRhdGluZygpOworICAgICAgICBtX2xpc3RlbmVycy5hZGQoZXZlbnRUeXBlLCBhZG9wdFB0cihu
ZXcgTGlzdGVuZXJzQ291bnRlZFNldCkpOworICAgICAgICBsaXN0ZW5lcnMgPSBtX2xpc3RlbmVy
cy5maW5kKGV2ZW50VHlwZSktPnNlY29uZC5nZXQoKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbGlz
dGVuZXJzID0gaXRlci0+c2Vjb25kLmdldCgpOworICAgIGxpc3RlbmVycy0+YWRkKHdpbmRvdyk7
CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVE
ZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5k
b3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fY2xpZW50cy5jb250YWlucyhldmVudFR5cGUpIHx8
ICFtX2xpc3RlbmVycy5jb250YWlucyhldmVudFR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBMaXN0ZW5lcnNDb3VudGVkU2V0KiBsaXN0ZW5lcnMgPSBtX2xpc3RlbmVycy5maW5k
KGV2ZW50VHlwZSktPnNlY29uZC5nZXQoKTsKKyAgICBsaXN0ZW5lcnMtPnJlbW92ZSh3aW5kb3cp
OworCisgICAgaWYgKGxpc3RlbmVycy0+aXNFbXB0eSgpKSB7CisgICAgICAgIG1fbGlzdGVuZXJz
LnJlbW92ZShldmVudFR5cGUpOworICAgICAgICBtX2NsaWVudHMuZmluZChldmVudFR5cGUpLT5z
ZWNvbmQtPnN0b3BVcGRhdGluZygpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqIHdpbmRv
dykKK3sKKyAgICBMaXN0ZW5lcnNNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2xpc3RlbmVycy5iZWdp
bigpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9saXN0ZW5lcnMuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgQXRvbWljU3RyaW5nIGV2ZW50VHlwZSA9IGl0ZXItPmZpcnN0OworICAgICAgICBM
aXN0ZW5lcnNDb3VudGVkU2V0KiBsaXN0ZW5lcnMgPSBpdGVyLT5zZWNvbmQuZ2V0KCk7CisgICAg
ICAgIGlmICghbGlzdGVuZXJzLT5jb250YWlucyh3aW5kb3cpKQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIGxpc3RlbmVycy0+cmVtb3ZlQWxsKHdpbmRvdyk7CisgICAgICAgIGlmIChs
aXN0ZW5lcnMtPmlzRW1wdHkoKSkgeworICAgICAgICAgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGV2
ZW50VHlwZSk7CisgICAgICAgICAgICBtX2NsaWVudHMuZmluZChldmVudFR5cGUpLT5zZWNvbmQt
PnN0b3BVcGRhdGluZygpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIERldmljZUNvbnRy
b2xsZXI6OmFkZERldmljZUNsaWVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFz
c1JlZlB0cjxEZXZpY2VDbGllbnQ+IGNsaWVudCkKK3sKKyAgICBtX2NsaWVudHMuYWRkKGV2ZW50
VHlwZSwgY2xpZW50KTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERlaXZj
ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IHBycEV2ZW50KQoreworICAgIFJlZlB0cjxFdmVudD4g
ZXZlbnQgPSBwcnBFdmVudDsKKyAgICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRhaW5zKGV2ZW50LT50
eXBlKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4g
PiBsaXN0ZW5lcnM7CisgICAgTGlzdGVuZXJzQ291bnRlZFNldCogbGlzdGVuZXJzU2V0ID0gbV9s
aXN0ZW5lcnMuZmluZChldmVudC0+dHlwZSgpKS0+c2Vjb25kLmdldCgpOworICAgIGNvcHlUb1Zl
Y3RvcigqbGlzdGVuZXJzU2V0LCBsaXN0ZW5lcnMpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbGlzdGVuZXJzLnNpemUoKTsgKytpKQorICAgICAgICBpZiAoIWxpc3RlbmVyc1tpXS0+ZG9j
dW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRlZCgpKQorICAgICAgICAgICAgbGlz
dGVuZXJzW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTYw
YzVkODRkNTA3OGNmZmRmZTZhMWM0ZmQ5ZGRiMDAyNTM4MjNmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDb250cm9sbGVyX2gKKyNkZWZp
bmUgRGV2aWNlQ29udHJvbGxlcl9oCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRl
ICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hD
b3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGV2aWNlQ29udHJv
bGxlciB7CitwdWJsaWM6CisgICAgfkRldmljZUNvbnRyb2xsZXIoKSB7IH07CisKKyAgICBzdGF0
aWMgUGFzc093blB0cjxEZXZpY2VDb250cm9sbGVyPiBjcmVhdGUoUGFnZSopOworICAgIHN0YXRp
YyBib29sIGlzRGV2aWNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpOworCisg
ICAgYm9vbCBhZGREZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBET01XaW5kb3cqKTsKKyAgICBib29sIHJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3Zl
QWxsTGlzdGVuZXJzKERPTVdpbmRvdyopOworCisgICAgdm9pZCBhZGREZXZpY2VDbGllbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RGV2aWNlQ2xpZW50Pik7Cisg
ICAgdm9pZCBkaXNwYXRjaERlaXZjZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKworcHJpdmF0
ZToKKyAgICBleHBsaWNpdCBEZXZpY2VDb250cm9sbGVyKFBhZ2UqKTsKKworICAgIFBhZ2UqIG1f
cGFnZTsKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBSZWZQdHI8RGV2aWNlQ2xp
ZW50PiA+IERldmljZUNsaWVudE1hcDsKKyAgICBEZXZpY2VDbGllbnRNYXAgbV9jbGllbnRzOwor
ICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8UmVmUHRyPERPTVdpbmRvdz4gPiBMaXN0ZW5lcnND
b3VudGVkU2V0OworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcsIE93blB0cjxMaXN0
ZW5lcnNDb3VudGVkU2V0PiA+IExpc3RlbmVyc01hcDsKKyAgICBMaXN0ZW5lcnNNYXAgbV9saXN0
ZW5lcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VD
b250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDhjNzBmNzg1NGM1NTZiOGU5YTUyMjc0
MTRkMjQwY2FmMGVjYWMwOTIuLjc0ZWU0Nzc4MGQwOTg0NWNlYmM4Nzk2YzQ1NWI3Mjc2YjBhNWE1
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNvbnRl
eHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCkBAIC0xMTQsNiArMTE1LDcgQEAgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IoRnJhbWUqIGZyYW1lKQogCiBQYWdlOjpQYWdlKFBhZ2VDbGllbnRz
JiBwYWdlQ2xpZW50cykKICAgICA6IG1fY2hyb21lKENocm9tZTo6Y3JlYXRlKHRoaXMsIHBhZ2VD
bGllbnRzLmNocm9tZUNsaWVudCkpCisgICAgLCBtX2RldmljZUNvbnRyb2xsZXIoRGV2aWNlQ29u
dHJvbGxlcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9kcmFnQ2FyZXRDb250cm9sbGVyKERyYWdD
YXJldENvbnRyb2xsZXI6OmNyZWF0ZSgpKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAg
LCBtX2RyYWdDb250cm9sbGVyKERyYWdDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVu
dHMuZHJhZ0NsaWVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGY4YjAyNmY3M2NkODUwMDg4NGM3MmRh
NGI2MjlkZTExMzAzODBlZTQuLjI5YTRjMTQ3ZDEwYjcyMTFhMTg5MTY2YjM1MzEzY2FiOWU1N2Q4
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC01OSw2ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7CiAjZW5kaWYKICAgICBjbGFzcyBEb2N1
bWVudDsKKyAgICBjbGFzcyBEZXZpY2VDb250cm9sbGVyOwogICAgIGNsYXNzIERyYWdDYXJldENv
bnRyb2xsZXI7CiAgICAgY2xhc3MgRHJhZ0NsaWVudDsKICAgICBjbGFzcyBEcmFnQ29udHJvbGxl
cjsKQEAgLTE3MSw2ICsxNzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBm
cmFtZUNvdW50KCkgY29uc3QgeyBjaGVja0ZyYW1lQ291bnRDb25zaXN0ZW5jeSgpOyByZXR1cm4g
bV9mcmFtZUNvdW50OyB9CiAKICAgICAgICAgQ2hyb21lKiBjaHJvbWUoKSBjb25zdCB7IHJldHVy
biBtX2Nocm9tZS5nZXQoKTsgfQorICAgICAgICBEZXZpY2VDb250cm9sbGVyKiBkZXZpY2VDb250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VDb250cm9sbGVyLmdldCgpOyB9CiAgICAg
ICAgIERyYWdDYXJldENvbnRyb2xsZXIqIGRyYWdDYXJldENvbnRyb2xsZXIoKSBjb25zdCB7IHJl
dHVybiBtX2RyYWdDYXJldENvbnRyb2xsZXIuZ2V0KCk7IH0KICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogICAgICAgICBEcmFnQ29udHJvbGxlciogZHJhZ0NvbnRyb2xsZXIoKSBjb25zdCB7IHJl
dHVybiBtX2RyYWdDb250cm9sbGVyLmdldCgpOyB9CkBAIC0zNjgsNiArMzcwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwoKSBjb25z
dDsKIAogICAgICAgICBPd25QdHI8Q2hyb21lPiBtX2Nocm9tZTsKKyAgICAgICAgT3duUHRyPERl
dmljZUNvbnRyb2xsZXI+IG1fZGV2aWNlQ29udHJvbGxlcjsKICAgICAgICAgT3duUHRyPERyYWdD
YXJldENvbnRyb2xsZXI+IG1fZHJhZ0NhcmV0Q29udHJvbGxlcjsKIAogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160369</attachid>
            <date>2012-08-24 02:54:14 -0700</date>
            <delta_ts>2012-08-24 03:13:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120824185410.patch</filename>
            <type>text/plain</type>
            <size>23763</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1NzliMDViYzI4YmE2
MjhhM2JhNGM3MWVjODg1YjllZjg3ZjA1Mi4uYTAzNTM5ZTliMzk1Y2M5ZmFjODNhMDQwMTZhZTIz
NzYyYmVjMjc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA4LTI0ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAgICBEZXZpY2VD
b250cm9sbGVyIGNvbnRyb2xzIGFsbCBraW5kIG9mIGRldmljZSBjbGllbnRzIGZvciBkZXZpY2Ug
ZXZlbnRzIG9mIERPTVdpbmRvdy4KKyAgICAgICAgZS5nLikgRGV2aWNlIE1vdGlvbiBFdmVudHMs
IERldmljZSBPcmllbnRhdGlvbiBFdmVudHMsIFByb3hpbWl0eSBFdmVudHMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ2xp
ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6bGFzdEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZUNsaWVudDo6RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRy
b2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRy
b2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJv
bGxlcjo6aXNEZXZpY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVy
OjphZGREZXZpY2VFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRy
b2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsTGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6OmFkZERldmljZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpkZXZpY2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29u
dHJvbGxlcjo6ZGlzcGF0Y2hEZWl2Y2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VD
b250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJv
bGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChMYXN0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6Okxhc3RFdmVudEhhbmRsZXI6Okxhc3RFdmVudEhhbmRsZXIpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6ZGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChQYWdlKToKKwogMjAxMi0wOC0y
MyAgRnJlZGVyaWsgR2xhZGhvcm4gIDxnbGFkaG9ybkBrZGUub3JnPgogCiAgICAgICAgIE1ha2Ug
aXQgcG9zc2libGUgdG8gYnVpbGQgV2ViS2l0IHdpdGggUHl0aG9uIDMgKGFuZCAyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCBhMTRjNWJlYTVkOWFhODBjNWM4YjNjZGIzZjVhY2Q2NDMxNDA2YTM4
Li5mZjJlZjFjODc1M2ZiZGE1NjkxMWI1ZjUwMTQ2ZTU5OTgzZTc0MTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTY2Niw2ICsxNjY2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcAogICAgIHBhZ2UvQ3J5cHRvLmNwcAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5j
cHAKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKICAgICBwYWdlL0RPTVNlY3Vy
aXR5UG9saWN5LmNwcAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggY2ExMTBhNTlhNjlkMWZlMzAxM2E1ZDI5NTY5NzNlYzQ3OTZlOTMw
Ni4uNmU2NDBmNjE0MTZkNWFmMTdiMTkxZTBmOGI5YzNiYTlhNjliMGZlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTE2LDYgKzM5MTYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9DcnlwdG8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRy
b2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4
YjBkYjIxN2QwNmU3N2FiNjM1NzA3NDIwZmNlNTgzMjRhNTlmYjRiLi5lYmFjYTViZDAwNjI5NjNh
ODdhYTRiYTVlNzU4YzNmNjdjNjA3ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg1NCw2ICs4NTQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgXAogICAg
IHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9DcnlwdG8uY3BwIFwK
KyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dn
aW5nS2V5cy5jcHAgXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcCBcCiAgICAgcGFnZS9ET01U
aW1lci5jcHAgXApAQCAtMTk2Myw2ICsxOTY0LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmgg
XAogICAgIHBhZ2UvQ29vcmRpbmF0ZXMuaCBcCisgICAgcGFnZS9EZXZpY2VDbGllbnQuaCBcCisg
ICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmggXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmggXAogICAgIHBhZ2UvRE9NVGltZXIuaCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggMGJhMzM3NzZmNjY2NTc1YTFiOWU4ZTYyNjBjMTA4YmUxN2I1
MDNlYi4uNTNlYWMyNWNhMTg3MmEwNjM5ZWUxZTRiZjYxMDI4YmE2YjkxNWE2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMzA3OCw2ICszMDc4LDkgQEAKICAgICAgICAgICAgICdwYWdlL0NvbnRleHRN
ZW51UHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0NyeXB0by5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNsaWVudC5oJywK
KyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdw
YWdlL0RldmljZUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0tleXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5o
JywKICAgICAgICAgICAgICdwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDg3NThmY2UxOTI1MjJj
YzY5ZTViZDFhYzRjMTA4ZmRkNWZmZWIyN2YuLmU4NDkzN2MzNzk3MDI2Yzg4MGRlZTQ3MWYxNGVm
MTYyMWNjY2QyZDggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC0yNjg5NSw2ICsyNjg5NSwxOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRy
b2xsZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIgog
CQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBhOTc0ZmZhZjY3YjQ4YzgwM2VhYWU1Y2EzZWYzM2Y0MTNk
ZjFmZTUwLi41OWVmMjllZWQ0NWNhNjlhYjkxMDRhNWUzMjEwZGVjNjA3MDgzYzVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
ODMxLDYgKzU4MzEsOSBAQAogCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAg
Ki87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5Rjkw
RTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovOyB9OwogCQlDQUU5
RjkxMDE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIx
IC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLzsgfTsKKwkJQ0MyNEQ2NDkxNUUyMTJFOTAwNzlERDc5
IC8qIERldmljZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNsaWVudC5oICovOyB9
OworCQlDQzI0RDY0QTE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQzI0RDY0NzE1RTIx
MkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi87IH07CisJCUNDMjRENjRCMTVF
MjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQzI0RDY0ODE1RTIxMkU5MDA3OURENzkgLyogRGV2
aWNlQ29udHJvbGxlci5oICovOyB9OwogCQlDRDEyN0RFRDE0RjMwOTdEMDBFODQ3NzkgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XaW5kb3cubW0gKi87IH07CiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUyMTQ1NzY3NTgw
MDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xMzEzMSw2ICsxMzEz
NCw5IEBACiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlv
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYw
MDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhcmlhYmxlVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5IC8qIERldmlj
ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDcxNUUyMTJFOTAwNzlERDc5
IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNDMjRENjQ4MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVC
MTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI3RjZFMDE0NTc1QzFCMDA3ODIwN0Qg
LyogTWVkaWFDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3MTYsNiArMTU3MjIsOSBAQAogCQkJCTk3NUNBMjg3
MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uY3BwICovLAogCQkJCTk3NUNBMjg4MTMwMzY1Rjgw
MEU5OUFEOSAvKiBDcnlwdG8uaCAqLywKIAkJCQk5NzVDQTI4OTEzMDM2NUY4MDBFOTlBRDkgLyog
Q3J5cHRvLmlkbCAqLywKKwkJCQlDQzI0RDY0NjE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ2xp
ZW50LmggKi8sCisJCQkJQ0MyNEQ2NDcxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNvbnRyb2xs
ZXIuY3BwICovLAorCQkJCUNDMjRENjQ4MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9s
bGVyLmggKi8sCiAJCQkJQ0QzN0IzNzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dn
aW5nS2V5cy5jcHAgKi8sCiAJCQkJQ0QzN0IzNzUxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0
aWNMb2dnaW5nS2V5cy5oICovLAogCQkJCTJEOUEyNDZBMTVCOUJCREQwMEQzNDUyNyAvKiBET01T
ZWN1cml0eVBvbGljeS5jcHAgKi8sCkBAIC0yODUzMyw2ICsyODU0Miw3IEBACiAJCQkJRTFCRTUx
MkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0MyNEQ2NEExNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZDc4
N2E2NWJkNmQ4MGM1NTBmOGQxMmEwZDRmMTMxZjc4NjFkMTdhZC4uODU4YmVhYmQ5NGMyNGFkMmI1
NWFlMDc4MDQ0YmM5YzI0N2MyYWEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAt
NDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKICNpbmNs
dWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQ2FsbGJhY2suaCIKKyNpbmNsdWRl
ICJEZXZpY2VDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCkBAIC0xNTg1LDYgKzE1ODYsOSBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAog
ICAgIH0KICNlbmRpZgogCisgICAgaWYgKERldmljZUNvbnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQo
ZXZlbnRUeXBlKSAmJiBwYWdlKCkpCisgICAgICAgIHBhZ2UoKS0+ZGV2aWNlQ29udHJvbGxlcigp
LT5hZGREZXZpY2VFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgdGhpcyk7CisKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtMTYxNCw2ICsxNjE4LDkgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2
ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIK
ICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChEZXZpY2VDb250cm9sbGVyOjppc0RldmljZUV2ZW50
KGV2ZW50VHlwZSkgJiYgcGFnZSgpKQorICAgICAgICBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIo
KS0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHRoaXMpOworCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTE2NjksNiArMTY3Niw4IEBAIHZvaWQgRE9NV2luZG93OjpyZW1v
dmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkp
KQogICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CiAjZW5kaWYK
KyAgICBpZiAocGFnZSgpKQorICAgICAgICBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIoKS0+cmVt
b3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5l
cnModGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzJkNDRkMjE5NjBlZWY3
NDM1Zjg2NWZjZWIzMmY5ZjZlYWY0NmVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmljZUNsaWVudF9oCisK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRXZlbnQ7CisKK2NsYXNzIERldmljZUNs
aWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPERldmljZUNsaWVudD4geworcHVibGljOgorICAgIHZp
cnR1YWwgfkRldmljZUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRp
bmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKworICAgIFBh
c3NSZWZQdHI8RXZlbnQ+IGxhc3RFdmVudCgpIHsgcmV0dXJuIDA7IH0KKworcHJvdGVjdGVkOgor
ICAgIERldmljZUNsaWVudCgpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRGV2aWNlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE4ODM2NjM2NjQ1YzEzZTQ0ZDU5ZWRhZWQ3ZGE3YmM1YWExY2E1
ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xs
ZXIuY3BwCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAi
RGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8RGV2aWNlQ29udHJvbGxlcj4g
RGV2aWNlQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBEZXZpY2VDb250cm9sbGVyKHBhZ2UpKTsKK30KKworRGV2aWNlQ29udHJvbGxlcjo6
RGV2aWNlQ29udHJvbGxlcihQYWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisgICAgLCBt
X3RpbWVyKHRoaXMsICZEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpCit7Cit9CisK
K2Jvb2wgRGV2aWNlQ29udHJvbGxlcjo6aXNEZXZpY2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSkKK3sKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGlmIChl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmRldmljZW9yaWVudGF0aW9uRXZlbnQpCisgICAgICAg
IHJldHVybiB0cnVlOworI2VuZGlmCisgICAgVU5VU0VEX1BBUkFNKGV2ZW50VHlwZSk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmFkZERldmljZUV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogd2luZG93
KQoreworICAgIGlmICghbV9jbGllbnRzLmNvbnRhaW5zKGV2ZW50VHlwZSkpCisgICAgICAgIHJl
dHVybjsKKworICAgIERldmljZUNsaWVudE1hcDo6aXRlcmF0b3IgaXRlckNsaWVudCA9IG1fY2xp
ZW50cy5maW5kKGV2ZW50VHlwZSk7CisgICAgaWYgKGl0ZXJDbGllbnQgIT0gbV9jbGllbnRzLmVu
ZCgpICYmIGl0ZXJDbGllbnQtPnNlY29uZC0+bGFzdEV2ZW50KCkpIHsKKyAgICAgICAgbV9sYXN0
RXZlbnRIYW5kbGVyLmFwcGVuZChMYXN0RXZlbnRIYW5kbGVyKHdpbmRvdywgaXRlckNsaWVudC0+
c2Vjb25kLT5sYXN0RXZlbnQoKSkpOworICAgICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0KKworICAgIExpc3Rl
bmVyc01hcDo6aXRlcmF0b3IgaXRlckxpc3RlbmVyID0gbV9saXN0ZW5lcnMuZmluZChldmVudFR5
cGUpOworICAgIExpc3RlbmVyc0NvdW50ZWRTZXQqIGxpc3RlbmVyczsKKyAgICBpZiAoaXRlckxp
c3RlbmVyID09IG1fbGlzdGVuZXJzLmVuZCgpKSB7CisgICAgICAgIG1fY2xpZW50cy5maW5kKGV2
ZW50VHlwZSktPnNlY29uZC0+c3RhcnRVcGRhdGluZygpOworICAgICAgICBtX2xpc3RlbmVycy5h
ZGQoZXZlbnRUeXBlLCBhZG9wdFB0cihuZXcgTGlzdGVuZXJzQ291bnRlZFNldCkpOworICAgICAg
ICBsaXN0ZW5lcnMgPSBtX2xpc3RlbmVycy5maW5kKGV2ZW50VHlwZSktPnNlY29uZC5nZXQoKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgbGlzdGVuZXJzID0gaXRlckxpc3RlbmVyLT5zZWNvbmQuZ2V0
KCk7CisgICAgbGlzdGVuZXJzLT5hZGQod2luZG93KTsKK30KKwordm9pZCBEZXZpY2VDb250cm9s
bGVyOjpyZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIW1fY2xpZW50cy5jb250YWlucyhl
dmVudFR5cGUpIHx8ICFtX2xpc3RlbmVycy5jb250YWlucyhldmVudFR5cGUpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBMaXN0ZW5lcnNDb3VudGVkU2V0KiBsaXN0ZW5lcnMgPSBtX2xpc3RlbmVy
cy5maW5kKGV2ZW50VHlwZSktPnNlY29uZC5nZXQoKTsKKyAgICBsaXN0ZW5lcnMtPnJlbW92ZSh3
aW5kb3cpOworICAgIGlmIChsaXN0ZW5lcnMtPmlzRW1wdHkoKSkgeworICAgICAgICBtX2xpc3Rl
bmVycy5yZW1vdmUoZXZlbnRUeXBlKTsKKyAgICAgICAgbV9jbGllbnRzLmZpbmQoZXZlbnRUeXBl
KS0+c2Vjb25kLT5zdG9wVXBkYXRpbmcoKTsKKyAgICB9CisKKyAgICBzaXplX3QgbGFzdEV2ZW50
SGFuZGxlckNvdW50ID0gbV9sYXN0RXZlbnRIYW5kbGVyLnNpemUoKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxhc3RFdmVudEhhbmRsZXJDb3VudDsgKytpKQorICAgICAgICBpZiAobV9s
YXN0RXZlbnRIYW5kbGVyW2ldLmV2ZW50LT50eXBlKCkgPT0gZXZlbnRUeXBlICYmIG1fbGFzdEV2
ZW50SGFuZGxlcltpXS53aW5kb3cuZ2V0KCkgPT0gd2luZG93KQorICAgICAgICAgICAgbV9sYXN0
RXZlbnRIYW5kbGVyLnJlbW92ZShpKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpyZW1v
dmVBbGxMaXN0ZW5lcnMoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaW50IGxpc3RlbmVyc0Nv
dW50ID0gbV9saXN0ZW5lcnMuc2l6ZSgpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGlzdGVu
ZXJzQ291bnQ7ICsraSkgeworICAgICAgICBMaXN0ZW5lcnNNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBt
X2xpc3RlbmVycy5iZWdpbigpOworICAgICAgICBMaXN0ZW5lcnNDb3VudGVkU2V0KiBsaXN0ZW5l
cnMgPSBpdGVyLT5zZWNvbmQuZ2V0KCk7CisKKyAgICAgICAgaWYgKGxpc3RlbmVycy0+Y29udGFp
bnMod2luZG93KSkKKyAgICAgICAgICAgIGxpc3RlbmVycy0+cmVtb3ZlQWxsKHdpbmRvdyk7CisK
KyAgICAgICAgaWYgKGxpc3RlbmVycy0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBtX2NsaWVu
dHMuZmluZChpdGVyLT5maXJzdCktPnNlY29uZC0+c3RvcFVwZGF0aW5nKCk7CisgICAgICAgICAg
ICBtX2xpc3RlbmVycy5yZW1vdmUoaXRlcik7CisgICAgICAgICAgICBzaXplX3QgbGFzdEV2ZW50
SGFuZGxlckNvdW50ID0gbV9sYXN0RXZlbnRIYW5kbGVyLnNpemUoKTsKKyAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbGFzdEV2ZW50SGFuZGxlckNvdW50OyArK2kpCisgICAgICAg
ICAgICAgICAgaWYgKG1fbGFzdEV2ZW50SGFuZGxlcltpXS53aW5kb3cuZ2V0KCkgPT0gd2luZG93
KQorICAgICAgICAgICAgICAgICAgICBtX2xhc3RFdmVudEhhbmRsZXIucmVtb3ZlKGkpOworICAg
ICAgICB9CisgICAgfQorfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmFkZERldmljZUNsaWVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxEZXZpY2VDbGllbnQ+
IGNsaWVudCkKK3sKKyAgICBtX2NsaWVudHMuYWRkKGV2ZW50VHlwZSwgY2xpZW50KTsKK30KKwor
RGV2aWNlQ2xpZW50KiBEZXZpY2VDb250cm9sbGVyOjpkZXZpY2VDbGllbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUpCit7CisgICAgRGV2aWNlQ2xpZW50TWFwOjppdGVyYXRvciBpdGVy
ID0gbV9jbGllbnRzLmZpbmQoZXZlbnRUeXBlKTsKKyAgICBpZiAoaXRlciA9PSBtX2NsaWVudHMu
ZW5kKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBpdGVyLT5zZWNvbmQuZ2V0KCk7
Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZWl2Y2VFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBwcnBFdmVudCkKK3sKKyAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gcHJwRXZl
bnQ7CisgICAgaWYgKCFtX2xpc3RlbmVycy5jb250YWlucyhldmVudC0+dHlwZSgpKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgVmVjdG9yPFJlZlB0cjxET01XaW5kb3c+ID4gbGlzdGVuZXJzOwor
ICAgIExpc3RlbmVyc0NvdW50ZWRTZXQqIGxpc3RlbmVyc1NldCA9IG1fbGlzdGVuZXJzLmZpbmQo
ZXZlbnQtPnR5cGUoKSktPnNlY29uZC5nZXQoKTsKKyAgICBjb3B5VG9WZWN0b3IoKmxpc3RlbmVy
c1NldCwgbGlzdGVuZXJzKTsKKyAgICBzaXplX3QgbGlzdGVuZXJzQ291bnQgPSBsaXN0ZW5lcnMu
c2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdGVuZXJzQ291bnQ7ICsraSkK
KyAgICAgICAgaWYgKCFsaXN0ZW5lcnNbaV0tPmRvY3VtZW50KCktPmFjdGl2ZURPTU9iamVjdHNB
cmVTdXNwZW5kZWQoKSkKKyAgICAgICAgICAgIGxpc3RlbmVyc1tpXS0+ZGlzcGF0Y2hFdmVudChl
dmVudCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmljZUV2ZW50KFRpbWVy
PERldmljZUNvbnRyb2xsZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0
aW1lciA9PSAmbV90aW1lcik7CisKKyAgICBMYXN0RXZlbnRIYW5kbGVyVmVjdG9yIGxhc3RFdmVu
dEhhbmRsZXIgPSBtX2xhc3RFdmVudEhhbmRsZXI7CisgICAgbV9sYXN0RXZlbnRIYW5kbGVyLmNs
ZWFyKCk7CisgICAgc2l6ZV90IGxhc3RFdmVudEhhbmRsZXJDb3VudCA9IGxhc3RFdmVudEhhbmRs
ZXIuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGFzdEV2ZW50SGFuZGxlckNv
dW50OyArK2kpCisgICAgICAgIGxhc3RFdmVudEhhbmRsZXJbaV0ud2luZG93LT5kaXNwYXRjaEV2
ZW50KGxhc3RFdmVudEhhbmRsZXJbaV0uZXZlbnQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5Yzk1
ZDViZGQ2NzNmMzI5YmQyYzAwYmQ1NzI1MTI2ZjgxZjM3MWQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApAQCAtMCwwICsxLDc2IEBACisv
KgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZUNvbnRyb2xsZXJfaAorI2RlZmlu
ZSBEZXZpY2VDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUg
IkRldmljZUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJUaW1lci5oIgor
I2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIERldmljZUNvbnRyb2xsZXIgeworcHVibGljOgorICAgIH5EZXZpY2VDb250cm9sbGVy
KCkgeyB9OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8RGV2aWNlQ29udHJvbGxlcj4gY3JlYXRl
KFBhZ2UqKTsKKyAgICBzdGF0aWMgYm9vbCBpc0RldmljZUV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlKTsKKworICAgIHZvaWQgYWRkRGV2aWNlRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1vdmVEZXZp
Y2VFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cq
KTsKKyAgICB2b2lkIHJlbW92ZUFsbExpc3RlbmVycyhET01XaW5kb3cqKTsKKworICAgIHZvaWQg
YWRkRGV2aWNlQ2xpZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRy
PERldmljZUNsaWVudD4pOworICAgIERldmljZUNsaWVudCogZGV2aWNlQ2xpZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlKTsKKyAgICB2b2lkIGRpc3BhdGNoRGVpdmNlRXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4pOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERldmljZUNvbnRyb2xs
ZXIoUGFnZSopOworCisgICAgdm9pZCBmaXJlRGV2aWNlRXZlbnQoVGltZXI8RGV2aWNlQ29udHJv
bGxlcj4qKTsKKworICAgIFBhZ2UqIG1fcGFnZTsKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWlj
U3RyaW5nLCBSZWZQdHI8RGV2aWNlQ2xpZW50PiA+IERldmljZUNsaWVudE1hcDsKKyAgICBEZXZp
Y2VDbGllbnRNYXAgbV9jbGllbnRzOworICAgIHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8UmVmUHRy
PERPTVdpbmRvdz4gPiBMaXN0ZW5lcnNDb3VudGVkU2V0OworICAgIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmcsIE93blB0cjxMaXN0ZW5lcnNDb3VudGVkU2V0PiA+IExpc3RlbmVyc01hcDsK
KyAgICBMaXN0ZW5lcnNNYXAgbV9saXN0ZW5lcnM7CisKKyAgICBzdHJ1Y3QgTGFzdEV2ZW50SGFu
ZGxlciB7CisgICAgICAgIFJlZlB0cjxET01XaW5kb3c+IHdpbmRvdzsKKyAgICAgICAgUmVmUHRy
PEV2ZW50PiBldmVudDsKKworICAgICAgICBMYXN0RXZlbnRIYW5kbGVyKERPTVdpbmRvdyogcFdp
bmRvdywgUGFzc1JlZlB0cjxFdmVudD4gcHJwRXZlbnQpCisgICAgICAgICAgICA6IHdpbmRvdyhw
V2luZG93KQorICAgICAgICAgICAgLCBldmVudChwcnBFdmVudCkKKyAgICAgICAgeworICAgICAg
ICB9CisgICAgfTsKKyAgICB0eXBlZGVmIFZlY3RvcjxMYXN0RXZlbnRIYW5kbGVyPiBMYXN0RXZl
bnRIYW5kbGVyVmVjdG9yOworICAgIExhc3RFdmVudEhhbmRsZXJWZWN0b3IgbV9sYXN0RXZlbnRI
YW5kbGVyOworCisgICAgVGltZXI8RGV2aWNlQ29udHJvbGxlcj4gbV90aW1lcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZUNvbnRyb2xsZXJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggOGM3MGY3ODU0YzU1NmI4ZTlhNTIyNzQxNGQyNDBjYWYwZWNhYzA5
Mi4uNzRlZTQ3NzgwZDA5ODQ1Y2ViYzg3OTZjNDU1YjcyNzZiMGE1YTU5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKKyNpbmNsdWRlICJEZXZpY2VDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJF
ZGl0b3JDbGllbnQuaCIKQEAgLTExNCw2ICsxMTUsNyBAQCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cihGcmFtZSogZnJhbWUpCiAKIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQog
ICAgIDogbV9jaHJvbWUoQ2hyb21lOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuY2hyb21lQ2xp
ZW50KSkKKyAgICAsIG1fZGV2aWNlQ29udHJvbGxlcihEZXZpY2VDb250cm9sbGVyOjpjcmVhdGUo
dGhpcykpCiAgICAgLCBtX2RyYWdDYXJldENvbnRyb2xsZXIoRHJhZ0NhcmV0Q29udHJvbGxlcjo6
Y3JlYXRlKCkpCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAsIG1fZHJhZ0NvbnRyb2xs
ZXIoRHJhZ0NvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50KSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKaW5kZXggMmJhNzIyYWNjNzM0NWI4MmVkNjQ5MjI3YzQ5MjFkMjU1ZWMxZTI1
Zi4uMjIxYTQxZGEwYjE0ZThiMGVmOGVjNTI2OGQwZjZlOGE2ZDMwMzlhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENvbnRl
eHRNZW51Q29udHJvbGxlcjsKICNlbmRpZgogICAgIGNsYXNzIERvY3VtZW50OworICAgIGNsYXNz
IERldmljZUNvbnRyb2xsZXI7CiAgICAgY2xhc3MgRHJhZ0NhcmV0Q29udHJvbGxlcjsKICAgICBj
bGFzcyBEcmFnQ2xpZW50OwogICAgIGNsYXNzIERyYWdDb250cm9sbGVyOwpAQCAtMTcyLDYgKzE3
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgaW50IGZyYW1lQ291bnQoKSBjb25z
dCB7IGNoZWNrRnJhbWVDb3VudENvbnNpc3RlbmN5KCk7IHJldHVybiBtX2ZyYW1lQ291bnQ7IH0K
IAogICAgICAgICBDaHJvbWUqIGNocm9tZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2hyb21lLmdldCgp
OyB9CisgICAgICAgIERldmljZUNvbnRyb2xsZXIqIGRldmljZUNvbnRyb2xsZXIoKSBjb25zdCB7
IHJldHVybiBtX2RldmljZUNvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICAgICAgRHJhZ0NhcmV0Q29u
dHJvbGxlciogZHJhZ0NhcmV0Q29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZHJhZ0NhcmV0
Q29udHJvbGxlci5nZXQoKTsgfQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgICAgIERy
YWdDb250cm9sbGVyKiBkcmFnQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZHJhZ0NvbnRy
b2xsZXIuZ2V0KCk7IH0KQEAgLTM1MSw2ICszNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCgpIGNvbnN0OwogCiAgICAgICAgIE93
blB0cjxDaHJvbWU+IG1fY2hyb21lOworICAgICAgICBPd25QdHI8RGV2aWNlQ29udHJvbGxlcj4g
bV9kZXZpY2VDb250cm9sbGVyOwogICAgICAgICBPd25QdHI8RHJhZ0NhcmV0Q29udHJvbGxlcj4g
bV9kcmFnQ2FyZXRDb250cm9sbGVyOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160375</attachid>
            <date>2012-08-24 03:13:55 -0700</date>
            <delta_ts>2012-09-04 04:42:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120824191350.patch</filename>
            <type>text/plain</type>
            <size>23642</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODY1NzliMDViYzI4YmE2
MjhhM2JhNGM3MWVjODg1YjllZjg3ZjA1Mi4uYTAzNTM5ZTliMzk1Y2M5ZmFjODNhMDQwMTZhZTIz
NzYyYmVjMjc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA4LTI0ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAgICBEZXZpY2VD
b250cm9sbGVyIGNvbnRyb2xzIGFsbCBraW5kIG9mIGRldmljZSBjbGllbnRzIGZvciBkZXZpY2Ug
ZXZlbnRzIG9mIERPTVdpbmRvdy4KKyAgICAgICAgZS5nLikgRGV2aWNlIE1vdGlvbiBFdmVudHMs
IERldmljZSBPcmllbnRhdGlvbiBFdmVudHMsIFByb3hpbWl0eSBFdmVudHMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ2xp
ZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZXZpY2VDbGllbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6bGFzdEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRldmljZUNsaWVudDo6RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKiBwYWdlL0RldmljZUNvbnRy
b2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRy
b2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJv
bGxlcjo6aXNEZXZpY2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVy
OjphZGREZXZpY2VFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRy
b2xsZXI6OnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlQ29udHJvbGxlcjo6cmVtb3ZlQWxsTGlzdGVuZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6OmFkZERldmljZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpkZXZpY2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29u
dHJvbGxlcjo6ZGlzcGF0Y2hEZWl2Y2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VD
b250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJv
bGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2aWNlQ29udHJv
bGxlcik6CisgICAgICAgIChMYXN0RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZUNvbnRyb2xsZXI6Okxhc3RFdmVudEhhbmRsZXI6Okxhc3RFdmVudEhhbmRsZXIpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6ZGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChQYWdlKToKKwogMjAxMi0wOC0y
MyAgRnJlZGVyaWsgR2xhZGhvcm4gIDxnbGFkaG9ybkBrZGUub3JnPgogCiAgICAgICAgIE1ha2Ug
aXQgcG9zc2libGUgdG8gYnVpbGQgV2ViS2l0IHdpdGggUHl0aG9uIDMgKGFuZCAyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCBhMTRjNWJlYTVkOWFhODBjNWM4YjNjZGIzZjVhY2Q2NDMxNDA2YTM4
Li5mZjJlZjFjODc1M2ZiZGE1NjkxMWI1ZjUwMTQ2ZTU5OTgzZTc0MTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTY2Niw2ICsxNjY2LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBh
Z2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcAogICAgIHBhZ2UvQ3J5cHRvLmNwcAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5j
cHAKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5jcHAKICAgICBwYWdlL0RPTVNlY3Vy
aXR5UG9saWN5LmNwcAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggY2ExMTBhNTlhNjlkMWZlMzAxM2E1ZDI5NTY5NzNlYzQ3OTZlOTMw
Ni4uNmU2NDBmNjE0MTZkNWFmMTdiMTkxZTBmOGI5YzNiYTlhNjliMGZlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTE2LDYgKzM5MTYsOSBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29vcmRpbmF0ZXMuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9DcnlwdG8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRy
b2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA4
YjBkYjIxN2QwNmU3N2FiNjM1NzA3NDIwZmNlNTgzMjRhNTlmYjRiLi5lYmFjYTViZDAwNjI5NjNh
ODdhYTRiYTVlNzU4YzNmNjdjNjA3ODU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTg1NCw2ICs4NTQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgXAogICAg
IHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9DcnlwdG8uY3BwIFwK
KyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dn
aW5nS2V5cy5jcHAgXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmNwcCBcCiAgICAgcGFnZS9ET01U
aW1lci5jcHAgXApAQCAtMTk2Myw2ICsxOTY0LDggQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuaCBcCiAgICAgcGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmgg
XAogICAgIHBhZ2UvQ29vcmRpbmF0ZXMuaCBcCisgICAgcGFnZS9EZXZpY2VDbGllbnQuaCBcCisg
ICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmggXAogICAgIHBhZ2UvRE9NU2VsZWN0aW9uLmggXAogICAgIHBhZ2UvRE9NVGltZXIuaCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggMGJhMzM3NzZmNjY2NTc1YTFiOWU4ZTYyNjBjMTA4YmUxN2I1
MDNlYi4uNTNlYWMyNWNhMTg3MmEwNjM5ZWUxZTRiZjYxMDI4YmE2YjkxNWE2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMzA3OCw2ICszMDc4LDkgQEAKICAgICAgICAgICAgICdwYWdlL0NvbnRleHRN
ZW51UHJvdmlkZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0NyeXB0by5oJywKKyAgICAgICAgICAgICdwYWdlL0RldmljZUNsaWVudC5oJywK
KyAgICAgICAgICAgICdwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdw
YWdlL0RldmljZUNvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0tleXMuY3BwJywKICAgICAgICAgICAgICdwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5o
JywKICAgICAgICAgICAgICdwYWdlL0RPTVNlY3VyaXR5UG9saWN5LmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDg3NThmY2UxOTI1MjJj
YzY5ZTViZDFhYzRjMTA4ZmRkNWZmZWIyN2YuLmU4NDkzN2MzNzk3MDI2Yzg4MGRlZTQ3MWYxNGVm
MTYyMWNjY2QyZDggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC0yNjg5NSw2ICsyNjg5NSwxOCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNsaWVudC5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERldmljZUNvbnRy
b2xsZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXERldmljZUNvbnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIgog
CQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBhOTc0ZmZhZjY3YjQ4YzgwM2VhYWU1Y2EzZWYzM2Y0MTNk
ZjFmZTUwLi41OWVmMjllZWQ0NWNhNjlhYjkxMDRhNWUzMjEwZGVjNjA3MDgzYzVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01
ODMxLDYgKzU4MzEsOSBAQAogCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAg
Ki87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5Rjkw
RTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovOyB9OwogCQlDQUU5
RjkxMDE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIx
IC8qIENTU1ZhcmlhYmxlVmFsdWUuaCAqLzsgfTsKKwkJQ0MyNEQ2NDkxNUUyMTJFOTAwNzlERDc5
IC8qIERldmljZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNsaWVudC5oICovOyB9
OworCQlDQzI0RDY0QTE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQzI0RDY0NzE1RTIx
MkU5MDA3OURENzkgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi87IH07CisJCUNDMjRENjRCMTVF
MjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQzI0RDY0ODE1RTIxMkU5MDA3OURENzkgLyogRGV2
aWNlQ29udHJvbGxlci5oICovOyB9OwogCQlDRDEyN0RFRDE0RjMwOTdEMDBFODQ3NzkgLyogV2Vi
Q29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3Jl
ZW5XaW5kb3cubW0gKi87IH07CiAJCUNEMTI3REVFMTRGMzA5ODQwMEU4NDc3OSAvKiBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2lu
ZG93LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkUyMTQ1NzY3NTgw
MDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xMzEzMSw2ICsxMzEz
NCw5IEBACiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlv
VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYw
MDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhcmlhYmxlVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDYxNUUyMTJFOTAwNzlERDc5IC8qIERldmlj
ZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0MyNEQ2NDcxNUUyMTJFOTAwNzlERDc5
IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNDMjRENjQ4MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxMjdERUExNEYzMDk3OTAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxs
U2NyZWVuV2luZG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVC
MTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDI3RjZFMDE0NTc1QzFCMDA3ODIwN0Qg
LyogTWVkaWFDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU3MTYsNiArMTU3MjIsOSBAQAogCQkJCTk3NUNBMjg3
MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uY3BwICovLAogCQkJCTk3NUNBMjg4MTMwMzY1Rjgw
MEU5OUFEOSAvKiBDcnlwdG8uaCAqLywKIAkJCQk5NzVDQTI4OTEzMDM2NUY4MDBFOTlBRDkgLyog
Q3J5cHRvLmlkbCAqLywKKwkJCQlDQzI0RDY0NjE1RTIxMkU5MDA3OURENzkgLyogRGV2aWNlQ2xp
ZW50LmggKi8sCisJCQkJQ0MyNEQ2NDcxNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNvbnRyb2xs
ZXIuY3BwICovLAorCQkJCUNDMjRENjQ4MTVFMjEyRTkwMDc5REQ3OSAvKiBEZXZpY2VDb250cm9s
bGVyLmggKi8sCiAJCQkJQ0QzN0IzNzQxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0aWNMb2dn
aW5nS2V5cy5jcHAgKi8sCiAJCQkJQ0QzN0IzNzUxNUMxQTdFMTAwNkRDODk4IC8qIERpYWdub3N0
aWNMb2dnaW5nS2V5cy5oICovLAogCQkJCTJEOUEyNDZBMTVCOUJCREQwMEQzNDUyNyAvKiBET01T
ZWN1cml0eVBvbGljeS5jcHAgKi8sCkBAIC0yODUzMyw2ICsyODU0Miw3IEBACiAJCQkJRTFCRTUx
MkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0MyNEQ2NEExNUUyMTJFOTAwNzlERDc5IC8qIERldmljZUNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZDc4
N2E2NWJkNmQ4MGM1NTBmOGQxMmEwZDRmMTMxZjc4NjFkMTdhZC4uODU4YmVhYmQ5NGMyNGFkMmI1
NWFlMDc4MDQ0YmM5YzI0N2MyYWEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAt
NDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKICNpbmNs
dWRlICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQ2FsbGJhY2suaCIKKyNpbmNsdWRl
ICJEZXZpY2VDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCkBAIC0xNTg1LDYgKzE1ODYsOSBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAog
ICAgIH0KICNlbmRpZgogCisgICAgaWYgKERldmljZUNvbnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQo
ZXZlbnRUeXBlKSAmJiBwYWdlKCkpCisgICAgICAgIHBhZ2UoKS0+ZGV2aWNlQ29udHJvbGxlcigp
LT5hZGREZXZpY2VFdmVudExpc3RlbmVyKGV2ZW50VHlwZSwgdGhpcyk7CisKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtMTYxNCw2ICsxNjE4LDkgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2
ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIK
ICAgICB9CiAjZW5kaWYKIAorICAgIGlmIChEZXZpY2VDb250cm9sbGVyOjppc0RldmljZUV2ZW50
KGV2ZW50VHlwZSkgJiYgcGFnZSgpKQorICAgICAgICBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIo
KS0+cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIHRoaXMpOworCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTE2NjksNiArMTY3Niw4IEBAIHZvaWQgRE9NV2luZG93OjpyZW1v
dmVBbGxFdmVudExpc3RlbmVycygpCiAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKCkp
KQogICAgICAgICBjb250cm9sbGVyLT5yZW1vdmVBbGxMaXN0ZW5lcnModGhpcyk7CiAjZW5kaWYK
KyAgICBpZiAocGFnZSgpKQorICAgICAgICBwYWdlKCktPmRldmljZUNvbnRyb2xsZXIoKS0+cmVt
b3ZlQWxsTGlzdGVuZXJzKHRoaXMpOwogCiAgICAgcmVtb3ZlQWxsVW5sb2FkRXZlbnRMaXN0ZW5l
cnModGhpcyk7CiAgICAgcmVtb3ZlQWxsQmVmb3JlVW5sb2FkRXZlbnRMaXN0ZW5lcnModGhpcyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzJkNDRkMjE5NjBlZWY3
NDM1Zjg2NWZjZWIzMmY5ZjZlYWY0NmVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EZXZpY2VDbGllbnQuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaWZuZGVmIERldmljZUNsaWVudF9oCisjZGVmaW5lIERldmljZUNsaWVudF9oCisK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRXZlbnQ7CisKK2NsYXNzIERldmljZUNs
aWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPERldmljZUNsaWVudD4geworcHVibGljOgorICAgIHZp
cnR1YWwgfkRldmljZUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRp
bmcoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKworICAgIFBh
c3NSZWZQdHI8RXZlbnQ+IGxhc3RFdmVudCgpIHsgcmV0dXJuIDA7IH0KKworcHJvdGVjdGVkOgor
ICAgIERldmljZUNsaWVudCgpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRGV2aWNlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGV2aWNlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZTM0MTJlNDI3YWVlMDhiZGVjNDY3MmIyNWJkZTM0OGQ4MDg4
ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xs
ZXIuY3BwCkBAIC0wLDAgKzEsMTQ3IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAi
RGV2aWNlQ2xpZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NPd25QdHI8RGV2aWNlQ29udHJvbGxlcj4g
RGV2aWNlQ29udHJvbGxlcjo6Y3JlYXRlKFBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBEZXZpY2VDb250cm9sbGVyKHBhZ2UpKTsKK30KKworRGV2aWNlQ29udHJvbGxlcjo6
RGV2aWNlQ29udHJvbGxlcihQYWdlKiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisgICAgLCBt
X3RpbWVyKHRoaXMsICZEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpCit7Cit9CisK
K2Jvb2wgRGV2aWNlQ29udHJvbGxlcjo6aXNEZXZpY2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZXZlbnRUeXBlKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93KiB3aW5kb3cpCit7Cisg
ICAgaWYgKCFtX2NsaWVudHMuY29udGFpbnMoZXZlbnRUeXBlKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgRGV2aWNlQ2xpZW50TWFwOjppdGVyYXRvciBpdGVyQ2xpZW50ID0gbV9jbGllbnRzLmZp
bmQoZXZlbnRUeXBlKTsKKyAgICBpZiAoaXRlckNsaWVudCAhPSBtX2NsaWVudHMuZW5kKCkgJiYg
aXRlckNsaWVudC0+c2Vjb25kLT5sYXN0RXZlbnQoKSkgeworICAgICAgICBtX2xhc3RFdmVudEhh
bmRsZXIuYXBwZW5kKExhc3RFdmVudEhhbmRsZXIod2luZG93LCBpdGVyQ2xpZW50LT5zZWNvbmQt
Pmxhc3RFdmVudCgpKSk7CisgICAgICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAg
ICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgfQorCisgICAgTGlzdGVuZXJzTWFw
OjppdGVyYXRvciBpdGVyTGlzdGVuZXIgPSBtX2xpc3RlbmVycy5maW5kKGV2ZW50VHlwZSk7Cisg
ICAgTGlzdGVuZXJzQ291bnRlZFNldCogbGlzdGVuZXJzOworICAgIGlmIChpdGVyTGlzdGVuZXIg
PT0gbV9saXN0ZW5lcnMuZW5kKCkpIHsKKyAgICAgICAgbV9jbGllbnRzLmZpbmQoZXZlbnRUeXBl
KS0+c2Vjb25kLT5zdGFydFVwZGF0aW5nKCk7CisgICAgICAgIG1fbGlzdGVuZXJzLmFkZChldmVu
dFR5cGUsIGFkb3B0UHRyKG5ldyBMaXN0ZW5lcnNDb3VudGVkU2V0KSk7CisgICAgICAgIGxpc3Rl
bmVycyA9IG1fbGlzdGVuZXJzLmZpbmQoZXZlbnRUeXBlKS0+c2Vjb25kLmdldCgpOworICAgIH0g
ZWxzZQorICAgICAgICBsaXN0ZW5lcnMgPSBpdGVyTGlzdGVuZXItPnNlY29uZC5nZXQoKTsKKyAg
ICBsaXN0ZW5lcnMtPmFkZCh3aW5kb3cpOworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OnJl
bW92ZURldmljZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERP
TVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghbV9jbGllbnRzLmNvbnRhaW5zKGV2ZW50VHlw
ZSkgfHwgIW1fbGlzdGVuZXJzLmNvbnRhaW5zKGV2ZW50VHlwZSkpCisgICAgICAgIHJldHVybjsK
KworICAgIExpc3RlbmVyc0NvdW50ZWRTZXQqIGxpc3RlbmVycyA9IG1fbGlzdGVuZXJzLmZpbmQo
ZXZlbnRUeXBlKS0+c2Vjb25kLmdldCgpOworICAgIGxpc3RlbmVycy0+cmVtb3ZlKHdpbmRvdyk7
CisgICAgaWYgKGxpc3RlbmVycy0+aXNFbXB0eSgpKSB7CisgICAgICAgIG1fbGlzdGVuZXJzLnJl
bW92ZShldmVudFR5cGUpOworICAgICAgICBtX2NsaWVudHMuZmluZChldmVudFR5cGUpLT5zZWNv
bmQtPnN0b3BVcGRhdGluZygpOworICAgIH0KKworICAgIHNpemVfdCBsYXN0RXZlbnRIYW5kbGVy
Q291bnQgPSBtX2xhc3RFdmVudEhhbmRsZXIuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGFzdEV2ZW50SGFuZGxlckNvdW50OyArK2kpCisgICAgICAgIGlmIChtX2xhc3RFdmVu
dEhhbmRsZXJbaV0uZXZlbnQtPnR5cGUoKSA9PSBldmVudFR5cGUgJiYgbV9sYXN0RXZlbnRIYW5k
bGVyW2ldLndpbmRvdy5nZXQoKSA9PSB3aW5kb3cpCisgICAgICAgICAgICBtX2xhc3RFdmVudEhh
bmRsZXIucmVtb3ZlKGkpOworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbExp
c3RlbmVycyhET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpbnQgbGlzdGVuZXJzQ291bnQgPSBt
X2xpc3RlbmVycy5zaXplKCk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsaXN0ZW5lcnNDb3Vu
dDsgKytpKSB7CisgICAgICAgIExpc3RlbmVyc01hcDo6aXRlcmF0b3IgaXRlciA9IG1fbGlzdGVu
ZXJzLmJlZ2luKCk7CisgICAgICAgIExpc3RlbmVyc0NvdW50ZWRTZXQqIGxpc3RlbmVycyA9IGl0
ZXItPnNlY29uZC5nZXQoKTsKKworICAgICAgICBpZiAobGlzdGVuZXJzLT5jb250YWlucyh3aW5k
b3cpKQorICAgICAgICAgICAgbGlzdGVuZXJzLT5yZW1vdmVBbGwod2luZG93KTsKKworICAgICAg
ICBpZiAobGlzdGVuZXJzLT5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIG1fY2xpZW50cy5maW5k
KGl0ZXItPmZpcnN0KS0+c2Vjb25kLT5zdG9wVXBkYXRpbmcoKTsKKyAgICAgICAgICAgIG1fbGlz
dGVuZXJzLnJlbW92ZShpdGVyKTsKKyAgICAgICAgICAgIHNpemVfdCBsYXN0RXZlbnRIYW5kbGVy
Q291bnQgPSBtX2xhc3RFdmVudEhhbmRsZXIuc2l6ZSgpOworICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBsYXN0RXZlbnRIYW5kbGVyQ291bnQ7ICsraSkKKyAgICAgICAgICAgICAg
ICBpZiAobV9sYXN0RXZlbnRIYW5kbGVyW2ldLndpbmRvdy5nZXQoKSA9PSB3aW5kb3cpCisgICAg
ICAgICAgICAgICAgICAgIG1fbGFzdEV2ZW50SGFuZGxlci5yZW1vdmUoaSk7CisgICAgICAgIH0K
KyAgICB9Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlQ2xpZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBQYXNzUmVmUHRyPERldmljZUNsaWVudD4gY2xpZW50
KQoreworICAgIG1fY2xpZW50cy5hZGQoZXZlbnRUeXBlLCBjbGllbnQpOworfQorCitEZXZpY2VD
bGllbnQqIERldmljZUNvbnRyb2xsZXI6OmRldmljZUNsaWVudChjb25zdCBBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSkKK3sKKyAgICBEZXZpY2VDbGllbnRNYXA6Oml0ZXJhdG9yIGl0ZXIgPSBtX2Ns
aWVudHMuZmluZChldmVudFR5cGUpOworICAgIGlmIChpdGVyID09IG1fY2xpZW50cy5lbmQoKSkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGl0ZXItPnNlY29uZC5nZXQoKTsKK30KKwor
dm9pZCBEZXZpY2VDb250cm9sbGVyOjpkaXNwYXRjaERlaXZjZUV2ZW50KFBhc3NSZWZQdHI8RXZl
bnQ+IHBycEV2ZW50KQoreworICAgIFJlZlB0cjxFdmVudD4gZXZlbnQgPSBwcnBFdmVudDsKKyAg
ICBpZiAoIW1fbGlzdGVuZXJzLmNvbnRhaW5zKGV2ZW50LT50eXBlKCkpKQorICAgICAgICByZXR1
cm47CisKKyAgICBWZWN0b3I8UmVmUHRyPERPTVdpbmRvdz4gPiBsaXN0ZW5lcnM7CisgICAgTGlz
dGVuZXJzQ291bnRlZFNldCogbGlzdGVuZXJzU2V0ID0gbV9saXN0ZW5lcnMuZmluZChldmVudC0+
dHlwZSgpKS0+c2Vjb25kLmdldCgpOworICAgIGNvcHlUb1ZlY3RvcigqbGlzdGVuZXJzU2V0LCBs
aXN0ZW5lcnMpOworICAgIHNpemVfdCBsaXN0ZW5lcnNDb3VudCA9IGxpc3RlbmVycy5zaXplKCk7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lcnNDb3VudDsgKytpKQorICAgICAg
ICBpZiAoIWxpc3RlbmVyc1tpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3Bl
bmRlZCgpKQorICAgICAgICAgICAgbGlzdGVuZXJzW2ldLT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsK
K30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQoVGltZXI8RGV2aWNl
Q29udHJvbGxlcj4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09
ICZtX3RpbWVyKTsKKworICAgIExhc3RFdmVudEhhbmRsZXJWZWN0b3IgbGFzdEV2ZW50SGFuZGxl
ciA9IG1fbGFzdEV2ZW50SGFuZGxlcjsKKyAgICBtX2xhc3RFdmVudEhhbmRsZXIuY2xlYXIoKTsK
KyAgICBzaXplX3QgbGFzdEV2ZW50SGFuZGxlckNvdW50ID0gbGFzdEV2ZW50SGFuZGxlci5zaXpl
KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYXN0RXZlbnRIYW5kbGVyQ291bnQ7ICsr
aSkKKyAgICAgICAgbGFzdEV2ZW50SGFuZGxlcltpXS53aW5kb3ctPmRpc3BhdGNoRXZlbnQobGFz
dEV2ZW50SGFuZGxlcltpXS5ldmVudCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjljOTVkNWJkZDY3
M2YzMjliZDJjMDBiZDU3MjUxMjZmODFmMzcxZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ29udHJvbGxlcl9oCisjZGVmaW5lIERldmlj
ZUNvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRGV2aWNl
Q2xpZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
RGV2aWNlQ29udHJvbGxlciB7CitwdWJsaWM6CisgICAgfkRldmljZUNvbnRyb2xsZXIoKSB7IH07
CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxEZXZpY2VDb250cm9sbGVyPiBjcmVhdGUoUGFnZSop
OworICAgIHN0YXRpYyBib29sIGlzRGV2aWNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUpOworCisgICAgdm9pZCBhZGREZXZpY2VFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqKTsKKyAgICB2b2lkIHJlbW92ZURldmljZUV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyopOworICAg
IHZvaWQgcmVtb3ZlQWxsTGlzdGVuZXJzKERPTVdpbmRvdyopOworCisgICAgdm9pZCBhZGREZXZp
Y2VDbGllbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RGV2aWNl
Q2xpZW50Pik7CisgICAgRGV2aWNlQ2xpZW50KiBkZXZpY2VDbGllbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUpOworICAgIHZvaWQgZGlzcGF0Y2hEZWl2Y2VFdmVudChQYXNzUmVmUHRy
PEV2ZW50Pik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgRGV2aWNlQ29udHJvbGxlcihQYWdl
Kik7CisKKyAgICB2b2lkIGZpcmVEZXZpY2VFdmVudChUaW1lcjxEZXZpY2VDb250cm9sbGVyPiop
OworCisgICAgUGFnZSogbV9wYWdlOworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmcs
IFJlZlB0cjxEZXZpY2VDbGllbnQ+ID4gRGV2aWNlQ2xpZW50TWFwOworICAgIERldmljZUNsaWVu
dE1hcCBtX2NsaWVudHM7CisgICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxSZWZQdHI8RE9NV2lu
ZG93PiA+IExpc3RlbmVyc0NvdW50ZWRTZXQ7CisgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0
cmluZywgT3duUHRyPExpc3RlbmVyc0NvdW50ZWRTZXQ+ID4gTGlzdGVuZXJzTWFwOworICAgIExp
c3RlbmVyc01hcCBtX2xpc3RlbmVyczsKKworICAgIHN0cnVjdCBMYXN0RXZlbnRIYW5kbGVyIHsK
KyAgICAgICAgUmVmUHRyPERPTVdpbmRvdz4gd2luZG93OworICAgICAgICBSZWZQdHI8RXZlbnQ+
IGV2ZW50OworCisgICAgICAgIExhc3RFdmVudEhhbmRsZXIoRE9NV2luZG93KiBwV2luZG93LCBQ
YXNzUmVmUHRyPEV2ZW50PiBwcnBFdmVudCkKKyAgICAgICAgICAgIDogd2luZG93KHBXaW5kb3cp
CisgICAgICAgICAgICAsIGV2ZW50KHBycEV2ZW50KQorICAgICAgICB7CisgICAgICAgIH0KKyAg
ICB9OworICAgIHR5cGVkZWYgVmVjdG9yPExhc3RFdmVudEhhbmRsZXI+IExhc3RFdmVudEhhbmRs
ZXJWZWN0b3I7CisgICAgTGFzdEV2ZW50SGFuZGxlclZlY3RvciBtX2xhc3RFdmVudEhhbmRsZXI7
CisKKyAgICBUaW1lcjxEZXZpY2VDb250cm9sbGVyPiBtX3RpbWVyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ29udHJvbGxlcl9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCA4YzcwZjc4NTRjNTU2YjhlOWE1MjI3NDE0ZDI0MGNhZjBlY2FjMDkyLi43NGVl
NDc3ODBkMDk4NDVjZWJjODc5NmM0NTViNzI3NmIwYTVhNTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1
ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2lu
Y2x1ZGUgIkRldmljZUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVkaXRvckNs
aWVudC5oIgpAQCAtMTE0LDYgKzExNSw3IEBAIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKEZyYW1l
KiBmcmFtZSkKIAogUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgOiBt
X2Nocm9tZShDaHJvbWU6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5jaHJvbWVDbGllbnQpKQor
ICAgICwgbV9kZXZpY2VDb250cm9sbGVyKERldmljZUNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzKSkK
ICAgICAsIG1fZHJhZ0NhcmV0Q29udHJvbGxlcihEcmFnQ2FyZXRDb250cm9sbGVyOjpjcmVhdGUo
KSkKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgICwgbV9kcmFnQ29udHJvbGxlcihEcmFn
Q29udHJvbGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAppbmRleCAyYmE3MjJhY2M3MzQ1YjgyZWQ2NDkyMjdjNDkyMWQyNTVlYzFlMjVmLi4yMjFh
NDFkYTBiMTRlOGIwZWY4ZWM1MjY4ZDBmNmU4YTZkMzAzOWFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAt
NjAsNiArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ29udGV4dE1lbnVD
b250cm9sbGVyOwogI2VuZGlmCiAgICAgY2xhc3MgRG9jdW1lbnQ7CisgICAgY2xhc3MgRGV2aWNl
Q29udHJvbGxlcjsKICAgICBjbGFzcyBEcmFnQ2FyZXRDb250cm9sbGVyOwogICAgIGNsYXNzIERy
YWdDbGllbnQ7CiAgICAgY2xhc3MgRHJhZ0NvbnRyb2xsZXI7CkBAIC0xNzIsNiArMTczLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBpbnQgZnJhbWVDb3VudCgpIGNvbnN0IHsgY2hl
Y2tGcmFtZUNvdW50Q29uc2lzdGVuY3koKTsgcmV0dXJuIG1fZnJhbWVDb3VudDsgfQogCiAgICAg
ICAgIENocm9tZSogY2hyb21lKCkgY29uc3QgeyByZXR1cm4gbV9jaHJvbWUuZ2V0KCk7IH0KKyAg
ICAgICAgRGV2aWNlQ29udHJvbGxlciogZGV2aWNlQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJu
IG1fZGV2aWNlQ29udHJvbGxlci5nZXQoKTsgfQogICAgICAgICBEcmFnQ2FyZXRDb250cm9sbGVy
KiBkcmFnQ2FyZXRDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnQ2FyZXRDb250cm9s
bGVyLmdldCgpOyB9CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICAgICAgRHJhZ0NvbnRy
b2xsZXIqIGRyYWdDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnQ29udHJvbGxlci5n
ZXQoKTsgfQpAQCAtMzUxLDYgKzM1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ZG91YmxlIG1pbmltdW1UaW1lckludGVydmFsKCkgY29uc3Q7CiAKICAgICAgICAgT3duUHRyPENo
cm9tZT4gbV9jaHJvbWU7CisgICAgICAgIE93blB0cjxEZXZpY2VDb250cm9sbGVyPiBtX2Rldmlj
ZUNvbnRyb2xsZXI7CiAgICAgICAgIE93blB0cjxEcmFnQ2FyZXRDb250cm9sbGVyPiBtX2RyYWdD
YXJldENvbnRyb2xsZXI7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162009</attachid>
            <date>2012-09-04 04:42:18 -0700</date>
            <delta_ts>2012-09-06 02:28:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120904204200.patch</filename>
            <type>text/plain</type>
            <size>38930</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjVmNGRiYTQ4NDE2YjJh
MDdiYmQ5N2Q4YWZjNzM3M2JmNGMzN2Y3My4uMTZlNzI3ZDExOWMzYmI5MzdjY2UxNjBiN2VjNjJk
MTY2NjhmM2Y5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA5LTA0ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAgICBEZXZpY2VD
b250cm9sbGVyIGlzIHVzZWQgZm9yIGFsbCBraW5kIG9mIGRldmljZSBldmVudHMgb2YgRE9NV2lu
ZG93LgorICAgICAgICBlLmcuKSBEZXZpY2UgTW90aW9uIEV2ZW50cywgRGV2aWNlIE9yaWVudGF0
aW9uIEV2ZW50cywgUHJveGltaXR5IEV2ZW50cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92
ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3dEZXZpY2VQcm92aWRlci5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93RGV2aWNlUHJv
dmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RGV2aWNlUHJvdmlkZXI6OkRPTVdp
bmRvd0RldmljZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0RldmljZVBy
b3ZpZGVyOjp+RE9NV2luZG93RGV2aWNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93RGV2aWNlUHJvdmlkZXI6OmRpc3BhdGNoRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvRGV2aWNlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChE
ZXZpY2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6RGV2aWNlQ2xpZW50KToKKyAg
ICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aXNEZXZpY2VFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpmcm9tKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2bmV0
TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hE
ZWl2Y2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2
aWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6c3VwcGxlbWVu
dE5hbWUpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjppc0FjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpjbGllbnQpOgorCiAyMDEyLTA5LTA0ICBBbGV4YW5kZXIgUGF2bG92ICA8
YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTW9yZSBkaXJl
Y3Rpb25hbCBjb250cm9sIGNoYXJhY3RlcnMgZm9yIGRlYnVnZ2luZyBpbiBpbnNwZWN0b3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNTc5ZjJjZTBkMzZkMTMxZmE1NDliOWU5MDJlNmVkZWU0ZWU1
ZDEwYi4uODNmYmM5MmEyMGUxYzBiOWZkNmUzYzM0NDBiM2JjODlhMzJjNWEzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTE2NzEsNiArMTY3MSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAKICAgICBwYWdlL0NyeXB0by5jcHAKKyAgICBwYWdlL0RldmljZUNvbnRyb2xs
ZXIuY3BwCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwCiAgICAgcGFnZS9ET01T
ZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IGI3MThiYjBkMDE1MzcyOGM2N2ZkZjExYmIwYzg4MzQxMDkx
YmZhZWIuLjVlNWYxZjk4MGU1YTVlZTJmNDgwMzViN2QxYmYwMmQwYTZhNmFlMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzkyOSw2ICszOTI5LDkgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVzLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaCBc
CisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUv
cGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
b250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlz
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAgXApAQCAtMzkzOSw2ICsz
OTQyLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRp
bWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dE
ZXZpY2VQcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lv
bi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93RXh0ZW5zaW9uLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IGY3MzU5YWY4ZmMxMjFmNjcwNmRkNmExMTcwMzljZDExYjBmZWJiNGQuLjYxNWFiM2FkZjMwMjI0
MzhiN2YxNTg2MjE4ZDUzM2FjMDBkNDgzNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODU2LDYgKzg1Niw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCiAg
ICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0NyeXB0by5jcHAg
XAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xv
Z2dpbmdLZXlzLmNwcCBcCiAgICAgcGFnZS9ET01TZWxlY3Rpb24uY3BwIFwKICAgICBwYWdlL0RP
TVRpbWVyLmNwcCBcCkBAIC0xOTY3LDEwICsxOTY4LDEzIEBAIEhFQURFUlMgKz0gXAogICAgIHBh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggXAogICAgIHBhZ2UvQ29udGV4dE1lbnVQcm92aWRl
ci5oIFwKICAgICBwYWdlL0Nvb3JkaW5hdGVzLmggXAorICAgIHBhZ2UvRGV2aWNlQ2xpZW50Lmgg
XAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dn
aW5nS2V5cy5oIFwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5oIFwKICAgICBwYWdlL0RPTVRpbWVy
LmggXAogICAgIHBhZ2UvRE9NV2luZG93LmggXAorICAgIHBhZ2UvRE9NV2luZG93RGV2aWNlUHJv
dmlkZXIuaCBcCiAgICAgcGFnZS9ET01XaW5kb3dFeHRlbnNpb24uaCBcCiAgICAgcGFnZS9EcmFn
Q29udHJvbGxlci5oIFwKICAgICBwYWdlL0RyYWdTdGF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA5ZmVhMjkxMTg5NzExNjYxNjg0MDRiMTFhOGM5OWQwNTAwZjM5ZDhlLi5mZTExY2IxZTA3N2Vj
NGRhNTQxYTcxNTBhYjc0Mjg4YjllYTgxZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMjcsNiAr
MjI3LDcgQEAKICAgICAgICAgICAgICdwYWdlL0Nvb3JkaW5hdGVzLmgnLAogICAgICAgICAgICAg
J3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaCcsCiAgICAgICAgICAgICAncGFnZS9ET01XaW5kb3cu
aCcsCisgICAgICAgICAgICAncGFnZS9ET01XaW5kb3dEZXZpY2VQcm92aWRlci5oJywKICAgICAg
ICAgICAgICdwYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5oJywKICAgICAgICAgICAgICdwYWdlL0Ry
YWdBY3Rpb25zLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRHJhZ0NsaWVudC5oJywKQEAgLTMwODQs
NiArMzA4NSw5IEBACiAgICAgICAgICAgICAncGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmgnLAog
ICAgICAgICAgICAgJ3BhZ2UvQ3J5cHRvLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8u
aCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDbGllbnQuaCcsCisgICAgICAgICAgICAncGFn
ZS9EZXZpY2VDb250cm9sbGVyLmNwcCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb250cm9s
bGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCcsCiAg
ICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuaCcsCiAgICAgICAgICAgICAn
cGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4YWZhM2FlNDk4MDJjNWY2ZjQyZGIzZDI4NDc3OTQ3
YWYyNTA4MTkzLi5kZmRkODYzYTZhMDIxNDIxYTA0NjA0OWFlNjU1NGIwMTJkMWJlMDdhIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjY5NTUs
NiArMjY5NTUsMTggQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGFnZVxEZXZpY2VDbGllbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDb250cm9sbGVyLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VD
b250cm9sbGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CkBAIC0yNjk4Nyw2ICsyNjk5OSwxMCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERPTVdpbmRvd0RldmljZVByb3ZpZGVyLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRE9NV2lu
ZG93RXh0ZW5zaW9uLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGE0MjQzZjc3ODc5MzM2
YWJkMmViMjM0ZmNkMGM5MGUyNjg5NWRmNi4uMTIwYTRlMTkzMjc4ZWFkMDg0NGZiNjNiYWM5NDRj
ODc1NDdhYzQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTgzOSw2ICs1ODM5LDEwIEBACiAJCUNBRTlGOTBGMTQ2NDQxRjAw
MEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIwIC8q
IENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1Zh
bHVlLmggKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5
RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFyaWFibGVWYWx1ZS5oICovOyB9OworCQlDQ0My
QjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyog
RGV2aWNlQ2xpZW50LmggKi87IH07CisJCUNDQzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZp
Y2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAq
LzsgfTsKKwkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVG
NjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi87IH07CisJCUNDQzJCNTE5MTVG
NjEzNjMwMDQ4Q0RENiAvKiBET01XaW5kb3dEZXZpY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTgxNUY2MTM2MzAwNDhDREQ2
IC8qIERPTVdpbmRvd0RldmljZVByb3ZpZGVyLmggKi87IH07CiAJCUNEMTI3REVEMTRGMzA5N0Qw
MEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsgfTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0
Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RFQTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29y
ZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDRDI3RjZFNTE0NTc2ODVBMDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Qy
N0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAg
LTEzMTU0LDYgKzEzMTU4LDEwIEBACiAJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
QUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJp
YWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhcmlhYmxl
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTAxNUY2MTMwNjAw
NDhDREQ2IC8qIERldmljZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEZXZpY2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTEx
NUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9s
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTgxNUY2MTM2MzAwNDhDREQ2
IC8qIERPTVdpbmRvd0RldmljZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTVdpbmRvd0RldmljZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRv
dy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBF
ODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTAxNDU3NUMxQjAwNzgyMDdEIC8qIE1lZGlhQ29u
dHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE1NzQ0LDYgKzE1NzUyLDkgQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBF
OTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyog
Q3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwg
Ki8sCisJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovLAor
CQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywK
KwkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovLAog
CQkJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3Bw
ICovLAogCQkJCUNEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuaCAqLywKIAkJCQkyRDlBMjQ2QTE1QjlCQkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xp
Y3kuY3BwICovLApAQCAtMTU3NTYsNiArMTU3NjcsNyBAQAogCQkJCTE0MDNCOTk2MDlFQjEzQUYw
MDc5N0M3RiAvKiBET01XaW5kb3cuY3BwICovLAogCQkJCTE0MDNCOTk1MDlFQjEzQUYwMDc5N0M3
RiAvKiBET01XaW5kb3cuaCAqLywKIAkJCQkxNDAzQjkwQzA5RUIxMjQ1MDA3OTdDN0YgLyogRE9N
V2luZG93LmlkbCAqLywKKwkJCQlDQ0MyQjUxODE1RjYxMzYzMDA0OENERDYgLyogRE9NV2luZG93
RGV2aWNlUHJvdmlkZXIuaCAqLywKIAkJCQk1MTdGQkExNzE1MUFBNzFCMDBCNTc5NTkgLyogRE9N
V2luZG93RXh0ZW5zaW9uLmNwcCAqLywKIAkJCQk1MTdGQkExODE1MUFBNzFCMDBCNTc5NTkgLyog
RE9NV2luZG93RXh0ZW5zaW9uLmggKi8sCiAJCQkJOTdEMkFEMDExNEI4MjNBNjAwOTNERjMyIC8q
IERPTVdpbmRvd1Byb3BlcnR5LmNwcCAqLywKQEAgLTE2MDE0LDYgKzE2MDI2LDkgQEAKIAkJCQk4
NUNBOTc1QjBBOTYyRTU0MDA2OTBDQ0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tICovLAogCQkJCTg1
MThEQ0U3MEE5Q0M4MEMwMDkxQjdBNiAvKiBET01ET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJ
CTg1MThEQ0U4MEE5Q0M4MEQwMDkxQjdBNiAvKiBET01ET01JbXBsZW1lbnRhdGlvbi5tbSAqLywK
KwkJCQk1MkNDQTlFNTE1RTNGNjRDMDA1M0M3N0YgLyogRE9NRE9NTmFtZWRGbG93Q29sbGVjdGlv
bi5oICovLAorCQkJCTUyQ0NBOUU2MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01OYW1lZEZsb3dD
b2xsZWN0aW9uLm1tICovLAorCQkJCTUyQ0NBOUU3MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01O
YW1lZEZsb3dDb2xsZWN0aW9uSW50ZXJuYWwuaCAqLywKIAkJCQkyRDlBMjQ3MDE1QjlDMjk1MDBE
MzQ1MjcgLyogRE9NRE9NU2VjdXJpdHlQb2xpY3kuaCAqLywKIAkJCQkyRDlBMjQ3MjE1QjlDMkM3
MDBEMzQ1MjcgLyogRE9NRE9NU2VjdXJpdHlQb2xpY3kubW0gKi8sCiAJCQkJMkQ5QTI0NzExNUI5
QzI5NTAwRDM0NTI3IC8qIERPTURPTVNlY3VyaXR5UG9saWN5SW50ZXJuYWwuaCAqLywKQEAgLTE2
MDM5LDkgKzE2MDU0LDYgQEAKIAkJCQk4QTE5NTkyRjE0N0VBMTZFMDBEMUVBNjEgLyogRE9NV2Vi
S2l0TmFtZWRGbG93LmggKi8sCiAJCQkJOEExOTU5MzAxNDdFQTE2RTAwRDFFQTYxIC8qIERPTVdl
YktpdE5hbWVkRmxvdy5tbSAqLywKIAkJCQk4QTE5NTkzMTE0N0VBMTZFMDBEMUVBNjEgLyogRE9N
V2ViS2l0TmFtZWRGbG93SW50ZXJuYWwuaCAqLywKLQkJCQk1MkNDQTlFNTE1RTNGNjRDMDA1M0M3
N0YgLyogRE9NRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5oICovLAotCQkJCTUyQ0NBOUU2MTVFM0Y2
NEMwMDUzQzc3RiAvKiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uLm1tICovLAotCQkJCTUyQ0NB
OUU3MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uSW50ZXJuYWwu
aCAqLywKIAkJCSk7CiAJCQluYW1lID0gQ29yZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0xODE0Miw3ICsxODE1NCw2IEBACiAJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBm
aWx0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1
MDlFQzEwODE1RTg0OENBMDBFODI1ODEgLyogQ3VzdG9tRmlsdGVyVHJhbnNmb3JtUGFyYW1ldGVy
LmggKi8sCiAJCQkJNDlFQ0VCNUMxNDk5NzkwRDAwQ0REM0E0IC8qIGFybSAqLywKIAkJCQk1MEQ0
MDYwRjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtLmNwcCAq
LywKIAkJCQk1MEQ0MDYxMDE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyQ29tcGlsZWRQ
cm9ncmFtLmggKi8sCkBAIC0xODE1OSw2ICsxODE3MCw3IEBACiAJCQkJNTAzRDBDQTkxNEI1QjA4
NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCAqLywKIAkJCQk1MEQ4OENC
MzE1QkRGREFBMDAxODA5RjQgLyogQ3VzdG9tRmlsdGVyUHJvZ3JhbUluZm8uY3BwICovLAogCQkJ
CTUwRDg4Q0I0MTVCREZEQUEwMDE4MDlGNCAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5oICov
LAorCQkJCTUwOUVDMTA4MTVFODQ4Q0EwMEU4MjU4MSAvKiBDdXN0b21GaWx0ZXJUcmFuc2Zvcm1Q
YXJhbWV0ZXIuaCAqLywKIAkJCQlBMjk1MzJDRDE1REQ1RTE3MDA0NjlFQkMgLyogQ3VzdG9tRmls
dGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAgKi8sCiAJCQkJQTI5NTMyQ0UxNURENUUxNzAwNDY5RUJD
IC8qIEN1c3RvbUZpbHRlclZhbGlkYXRlZFByb2dyYW0uaCAqLywKIAkJCQlBMUUxMTU0MzEzMDE1
QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCAqLywKQEAgLTE4ODY5LDggKzE4
ODgxLDYgQEAKIAkJQTgzQjc5MTAwQ0NCMDAxQjAwMEIwODI1IC8qIENvcmUgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUyQ0NBOUUwMTVFM0Y2MkMwMDUz
Qzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwICovLAotCQkJCTUyQ0NBOUUxMTVF
M0Y2MkMwMDUzQzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uaCAqLywKIAkJCQk2NURG
MzFEODA5RDFDMTIyMDAwQkUzMjUgLyogSlNBdHRyLmNwcCAqLywKIAkJCQk2NURGMzFEOTA5RDFD
MTIzMDAwQkUzMjUgLyogSlNBdHRyLmggKi8sCiAJCQkJOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0
IC8qIEpTQ0RBVEFTZWN0aW9uLmNwcCAqLywKQEAgLTE4ODk3LDYgKzE4OTA3LDggQEAKIAkJCQlC
QzYwRDdCRjBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmggKi8sCiAJCQkJ
NjVERjMxRTMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAog
CQkJCTY1REYzMUU0MDlEMUNDNjAwMDBCRTMyNSAvKiBKU0RPTUltcGxlbWVudGF0aW9uLmggKi8s
CisJCQkJNTJDQ0E5RTAxNUUzRjYyQzAwNTNDNzdGIC8qIEpTRE9NTmFtZWRGbG93Q29sbGVjdGlv
bi5jcHAgKi8sCisJCQkJNTJDQ0E5RTExNUUzRjYyQzAwNTNDNzdGIC8qIEpTRE9NTmFtZWRGbG93
Q29sbGVjdGlvbi5oICovLAogCQkJCUM1MTM3Q0YwMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0
cmluZ0xpc3QuY3BwICovLAogCQkJCUM1MTM3Q0YxMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0
cmluZ0xpc3QuaCAqLywKIAkJCQlCQzY0NjQ5NTExRDgyMzQ5MDA2NDU1QjAgLyogSlNET01TdHJp
bmdNYXAuY3BwICovLApAQCAtMTk4NjQsOCArMTk4NzYsOCBAQAogCQkJCTE0NEZDRkRFMTRFRjI1
MDkwMDBEMTdBMyAvKiBGcmFjdGlvbmFsTGF5b3V0UmVjdC5jcHAgKi8sCiAJCQkJMTQ0RkNGREYx
NEVGMjUwOTAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRSZWN0LmggKi8sCiAJCQkJMTQ0RkNF
NTgxNEVDNzlFNzAwMEQxN0EzIC8qIEZyYWN0aW9uYWxMYXlvdXRTaXplLmggKi8sCi0JCQkJQkMy
M0YwREEwREFGRjRBNDAwOUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJNEZCMzkw
QUMxNUVGNjFGMzAwN0FENTFGIC8qIEdlbmVyYXRlZEltYWdlLmNwcCAqLywKKwkJCQlCQzIzRjBE
QTBEQUZGNEE0MDA5RkRDOTEgLyogR2VuZXJhdGVkSW1hZ2UuaCAqLywKIAkJCQlCQ0UwNEM4OTBE
QUZGN0EwMDA3QTBGNDEgLyogR2VuZXJhdG9yLmggKi8sCiAJCQkJMkQyRkMwNTYxNDYwQ0Q2RjAw
MjYzNjMzIC8qIEdlbmVyYXRvckdlbmVyYXRlZEltYWdlLmNwcCAqLywKIAkJCQkyRDJGQzA1NzE0
NjBDRDZGMDAyNjM2MzMgLyogR2VuZXJhdG9yR2VuZXJhdGVkSW1hZ2UuaCAqLywKQEAgLTIxMDQz
LDkgKzIxMDU1LDkgQEAKIAkJRjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNzcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTNDQTRDOUMwOURGOTNG
QTAwREY4Njc3IC8qIG1ha2V0b2tlbml6ZXIgKi8sCiAJCQkJRkJENkFGODQxNUVGMjFENDAwOEI3
MTEwIC8qIEJhc2ljU2hhcGVGdW5jdGlvbnMuY3BwICovLAogCQkJCUZCRDZBRjg1MTVFRjIxRDQw
MDhCNzExMCAvKiBCYXNpY1NoYXBlRnVuY3Rpb25zLmggKi8sCi0JCQkJOTNDQTRDOUMwOURGOTNG
QTAwREY4Njc3IC8qIG1ha2V0b2tlbml6ZXIgKi8sCiAJCQkJQTgwRTZDREEwQTE5ODlDQTAwN0ZC
OEM1IC8qIENvdW50ZXIuaCAqLywKIAkJCQk5MzA3MDVDNzA5RTBDOTVGMDBCMTdGRTQgLyogQ291
bnRlci5pZGwgKi8sCiAJCQkJQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJh
dGlvVmFsdWUuY3BwICovLApAQCAtMjE1MDksOSArMjE1MjEsNiBAQAogCQlGNTIzRDMyNDAyREU0
NDc4MDE4NjM1Q0EgLyogZG9tICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQk1MkI2QzlCRjE1RTNGNERGMDA2OTBCMDUgLyogRE9NTmFtZWRGbG93Q29sbGVj
dGlvbi5pZGwgKi8sCi0JCQkJNTJCNkM5QzAxNUUzRjRERjAwNjkwQjA1IC8qIE5hbWVkRmxvd0Nv
bGxlY3Rpb24uY3BwICovLAotCQkJCTUyQjZDOUMxMTVFM0Y0REYwMDY5MEIwNSAvKiBOYW1lZEZs
b3dDb2xsZWN0aW9uLmggKi8sCiAJCQkJRTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2
ZURPTU9iamVjdC5jcHAgKi8sCiAJCQkJRTFDNERFNjgwRUE3NUMxRTAwMjNDQ0Q2IC8qIEFjdGl2
ZURPTU9iamVjdC5oICovLAogCQkJCUE4QzRBN0ZDMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNw
cCAqLywKQEAgLTIxNjI3LDYgKzIxNjM2LDcgQEAKIAkJCQk5M0VFQzFFOTA5QzI4Nzc3MDBDNTE1
RDEgLyogRE9NSW1wbGVtZW50YXRpb24uaWRsICovLAogCQkJCTUyQjZDOUJEMTVFM0Y0REYwMDY5
MEIwNSAvKiBET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCAqLywKIAkJCQk1MkI2QzlCRTE1RTNG
NERGMDA2OTBCMDUgLyogRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5oICovLAorCQkJCTUyQjZDOUJG
MTVFM0Y0REYwMDY5MEIwNSAvKiBET01OYW1lZEZsb3dDb2xsZWN0aW9uLmlkbCAqLywKIAkJCQlD
NTU2MTBGMDExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgKi8sCiAJCQkJQzU0
NDI3NDkxMUE1N0U3QTAwNjNBNzQ5IC8qIERPTVN0cmluZ0xpc3QuaCAqLywKIAkJCQlDNTQ0Mjc0
QTExQTU3RTdBMDA2M0E3NDkgLyogRE9NU3RyaW5nTGlzdC5pZGwgKi8sCkBAIC0yMTc0MCw2ICsy
MTc1MCw4IEBACiAJCQkJQzZGMDhGQjkxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3Jk
LmNwcCAqLywKIAkJCQlDNkYwOEZCQTE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQu
aCAqLywKIAkJCQlDNkYwOEZCQjE0MzBGRThGMDA2ODU4NDkgLyogTXV0YXRpb25SZWNvcmQuaWRs
ICovLAorCQkJCTUyQjZDOUMwMTVFM0Y0REYwMDY5MEIwNSAvKiBOYW1lZEZsb3dDb2xsZWN0aW9u
LmNwcCAqLywKKwkJCQk1MkI2QzlDMTE1RTNGNERGMDA2OTBCMDUgLyogTmFtZWRGbG93Q29sbGVj
dGlvbi5oICovLAogCQkJCUJDRjM0QTM2MTFBMjMxQ0QwMEM3MTgwNCAvKiBOYW1lZE5vZGVNYXAu
Y3BwICovLAogCQkJCUE4MTg3MjE4MDk3N0QzQzAwMDU4MjZEOSAvKiBOYW1lZE5vZGVNYXAuaCAq
LywKIAkJCQk4NUFDQTlGOTBBOUI2MzEwMDA2NzFFOTAgLyogTmFtZWROb2RlTWFwLmlkbCAqLywK
QEAgLTIyMzI5LDYgKzIyMzQxLDggQEAKIAkJCQlDMzNFRTVDNTE0RkI0OTYxMDAwMjA5NUEgLyog
QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1OUM5
NjAwMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlw
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRkJENkFGOEExNUVGMjVERjAwOEI3MTEwIC8qIEJhc2lj
U2hhcGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUZCRDZBRjhDMTVFRjI2MDQwMDhC
NzExMCAvKiBCYXNpY1NoYXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NDYyRDgxMDdBN0I0
QzAwODU3MTkzIC8qIEJlZm9yZUxvYWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUIyM0Ez
MjgwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NTAzMUIzRDBBNDRFRkM3MDBGOTkyRTAgLyogQmVmb3JlVW5sb2FkRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjI0NzQsNiArMjI0ODgsNyBAQAogCQkJCUUxNjk4MDNEMTEz
MzU0MkQwMDg5NDExNSAvKiBDUnVudGltZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1
Q0EyOEIxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0FF
OUY5MTAxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUZCRDZBRjg4MTVFRjI1QzkwMDhCNzExMCAvKiBDU1NCYXNpY1NoYXBlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTE2QTg0RkExNEM4NUNDQzAwMjk3N0RGIC8qIENTU0JvcmRlcklt
YWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzI3NEIyRjE0MEVCRUIyMDBFQURGQTYgLyogQ1NT
Qm9yZGVySW1hZ2VTbGljZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUFFMkQ4RjEzNEVF
NTBDMDA3MjkyMEEgLyogQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MjU4Myw2ICsyMjU5OCw4IEBACiAJCQkJOTMzMDlERTEwOTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0
ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMTY2MEE1MTM3ODdDNkQw
MDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0M5QUJG
OTEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuaCBpbiBIZWFkZXJzICov
LAorCQkJCUNDQzJCNTE0MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUNDQzJCNTE2MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1NzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNl
TW90aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZCMUE1OTEyMEE1RDA2MDBEQzAy
QTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFB
NUIxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLApA
QCAtMjMyMzAsNiArMjMyNDcsNyBAQAogCQkJCTg1QzdGNUU3MEFBRkJBRkIwMDQwMTRERCAvKiBE
T01XaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTk4OUREMTBBQ0M4QkJEMDBBMEJD
NTEgLyogRE9NV2hlZWxFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDAzQjk5
NzA5RUIxM0FGMDA3OTdDN0YgLyogRE9NV2luZG93LmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0My
QjUxOTE1RjYxMzYzMDA0OENERDYgLyogRE9NV2luZG93RGV2aWNlUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxRkEyRDc4MTUyMTMyQjMwMEMxQkEwQiAvKiBET01XaW5kb3dFeHRlbnNp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUFFMTUwMDRFREEwMDQ4QUYxMCAvKiBET01X
aW5kb3dJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QjM4RTI3MTUxQzQy
NzEwMDQ2MjJFOSAvKiBET01XaW5kb3dOb3RpZmljYXRpb25zLmggaW4gSGVhZGVycyAqLywKQEAg
LTIzODQ0LDkgKzIzODYyLDkgQEAKIAkJCQkyRTA4ODhENTExNDg4NDhBMDBBRjQyNjUgLyogSlNE
T01Gb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDMzZDMDMwRUIwNzZENjAwNzQxMEJD
IC8qIEpTRE9NR2xvYmFsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzFGODA5RDFD
QzYwMDAwQkUzMjUgLyogSlNET01JbXBsZW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NTJDQ0E5RTMxNUUzRjYyQzAwNTNDNzdGIC8qIEpTRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTlEMjQ4MDcwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9NTWltZVR5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5RDI0ODA5MEQ3NTdFN0QwMEZERjk1OSAvKiBKU0RP
TU1pbWVUeXBlQXJyYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyQ0NBOUUzMTVFM0Y2MkMwMDUz
Qzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
Q0U1M0UwMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTlEMjQ3RkYwRDc1N0U2OTAwRkRGOTU5IC8qIEpTRE9NUGx1Z2luLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOUQyNDgwMTBENzU3RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNDMxNiw2ICsyNDMzNCw3IEBACiAJCQkJMkQ5MDY2MDcwQkUxNDFE
NDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlENjMwRTJBQzE0
OUJGMzQ0MDA1QjJGOTMgLyogTGF5b3V0VGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJBQ0YyOTAxMTNCMkEwRDUwMDc4MUY5MCAvKiBMYXlvdXRUeXBlcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzFCODAxQkIxNUVDNThDNzAwQ0U2NDNEIC8qIExheW91dFR5cGVzSW5saW5lTWV0aG9k
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyREQ4RjUwRDkxRTZBRjAwMEY4OUVFIC8qIExlZ2Fj
eVdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTY1QkVCMEVBQ0RGMTYwMDdFNDUz
MyAvKiBMZW5ndGguaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRkY2NDkxMEVBRDE1QzIwMEMxRDZG
NyAvKiBMZW5ndGhCb3guaCBpbiBIZWFkZXJzICovLApAQCAtMjQ1MDEsNiArMjQ1MjAsNyBAQAog
CQkJCUUxMjg0QUUxMTA0NDdENDUwMEVBRUI1MiAvKiBQYWdlVHJhbnNpdGlvbkV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUUxRUNDMzBDOTFDOTA0MDBEQzI1NUIgLyogUGFnZVVSTFJlY29y
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkZENUI5N0IxMzVDQzk3ODAwRDVFOTJBIC8qIFBhZ2VW
aXNpYmlsaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNzdBQkEwMTVERUZFRUYwMDMx
RkQwNCAvKiBQYWdpbmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODg1MDY3RjExREEwNDVC
MDAxODJCOTggLyogUGFpbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODg1MDY4MDExREEw
NDVCMDAxODJCOTggLyogUGFpbnRQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRkIw
QTE5ODlDQTAwN0ZCOEM1IC8qIFBhaXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjU0NTEsNiArMjU0
NzEsNyBAQAogCQkJCTkzMzA5RTI0MDk5RTY0OTIwMDU2RTU4MSAvKiBXcmFwQ29udGVudHNJbkR1
bW15U3BhbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENzQ4QUMwMTVCRjc0RUQwMDU5
Q0YwRCAvKiBXcmFwU2hhcGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkFGM0IyNDEyQzFB
Mzk4MDAwMTRCRjEgLyogV3JpdGluZ0RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTQ0
NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NTY1ODIwMjA5RDE1MDhEMDAwRTYxRDcgLyogWExpbmtOYW1lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDBEMDQ2NEIxM0M0RDE0NTAwMzI2RkNDIC8qIFhNTENoYXJhY3RlclJlZmVyZW5jZVBh
cnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDBCOTMxODgxM0JBOERCQTAwMzVBOTQ4IC8qIFhN
TERvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTI1NDkxLDEyICsyNTUxMiw2IEBA
CiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOTM3N0FCQTAxNURFRkVFRjAwMzFGRDA0IC8qIFBhZ2luYXRp
b24uaCBpbiBIZWFkZXJzICovLAotCQkJCTE0NDc2QUE4MTVEQzRCQjEwMDMwNURCMiAvKiBXcml0
aW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzFCODAxQkIxNUVDNThDNzAwQ0U2NDNEIC8q
IExheW91dFR5cGVzSW5saW5lTWV0aG9kcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkJENkFGODgx
NUVGMjVDOTAwOEI3MTEwIC8qIENTU0Jhc2ljU2hhcGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlG
QkQ2QUY4QTE1RUYyNURGMDA4QjcxMTAgLyogQmFzaWNTaGFwZUZ1bmN0aW9ucy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJRkJENkFGOEMxNUVGMjYwNDAwOEI3MTEwIC8qIEJhc2ljU2hhcGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTI1OTQzLDYgKzI1OTU4LDggQEAKIAkJCQlDMzNFRTVDNDE0RkI0OTYx
MDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjU5Qzk1RkYxMjU1QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyog
QmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkJENkFGODkxNUVGMjVE
QjAwOEI3MTEwIC8qIEJhc2ljU2hhcGVGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RkJENkFGOEQxNUVGMjYwQTAwOEI3MTEwIC8qIEJhc2ljU2hhcGVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUFCMjNBMzI3MDlCQkE3RDAwMDY3Q0M1MyAvKiBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTAzMUIzQzBBNDRFRkM3MDBGOTkyRTAgLyogQmVm
b3JlVW5sb2FkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJDM0RBMjMwRDAwNkMxRDAw
RUY2RjI2IC8qIEJpZGlDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU5NTUsNiArMjU5
NzIsNyBAQAogCQkJCUZEQzU0RjA0MTM5OUIwREEwMDhEOTExNyAvKiBCaXF1YWRGaWx0ZXJOb2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDI2MTJCMDI2NzYwMEMxQTM1OSAvKiBCaXF1
YWRQcm9jZXNzb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg5OTQzMjkwQjQyMzM4ODAwRDdD
ODAyIC8qIEJpdG1hcEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM3N0EzQTkwMTVFRkNF
OUIwMDU5RjVDNyAvKiBCaXRtYXBJbWFnZUNHLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2
Qzc4MTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFREVG
MUYzMTIxQjBFRkMwMDcyNkRCMiAvKiBCbG9iRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RURFRjFGNjEyMUIwRUZDMDA3MjZEQjIgLyogQmxvYlJlZ2lzdHJ5SW1wbC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTI2MDU5LDYgKzI2MDc3LDcgQEAKIAkJCQlFMTY5ODA0OTExMzM2NDQ3MDA4OTQx
MTUgLyogQ1J1bnRpbWVPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc1Q0EyOEExMzAz
NjVGODAwRTk5QUQ5IC8qIENyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDQUU5RjkwRjE0
NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlGQkQ2QUY4QjE1RUYyNUU1MDA4QjcxMTAgLyogQ1NTQmFzaWNTaGFwZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE2QTg0RjkxNEM4NUNDQzAwMjk3N0RGIC8qIENTU0JvcmRlckltYWdl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjc0QjMxMTQwRUJFRDgwMEVBREZBNiAvKiBDU1NC
b3JkZXJJbWFnZVNsaWNlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlBRTJEOEUxMzRF
RTUwQzAwNzI5MjBBIC8qIENTU0NhbGN1bGF0aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yNjE0OCw2ICsyNjE2Nyw3IEBACiAJCQkJOTMzMDlEREUwOTlFNjQ5MjAwNTZFNTgxIC8qIERl
bGV0ZUZyb21UZXh0Tm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlERTAw
OTlFNjQ5MjAwNTZFNTgxIC8qIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTdDOUFCRjgxMzU3QTNCRjAwRjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9s
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNDQzJCNTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZp
Y2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxRkIxQTU4MTIwQTVEMDYwMERD
MDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMx
RkIxQTVBMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxRkIxQTVDMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZpY2VNb3Rpb25FdmVudC5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI2MjE1LDYgKzI2MjM1LDcgQEAKIAkJCQk4NTA4OUNEQzBB
OThDNDI4MDBBMjc1QUEgLyogRE9NRG9jdW1lbnRGcmFnbWVudC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg1Q0E5NzVEMEE5NjJFNTQwMDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk4NTE4RENFQTBBOUNDODBEMDA5MUI3QTYgLyogRE9NRE9NSW1wbGVtZW50
YXRpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkNDQTlFOTE1RTNGNjRDMDA1M0M3N0YgLyog
RE9NRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOUEyNDcz
MTVCOUMyRDEwMEQzNDUyNyAvKiBET01ET01TZWN1cml0eVBvbGljeS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTc2OTQ1NjVDMTIxNERCNjMwMDA3Q0JBRSAvKiBET01ET01Ub2tlbkxpc3QubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3QUFCQTI1OTE0QkM2MTMzMDBBQTlBMTEgLyogRE9NRWRpdG9yLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjYzMDYsNiArMjYzMjcsNyBAQAogCQkJCUE5QzZFNEU3MEQ3
NDVFMTgwMDY0NDJFOSAvKiBET01NaW1lVHlwZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg1N0UwQjI2MEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODVDN0Y1QzAwQUFGQjdDRDAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0g
aW4gU291cmNlcyAqLywKKwkJCQk1MkI2QzlDMjE1RTNGNERGMDA2OTBCMDUgLyogRE9NTmFtZWRG
bG93Q29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NTE4REQ3OTBBOUNGMzFCMDA5
MUI3QTYgLyogRE9NTmFtZWROb2RlTWFwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODUzQkY0REMw
QUJCNkI1NTAwODY0N0JCIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTUyNkMz
ODBBQjBBMTdFMDAwMzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8sCkBA
IC0yNjY2NSw2ICsyNjY4Nyw3IEBACiAJCQkJOTcyMDVBQUYxMjM5MjhDQTAwQjE3MzgwIC8qIEZU
UERpcmVjdG9yeURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQzgxQjg5MEM0NDIy
RjcwMDE5RUNFMyAvKiBGVFBEaXJlY3RvcnlQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQzMkU4NDkwQzUxNDkzRjAwQjE1MDBGIC8qIEdDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0RkIzOTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ0ODFGMDMxNDZCNUM2NTAwQUE3ODM0IC8qIEdlbmVyYXRvckdl
bmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MjBCMEEwMTREMzMyMzUwMDY0
Mjk1NSAvKiBHZW5lcmljRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzQ2QUYy
MzE0RjREREU2MDAzRTdBNzAgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
NzA2Miw2ICsyNzA4NSw3IEBACiAJCQkJQTlEMjQ4MDYwRDc1N0U3RDAwRkRGOTU5IC8qIEpTRE9N
TWltZVR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTlEMjQ4MDgwRDc1N0U3RDAwRkRGOTU5
IC8qIEpTRE9NTWltZVR5cGVBcnJheS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2RTY0NzBE
NzQ2NUNBMDA2NDQyRTkgLyogSlNET01NaW1lVHlwZUFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTUyQ0NBOUUyMTVFM0Y2MkMwMDUzQzc3RiAvKiBKU0RPTU5hbWVkRmxvd0NvbGxl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDRTUzREYwQThEMTg4MTAwMjI5NDdEIC8q
IEpTRE9NUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5RDI0N0ZFMEQ3NTdFNjkwMEZE
Rjk1OSAvKiBKU0RPTVBsdWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUQyNDgwMDBENzU3
RTY5MDBGREY5NTkgLyogSlNET01QbHVnaW5BcnJheS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3
NzE3LDYgKzI3NzQxLDcgQEAKIAkJCQlENkU1MjhBMzE0OUE5MjZEMDBFRkUxRjMgLyogTXV0YXRp
b25PYnNlcnZlckludGVyZXN0R3JvdXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDZFMjc2QUYx
NDYzNzQ1NTAwMUQyODBBIC8qIE11dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzZGMDhGQkMxNDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3Jk
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUyQjZDOUM1MTVFM0Y0REYwMDY5MEIwNSAvKiBOYW1l
ZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjM0QTM3MTFBMjMxQ0Qw
MEM3MTgwNCAvKiBOYW1lZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgxODcyMjQw
OTc3RDNDMDAwNTgyNkQ5IC8qIE5hbWVOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MTBCOUI2RDBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjg1NzgsMTUgKzI4NjAzLDYgQEAKIAkJCQlFMUJFNTEyRDBDRjZDNTEy
MDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0Uy
RTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQk1MkI2QzlDMjE1RTNGNERGMDA2OTBCMDUgLyogRE9NTmFtZWRGbG93Q29sbGVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk1MkI2QzlDNTE1RTNGNERGMDA2OTBCMDUgLyogTmFtZWRG
bG93Q29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MkNDQTlFMjE1RTNGNjJDMDA1
M0M3N0YgLyogSlNET01OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTUyQ0NBOUU5MTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01OYW1lZEZsb3dDb2xsZWN0aW9uLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJRkJENkFGODkxNUVGMjVEQjAwOEI3MTEwIC8qIEJhc2ljU2hh
cGVGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkJENkFGOEIxNUVGMjVFNTAwOEI3
MTEwIC8qIENTU0Jhc2ljU2hhcGVzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZCRDZBRjhEMTVF
RjI2MEEwMDhCNzExMCAvKiBCYXNpY1NoYXBlcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0RkIz
OTBBRDE1RUY2MUYzMDA3QUQ1MUYgLyogR2VuZXJhdGVkSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMzc3QTNBOTAxNUVGQ0U5QjAwNTlGNUM3IC8qIEJpdG1hcEltYWdlQ0cuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZDc4N2E2NWJkNmQ4MGM1
NTBmOGQxMmEwZDRmMTMxZjc4NjFkMTdhZC4uNWMyNjcyZjI5YzYzYzUwZjVjNzEyNjRhZDlhYjMz
YjViMGZlOTBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNDgsNiArNDgsNyBA
QAogI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKICNpbmNsdWRlICJEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJEZXZpY2VDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBA
IC0xNTg1LDYgKzE1ODYsOSBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0ZW5lcihjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAgIH0KICNlbmRp
ZgogCisgICAgaWYgKERldmljZUNvbnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQoZXZlbnRUeXBlKSkK
KyAgICAgICAgRGV2aWNlQ29udHJvbGxlcjo6ZnJvbShwYWdlKCksIGV2ZW50VHlwZSktPmFkZERl
dmljZUV2ZW50TGlzdGVuZXIodGhpcyk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTYx
NCw2ICsxNjE4LDkgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICB9CiAjZW5kaWYKIAor
ICAgIGlmIChEZXZpY2VDb250cm9sbGVyOjppc0RldmljZUV2ZW50KGV2ZW50VHlwZSkpCisgICAg
ICAgIERldmljZUNvbnRyb2xsZXI6OmZyb20ocGFnZSgpLCBldmVudFR5cGUpLT5yZW1vdmVEZXZp
Y2VFdmVudExpc3RlbmVyKHRoaXMpOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTE2NzIs
NiArMTY3OSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3RlbmVycygpCiAK
ICAgICByZW1vdmVBbGxVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKICAgICByZW1vdmVBbGxC
ZWZvcmVVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKKyAgICBEZXZpY2VDb250cm9sbGVyOjpy
ZW1vdmVBbGxEZXZpY2VFdm5ldExpc3RlbmVyKHRoaXMsIHBhZ2UoKSk7CiB9CiAKIHZvaWQgRE9N
V2luZG93OjpjYXB0dXJlRXZlbnRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RGV2aWNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
RGV2aWNlUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YThmZDdiMjVjM2MyZmRmMjg3MThmZGIxNzgz
MjdiZWUzZjEyYzdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3dEZXZpY2VQcm92aWRlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiAgQ29weXJpZ2h0
IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNpZm5kZWYgRE9NV2luZG93RGV2aWNlUHJvdmlkZXJfaAorI2RlZmluZSBET01XaW5k
b3dEZXZpY2VQcm92aWRlcl9oCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJT
dXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNv
bnRyb2xsZXI7CitjbGFzcyBFdmVudDsKKworY2xhc3MgRE9NV2luZG93RGV2aWNlUHJvdmlkZXIg
OiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBE
T01XaW5kb3dEZXZpY2VQcm92aWRlcihET01XaW5kb3cqIHdpbmRvdykKKyAgICAgICAgOiBtX3dp
bmRvdyh3aW5kb3cpCisgICAgeworICAgIH0KKyAgICB+RE9NV2luZG93RGV2aWNlUHJvdmlkZXIo
KSB7IH07CisKKyAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4g
ZXZlbnQpIHsgbV93aW5kb3ctPmRpc3BhdGNoRXZlbnQoZXZlbnQpOyB9CisKK3ByaXZhdGU6Cisg
ICAgRE9NV2luZG93KiBtX3dpbmRvdzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIERPTVdpbmRvd0RldmljZVByb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNs
aWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNlYjU2NjlkMjU0MWYxOTcxMGFjZGJjMjQ3ZDUzMWQzMjM4NmYx
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNsaWVudC5o
CkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNl
Q2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworI2luY2x1ZGUgPEV2ZW50Lmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmljZUNsaWVudCgpIHsg
fQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RXZlbnQ+IGxh
c3RFdmVudCgpIGNvbnN0ID0gMDsKKworcHJvdGVjdGVkOgorICAgIERldmljZUNsaWVudCgpIHsg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2aWNlQ2xpZW50
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3
NTM0YmIxMTA4NjBjYjcxOTVmOWFkMmI4MjU2MjNlMjM3YWNjOWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsMTM0
IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiRE9NV2luZG93RGV2aWNlUHJvdmlk
ZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgSGFzaFNldDxB
dG9taWNTdHJpbmc+KiBkZXZpY2VFdmVudHMgPSAwOworCitib29sIERldmljZUNvbnRyb2xsZXI6
OmlzRGV2aWNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCit7CisgICAgVU5V
U0VEX1BBUkFNKGV2ZW50VHlwZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitEZXZpY2VDb250
cm9sbGVyKiBEZXZpY2VDb250cm9sbGVyOjpmcm9tKFBhZ2UqIHBhZ2UsIGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlKQoreworICAgIGlmICghZGV2aWNlRXZlbnRzKQorICAgICAgICBkZXZp
Y2VFdmVudHMgPSBuZXcgSGFzaFNldDxBdG9taWNTdHJpbmc+OworICAgIGRldmljZUV2ZW50cy0+
YWRkKGV2ZW50VHlwZSk7CisKKyAgICBVTlVTRURfUEFSQU0oZXZlbnRUeXBlKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RGV2aWNlQ29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20o
cGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOworfQorCitEZXZpY2VDb250cm9sbGVyOjpEZXZpY2VD
b250cm9sbGVyKERldmljZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQor
ICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmljZUV2ZW50KQor
eworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmFkZERldmljZUV2ZW50TGlzdGVuZXIoRE9N
V2luZG93KiB3aW5kb3cpCit7CisgICAgaW50IGlzRW1wdHkgPSBtX3Byb3ZpZGVycy5zaXplKCk7
CisKKyAgICBET01XaW5kb3dEZXZpY2VQcm92aWRlciogcHJvdmlkZXIgPSBzdGF0aWNfY2FzdDxE
T01XaW5kb3dEZXZpY2VQcm92aWRlcio+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6ZnJvbSh3aW5k
b3csIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXByb3ZpZGVyKSB7CisgICAgICAgIHBy
b3ZpZGVyID0gbmV3IERPTVdpbmRvd0RldmljZVByb3ZpZGVyKHdpbmRvdyk7CisgICAgICAgIFN1
cHBsZW1lbnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSwg
YWRvcHRQdHIocHJvdmlkZXIpKTsKKyAgICB9CisgICAgbV9wcm92aWRlcnMuYWRkKHByb3ZpZGVy
KTsKKworICAgIGlmIChtX2NsaWVudC0+bGFzdEV2ZW50KCkpIHsKKyAgICAgICAgbV9sYXN0RXZl
bnRQcm92aWRlcnMuYWRkKHByb3ZpZGVyKTsKKyAgICAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZl
KCkpCisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9CisKKyAgICBp
ZiAoIWlzRW1wdHkpCisgICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0aW5nKCk7Cit9CisKK3Zv
aWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cq
IHdpbmRvdykKK3sKKyAgICBET01XaW5kb3dEZXZpY2VQcm92aWRlciogcHJvdmlkZXIgPSBzdGF0
aWNfY2FzdDxET01XaW5kb3dEZXZpY2VQcm92aWRlcio+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6
ZnJvbSh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXByb3ZpZGVyKQorICAg
ICAgICByZXR1cm47CisgICAgbV9wcm92aWRlcnMucmVtb3ZlKHByb3ZpZGVyKTsKKyAgICBtX2xh
c3RFdmVudFByb3ZpZGVycy5yZW1vdmUocHJvdmlkZXIpOworCisgICAgaWYgKG1fcHJvdmlkZXJz
LmlzRW1wdHkoKSkKKyAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOworfQorCit2b2lk
IERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2bmV0TGlzdGVuZXIoRE9NV2luZG93
KiB3aW5kb3csIFBhZ2UqIHBhZ2UpCit7CisgICAgaWYgKCFkZXZpY2VFdmVudHMtPnNpemUoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gZXZlbnRzVmVjdG9y
OworICAgIGNvcHlUb1ZlY3RvcigqZGV2aWNlRXZlbnRzLCBldmVudHNWZWN0b3IpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwIDsgaSA8IGV2ZW50c1ZlY3Rvci5zaXplKCk7ICsraSkgeworICAgICAg
ICBEZXZpY2VDb250cm9sbGVyKiBjb250cm9sbGVyID0gRGV2aWNlQ29udHJvbGxlcjo6ZnJvbShw
YWdlLCBldmVudHNWZWN0b3JbaV0pOworICAgICAgICBpZiAoY29udHJvbGxlcikKKyAgICAgICAg
ICAgIGNvbnRyb2xsZXItPnJlbW92ZURldmljZUV2ZW50TGlzdGVuZXIod2luZG93KTsKKyAgICB9
Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZWl2Y2VFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBpZiAoIW1fcHJvdmlkZXJzLnNpemUoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgVmVjdG9yPERPTVdpbmRvd0RldmljZVByb3ZpZGVyKj4gcHJvdmlk
ZXJzVmVjdG9yOworICAgIGNvcHlUb1ZlY3RvcihtX3Byb3ZpZGVycywgcHJvdmlkZXJzVmVjdG9y
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb3ZpZGVyc1ZlY3Rvci5zaXplKCk7ICsr
aSkKKyAgICAgICAgcHJvdmlkZXJzVmVjdG9yW2ldLT5kaXNwYXRjaERldmljZUV2ZW50KGV2ZW50
KTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQoVGltZXI8RGV2
aWNlQ29udHJvbGxlcj4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVy
ID09ICZtX3RpbWVyKTsKKyAgICBBU1NFUlQobV9jbGllbnQtPmxhc3RFdmVudCgpKTsKKyAgICBt
X3RpbWVyLnN0b3AoKTsKKworICAgIGlmICghbV9sYXN0RXZlbnRQcm92aWRlcnMuc2l6ZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8RE9NV2luZG93RGV2aWNlUHJvdmlkZXIqPiBw
cm92aWRlcnNWZWN0b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGFzdEV2ZW50UHJvdmlkZXJzLCBw
cm92aWRlcnNWZWN0b3IpOworICAgIG1fbGFzdEV2ZW50UHJvdmlkZXJzLmNsZWFyKCk7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm92aWRlcnNWZWN0b3Iuc2l6ZSgpOyArK2kpCisgICAg
ICAgIHByb3ZpZGVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hEZXZpY2VFdmVudChtX2NsaWVudC0+bGFz
dEV2ZW50KCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIERldmljZUNvbnRyb2xsZXI6OnN1
cHBsZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bmFtZSwgKCJEZXZpY2VDb250cm9sbGVyIikpOworICAgIHJldHVybiBuYW1lOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcxODdkYWYzOTlhM2FkNWFhNDdmY2E5M2NjMTQ1YTkxMjY5NWVlMmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApAQCAt
MCwwICsxLDY0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIERldmljZUNvbnRy
b2xsZXJfaAorI2RlZmluZSBEZXZpY2VDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIlN1cHBsZW1l
bnRhYmxlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIERPTVdpbmRv
d0RldmljZVByb3ZpZGVyOworY2xhc3MgRGV2aWNlQ2xpZW50OworY2xhc3MgRXZlbnQ7CitjbGFz
cyBQYWdlOworCitjbGFzcyBEZXZpY2VDb250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFn
ZT4geworcHVibGljOgorICAgIGV4cGxpY2l0IERldmljZUNvbnRyb2xsZXIoRGV2aWNlQ2xpZW50
Kik7CisgICAgfkRldmljZUNvbnRyb2xsZXIoKSB7IH07CisKKyAgICB2b2lkIGFkZERldmljZUV2
ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisgICAgdm9pZCByZW1vdmVEZXZpY2VFdmVudExpc3Rl
bmVyKERPTVdpbmRvdyopOworCisgICAgc3RhdGljIHZvaWQgcmVtb3ZlQWxsRGV2aWNlRXZuZXRM
aXN0ZW5lcihET01XaW5kb3cqLCBQYWdlKik7CisKKyAgICBzdGF0aWMgYm9vbCBpc0RldmljZUV2
ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKTsKKyAgICBzdGF0aWMgY29uc3QgQXRv
bWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBEZXZpY2VDb250cm9sbGVy
KiBmcm9tKFBhZ2UqLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CisKKyAgICB2b2lk
IGRpc3BhdGNoRGVpdmNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIGJvb2wgaXNBY3Rp
dmUoKSB7IHJldHVybiAhbV9wcm92aWRlcnMuaXNFbXB0eSgpOyB9CisgICAgRGV2aWNlQ2xpZW50
KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQorCitwcml2YXRlOgorICAgIHZvaWQgZmly
ZURldmljZUV2ZW50KFRpbWVyPERldmljZUNvbnRyb2xsZXI+Kik7CisKKyAgICBIYXNoU2V0PERP
TVdpbmRvd0RldmljZVByb3ZpZGVyKj4gbV9wcm92aWRlcnM7CisgICAgSGFzaFNldDxET01XaW5k
b3dEZXZpY2VQcm92aWRlcio+IG1fbGFzdEV2ZW50UHJvdmlkZXJzOworICAgIERldmljZUNsaWVu
dCogbV9jbGllbnQ7CisgICAgVGltZXI8RGV2aWNlQ29udHJvbGxlcj4gbV90aW1lcjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZUNvbnRyb2xsZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162456</attachid>
            <date>2012-09-06 02:28:40 -0700</date>
            <delta_ts>2012-09-13 20:04:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120906182820.patch</filename>
            <type>text/plain</type>
            <size>24795</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2VhZGI1YjE2MmM3YjUx
OGQ4NGRhZGZjMWE1NzFkYTBlZjA3OWFhYy4uZTNmMTQ5NGJhMjBhNDVjNzQ0MWNlODRiOWY2MGM5
ODYzYWJlOTg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA5LTA2ICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAgICBEZXZpY2VD
b250cm9sbGVyIGlzIHVzZWQgZm9yIGFsbCBraW5kIG9mIGRldmljZSBldmVudHMgb2YgRE9NV2lu
ZG93LgorICAgICAgICBlLmcuKSBEZXZpY2UgTW90aW9uIEV2ZW50cywgRGV2aWNlIE9yaWVudGF0
aW9uIEV2ZW50cywgUHJveGltaXR5IEV2ZW50cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRv
dzo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnJlbW92
ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZW1vdmVBbGxF
dmVudExpc3RlbmVycyk6CisgICAgICAgICogcGFnZS9ET01XaW5kb3dEZXZpY2VQcm92aWRlci5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93RGV2aWNlUHJv
dmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93RGV2aWNlUHJvdmlkZXI6OkRPTVdp
bmRvd0RldmljZVByb3ZpZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd0RldmljZVBy
b3ZpZGVyOjp+RE9NV2luZG93RGV2aWNlUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
V2luZG93RGV2aWNlUHJvdmlkZXI6OmRpc3BhdGNoRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBh
Z2UvRGV2aWNlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChE
ZXZpY2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ2xpZW50Ojp+RGV2aWNlQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6RGV2aWNlQ2xpZW50KToKKyAg
ICAgICAgKiBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6aXNEZXZpY2VFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpmcm9tKToKKyAgICAgICAgKFdl
YkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmljZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0ZW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2bmV0
TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hE
ZWl2Y2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2
aWNlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6c3VwcGxlbWVu
dE5hbWUpOgorICAgICAgICAqIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VDb250cm9sbGVyOjppc0FjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZp
Y2VDb250cm9sbGVyOjpjbGllbnQpOgorCiAyMDEyLTA5LTA2ICBQYXRyaWNrIEdhbnN0ZXJlciAg
PHBhcm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIE1vcmUgZml4ZXMgZm9yIFN0cmluZzo6b3Bl
cmF0b3IrPSgpIGluIERlYnVnIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTdhMjZlOTY3
ZGZmYjY4M2Y3ODNlYmQ4ODk3NzMxOTk1NTk2MDExOS4uYThmNWJiZmI2NThkOTg5NjQ5OWM4OTlm
YTM4ZmFiOWU1NmE2YzQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2NzMsNiArMTY3Myw3
IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5j
cHAKICAgICBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKICAgICBwYWdlL0NyeXB0by5j
cHAKKyAgICBwYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0tleXMuY3BwCiAgICAgcGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0RP
TVNlbGVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDBlZjRkYTM3
NmQxNTg1ZDVkYjMzODU4NzA1ZmY2NmRmYmFkNWUxMTIuLjFhYTQ5NDVjY2RkOWY2YmUxZjBhMGI5
MmExMDhmYzU0ZWJiOGQzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzkz
OSw2ICszOTM5LDkgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L0Nvb3JkaW5hdGVzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VD
bGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9E
aWFnbm9zdGljTG9nZ2luZ0tleXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0
eVBvbGljeS5jcHAgXApAQCAtMzk0OSw2ICszOTUyLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBcCisJU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dEZXZpY2VQcm92aWRlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvd0V4dGVuc2lvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RXh0ZW5zaW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJv
cGVydHkuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDAyMmZlOTc4MTZmNGUyYzRlYWNkMzBkMzZjZDVj
MjQyNThiNDNmZGUuLmE1YmZkMGZiNTRiZmJlODk4ZDU3ZmI3YzBhYjM2NzZiNmFhYzU1ZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtODU3LDYgKzg1Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvQ29u
dGVudFNlY3VyaXR5UG9saWN5LmNwcCBcCiAgICAgcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwIFwKICAgICBwYWdlL0NyeXB0by5jcHAgXAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5j
cHAgXAogICAgIHBhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCBcCiAgICAgcGFnZS9ET01T
ZWxlY3Rpb24uY3BwIFwKICAgICBwYWdlL0RPTVRpbWVyLmNwcCBcCkBAIC0xOTcwLDEwICsxOTcx
LDEzIEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggXAog
ICAgIHBhZ2UvQ29udGV4dE1lbnVQcm92aWRlci5oIFwKICAgICBwYWdlL0Nvb3JkaW5hdGVzLmgg
XAorICAgIHBhZ2UvRGV2aWNlQ2xpZW50LmggXAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5o
IFwKICAgICBwYWdlL0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKICAgICBwYWdlL0RPTVNlbGVj
dGlvbi5oIFwKICAgICBwYWdlL0RPTVRpbWVyLmggXAogICAgIHBhZ2UvRE9NV2luZG93LmggXAor
ICAgIHBhZ2UvRE9NV2luZG93RGV2aWNlUHJvdmlkZXIuaCBcCiAgICAgcGFnZS9ET01XaW5kb3dF
eHRlbnNpb24uaCBcCiAgICAgcGFnZS9EcmFnQ29udHJvbGxlci5oIFwKICAgICBwYWdlL0RyYWdT
dGF0ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmMjEzNDljOWRkNDI4YzY1Nzc2NzNhZDBkNjRh
ZmRmZTk1ZDViOTAzLi5iNDg0MDNjMWJiNDgzZTE3YjZlM2EzNjg2ZDBiOWJiZTFjN2MzMWNkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0yMjcsNiArMjI3LDcgQEAKICAgICAgICAgICAgICdwYWdlL0Nv
b3JkaW5hdGVzLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRE9NU2VjdXJpdHlQb2xpY3kuaCcsCiAg
ICAgICAgICAgICAncGFnZS9ET01XaW5kb3cuaCcsCisgICAgICAgICAgICAncGFnZS9ET01XaW5k
b3dEZXZpY2VQcm92aWRlci5oJywKICAgICAgICAgICAgICdwYWdlL0RPTVdpbmRvd0V4dGVuc2lv
bi5oJywKICAgICAgICAgICAgICdwYWdlL0RyYWdBY3Rpb25zLmgnLAogICAgICAgICAgICAgJ3Bh
Z2UvRHJhZ0NsaWVudC5oJywKQEAgLTMwOTQsNiArMzA5NSw5IEBACiAgICAgICAgICAgICAncGFn
ZS9Db250ZXh0TWVudVByb3ZpZGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQ3J5cHRvLmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VD
bGllbnQuaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCcsCisgICAg
ICAgICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRGlh
Z25vc3RpY0xvZ2dpbmdLZXlzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0tleXMuaCcsCiAgICAgICAgICAgICAncGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5ODc0
OWUwYWU5Njk3NTkxM2NjNjNjYzEwYWM3NjBjOWE4YjBiMDEyLi4wMDRhNWUzZjY5NGY4NTQyMDk1
MjBjYzU4MzJjMmY2NGM0YTkxZWIwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtMjY5NTUsNiArMjY5NTUsMTggQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDbGllbnQuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxE
ZXZpY2VDb250cm9sbGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDb250cm9sbGVyLmgiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGlhZ25vc3RpY0xvZ2dpbmdL
ZXlzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNjk4Nyw2ICsyNjk5OSwxMCBAQAogCQkJ
CT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXERPTVdp
bmRvd0RldmljZVByb3ZpZGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRE9NV2luZG93RXh0ZW5zaW9uLmNwcCIKIAkJCQk+CiAJCQk8
L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZTlmZjBmZWVlMjc3ZWE1ZTA0ODFhYmYzOGJiMmI3NTA4YzA1NGEwNS4uODU5
YjlhOGY0N2M2OGY0ODZhOTUxNDNiYjJiYTIwZDI0ZjQzZDQ3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTg0MSw2ICs1ODQx
LDEwIEBACiAJCUNBRTlGOTBGMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlG
OTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLzsgfTsKIAkJ
Q0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlGOTBFMTQ2NDQxRjAw
MEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmggKi87IH07CiAJCUNBRTlGOTEwMTQ2NDQx
RjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NTVmFy
aWFibGVWYWx1ZS5oICovOyB9OworCQlDQ0MyQjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNl
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
Q0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi87IH07CisJCUNDQzJC
NTE1MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTExMTVGNjEzMDYwMDQ4Q0RE
NiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhD
REQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9s
bGVyLmggKi87IH07CisJCUNDQzJCNTE5MTVGNjEzNjMwMDQ4Q0RENiAvKiBET01XaW5kb3dEZXZp
Y2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0NDMkI1MTgxNUY2MTM2MzAwNDhDREQ2IC8qIERPTVdpbmRvd0RldmljZVByb3ZpZGVyLmgg
Ki87IH07CiAJCUNEMTI3REVEMTRGMzA5N0QwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldp
bmRvdy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
MTI3REVCMTRGMzA5NzkwMEU4NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5tbSAqLzsg
fTsKIAkJQ0QxMjdERUUxNEYzMDk4NDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDEyN0RF
QTE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDRDI3RjZFNTE0NTc2ODVB
MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTIxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVk
aWFDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTEzMTU4LDYgKzEzMTYyLDEwIEBACiAJCUNBRTlG
OTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NT
QXNwZWN0UmF0aW9WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NB
c3BlY3RSYXRpb1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNBRTlGOTBF
MTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENTU1ZhcmlhYmxlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRy
b2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGV2aWNlQ29u
dHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTEyMTVGNjEz
MDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQ0NDMkI1MTgxNUY2MTM2MzAwNDhDREQ2IC8qIERPTVdpbmRvd0RldmljZVByb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdpbmRvd0RldmljZVByb3ZpZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4NDc3
OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5k
b3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3JlRnVs
bFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2RTAx
NDU3NUMxQjAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250cm9s
bGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzQ4LDYgKzE1NzU2LDkg
QEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5
NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAz
NjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhD
REQ2IC8qIERldmljZUNsaWVudC5oICovLAorCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAv
KiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywKKwkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYg
LyogRGV2aWNlQ29udHJvbGxlci5oICovLAogCQkJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5OCAv
KiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwICovLAogCQkJCUNEMzdCMzc1MTVDMUE3RTEwMDZE
Qzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLywKIAkJCQkyRDlBMjQ2QTE1QjlCQkRE
MDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICovLApAQCAtMTU3NjAsNiArMTU3NzEs
NyBAQAogCQkJCTE0MDNCOTk2MDlFQjEzQUYwMDc5N0M3RiAvKiBET01XaW5kb3cuY3BwICovLAog
CQkJCTE0MDNCOTk1MDlFQjEzQUYwMDc5N0M3RiAvKiBET01XaW5kb3cuaCAqLywKIAkJCQkxNDAz
QjkwQzA5RUIxMjQ1MDA3OTdDN0YgLyogRE9NV2luZG93LmlkbCAqLywKKwkJCQlDQ0MyQjUxODE1
RjYxMzYzMDA0OENERDYgLyogRE9NV2luZG93RGV2aWNlUHJvdmlkZXIuaCAqLywKIAkJCQk1MTdG
QkExNzE1MUFBNzFCMDBCNTc5NTkgLyogRE9NV2luZG93RXh0ZW5zaW9uLmNwcCAqLywKIAkJCQk1
MTdGQkExODE1MUFBNzFCMDBCNTc5NTkgLyogRE9NV2luZG93RXh0ZW5zaW9uLmggKi8sCiAJCQkJ
OTdEMkFEMDExNEI4MjNBNjAwOTNERjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmNwcCAqLywKQEAg
LTIyNTg5LDYgKzIyNjAxLDggQEAKIAkJCQk5MzMwOURFMTA5OUU2NDkyMDA1NkU1ODEgLyogRGVs
ZXRlU2VsZWN0aW9uQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQxNjYwQTUxMzc4N0M2
RDAwMUZGQTdCIC8qIERlbm9ybWFsRGlzYWJsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QzlB
QkY5MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJvbC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0NDMkI1MTQxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQ0NDMkI1MTYxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTU3MTIwQTVEMDYwMERDMDJBMCAvKiBEZXZp
Y2VNb3Rpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTU5MTIwQTVEMDYwMERD
MDJBMCAvKiBEZXZpY2VNb3Rpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZC
MUE1QjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMzIzNiw2ICsyMzI1MCw3IEBACiAJCQkJODVDN0Y1RTcwQUFGQkFGQjAwNDAxNEREIC8q
IERPTVdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1OTg5REQxMEFDQzhCQkQwMEEw
QkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0MDNC
OTk3MDlFQjEzQUYwMDc5N0M3RiAvKiBET01XaW5kb3cuaCBpbiBIZWFkZXJzICovLAorCQkJCUND
QzJCNTE5MTVGNjEzNjMwMDQ4Q0RENiAvKiBET01XaW5kb3dEZXZpY2VQcm92aWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFGQTJENzgxNTIxMzJCMzAwQzFCQTBCIC8qIERPTVdpbmRvd0V4dGVu
c2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1QUUxNTAwNEVEQTAwNDhBRjEwIC8qIERP
TVdpbmRvd0luZGV4ZWREYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCMzhFMjcxNTFD
NDI3MTAwNDYyMkU5IC8qIERPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjYxNTUsNiArMjYxNzAsNyBAQAogCQkJCTkzMzA5RERFMDk5RTY0OTIwMDU2RTU4MSAvKiBE
ZWxldGVGcm9tVGV4dE5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5REUw
MDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE3QzlBQkY4MTM1N0EzQkYwMEY1NTAzRiAvKiBEZXRhaWxzTWFya2VyQ29udHJv
bC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDQ0MyQjUxNTE1RjYxMzA2MDA0OENERDYgLyogRGV2
aWNlQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUZCMUE1ODEyMEE1RDA2MDBE
QzAyQTAgLyogRGV2aWNlTW90aW9uQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
MUZCMUE1QTEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRGF0YS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMUZCMUE1QzEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9uRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZDc4N2E2
NWJkNmQ4MGM1NTBmOGQxMmEwZDRmMTMxZjc4NjFkMTdhZC4uNWMyNjcyZjI5YzYzYzUwZjVjNzEy
NjRhZDlhYjMzYjViMGZlOTBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNDgs
NiArNDgsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvd05vdGlmaWNhdGlvbnMuaCIKICNpbmNsdWRl
ICJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkRhdGFiYXNlQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJE
ZXZpY2VDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlTW90aW9uQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0xNTg1LDYgKzE1ODYsOSBAQCBib29sIERPTVdpbmRvdzo6YWRkRXZlbnRMaXN0
ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudAogICAg
IH0KICNlbmRpZgogCisgICAgaWYgKERldmljZUNvbnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQoZXZl
bnRUeXBlKSkKKyAgICAgICAgRGV2aWNlQ29udHJvbGxlcjo6ZnJvbShwYWdlKCksIGV2ZW50VHlw
ZSktPmFkZERldmljZUV2ZW50TGlzdGVuZXIodGhpcyk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMTYxNCw2ICsxNjE4LDkgQEAgYm9vbCBET01XaW5kb3c6OnJlbW92ZUV2ZW50TGlzdGVu
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIKICAgICB9CiAj
ZW5kaWYKIAorICAgIGlmIChEZXZpY2VDb250cm9sbGVyOjppc0RldmljZUV2ZW50KGV2ZW50VHlw
ZSkpCisgICAgICAgIERldmljZUNvbnRyb2xsZXI6OmZyb20ocGFnZSgpLCBldmVudFR5cGUpLT5y
ZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKHRoaXMpOworCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTE2NzIsNiArMTY3OSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZW1vdmVBbGxFdmVudExpc3Rl
bmVycygpCiAKICAgICByZW1vdmVBbGxVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKICAgICBy
ZW1vdmVBbGxCZWZvcmVVbmxvYWRFdmVudExpc3RlbmVycyh0aGlzKTsKKyAgICBEZXZpY2VDb250
cm9sbGVyOjpyZW1vdmVBbGxEZXZpY2VFdm5ldExpc3RlbmVyKHRoaXMsIHBhZ2UoKSk7CiB9CiAK
IHZvaWQgRE9NV2luZG93OjpjYXB0dXJlRXZlbnRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93RGV2aWNlUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93RGV2aWNlUHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YThmZDdiMjVjM2MyZmRmMjg3
MThmZGIxNzgzMjdiZWUzZjEyYzdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3dEZXZpY2VQcm92aWRlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNpZm5kZWYgRE9NV2luZG93RGV2aWNlUHJvdmlkZXJfaAorI2RlZmlu
ZSBET01XaW5kb3dEZXZpY2VQcm92aWRlcl9oCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNp
bmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERldmljZUNvbnRyb2xsZXI7CitjbGFzcyBFdmVudDsKKworY2xhc3MgRE9NV2luZG93RGV2aWNl
UHJvdmlkZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+IHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBET01XaW5kb3dEZXZpY2VQcm92aWRlcihET01XaW5kb3cqIHdpbmRvdykKKyAgICAg
ICAgOiBtX3dpbmRvdyh3aW5kb3cpCisgICAgeworICAgIH0KKyAgICB+RE9NV2luZG93RGV2aWNl
UHJvdmlkZXIoKSB7IH07CisKKyAgICB2b2lkIGRpc3BhdGNoRGV2aWNlRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQpIHsgbV93aW5kb3ctPmRpc3BhdGNoRXZlbnQoZXZlbnQpOyB9CisKK3By
aXZhdGU6CisgICAgRE9NV2luZG93KiBtX3dpbmRvdzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIERPTVdpbmRvd0RldmljZVByb3ZpZGVyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RldmljZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlYjU2NjlkMjU0MWYxOTcxMGFjZGJjMjQ3ZDUz
MWQzMjM4NmYxMmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Rldmlj
ZUNsaWVudC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5k
ZWYgRGV2aWNlQ2xpZW50X2gKKyNkZWZpbmUgRGV2aWNlQ2xpZW50X2gKKworI2luY2x1ZGUgPEV2
ZW50Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBEZXZpY2VDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmljZUNs
aWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RXZlbnQ+IGxhc3RFdmVudCgpIGNvbnN0ID0gMDsKKworcHJvdGVjdGVkOgorICAgIERldmljZUNs
aWVudCgpIHsgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRGV2
aWNlQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ5M2E2NDc1ODE1MzYzYWIyZDgyNTE5NGJhZjk0OTFlYWE3YWVlMWIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuY3BwCkBAIC0w
LDAgKzEsMTM0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9u
aWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRGV2aWNlQ29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiRE9NV2luZG93RGV2
aWNlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKKyNpbmNsdWRlICJFdmVu
dC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
SGFzaFNldDxBdG9taWNTdHJpbmc+KiBkZXZpY2VFdmVudHMgPSAwOworCitib29sIERldmljZUNv
bnRyb2xsZXI6OmlzRGV2aWNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGV2ZW50VHlwZSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitE
ZXZpY2VDb250cm9sbGVyKiBEZXZpY2VDb250cm9sbGVyOjpmcm9tKFBhZ2UqIHBhZ2UsIGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlKQoreworICAgIGlmICghZGV2aWNlRXZlbnRzKQorICAg
ICAgICBkZXZpY2VFdmVudHMgPSBuZXcgSGFzaFNldDxBdG9taWNTdHJpbmc+OworICAgIGRldmlj
ZUV2ZW50cy0+YWRkKGV2ZW50VHlwZSk7CisKKyAgICBVTlVTRURfUEFSQU0oZXZlbnRUeXBlKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RGV2aWNlQ29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFn
ZT46OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOworfQorCitEZXZpY2VDb250cm9sbGVy
OjpEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV90aW1lcih0aGlzLCAmRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmlj
ZUV2ZW50KQoreworfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmFkZERldmljZUV2ZW50TGlz
dGVuZXIoRE9NV2luZG93KiB3aW5kb3cpCit7CisgICAgaW50IGlzRW1wdHkgPSBtX3Byb3ZpZGVy
cy5zaXplKCk7CisKKyAgICBET01XaW5kb3dEZXZpY2VQcm92aWRlciogcHJvdmlkZXIgPSBzdGF0
aWNfY2FzdDxET01XaW5kb3dEZXZpY2VQcm92aWRlcio+KFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6
ZnJvbSh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXByb3ZpZGVyKSB7Cisg
ICAgICAgIHByb3ZpZGVyID0gbmV3IERPTVdpbmRvd0RldmljZVByb3ZpZGVyKHdpbmRvdyk7Cisg
ICAgICAgIFN1cHBsZW1lbnQ8RE9NV2luZG93Pjo6cHJvdmlkZVRvKHdpbmRvdywgc3VwcGxlbWVu
dE5hbWUoKSwgYWRvcHRQdHIocHJvdmlkZXIpKTsKKyAgICB9CisgICAgbV9wcm92aWRlcnMuYWRk
KHByb3ZpZGVyKTsKKworICAgIGlmIChtX2NsaWVudC0+bGFzdEV2ZW50KCkpIHsKKyAgICAgICAg
bV9sYXN0RXZlbnRQcm92aWRlcnMuYWRkKHByb3ZpZGVyKTsKKyAgICAgICAgaWYgKCFtX3RpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAgICB9
CisKKyAgICBpZiAoIWlzRW1wdHkpCisgICAgICAgIG1fY2xpZW50LT5zdGFydFVwZGF0aW5nKCk7
Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6cmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihE
T01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBET01XaW5kb3dEZXZpY2VQcm92aWRlciogcHJvdmlk
ZXIgPSBzdGF0aWNfY2FzdDxET01XaW5kb3dEZXZpY2VQcm92aWRlcio+KFN1cHBsZW1lbnQ8RE9N
V2luZG93Pjo6ZnJvbSh3aW5kb3csIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXByb3Zp
ZGVyKQorICAgICAgICByZXR1cm47CisgICAgbV9wcm92aWRlcnMucmVtb3ZlKHByb3ZpZGVyKTsK
KyAgICBtX2xhc3RFdmVudFByb3ZpZGVycy5yZW1vdmUocHJvdmlkZXIpOworCisgICAgaWYgKG1f
cHJvdmlkZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jbGllbnQtPnN0b3BVcGRhdGluZygpOwor
fQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OnJlbW92ZUFsbERldmljZUV2bmV0TGlzdGVuZXIo
RE9NV2luZG93KiB3aW5kb3csIFBhZ2UqIHBhZ2UpCit7CisgICAgaWYgKCFkZXZpY2VFdmVudHMp
CisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IGV2ZW50c1ZlY3Rv
cjsKKyAgICBjb3B5VG9WZWN0b3IoKmRldmljZUV2ZW50cywgZXZlbnRzVmVjdG9yKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMCA7IGkgPCBldmVudHNWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgRGV2aWNlQ29udHJvbGxlciogY29udHJvbGxlciA9IERldmljZUNvbnRyb2xsZXI6OmZyb20o
cGFnZSwgZXZlbnRzVmVjdG9yW2ldKTsKKyAgICAgICAgaWYgKGNvbnRyb2xsZXIpCisgICAgICAg
ICAgICBjb250cm9sbGVyLT5yZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKHdpbmRvdyk7CisgICAg
fQorfQorCit2b2lkIERldmljZUNvbnRyb2xsZXI6OmRpc3BhdGNoRGVpdmNlRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgaWYgKCFtX3Byb3ZpZGVycy5zaXplKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFZlY3RvcjxET01XaW5kb3dEZXZpY2VQcm92aWRlcio+IHByb3Zp
ZGVyc1ZlY3RvcjsKKyAgICBjb3B5VG9WZWN0b3IobV9wcm92aWRlcnMsIHByb3ZpZGVyc1ZlY3Rv
cik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm92aWRlcnNWZWN0b3Iuc2l6ZSgpOyAr
K2kpCisgICAgICAgIHByb3ZpZGVyc1ZlY3RvcltpXS0+ZGlzcGF0Y2hEZXZpY2VFdmVudChldmVu
dCk7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6ZmlyZURldmljZUV2ZW50KFRpbWVyPERl
dmljZUNvbnRyb2xsZXI+KiB0aW1lcikKK3sKKyAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1l
ciA9PSAmbV90aW1lcik7CisgICAgQVNTRVJUKG1fY2xpZW50LT5sYXN0RXZlbnQoKSk7CisgICAg
bV90aW1lci5zdG9wKCk7CisKKyAgICBpZiAoIW1fbGFzdEV2ZW50UHJvdmlkZXJzLnNpemUoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgVmVjdG9yPERPTVdpbmRvd0RldmljZVByb3ZpZGVyKj4g
cHJvdmlkZXJzVmVjdG9yOworICAgIGNvcHlUb1ZlY3RvcihtX2xhc3RFdmVudFByb3ZpZGVycywg
cHJvdmlkZXJzVmVjdG9yKTsKKyAgICBtX2xhc3RFdmVudFByb3ZpZGVycy5jbGVhcigpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvdmlkZXJzVmVjdG9yLnNpemUoKTsgKytpKQorICAg
ICAgICBwcm92aWRlcnNWZWN0b3JbaV0tPmRpc3BhdGNoRGV2aWNlRXZlbnQobV9jbGllbnQtPmxh
c3RFdmVudCgpKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBEZXZpY2VDb250cm9sbGVyOjpz
dXBwbGVtZW50TmFtZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcs
IG5hbWUsICgiRGV2aWNlQ29udHJvbGxlciIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZp
Y2VDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RldmljZUNvbnRyb2xsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MTg3ZGFmMzk5YTNhZDVhYTQ3ZmNhOTNjYzE0NWE5MTI2OTVlZTJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDb250
cm9sbGVyX2gKKyNkZWZpbmUgRGV2aWNlQ29udHJvbGxlcl9oCisKKyNpbmNsdWRlICJTdXBwbGVt
ZW50YWJsZS5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CitjbGFzcyBET01XaW5k
b3dEZXZpY2VQcm92aWRlcjsKK2NsYXNzIERldmljZUNsaWVudDsKK2NsYXNzIEV2ZW50OworY2xh
c3MgUGFnZTsKKworY2xhc3MgRGV2aWNlQ29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBh
Z2U+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVu
dCopOworICAgIH5EZXZpY2VDb250cm9sbGVyKCkgeyB9OworCisgICAgdm9pZCBhZGREZXZpY2VF
dmVudExpc3RlbmVyKERPTVdpbmRvdyopOworICAgIHZvaWQgcmVtb3ZlRGV2aWNlRXZlbnRMaXN0
ZW5lcihET01XaW5kb3cqKTsKKworICAgIHN0YXRpYyB2b2lkIHJlbW92ZUFsbERldmljZUV2bmV0
TGlzdGVuZXIoRE9NV2luZG93KiwgUGFnZSopOworCisgICAgc3RhdGljIGJvb2wgaXNEZXZpY2VF
dmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CisgICAgc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0aWMgRGV2aWNlQ29udHJvbGxl
ciogZnJvbShQYWdlKiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpOworCisgICAgdm9p
ZCBkaXNwYXRjaERlaXZjZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAgICBib29sIGlzQWN0
aXZlKCkgeyByZXR1cm4gIW1fcHJvdmlkZXJzLmlzRW1wdHkoKTsgfQorICAgIERldmljZUNsaWVu
dCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGZp
cmVEZXZpY2VFdmVudChUaW1lcjxEZXZpY2VDb250cm9sbGVyPiopOworCisgICAgSGFzaFNldDxE
T01XaW5kb3dEZXZpY2VQcm92aWRlcio+IG1fcHJvdmlkZXJzOworICAgIEhhc2hTZXQ8RE9NV2lu
ZG93RGV2aWNlUHJvdmlkZXIqPiBtX2xhc3RFdmVudFByb3ZpZGVyczsKKyAgICBEZXZpY2VDbGll
bnQqIG1fY2xpZW50OworICAgIFRpbWVyPERldmljZUNvbnRyb2xsZXI+IG1fdGltZXI7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDb250cm9sbGVyX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164033</attachid>
            <date>2012-09-13 20:04:31 -0700</date>
            <delta_ts>2012-09-16 22:59:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93597-20120914120400.patch</filename>
            <type>text/plain</type>
            <size>17483</size>
            <attacher name="Kihong Kwon">kihong.kwon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjZhYzM3NmU3ZGE1YzAz
ZDlmZmE2ZTc5NzkwNjQyODU3YWNmOGFjYy4uM2VlOWNmNTc3OGM4YjgyZTJmYzU2MjFjNDhjNmMw
NWVkOWJiNTFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTEzICBLaWhv
bmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBEZXZpY2VD
b250cm9sbGVyIHRvIHN1cHBvcnQgRE9NV2luZG93IGRldmljZSBldmVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNTk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIERldmljZUNvbnRyb2xsZXIg
dG8gc3VwcG9ydCBkZXZpY2UgcmVsYXRlZCBldmVudCBjb250cm9sLgorICAgICAgICBEZXZpY2VD
b250cm9sbGVyIGNhbiBiZSB1c2VkIGJ5IGluaGVyaXQgdG8gdGhlIGFsbCBraW5kIG9mIGRldmlj
ZSBjb250cm9sbGVyLgorICAgICAgICBlLmcuKSBEZXZpY2VNb3Rpb25Db250cm9sbGVyLCBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIsIFByb3hpbWl0eUNvbnRyb2xsZXIuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBw
YWdlL0RldmljZUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
RGV2aWNlQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNsaWVudDo6fkRldmljZUNs
aWVudCk6CisgICAgICAgICogcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRyb2xsZXI6OkRldmlj
ZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2
aWNlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpy
ZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZUNvbnRy
b2xsZXI6OnJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RGV2aWNlQ29udHJvbGxlcjo6ZGlzcGF0Y2hEZXZpY2VFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRGV2
aWNlQ29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRGV2
aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjp+RGV2
aWNlQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjppc0Fj
dGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VDb250cm9sbGVyOjpjbGllbnQpOgorCiAy
MDEyLTA5LTEzICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
SW5kZXhlZERCOiBDb25zb2xpZGF0ZSB0d28tcGhhc2UgY29ubmVjdGlvbiB0byBhdm9pZCByYWNl
IGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIxMjJkNmNjNWU3MGFjNjNiZTEy
NzljMTAwM2JjNzA1NDJiMjI4MS4uMmY0YmM0MmE5NTlhYzM4YjM2ZDJkZWFmNGM1MjZjNTIwYmU2
MmEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE2NzUsNiArMTY3NSw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKICAgICBwYWdlL0NyeXB0by5jcHAKKyAgICBwYWdl
L0RldmljZUNvbnRyb2xsZXIuY3BwCiAgICAgcGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3Bw
CiAgICAgcGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGJhN2NiZGNlYjE5M2VlNWNjYWUy
ZTYzN2I2YTVjNDRmZDEyZDg2ODUuLjMxNTI1MTFhMjkyNWI1NzA3Yzc0NTU2YTFlM2RiMjQxMmJj
MmI0ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzk0NSw2ICszOTQ1LDkg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0Nvb3JkaW5hdGVz
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9DcnlwdG8uaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBcCisJ
U291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9EaWFnbm9zdGljTG9n
Z2luZ0tleXMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ET01TZWN1cml0eVBvbGljeS5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKaW5kZXggMzNlNzhlMTllYmJiMTFjM2NhZDFjMzM1OTcxNGM3YWY0NWQzNGZi
ZS4uM2U2MDEyNDExNTQwYzA4MDBjNWJhYzA3ZjQ0NjVkMzJhYWVjMTQwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC04NTgsNiArODU4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwIFwKICAgICBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgXAogICAg
IHBhZ2UvQ3J5cHRvLmNwcCBcCisgICAgcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBcCiAgICAg
cGFnZS9EaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwIFwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5j
cHAgXAogICAgIHBhZ2UvRE9NVGltZXIuY3BwIFwKQEAgLTE5NzYsNiArMTk3Nyw4IEBAIEhFQURF
UlMgKz0gXAogICAgIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggXAogICAgIHBhZ2UvQ29u
dGV4dE1lbnVQcm92aWRlci5oIFwKICAgICBwYWdlL0Nvb3JkaW5hdGVzLmggXAorICAgIHBhZ2Uv
RGV2aWNlQ2xpZW50LmggXAorICAgIHBhZ2UvRGV2aWNlQ29udHJvbGxlci5oIFwKICAgICBwYWdl
L0RpYWdub3N0aWNMb2dnaW5nS2V5cy5oIFwKICAgICBwYWdlL0RPTVNlbGVjdGlvbi5oIFwKICAg
ICBwYWdlL0RPTVRpbWVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDA5MjU3MjVkMDY4N2IyYjM2
ZjM3MDBmMmE1YjY2Y2E2Yjk5NzBkZjUuLmQ3YjgwNjJhNGU4YWZlNmI0NjVlYzYxNDVhZjlhMzQy
NDMxZDc2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMwOTcsNiArMzA5Nyw5IEBACiAgICAgICAg
ICAgICAncGFnZS9Db250ZXh0TWVudVByb3ZpZGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvQ3J5
cHRvLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9DcnlwdG8uaCcsCisgICAgICAgICAgICAncGFn
ZS9EZXZpY2VDbGllbnQuaCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmNw
cCcsCisgICAgICAgICAgICAncGFnZS9EZXZpY2VDb250cm9sbGVyLmgnLAogICAgICAgICAgICAg
J3BhZ2UvRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9EaWFn
bm9zdGljTG9nZ2luZ0tleXMuaCcsCiAgICAgICAgICAgICAncGFnZS9ET01TZWN1cml0eVBvbGlj
eS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCAwNDU4N2U5YWUxMDcwN2YzNmM2YmM1ZjEyZTAzM2Q0Y2JmY2NkZjEzLi5jNTU0MDcxMDIw
YTFjNzhjMjVmYjdiYjEyMjVkMzYwOTVhZWRiZGEwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjY5NTUsNiArMjY5NTUsMTggQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VD
bGllbnQuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxEZXZpY2VDb250cm9sbGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxEZXZpY2VDb250cm9sbGVyLmgiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRGlhZ25vc3Rp
Y0xvZ2dpbmdLZXlzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTU1N2ZlOTRkODQxMzM0
OGRlNjI1MDM2YzY5MDRjNDNiNTIyNTViNy4uNWRhYWJiMjFjMDM1N2M3MzY4MWJhOWE1NjlmN2U1
ZjJlMmIwMjhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTg1NCw2ICs1ODU0LDkgQEAKIAkJQ0FFOUY5MEYxNDY0NDFGMDAw
QzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0Fz
cGVjdFJhdGlvVmFsdWUuY3BwICovOyB9OwogCQlDQUU5RjkxMDE0NjQ0MUYwMDBDMjQ1QjAgLyog
Q1NTQXNwZWN0UmF0aW9WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFs
dWUuaCAqLzsgfTsKIAkJQ0FFOUY5MTAxNDY0NDFGMDAwQzI0NUIxIC8qIENTU1ZhcmlhYmxlVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBRTlG
OTBFMTQ2NDQxRjAwMEMyNDVCMSAvKiBDU1NWYXJpYWJsZVZhbHVlLmggKi87IH07CisJCUNDQzJC
NTE0MTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBE
ZXZpY2VDbGllbnQuaCAqLzsgfTsKKwkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmlj
ZUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICov
OyB9OworCQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0NDMkI1MTIxNUY2
MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0QxMjdERUQxNEYz
MDk3RDAwRTg0Nzc5IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxMjdERUIxNEYzMDk3OTAwRTg0Nzc5
IC8qIFdlYkNvcmVGdWxsU2NyZWVuV2luZG93Lm1tICovOyB9OwogCQlDRDEyN0RFRTE0RjMwOTg0
MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTI3REVBMTRGMzA5NzkwMEU4NDc3OSAvKiBX
ZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBKU01lZGlhQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRDI3RjZFMjE0NTc2NzU4MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwICovOyB9
OwpAQCAtMTMxODksNiArMTMxOTIsOSBAQAogCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyog
Q1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJhdGlvVmFsdWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjEgLyogQ1NT
VmFyaWFibGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYXJp
YWJsZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJCNTEwMTVGNjEz
MDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGV2aWNlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNDQzJC
NTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldmljZUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29u
dHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTI3REVBMTRGMzA5NzkwMEU4
NDc3OSAvKiBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDEyN0RFQjE0RjMwOTc5MDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb3Jl
RnVsbFNjcmVlbldpbmRvdy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QyN0Y2
RTAxNDU3NUMxQjAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFDb250
cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1Nzg1LDYgKzE1Nzkx
LDkgQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJ
CQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkx
MzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJQ0NDMkI1MTAxNUY2MTMwNjAw
NDhDREQ2IC8qIERldmljZUNsaWVudC5oICovLAorCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RE
NiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywKKwkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENE
RDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovLAogCQkJCUNEMzdCMzc0MTVDMUE3RTEwMDZEQzg5
OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuY3BwICovLAogCQkJCUNEMzdCMzc1MTVDMUE3RTEw
MDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCAqLywKIAkJCQkyRDlBMjQ2QTE1QjlC
QkREMDBEMzQ1MjcgLyogRE9NU2VjdXJpdHlQb2xpY3kuY3BwICovLApAQCAtMjI2NDQsNiArMjI2
NTMsOCBAQAogCQkJCTkzMzA5REUxMDk5RTY0OTIwMDU2RTU4MSAvKiBEZWxldGVTZWxlY3Rpb25D
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDE2NjBBNTEzNzg3QzZEMDAxRkZBN0IgLyog
RGVub3JtYWxEaXNhYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdDOUFCRjkxMzU3QTNCRjAw
RjU1MDNGIC8qIERldGFpbHNNYXJrZXJDb250cm9sLmggaW4gSGVhZGVycyAqLywKKwkJCQlDQ0My
QjUxNDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlDQ0MyQjUxNjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFGQjFBNTcxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFGQjFBNTkxMjBBNUQwNjAwREMwMkEwIC8qIERldmlj
ZU1vdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxRkIxQTVCMTIwQTVEMDYw
MERDMDJBMCAvKiBEZXZpY2VNb3Rpb25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjE5LDYg
KzI2MjMwLDcgQEAKIAkJCQk5MzMwOURERTA5OUU2NDkyMDA1NkU1ODEgLyogRGVsZXRlRnJvbVRl
eHROb2RlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOURFMDA5OUU2NDkyMDA1
NkU1ODEgLyogRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
N0M5QUJGODEzNTdBM0JGMDBGNTUwM0YgLyogRGV0YWlsc01hcmtlckNvbnRyb2wuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQ0NDMkI1MTUxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNTgxMjBBNUQwNjAwREMwMkEwIC8qIERl
dmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFGQjFBNUExMjBB
NUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MzFGQjFBNUMxMjBBNUQwNjAwREMwMkEwIC8qIERldmljZU1vdGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWNlNDNiMjI0
NDQzMTVhMmIwODYyOGExOGYzNmU2Yjk5ZmEwZTZiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ2xpZW50LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqICBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2lmbmRlZiBEZXZpY2VDbGllbnRfaAorI2RlZmluZSBEZXZpY2VDbGll
bnRfaAorCisjaW5jbHVkZSA8RXZlbnQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERldmljZUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB+RGV2aWNlQ2xpZW50KCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgPSAwOworCisg
ICAgdmlydHVhbCBib29sIGhhc1ByZXNlcnZlZEV2ZW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxFdmVudD4gcHJlc2VydmVkRXZlbnQoKSBjb25zdCA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEZXZpY2VDbGllbnRfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc3Yjk3MjUzYmEz
YTY4Nzc1MWE1MTQ2MzY2ZmI1YTllZmRmOTZmYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEZXZpY2VD
b250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEZXZpY2VD
bGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RldmljZUNvbnRyb2xsZXI6
OkRldmljZUNvbnRyb2xsZXIoRGV2aWNlQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNl
RXZlbnQpCit7Cit9CisKK3ZvaWQgRGV2aWNlQ29udHJvbGxlcjo6YWRkRGV2aWNlRXZlbnRMaXN0
ZW5lcihET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpbnQgaXNFbXB0eSA9IG1fbGlzdGVuZXJz
LnNpemUoKTsKKworICAgIGlmIChtX2xpc3RlbmVycy5maW5kKHdpbmRvdykgPT0gbV9saXN0ZW5l
cnMuZW5kKCkpCisgICAgICAgIG1fbGlzdGVuZXJzLmFkZCh3aW5kb3cpOworCisgICAgaWYgKG1f
Y2xpZW50LT5oYXNQcmVzZXJ2ZWRFdmVudCgpKSB7CisgICAgICAgIG1fbGFzdEV2ZW50TGlzdGVu
ZXJzLmFkZCh3aW5kb3cpOworICAgICAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOworICAgIH0KKworICAgIGlmICghaXNFbXB0
eSkKKyAgICAgICAgbV9jbGllbnQtPnN0YXJ0VXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VD
b250cm9sbGVyOjpyZW1vdmVEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQor
eworICAgIG1fbGlzdGVuZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIG1fbGFzdEV2ZW50TGlzdGVu
ZXJzLnJlbW92ZSh3aW5kb3cpOworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAg
ICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVy
OjpyZW1vdmVBbGxEZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyogd2luZG93KQoreworICAg
IG1fbGlzdGVuZXJzLnJlbW92ZUFsbCh3aW5kb3cpOworICAgIG1fbGFzdEV2ZW50TGlzdGVuZXJz
LnJlbW92ZUFsbCh3aW5kb3cpOworICAgIGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAg
ICAgIG1fY2xpZW50LT5zdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBEZXZpY2VDb250cm9sbGVy
OjpkaXNwYXRjaERldmljZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQoreworICAgIGlm
ICghbV9saXN0ZW5lcnMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8RE9N
V2luZG93Kj4gbGlzdGVuZXJWZWN0b3I7CisgICAgY29weVRvVmVjdG9yKG1fbGlzdGVuZXJzLCBs
aXN0ZW5lclZlY3Rvcik7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0ZW5lclZlY3Rv
ci5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoIWxpc3RlbmVyVmVjdG9yW2ldLT5kb2N1bWVu
dCgpLT5hY3RpdmVET01PYmplY3RzQXJlU3VzcGVuZGVkKCkKKyAgICAgICAgICAgICYmICFsaXN0
ZW5lclZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN0b3BwZWQoKSkK
KyAgICAgICAgbGlzdGVuZXJWZWN0b3JbaV0tPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIH0K
K30KKwordm9pZCBEZXZpY2VDb250cm9sbGVyOjpmaXJlRGV2aWNlRXZlbnQoVGltZXI8RGV2aWNl
Q29udHJvbGxlcj4qIHRpbWVyKQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09
ICZtX3RpbWVyKTsKKyAgICBBU1NFUlQobV9jbGllbnQtPmhhc1ByZXNlcnZlZEV2ZW50KCkpOwor
ICAgIG1fdGltZXIuc3RvcCgpOworCisgICAgaWYgKCFtX2xhc3RFdmVudExpc3RlbmVycy5zaXpl
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxET01XaW5kb3cqPiBsaXN0ZW5lclZl
Y3RvcjsKKyAgICBjb3B5VG9WZWN0b3IobV9sYXN0RXZlbnRMaXN0ZW5lcnMsIGxpc3RlbmVyVmVj
dG9yKTsKKyAgICBtX2xhc3RFdmVudExpc3RlbmVycy5jbGVhcigpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbGlzdGVuZXJWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKCFs
aXN0ZW5lclZlY3RvcltpXS0+ZG9jdW1lbnQoKS0+YWN0aXZlRE9NT2JqZWN0c0FyZVN1c3BlbmRl
ZCgpCisgICAgICAgICAgICAmJiAhbGlzdGVuZXJWZWN0b3JbaV0tPmRvY3VtZW50KCktPmFjdGl2
ZURPTU9iamVjdHNBcmVTdG9wcGVkKCkpCisgICAgICAgIGxpc3RlbmVyVmVjdG9yW2ldLT5kaXNw
YXRjaEV2ZW50KG1fY2xpZW50LT5wcmVzZXJ2ZWRFdmVudCgpKTsKKyAgICB9Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNl
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZXZpY2VDb250cm9sbGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNThkZGYzYTFjYmYzMGVmY2VlZjliNGZlOGFjYmM1OGQ0NTNjY2QzZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGV2aWNlQ29udHJvbGxlci5oCkBAIC0w
LDAgKzEsNTggQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZm5kZWYgRGV2aWNlQ29udHJv
bGxlcl9oCisjZGVmaW5lIERldmljZUNvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiU3VwcGxlbWVu
dGFibGUuaCIKKyNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNl
dC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIERl
dmljZUNsaWVudDsKK2NsYXNzIEV2ZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgRGV2aWNlQ29u
dHJvbGxlciA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBEZXZpY2VDb250cm9sbGVyKERldmljZUNsaWVudCopOworICAgIH5EZXZpY2VDb250cm9sbGVy
KCkgeyB9OworCisgICAgdm9pZCBhZGREZXZpY2VFdmVudExpc3RlbmVyKERPTVdpbmRvdyopOwor
ICAgIHZvaWQgcmVtb3ZlRGV2aWNlRXZlbnRMaXN0ZW5lcihET01XaW5kb3cqKTsKKyAgICB2b2lk
IHJlbW92ZUFsbERldmljZUV2ZW50TGlzdGVuZXIoRE9NV2luZG93Kik7CisKKyAgICB2b2lkIGRp
c3BhdGNoRGV2aWNlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIGJvb2wgaXNBY3RpdmUo
KSB7IHJldHVybiAhbV9saXN0ZW5lcnMuaXNFbXB0eSgpOyB9CisgICAgRGV2aWNlQ2xpZW50KiBj
bGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQorCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBmaXJl
RGV2aWNlRXZlbnQoVGltZXI8RGV2aWNlQ29udHJvbGxlcj4qKTsKKworICAgIEhhc2hDb3VudGVk
U2V0PERPTVdpbmRvdyo+IG1fbGlzdGVuZXJzOworICAgIEhhc2hDb3VudGVkU2V0PERPTVdpbmRv
dyo+IG1fbGFzdEV2ZW50TGlzdGVuZXJzOworICAgIERldmljZUNsaWVudCogbV9jbGllbnQ7Cisg
ICAgVGltZXI8RGV2aWNlQ29udHJvbGxlcj4gbV90aW1lcjsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIERldmljZUNvbnRyb2xsZXJfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>