<?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>78853</bug_id>
          
          <creation_ts>2012-02-16 15:44:53 -0800</creation_ts>
          <short_desc>Always enable ENABLE(CLIENT_BASED_GEOLOCATION)</short_desc>
          <delta_ts>2012-05-21 10:17:26 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>79270</dependson>
          <blocked>40373</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>benjamin</cc>
    
    <cc>bw80.lee</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jknotten</cc>
    
    <cc>jonlee</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>steveblock</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>558610</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 15:44:53 -0800</bug_when>
    <thetext>Always enable ENABLE(CLIENT_BASED_GEOLOCATION)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558625</commentid>
    <comment_count>1</comment_count>
      <attachid>127459</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 16:00:21 -0800</bug_when>
    <thetext>Created attachment 127459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558628</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 16:02:45 -0800</bug_when>
    <thetext>There&apos;s actually some more code to remove related to GeolocationService.cpp, but we can do that in a followup patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558631</commentid>
    <comment_count>3</comment_count>
      <attachid>127459</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-16 16:04:15 -0800</bug_when>
    <thetext>Comment on attachment 127459
Patch

I wonder if any of these ENABLEs you&apos;re removing need to be replaced by ENABLE(GEOLOCATION) instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558632</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-02-16 16:04:28 -0800</bug_when>
    <thetext>I recommend waiting for the EWS bots to clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558635</commentid>
    <comment_count>5</comment_count>
      <attachid>127462</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 16:06:59 -0800</bug_when>
    <thetext>Created attachment 127462
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558644</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-16 16:10:50 -0800</bug_when>
    <thetext>We still use that code, please wait a bit before removing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558645</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 16:12:35 -0800</bug_when>
    <thetext>&gt; We still use that code, please wait a bit before removing it.

Which port uses the code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558652</commentid>
    <comment_count>8</comment_count>
      <attachid>127462</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-16 16:23:19 -0800</bug_when>
    <thetext>Comment on attachment 127462
Patch

Attachment 127462 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11493019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558660</commentid>
    <comment_count>9</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-02-16 16:34:08 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; We still use that code, please wait a bit before removing it.
&gt; 
&gt; Which port uses the code?

iOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558668</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-16 16:45:47 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; &gt; We still use that code, please wait a bit before removing it.
&gt; &gt; 
&gt; &gt; Which port uses the code?

iOS. We have reasons to keep maintaining this code at the moment. We can remove that later.

Is this blocking other architectural changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558706</commentid>
    <comment_count>11</comment_count>
      <attachid>127462</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-16 17:05:47 -0800</bug_when>
    <thetext>Comment on attachment 127462
Patch

Attachment 127462 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11534984</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558734</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 17:24:21 -0800</bug_when>
    <thetext>I replied to Benjamin on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558735</commentid>
    <comment_count>13</comment_count>
      <attachid>127462</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-16 17:24:38 -0800</bug_when>
    <thetext>Comment on attachment 127462
Patch

I need to resolve these compile issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559089</commentid>
    <comment_count>14</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-17 03:12:24 -0800</bug_when>
    <thetext>BTW, feel free to remove the GeolocationServiceEfl code (which seems to be one of the last things still interacting with GeolocationService) if/when needed, it&apos;s mostly dummy code with no real use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559095</commentid>
    <comment_count>15</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-17 03:14:59 -0800</bug_when>
    <thetext>I wonder if build-webkit doesn&apos;t need to be updated as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559097</commentid>
    <comment_count>16</comment_count>
      <attachid>127462</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2012-02-17 03:15:39 -0800</bug_when>
    <thetext>Comment on attachment 127462
Patch

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

&gt; Source/JavaScriptCore/wtf/Platform.h:1090
&gt;     pre-emptive permission policy is enabled by default for all client-based implementations. */

Stale comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559099</commentid>
    <comment_count>17</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2012-02-17 03:17:11 -0800</bug_when>
    <thetext>&gt; I wonder if any of these ENABLEs you&apos;re removing need to be replaced by
&gt; ENABLE(GEOLOCATION) instead.
That shouldn&apos;t be the case. When we introduced ENABLE(CLIENT_BASED_GEOLOCATION), it was always as a switch _within_ the Geolocation code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559165</commentid>
    <comment_count>18</comment_count>
      <attachid>127462</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-17 06:51:39 -0800</bug_when>
    <thetext>Comment on attachment 127462
Patch

Attachment 127462 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11536556</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560671</commentid>
    <comment_count>19</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-02-20 22:31:08 -0800</bug_when>
    <thetext>I fix build breaks simply for EFL port after looking over this patch. But, I&apos;m not sure if this modification is right for your patch. Anyway, please check EFL port build as well. :-)


--- a/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
+++ b/Source/WebKit/efl/WebCoreSupport/ChromeClientEfl.h
@@ -151,8 +151,6 @@ public:
 
     virtual void scrollRectIntoView(const IntRect&amp;) const { }
 
-    virtual void requestGeolocationPermissionForFrame(Frame*, Geolocation*);
-    virtual void cancelGeolocationPermissionRequestForFrame(Frame*, Geolocation*);

--- a/Source/WebCore/page/Geolocation.cpp
+++ b/Source/WebCore/page/Geolocation.cpp

 #if USE(PREEMPT_GEOLOCATION_PERMISSION)
@@ -768,6 +714,10 @@ Geolocation::~Geolocation() {}
 
 void Geolocation::setIsAllowed(bool) {}
 
+void Geolocation::setError(GeolocationError*) {}
+    
+void Geolocation::positionChanged() {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560701</commentid>
    <comment_count>20</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-02-20 23:51:20 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; BTW, feel free to remove the GeolocationServiceEfl code (which seems to be one of the last things still interacting with GeolocationService) if/when needed, it&apos;s mostly dummy code with no real use.

Can you please already do that in a separate patch?
That will make this patch easier to fix when it will land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562300</commentid>
    <comment_count>21</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-02-22 13:08:05 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #14)
&gt; &gt; BTW, feel free to remove the GeolocationServiceEfl code (which seems to be one of the last things still interacting with GeolocationService) if/when needed, it&apos;s mostly dummy code with no real use.
&gt; 
&gt; Can you please already do that in a separate patch?
&gt; That will make this patch easier to fix when it will land.

Sure, files http://webkit.org/b/79270 for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575374</commentid>
    <comment_count>22</comment_count>
      <attachid>131142</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-09 17:33:53 -0800</bug_when>
    <thetext>Created attachment 131142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575384</commentid>
    <comment_count>23</comment_count>
      <attachid>131142</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-09 18:01:46 -0800</bug_when>
    <thetext>Comment on attachment 131142
Patch

Attachment 131142 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/11911870</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575421</commentid>
    <comment_count>24</comment_count>
      <attachid>131142</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-09 20:09:16 -0800</bug_when>
    <thetext>Comment on attachment 131142
Patch

Attachment 131142 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11933014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575426</commentid>
    <comment_count>25</comment_count>
      <attachid>131149</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-09 20:42:40 -0800</bug_when>
    <thetext>Created attachment 131149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575436</commentid>
    <comment_count>26</comment_count>
      <attachid>131149</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-09 21:21:36 -0800</bug_when>
    <thetext>Comment on attachment 131149
Patch

Attachment 131149 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/11933039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576852</commentid>
    <comment_count>27</comment_count>
      <attachid>131482</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-12 18:21:06 -0700</bug_when>
    <thetext>Created attachment 131482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576976</commentid>
    <comment_count>28</comment_count>
      <attachid>131482</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-12 20:40:30 -0700</bug_when>
    <thetext>Comment on attachment 131482
Patch

Attachment 131482 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11947303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577024</commentid>
    <comment_count>29</comment_count>
      <attachid>131541</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-12 21:55:08 -0700</bug_when>
    <thetext>Created attachment 131541
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577039</commentid>
    <comment_count>30</comment_count>
      <attachid>131541</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-03-12 22:29:02 -0700</bug_when>
    <thetext>Comment on attachment 131541
Patch

Attachment 131541 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11949258</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577102</commentid>
    <comment_count>31</comment_count>
      <attachid>131557</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-12 23:50:08 -0700</bug_when>
    <thetext>Created attachment 131557
Patch

Hopefully gtk will build this time :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577112</commentid>
    <comment_count>32</comment_count>
      <attachid>131557</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-12 23:59:05 -0700</bug_when>
    <thetext>Comment on attachment 131557
Patch

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

Looks great.   Is GeolocationServiceEFL gone already?

&gt; ChangeLog:1
&gt; +2012-03-12  Adam Barth  &lt;abarth@webkit.org&gt; &amp;&amp; Benjamin Poulain  &lt;bpoulain@apple.com&gt;

Feel free to take full credit.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577236</commentid>
    <comment_count>33</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-03-13 04:59:08 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; Looks great.   Is GeolocationServiceEFL gone already?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577716</commentid>
    <comment_count>34</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-13 13:10:48 -0700</bug_when>
    <thetext>Committed r110595: &lt;http://trac.webkit.org/changeset/110595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577773</commentid>
    <comment_count>35</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-13 13:48:13 -0700</bug_when>
    <thetext>Did qtwebkit fail to build or needs a clean build after this?

In file included from ../../../Source/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.cpp:33:
../../../Source/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.h:49: error: &apos;Geolocation&apos; has not been declared
../../../Source/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.h:50: error: &apos;Geolocation&apos; has not been declared
../../../Source/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.h:55: error: &apos;Geolocation&apos; was not declared in this scope
../../../Source/WebKit/qt/WebCoreSupport/GeolocationPermissionClientQt.h:55: error: template argument 2 is invalid
/usr/local/Trolltech/Qt-4.8.0/bin/moc -DENABLE_REQUEST_ANIMATION_FRAME=0 -DENABLE_DOWNLOAD_ATTRIBUTE=0 -DENABLE_WEBGL=0 -DENABLE_3D_RENDERING=0 -DENABLE_ACCELERATED_2D_CANVAS=0 -DENABLE_ANIMATION_API=0 -DENABLE_BLOB=0 -DENABLE_CHANNEL_MESSAGING=0 -DENABLE_CSS_FILTERS=0 -DENABLE_CSS_GRID_LAYOUT=0 -DENABLE_CSS_SHADERS=0 -DENABLE_SQL_DATABASE=0 -DENABLE_DATALIST=0 -DENABLE_DATA_TRANSFER_ITEMS=0 -DENABLE_DETAILS=0 -DENABLE_DEVICE_ORIENTATION=0 -DENABLE_DIRECTORY_UPLOAD=0 -DENABLE_FILE_SYSTEM=0 -DENABLE_FILTERS=0 -DENABLE_FTPDIR=0 -DENABLE_FULLSCREEN_API=0 -DENABLE_GAMEPAD=0 -DENABLE_GEOLOCATION=0 -DENABLE_ICONDATABASE=0 -DENABLE_INDEXED_DATABASE=0 -DENABLE_INPUT_COLOR=0 -DENABLE_INPUT_SPEECH=0 -DENABLE_SCRIPTED_SPEECH=0 -DENABLE_INPUT_TYPE_DATE=0 -DENABLE_INPUT_TYPE_DATETIME=0 -DENABLE_INPUT_TYPE_DATETIMELOCAL=0 -DENABLE_INPUT_TYPE_MONTH=0 -DENABLE_INPUT_TYPE_TIME=0 -DENABLE_INPUT_TYPE_WEEK=0 -DENABLE_INSPECTOR=0 -DENABLE_JAVASCRIPT_DEBUGGER=0 -DENABLE_LEGACY_NOTIFICATIONS=0 -DENABLE_LINK_PREFETCH=0 -DENABLE_MATHML=0 -DENABLE_MEDIA_SOURCE=0 -DENABLE_MEDIA_STATISTICS=0 -DENABLE_MEDIA_STREAM=0 -DENABLE_METER_TAG=0 -DENABLE_MHTML=0 -DENABLE_MICRODATA=0 -DENABLE_MUTATION_OBSERVERS=0 -DENABLE_NETSCAPE_PLUGIN_API=0 -DENABLE_NOTIFICATIONS=0 -DENABLE_ORIENTATION_EVENTS=0 -DENABLE_PAGE_VISIBILITY_API=0 -DENABLE_PROGRESS_TAG=0 -DENABLE_QUOTA=0 -DENABLE_REGISTER_PROTOCOL_HANDLER=0 -DUSE_SYSTEM_MALLOC=0 -DENABLE_SHADOW_DOM=0 -DENABLE_SHARED_WORKERS=0 -DENABLE_STYLE_SCOPED=0 -DENABLE_SVG=0 -DENABLE_SVG_DOM_OBJC_BINDINGS=0 -DENABLE_SVG_FONTS=0 -DWTF_USE_TILED_BACKING_STORE=0 -DENABLE_TOUCH_EVENTS=0 -DENABLE_TOUCH_ICON_LOADING=0 -DENABLE_VIBRATION=0 -DENABLE_VIDEO=0 -DENABLE_VIDEO_TRACK=0 -DENABLE_WEB_AUDIO=0 -DENABLE_WEB_SOCKETS=0 -DENABLE_WEB_TIMING=0 -DENABLE_WORKERS=0 -DWTF_USE_WTFURL=0 -DENABLE_XSLT=0 -DENABLE_NETSCAPE_PLUGIN_API=0 -DWTF_USE_QT4_UNICODE=1 -DENABLE_SVG_FONTS=0 -DHAVE_FONTCONFIG=1 -DENABLE_DASHBOARD_SUPPORT=0 -DWTF_USE_QT_IMAGE_DECODER=1 -DENABLE_SVG_FONTS=0 -DPLUGIN_ARCHITECTURE_UNSUPPORTED=1 -DHAVE_QSTYLE=1 -DENABLE_GESTURE_EVENTS=1 -DENABLE_JAVASCRIPT_DEBUGGER=0 -DHAVE_QQUICK1=1 -DQT_MAKEDLL -DBUILDING_QT__=1 -DNDEBUG -DBUILDING_QtWebKit -DBUILDING_WEBKIT -DQT_ASCII_CAST_WARNINGS -DWTF_USE_TEXTURE_MAPPER=1 -DWTF_USE_TEXTURE_MAPPER_GL=1 -DENABLE_GLIB_SUPPORT=1 -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.8.0/mkspecs/linux-g++-32 -I../../../Source -I/usr/local/Trolltech/Qt-4.8.0/include/QtCore -I/usr/local/Trolltech/Qt-4.8.0/include/QtNetwork -I/usr/local/Trolltech/Qt-4.8.0/include/QtGui -I/usr/local/Trolltech/Qt-4.8.0/include/QtOpenGL -I/usr/local/Trolltech/Qt-4.8.0/include/QtSql -I/usr/local/Trolltech/Qt-4.8.0/include -I/usr/local/Trolltech/qt-mobility-opensource-1.2.0-for-Qt-4.8.0/include/QtSensors -I. -I../../../Source/WebKit/qt/Api -I../../../Source/WebKit/qt/WebCoreSupport -I../../../Source -I/ramdisk/qt-linux-release-minimal/build/WebKitBuild/Release/Source/include -I../../../Source/WebCore -I../../../Source/WebCore/Modules/filesystem -I../../../Source/WebCore/Modules/geolocation -I../../../Source/WebCore/Modules/indexeddb -I../../../Source/WebCore/Modules/webdatabase -I../../../Source/WebCore/Modules/websockets -I../../../Source/WebCore/accessibility -I../../../Source/WebCore/bindings -I../../../Source/WebCore/bindings/generic -I../../../Source/WebCore/bridge -I../../../Source/WebCore/bridge/qt -I../../../Source/WebCore/css -I../../../Source/WebCore/dom -I../../../Source/WebCore/dom/default -I../../../Source/WebCore/editing -I../../../Source/WebCore/fileapi -I../../../Source/WebCore/history -I../../../Source/WebCore/html -I../../../Source/WebCore/html/canvas -I../../../Source/WebCore/html/parser -I../../../Source/WebCore/html/shadow -I../../../Source/WebCore/html/track -I../../../Source/WebCore/inspector -I../../../Source/WebCore/loader -I../../../Source/WebCore/loader/appcache -I../../../Source/WebCore/loader/archive -I../../../Source/WebCore/loader/cache -I../../../Source/WebCore/loader/icon -I../../../Source/WebCore/mathml -I../../../Source/WebCore/notifications -I../../../Source/WebCore/page -I../../../Source/WebCore/page/animation -I../../../Source/WebCore/page/qt -I../../../Source/WebCore/page/scrolling -I../../../Source/WebCore/platform -I../../../Source/WebCore/platform/animation -I../../../Source/WebCore/platform/audio -I../../../Source/WebCore/platform/graphics -I../../../Source/WebCore/platform/graphics/filters -I../../../Source/WebCore/platform/graphics/filters/arm -I../../../Source/WebCore/platform/graphics/opengl -I../../../Source/WebCore/platform/graphics/qt -I../../../Source/WebCore/platform/graphics/texmap -I../../../Source/WebCore/platform/graphics/transforms -I../../../Source/WebCore/platform/image-decoders -I../../../Source/WebCore/platform/leveldb -I../../../Source/WebCore/platform/mock -I../../../Source/WebCore/platform/network -I../../../Source/WebCore/platform/network/qt -I../../../Source/WebCore/platform/qt -I../../../Source/WebCore/platform/sql -I../../../Source/WebCore/platform/text -I../../../Source/WebCore/platform/text/transcoder -I../../../Source/WebCore/plugins -I../../../Source/WebCore/rendering -I../../../Source/WebCore/rendering/mathml -I../../../Source/WebCore/rendering/style -I../../../Source/WebCore/rendering/svg -I../../../Source/WebCore/storage -I../../../Source/WebCore/svg -I../../../Source/WebCore/svg/animation -I../../../Source/WebCore/svg/graphics -I../../../Source/WebCore/svg/graphics/filters -I../../../Source/WebCore/svg/properties -I../../../Source/WebCore/testing -I../../../Source/WebCore/webaudio -I/ramdisk/qt-linux-release-minimal/build/Source/WebCore/websockets -I../../../Source/WebCore/workers -I../../../Source/WebCore/xml -I../../../Source/WebCore/xml/parser -I../../../Source/ThirdParty -I../../../Source/WebCore/bridge/jsc -I../../../Source/WebCore/bindings/js -I/ramdisk/qt-linux-release-minimal/build/Source/WebCore/bindings/js/specialization -I../../../Source/WebCore/bridge/c -I../../../Source/WebCore/testing/js -IWebCore/generated -I/usr/local/Trolltech/Qt-4.8.0/src/3rdparty/sqlite/ -I../../../Source/JavaScriptCore -I../../../Source -I../../../Source/JavaScriptCore/assembler -I../../../Source/JavaScriptCore/bytecode -I../../../Source/JavaScriptCore/bytecompiler -I../../../Source/JavaScriptCore/heap -I../../../Source/JavaScriptCore/dfg -I../../../Source/JavaScriptCore/debugger -I../../../Source/JavaScriptCore/interpreter -I../../../Source/JavaScriptCore/jit -I../../../Source/JavaScriptCore/llint -I../../../Source/JavaScriptCore/parser -I../../../Source/JavaScriptCore/profiler -I../../../Source/JavaScriptCore/runtime -I../../../Source/JavaScriptCore/tools -I../../../Source/JavaScriptCore/yarr -I../../../Source/JavaScriptCore/API -I../../../Source/JavaScriptCore/ForwardingHeaders -IJavaScriptCore/generated -I../../../Source/JavaScriptCore -I../../../Source/JavaScriptCore/wtf -I../../../Source/JavaScriptCore/wtf/gobject -I../../../Source/JavaScriptCore/wtf/qt -I../../../Source/JavaScriptCore/wtf/unicode -I/usr/local/Trolltech/qt-mobility-opensource-1.2.0-for-Qt-4.8.0/include -I/usr/local/Trolltech/qt-mobility-opensource-1.2.0-for-Qt-4.8.0/include/QtMobility -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/X11R6/include -I../../../Source -I. ../../../Source/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp -o InspectorClientQt.moc
ICECC[20912] 20:17:39: Compiled on 10.109.213.1
make[3]: *** [obj/release/GeolocationPermissionClientQt.o] Error 1
make[3]: *** Waiting for unfinished jobs....
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp: In static member function &apos;static void DumpRenderTreeSupportQt::resetGeolocationMock(QWebPage*)&apos;:
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:840: error: &apos;class WebCore::Page&apos; has no member named &apos;geolocationController&apos;
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp: In static member function &apos;static void DumpRenderTreeSupportQt::setMockGeolocationPermission(QWebPage*, bool)&apos;:
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:847: error: &apos;class WebCore::Page&apos; has no member named &apos;geolocationController&apos;
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp: In static member function &apos;static void DumpRenderTreeSupportQt::setMockGeolocationPosition(QWebPage*, double, double, double)&apos;:
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:854: error: &apos;class WebCore::Page&apos; has no member named &apos;geolocationController&apos;
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp: In static member function &apos;static void DumpRenderTreeSupportQt::setMockGeolocationError(QWebPage*, int, const QString&amp;)&apos;:
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:872: error: &apos;class WebCore::Page&apos; has no member named &apos;geolocationController&apos;
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp: In static member function &apos;static int DumpRenderTreeSupportQt::numberOfPendingGeolocationPermissionRequests(QWebPage*)&apos;:
../../../Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp:879: error: &apos;class WebCore::Page&apos; has no member named &apos;geolocationController&apos;
ICECC[20881] 20:17:41: Compiled on 10.109.211.1
make[3]: *** [obj/release/DumpRenderTreeSupportQt.o] Error 1
make[3]: Leaving directory `/ramdisk/qt-linux-release-minimal/build/WebKitBuild/Release/Source&apos;
make[2]: *** [sub-api-pri-make_default-ordered] Error 2
make[2]: Leaving directory `/ramdisk/qt-linux-release-minimal/build/WebKitBuild/Release/Source&apos;
make[1]: *** [sub-Source-QtWebKit-pro-make_default-ordered] Error 2
make[1]: Leaving directory `/ramdisk/qt-linux-release-minimal/build/WebKitBuild/Release&apos;
make: *** [incremental] Error 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578217</commentid>
    <comment_count>36</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-14 00:44:42 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; Committed r110595: &lt;http://trac.webkit.org/changeset/110595&gt;

And trivial, speculative, ... fixes landed in:
- http://trac.webkit.org/changeset/110604
- http://trac.webkit.org/changeset/110609
- http://trac.webkit.org/changeset/110610

They fixed the minimal build, but break all other Qt builds ... Great ...

Reopen to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578254</commentid>
    <comment_count>37</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-14 01:56:03 -0700</bug_when>
    <thetext>Last fix landed in http://trac.webkit.org/changeset/110677</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629231</commentid>
    <comment_count>38</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2012-05-21 10:17:26 -0700</bug_when>
    <thetext>*** Bug 40373 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127459</attachid>
            <date>2012-02-16 16:00:21 -0800</date>
            <delta_ts>2012-02-16 16:06:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78853-20120216160020.patch</filename>
            <type>text/plain</type>
            <size>93919</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4
NykKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAy
LTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVu
YWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tC
ZXJyeS5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZS9jbWFrZWNvbmZpZy5oLmNtYWtlOgorCiAyMDEyLTAyLTE2ICBTaW1vbiBIYXVzbWFubiAgPHNp
bW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIE1vdmUgZXZlbnQgY29udmVy
c2lvbiBmdW5jdGlvbnMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdApJbmRleDogU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UJ
KHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC04LDcgKzgsNiBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0FTX0lNQUdFCiAj
Y21ha2VkZWZpbmUwMSBFTkFCTEVfQkxPQgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HCi0jY21ha2VkZWZpbmUwMSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
CiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREFUQUxJU1QKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wMi0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwog
MjAxMi0wMi0xNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCBFcnJvci5zdGFjawpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNp
b24gMTA3OTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw5ICszNCw2IEBACiBFTkFC
TEVfQkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9C
TE9CX21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9O
QU1FKSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
REFTSEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBA
IC0xMjYsNCArMTIzLDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9
IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19T
SEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFC
TEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVO
QUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAk
KEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChF
TkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlO
RykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQo
RU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVf
REFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkg
JChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVf
SUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9D
T0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1F
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQo
RU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVT
VF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChF
TkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lD
T05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFC
TEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwODgs
OSArMTA4OCw3IEBACiAvKiBHZW9sb2NhdGlvbiByZXF1ZXN0IHBvbGljeS4gcHJlLWVtcHRpdmUg
cG9saWN5IGlzIHRvIGFjcXVpcmUgdXNlciBwZXJtaXNzaW9uIGJlZm9yZSBhY3F1aXJpbmcgbG9j
YXRpb24uCiAgICBDbGllbnQgYmFzZWQgaW1wbGVtZW50YXRpb25zIHdpbGwgaGF2ZSBvcHRpb24g
dG8gY2hvb3NlIGJldHdlZW4gcHJlLWVtcHRpdmUgYW5kIG5vbnByZS1lbXB0aXZlIHBlcm1pc3Np
b24gcG9saWN5LgogICAgcHJlLWVtcHRpdmUgcGVybWlzc2lvbiBwb2xpY3kgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0IGZvciBhbGwgY2xpZW50LWJhc2VkIGltcGxlbWVudGF0aW9ucy4gKi8KLSNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogI2RlZmluZSBXVEZfVVNFX1BSRUVNUFRf
R0VPTE9DQVRJT05fUEVSTUlTU0lPTiAxCi0jZW5kaWYKIAogI2lmIENQVShBUk1fVEhVTUIyKQog
I2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTA3OTg3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTItMDItMTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZXJ5
IHBvcnQgYXBwZWFycyB0byBlbmFibGUgdGhpcyBkZWZpbmUuICBUaGlzIHBhdGNoIHJlbW92ZXMg
dGhlCisgICAgICAgIEVOQUJMRSBmbGFnIGFuZCB0aGUgYWx0ZXJuYXRlIGNvZGVwYXRoLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
YmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICAoRW1wdHlDaHJvbWVDbGllbnQpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorICAgICAgICAqIHBh
Z2UvR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVQb3NpdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpH
ZW9sb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb246OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b246OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChHZW9sb2NhdGlvbik6CisgICAgICAgICogcGFnZS9HZW9s
b2NhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9s
bGVyLmg6CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbkVycm9yLmg6CisgICAgICAgICogcGFn
ZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAg
ICAoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpnZW9sb2NhdGlvbkNvbnRyb2xsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvR2VvbG9jYXRpb25TZXJ2aWNlRWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9HZW9sb2NhdGlv
blNlcnZpY2VFZmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50
TW9jay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aDoKKwogMjAxMi0wMi0xNiAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIENyYXNoIHdpdGggdGFibGVzIGluIG11bHRpLWNvbHVtbiBsYXlvdXQuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0MCw4ICs0NDAsOCBAQCBlbmRpZiAj
IEVORCBFTkFCTEVfRklMVEVSUwogIyAtLS0tCiBpZiBFTkFCTEVfR0VPTE9DQVRJT04KIAotRkVB
VFVSRV9ERUZJTkVTICs9IEVOQUJMRV9HRU9MT0NBVElPTj0xIEVOQUJMRV9DTElFTlRfQkFTRURf
R0VPTE9DQVRJT049MQotd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9HRU9MT0NBVElPTj0x
IC1ERU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xCitGRUFUVVJFX0RFRklORVMgKz0g
RU5BQkxFX0dFT0xPQ0FUSU9OPTEKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfR0VPTE9D
QVRJT049MQogZW5kaWYgIyBFTkQgRU5BQkxFX0dFT0xPQ0FUSU9OCiAKICMgLS0tLQpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg2LDEzICsxNjg2LDggQEAgX19aTjdX
ZWJDb3JlOERyYWdEYXRhQzFFUktOM1dURjZTdHJpbmdFUgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIF9fWk43
V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyMTNlcnJvck9jY3VycmVkRVBOU18xNkdlb2xv
Y2F0aW9uRXJyb3JFCiBfX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlcjE1cG9zaXRp
b25DaGFuZ2VkRVBOU18xOUdlb2xvY2F0aW9uUG9zaXRpb25FCi0jZWxzZQotX19aTjdXZWJDb3Jl
MjJHZW9sb2NhdGlvblNlcnZpY2VNb2NrMTFzZXRQb3NpdGlvbkVOM1dURjEwUGFzc1JlZlB0cklO
U18xMUdlb3Bvc2l0aW9uRUVFCi1fX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2s4
c2V0RXJyb3JFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTNQb3NpdGlvbkVycm9yRUVFCi0jZW5kaWYK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxFX0JMT0Ig
PSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxPQl9tYWNv
c3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9ICQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwot
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAtMTI2LDQg
KzEyMyw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBFTkFCTEVf
V09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1Nf
RklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVN
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FN
RVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVU
X1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZF
VENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNF
UlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FM
X0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRf
Tk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FO
SU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9D
U1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNU
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRB
QkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkg
JChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9N
VVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQo
RU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykg
JChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJ
TkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wp
ICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAJKHJldmlz
aW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTR2VvbG9jYXRpb25D
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMCArMzcsNiBAQAogI2luY2x1ZGUgIkpT
UG9zaXRpb25FcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25PcHRpb25zLmgiCiAK
LSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlICJHZW9sb2Nh
dGlvblNlcnZpY2UuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2
aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMTcsOSArMjE3LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKSB7fQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHt9Ci0KICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIHt9CiAgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSB7fQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsMTMgKzIxMiw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVy
aGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
LCBjb25zdCBJbnRSZWN0Jik7CiAKLSAgICAgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIGFsbCBw
b3J0cyBhcmUgdXNpbmcgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzMKLSAgICAgICAgLy8gRm9yIGNsaWVudC1iYXNl
ZCBnZW9sb2NhdGlvbiwgdGhlc2UgdHdvIG1ldGhvZHMgaGF2ZSBtb3ZlZCB0byBHZW9sb2NhdGlv
bkNsaWVudC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYxCi0g
ICAgICAgIC8vIFRoaXMgY2FuIGJlIGVpdGhlciBhIHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91
cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBm
b3IgcGVybWlzc2lvbgotICAgICAgICAvLyB0byB1c2UgR2VvbG9jYXRpb24uCi0gICAgICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBH
ZW9sb2NhdGlvbiopID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgPSAwOwotCiAj
aWYgRU5BQkxFKElOUFVUX0NPTE9SKQogICAgICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q29sb3JD
aG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29s
b3ImKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCShy
ZXZpc2lvbiAxMDc5ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTkgKzMxLDE2IEBACiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiR2VvcG9zaXRp
b24uaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0K
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIkNvb3JkaW5h
dGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiR2Vv
bG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNs
dWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQb3NpdGlv
bkVycm9yLmgiCi0jZW5kaWYKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01Myw4ICs1MCw2IEBAIHN0YXRpYyBjb25zdCBjaGFyIGZyYW1l
bGVzc0RvY3VtZW50RXJyb3IKIAogc3RhdGljIGNvbnN0IGludCBmaXJzdEF2YWlsYWJsZVdhdGNo
SWQgPSAxOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogc3RhdGlj
IFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+IGNyZWF0ZUdlb3Bvc2l0aW9uKEdlb2xvY2F0aW9uUG9z
aXRpb24qIHBvc2l0aW9uKQogewogICAgIGlmICghcG9zaXRpb24pCkBAIC04MCw3ICs3NSw2IEBA
IHN0YXRpYyBQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+IGNyZWF0ZVAKIAogICAgIHJldHVybiBQ
b3NpdGlvbkVycm9yOjpjcmVhdGUoY29kZSwgZXJyb3ItPm1lc3NhZ2UoKSk7CiB9Ci0jZW5kaWYK
IAogR2VvbG9jYXRpb246Okdlb05vdGlmaWVyOjpHZW9Ob3RpZmllcihHZW9sb2NhdGlvbiogZ2Vv
bG9jYXRpb24sIFBhc3NSZWZQdHI8UG9zaXRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQ
YXNzUmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgUGFzc1JlZlB0
cjxQb3NpdGlvbk9wdGlvbnM+IG9wdGlvbnMpCiAgICAgOiBtX2dlb2xvY2F0aW9uKGdlb2xvY2F0
aW9uKQpAQCAtMjI2LDkgKzIyMCw2IEBAIHZvaWQgR2VvbG9jYXRpb246OldhdGNoZXJzOjpnZXRO
b3RpZmllcnMKIAogR2VvbG9jYXRpb246Okdlb2xvY2F0aW9uKEZyYW1lKiBmcmFtZSkKICAgICA6
IERPTVdpbmRvd1Byb3BlcnR5KGZyYW1lKQotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQotICAgICwgbV9zZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKHRoaXMp
KQotI2VuZGlmCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5rbm93bikKIHsKICAgICBpZiAo
IW1fZnJhbWUpCkBAIC0yNTIsMTEgKzI0Myw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnJlc2V0KCkK
IHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmIChwYWdlICYmIG1fYWxs
b3dHZW9sb2NhdGlvbiA9PSBJblByb2dyZXNzKSB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKICAgICAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNhbmNl
bFBlcm1pc3Npb25SZXF1ZXN0KHRoaXMpOwotI2Vsc2UKLSAgICAgICAgcGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUobV9m
cmFtZSwgdGhpcyk7Ci0jZW5kaWYKICAgICB9CiAgICAgLy8gVGhlIGZyYW1lIG1heSBiZSBtb3Zp
bmcgdG8gYSBuZXcgcGFnZSBhbmQgd2Ugd2FudCB0byBnZXQgdGhlIHBlcm1pc3Npb25zIGZyb20g
dGhlIG5ldyBwYWdlJ3MgY2xpZW50LgogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IFVua25vd247
CkBAIC0yNzgsMTYgKzI2NSwxMSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUo
KQogCiBHZW9wb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiB7Ci0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFn
ZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX2xhc3RQb3Np
dGlvbiA9IGNyZWF0ZUdlb3Bvc2l0aW9uKHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5s
YXN0UG9zaXRpb24oKSk7Ci0jZWxzZQotICAgIG1fbGFzdFBvc2l0aW9uID0gbV9zZXJ2aWNlLT5s
YXN0UG9zaXRpb24oKTsKLSNlbmRpZgotCiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uLmdldCgp
OwogfQogCkBAIC02MTYsMTEgKzU5OCw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnJlcXVlc3RQZXJt
aXNzaW9uKCkKICAgICBtX2FsbG93R2VvbG9jYXRpb24gPSBJblByb2dyZXNzOwogCiAgICAgLy8g
QXNrIHRoZSBlbWJlZGRlcjogaXQgbWFpbnRhaW5zIHRoZSBnZW9sb2NhdGlvbiBjaGFsbGVuZ2Ug
cG9saWN5IGl0c2VsZi4KLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAg
IHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5yZXF1ZXN0UGVybWlzc2lvbih0aGlzKTsK
LSNlbHNlCi0gICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5yZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUobV9mcmFtZSwgdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwoKQpAQCAtNjY1LDggKzY0Myw2IEBAIHZv
aWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKCkKICAgICAgICAgc3RvcFVwZGF0
aW5nKCk7CiB9CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiB2b2lk
IEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogewogICAgIHBvc2l0aW9uQ2hhbmdlZElu
dGVybmFsKCk7CkBAIC02NzgsNTQgKzY1NCwyMyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRFcnJv
cihHZW9sb2NhdGlvbkVyCiAgICAgaGFuZGxlRXJyb3IocG9zaXRpb25FcnJvci5nZXQoKSk7CiB9
CiAKLSNlbHNlCi0KLXZvaWQgR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9u
Q2hhbmdlZChHZW9sb2NhdGlvblNlcnZpY2UqIHNlcnZpY2UpCi17Ci0gICAgQVNTRVJUX1VOVVNF
RChzZXJ2aWNlLCBzZXJ2aWNlID09IG1fc2VydmljZSk7Ci0gICAgQVNTRVJUKG1fc2VydmljZS0+
bGFzdFBvc2l0aW9uKCkpOwotCi0gICAgcG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwoKTsKLX0KLQot
dm9pZCBHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2Nh
dGlvblNlcnZpY2UqIHNlcnZpY2UpCi17Ci0gICAgQVNTRVJUKHNlcnZpY2UtPmxhc3RFcnJvcigp
KTsKLQotICAgIC8vIE5vdGUgdGhhdCB3ZSBkbyBub3Qgc3RvcCB0aW1lcnMgaGVyZS4gRm9yIG9u
ZS1zaG90cywgdGhlIHJlcXVlc3QgaXMKLSAgICAvLyBjbGVhcmVkIGluIGhhbmRsZUVycm9yLiBG
b3Igd2F0Y2hlcnMsIHRoZSBzcGVjIHJlcXVpcmVzIHRoYXQgdGhlIHRpbWVyIGlzCi0gICAgLy8g
bm90IGNsZWFyZWQuCi0gICAgaGFuZGxlRXJyb3Ioc2VydmljZS0+bGFzdEVycm9yKCkpOwotfQot
Ci0jZW5kaWYKLQogYm9vbCBHZW9sb2NhdGlvbjo6c3RhcnRVcGRhdGluZyhHZW9Ob3RpZmllciog
bm90aWZpZXIpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmFkZE9ic2VydmVy
KHRoaXMsIG5vdGlmaWVyLT5tX29wdGlvbnMtPmVuYWJsZUhpZ2hBY2N1cmFjeSgpKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIG1fc2VydmljZS0+c3RhcnRVcGRhdGluZyhu
b3RpZmllci0+bV9vcHRpb25zLmdldCgpKTsKLSNlbmRpZgogfQogCiB2b2lkIEdlb2xvY2F0aW9u
OjpzdG9wVXBkYXRpbmcoKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IHJldHVybjsKIAogICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVPYnNl
cnZlcih0aGlzKTsKLSNlbHNlCi0gICAgbV9zZXJ2aWNlLT5zdG9wVXBkYXRpbmcoKTsKLSNlbmRp
ZgotCiB9CiAKICNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwyMyArMzUsMTQg
QEAKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCi0j
aWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0jaW5jbHVkZSAiR2VvbG9jYXRp
b25TZXJ2aWNlLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFt
ZTsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogY2xhc3MgR2VvbG9jYXRp
b25Qb3NpdGlvbjsKIGNsYXNzIEdlb2xvY2F0aW9uRXJyb3I7Ci0jZW5kaWYKIGNsYXNzIFBhZ2U7
CiAKIGNsYXNzIEdlb2xvY2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb24+LCBw
dWJsaWMgRE9NV2luZG93UHJvcGVydHkKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikgJiYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgICwgcHVibGljIEdlb2xvY2F0aW9uU2Vy
dmljZUNsaWVudAotI2VuZGlmCiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R2Vv
bG9jYXRpb24+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW9s
b2NhdGlvbihmcmFtZSkpOyB9CkBAIC02NiwxMiArNTcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldElzQWxsb3dlZChib29sKTsKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAgICAgdm9pZCBwb3NpdGlvbkNoYW5nZWQoKTsKICAgICB2b2lkIHNldEVycm9yKEdlb2xv
Y2F0aW9uRXJyb3IqKTsKLSNlbHNlCi0gICAgR2VvbG9jYXRpb25TZXJ2aWNlKiBnZXRHZW9sb2Nh
dGlvblNlcnZpY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2UuZ2V0KCk7IH0KLSNlbmRpZgog
CiBwcml2YXRlOgogICAgIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKQEAgLTE1NSwxMiAr
MTQyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZVBlbmRpbmdQZXJtaXNzaW9uTm90aWZp
ZXJzKCk7CiAjZW5kaWYKIAotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAm
JiBFTkFCTEUoR0VPTE9DQVRJT04pCi0gICAgLy8gR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Ci0g
ICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZChHZW9sb2Nh
dGlvblNlcnZpY2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JP
Y2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqKTsKLSNlbmRpZgotCiAgICAgUGFzc1JlZlB0cjxH
ZW9Ob3RpZmllcj4gc3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8UG9zaXRpb25DYWxsYmFjaz4sIFBh
c3NSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxQb3NpdGlvbk9wdGlv
bnM+KTsKIAogICAgIHZvaWQgZmF0YWxFcnJvck9jY3VycmVkKEdlb05vdGlmaWVyKik7CkBAIC0x
NzEsOSArMTUyLDYgQEAgcHJpdmF0ZToKIAogICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7
CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLSAgICBPd25QdHI8R2VvbG9jYXRpb25TZXJ2aWNlPiBtX3NlcnZpY2U7Ci0jZW5k
aWYKICNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OKQogICAgIEdlb05vdGlm
aWVyU2V0IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7CiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAJKHJldmlzaW9u
IDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKLQotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAK
ICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9z
aXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjYsNSArMTI0LDMgQEAgR2Vv
bG9jYXRpb25Qb3NpdGlvbiogR2VvbG9jYXRpb25Db250cm9sbAogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCShyZXZp
c2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9u
Q29udHJvbGxlcl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNzUsNiArNzMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gR2Vv
bG9jYXRpb25Db250cm9sbGVyX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b25FcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25F
cnJvci5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHZW9s
b2NhdGlvbkVycm9yX2gKICNkZWZpbmUgR2VvbG9jYXRpb25FcnJvcl9oCiAKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC02MCw2ICs1OCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNlbmRpZiAvLyBH
ZW9sb2NhdGlvbkVycm9yX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uUG9zaXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRl
ZiBHZW9sb2NhdGlvblBvc2l0aW9uX2gKICNkZWZpbmUgR2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KQEAgLTEwNiw2ICsxMDQsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAj
ZW5kaWYgLy8gR2VvbG9jYXRpb25Qb3NpdGlvbl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJl
dmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCkBAIC03
NywxMCArNzgsNiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgotI2VuZGlmCi0KICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudC5oIgogI2VuZGlm
CkBAIC0xMzUsOSArMTMyLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihJbnNw
ZWN0b3JDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50
KSkKICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgLCBt
X2dlb2xvY2F0aW9uQ29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlz
LCBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCkpCi0jZW5kaWYKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZpY2F0aW9uQ29udHJvbGxlcihOb3RpZmljYXRpb25D
b250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xpZW50KSkK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsOSArMTc3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgIEluc3BlY3Rv
ckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2luc3Bl
Y3RvckNvbnRyb2xsZXIuZ2V0KCk7IH0KICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlciogZ2VvbG9jYXRpb25D
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7
IH0KLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICBOb3RpZmljYXRp
b25Db250cm9sbGVyKiBub3RpZmljYXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9u
b3RpZmljYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKQEAgLTM3OCw5ICszNzYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgT3du
UHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICNlbmRpZgot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgICAgIE93blB0cjxHZW9s
b2NhdGlvbkNvbnRyb2xsZXI+IG1fZ2VvbG9jYXRpb25Db250cm9sbGVyOwotI2VuZGlmCiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAgIE93blB0cjxOb3RpZmljYXRpb25Db250cm9s
bGVyPiBtX25vdGlmaWNhdGlvbkNvbnRyb2xsZXI7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkocmV2aXNpb24gMTA3OTc3
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNp
ZiAhRU5BQkxFKEdFT0xPQ0FUSU9OKSB8fCBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQorI2lmICFFTkFCTEUoR0VPTE9DQVRJT04pCiBzdGF0aWMgUGFzc093blB0cjxHZW9sb2NhdGlv
blNlcnZpY2U+IGNyZWF0ZUdlb2xvY2F0aW9uU2VydmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9HZW9sb2NhdGlvblNlcnZpY2VFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9HZW9sb2NhdGlvblNlcnZpY2VFZmwuY3BwCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2VvbG9jYXRpb25TZXJ2
aWNlRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTYgKzIyLDEzIEBACiAjaW5jbHVkZSAi
R2VvbG9jYXRpb25TZXJ2aWNlRWZsLmgiCiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0j
aWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi1HZW9sb2NhdGlvblNlcnZpY2U6
OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5jdGlvbiA9
ICZHZW9sb2NhdGlvblNlcnZpY2VFZmw6OmNyZWF0ZTsKLSNlbmRpZgotCiBQYXNzT3duUHRyPEdl
b2xvY2F0aW9uU2VydmljZT4gR2VvbG9jYXRpb25TZXJ2aWNlRWZsOjpjcmVhdGUoR2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHZW9s
b2NhdGlvblNlcnZpY2VFZmwoY2xpZW50KSk7CkBAIC02OSw0ICs2Niw1IEBAIFBvc2l0aW9uRXJy
b3IqIEdlb2xvY2F0aW9uU2VydmljZUVmbDo6bGEKIH0KIAogfQorCiAjZW5kaWYgLy8gRU5BQkxF
KEdFT0xPQ0FUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dlb2xvY2F0
aW9uU2VydmljZUVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9HZW9sb2NhdGlvblNlcnZpY2VFZmwuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0dlb2xvY2F0aW9uU2VydmljZUVmbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw2ICsyMiw3IEBACiAjZGVmaW5lIEdlb2xvY2F0aW9uU2VydmljZUVmbF9oCiAKICNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCisKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIK
ICNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgogI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKQEAg
LTQ5LDUgKzUwLDcgQEAgcHJpdmF0ZToKIH07CiAKIH0KKwogI2VuZGlmIC8vIEVOQUJMRShHRU9M
T0NBVElPTikKKwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dl
b2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCShyZXZpc2lvbiAxMDc5NzcpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudE1vY2suaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJHZW9sb2NhdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlv
bi5oIgpAQCAtMTc4LDUgKzE3NiwzIEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpjb250
cm9sbGVyVGkKIH0KIAogfSAvLyBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9s
b2NhdGlvbkNsaWVudE1vY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw4ICszMSw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uQ2xpZW50TW9ja19o
CiAjZGVmaW5lIEdlb2xvY2F0aW9uQ2xpZW50TW9ja19oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC05NSw2ICs5Myw0
IEBAIHByaXZhdGU6CiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCi0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3OTg3KQorKysgU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTItMDItMTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdh
eXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1h
bmFnZXI6OnJlZ2lzdGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRHZW9Mb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6V2ViUGFnZSk6CisKIDIwMTItMDItMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW3NvdXBdIE1vdmUgaW1wb3J0YW50IFNvdXBTZXNz
aW9uIGZlYXR1cmUgaW5pdGlhbGl6YXRpb24gdG8gV2ViQ29yZQpJbmRleDogU291cmNlL1dlYktp
dDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJl
dmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw5ICszNCw2IEBACiBFTkFCTEVf
QkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9CTE9C
X21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
ID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1F
KSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFT
SEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBAIC0x
MjYsNCArMTIzLDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVO
QUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFE
RVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5B
QkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChF
TkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xP
UikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5B
QkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
UEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05f
TE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxMSBAQAogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgotCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KLSNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTgs
MjkgKzU1LDI0IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWUKIAog
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgYm9vbCB3YXNF
bXB0eSA9IG1fcGFnZVNldC5pc0VtcHR5KCk7CiAKICAgICBtX3BhZ2VTZXQuYWRkKHBhZ2UpOwog
ICAgIAogICAgIGlmICh3YXNFbXB0eSkKICAgICAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5n
KCksIDApOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjp1bnJlZ2lz
dGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgbV9wYWdlU2V0LnJlbW92ZShwYWdlKTsKIAogICAgIGlmIChtX3BhZ2VT
ZXQuaXNFbXB0eSgpKQogICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0b3BVcGRhdGluZygpLCAwKTsKLSNl
bmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24o
Y29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YSYgZGF0YSkKIHsKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9u
PiBwb3NpdGlvbiA9IEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShkYXRhLnRpbWVzdGFtcCwg
ZGF0YS5sYXRpdHVkZSwgZGF0YS5sb25naXR1ZGUsIGRhdGEuYWNjdXJhY3kpOwogCiAgICAgSGFz
aFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7CkBA
IC05MCwxMiArODIsMTAgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBv
cwogICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNvcmVQ
YWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5wb3NpdGlvbkNoYW5nZWQocG9zaXRpb24u
Z2V0KCkpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6
ZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAgICAgLy8gRklYTUU6IEFkZCBsb2NhbGl6ZWQgZXJyb3Igc3RyaW5nLgog
ICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBlcnJvciA9IEdlb2xvY2F0aW9uRXJyb3I6OmNy
ZWF0ZShHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlLCAvKiBMb2NhbGl6ZWQg
ZXJyb3Igc3RyaW5nICovIFN0cmluZygiIikpOwogCkBAIC0xMDYsNyArOTYsNiBAQCB2b2lkIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRvRGV0CiAgICAgICAgIGlmIChwYWdlLT5jb3Jl
UGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+Y29yZVBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPmVycm9yT2NjdXJyZWQoZXJyb3IuZ2V0KCkpOwogICAgIH0KLSNlbmRpZgogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDExICsxOTQsOSBAQCB2b2lk
IEluamVjdGVkQnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFCiAKIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3Vw
LCBib29sIGVuYWJsZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
ICAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChw
YWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2Uq
Pjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsr
aXRlcikKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oKCppdGVy
KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKS0+c2V0UGVybWlzc2lvbihlbmFi
bGVkKTsKLSNlbmRpZgogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRKYXZhU2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxl
ZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDEwNzk3NykKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTkzLDE2ICs1OTMsNiBAQCBib29sIFdlYkNocm9tZUNsaWVu
dDo6cGFpbnRDdXN0b21PdmVyaGFuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBH
ZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CiAgICAgaWYgKG1fcGFnZS0+YWN0aXZlT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24g
MTA3OTc3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDExICsxNTMsNiBAQCBwcml2YXRl
OgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKIAotICAgIC8v
IFRoaXMgaXMgYW4gYXN5bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3Bs
YXkgVUkgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uCi0gICAgLy8gdG8gdXNlIEdlb2xv
Y29jYXRpb24uIFRoZSBDaHJvbWVDbGllbnQgbXVzdCBjYWxsIEdlb2xvY2F0aW9uOjpzZXRTaG91
bGRDbGVhckNhY2hlKCkgYXBwcm9wcmlhdGVseS4KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2Vv
bG9jYXRpb24qKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9j
YXRpb24qKSBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29y
ZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIE9WRVJSSURFOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLQogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUg
IldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC03OSw1ICs3NywzIEBAIHZv
aWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3MKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAkocmV2aXNpb24gMTA3OTc3KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdlYkdlb2xv
Y2F0aW9uQ2xpZW50X2gKICNkZWZpbmUgV2ViR2VvbG9jYXRpb25DbGllbnRfaAogCi0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9j
YXRpb25DbGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02MSw2ICs1OSw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmIC8vIFdlYkdlb2xvY2F0aW9uQ2xpZW50X2gK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI1LDkgKzIyNSw3IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCAKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGll
bnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGll
bnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2Fy
ZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7Ci0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlv
bkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudCh0aGlzKTsKLSNlbmRpZgogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdl
Ykluc3BlY3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMDc5ODcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDItMTYgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVh
dHVyZXMuaW46CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJy
eS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToK
KyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHA6CisgICAg
ICAgICh0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRHZW9sb2NhdGlvbk1vY2spOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Np
b24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbik6CisKIDIwMTItMDItMTYgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gdG91Y2ggaGFuZGxpbmcgcmVsYXRlZCBj
bGFzc2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJv
dXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJv
dXREYXRhRW5hYmxlRmVhdHVyZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw2IEBAIEJM
QUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUCiBCTE9CCiBCUkFOQ0hfQ09NUEFDVElPTgogQ0hB
Tk5FTF9NRVNTQUdJTkcKLUNMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogQ09ERUJMT0NLX1NBTVBM
SU5HCiBDT01QQVJFX0FORF9TV0FQCiBDT01QVVRFRF9HT1RPX0lOVEVSUFJFVEVSCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCShyZXZpc2lvbiAxMDc5NzcpCisrKyBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNSwyNiArNTM1LDYgQEAgdm9pZCBDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjpleGNlZWRlZERhdAogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1l
KiBmcmFtZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIGlmICghbV93ZWJQYWdl
UHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+aXNHZW9sb2NhdGlvbkVuYWJsZWQoKSkgewotICAgICAg
ICBnZW9sb2NhdGlvbi0+c2V0SXNBbGxvd2VkKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBET01XaW5kb3cqIHdpbmRvdyA9IGZyYW1lLT5kb21XaW5kb3coKTsKLSAgICBpZiAo
IXdpbmRvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ1N0cmluZyBsYXRpbk9yaWdpbiA9IGZy
YW1lT3JpZ2luKGZyYW1lKTsKLQotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5yZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uKG1fd2ViUGFnZVByaXZhdGUtPm1fZ2VvbG9jYXRpb25D
bGllbnQsIGdlb2xvY2F0aW9uLCBsYXRpbk9yaWdpbi5kYXRhKCksIGxhdGluT3JpZ2luLmxlbmd0
aCgpKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRp
b24pCi17Ci0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmNhbmNlbEdlb2xvY2F0aW9u
UGVybWlzc2lvbihtX3dlYlBhZ2VQcml2YXRlLT5tX2dlb2xvY2F0aW9uQ2xpZW50LCBnZW9sb2Nh
dGlvbik7Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cnVuT3BlblBhbmVsKEZy
YW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gY2hvb3NlcikKIHsKICAgICBTaGFyZWRBcnJh
eTxXZWJTdHJpbmc+IGluaXRpYWxGaWxlczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAkod29ya2luZyBjb3B5KQpAQCAt
OTAsOCArOTAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSop
OwogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBT
dHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4pOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNv
bnN0IEN1cnNvciYpOwpJbmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCShyZXZp
c2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMyArNDAsMTEg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNf
bGlua3NJbmNsdWRlZEluVGFiQ2hhaW4gPSB0cnVlOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9HZW9sb2NhdGlvbkNsaWVu
dE1vY2soR2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICAgQVNTRVJUKGdldGVudigi
ZHJ0UnVuIikpOwogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2Nr
Kj4oY2xpZW50KTsKIH0KLSNlbmRpZgogCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OkR1bXBSZW5k
ZXJUcmVlU3VwcG9ydCgpCiB7CkBAIC05MywyNiArOTEsMTggQEAgdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnQ6OmR1bXBDb25maWd1cgogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpudW1i
ZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJQYWdlKiB3ZWJQYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRp
b25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2sod2ViUGFn
ZS0+bWFpbkZyYW1lKCktPnBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgp
KTsKICAgICByZXR1cm4gbW9ja0NsaWVudC0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVl
c3RzKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh3ZWJQYWdlKTsKLSAgICByZXR1cm4gLTE7
Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnJlc2V0R2VvbG9jYXRp
b25Nb2NrKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xv
Y2F0aW9uQ2xpZW50TW9jayh3ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZSgpLT5nZW9sb2NhdGlv
bkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnJlc2V0KCk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKFdlYlBhZ2UqIHdlYlBhZ2UsIGludCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyBtZXNzYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRp
b25FcnJvcjo6RXJyb3JDb2RlIGNvZGUgPSBHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZh
aWxhYmxlOwogICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CiAgICAgY2FzZSBQb3NpdGlvbkVycm9y
OjpQRVJNSVNTSU9OX0RFTklFRDoKQEAgLTEyNSwyMyArMTE1LDE4IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG8KIAogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayog
bW9ja0NsaWVudCA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KHdlYlBhZ2Ut
Pm1haW5GcmFtZSgpLT5wYWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7
CiAgICAgbW9ja0NsaWVudC0+c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUs
IG1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0
TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlKiB3ZWJQYWdlLCBib29sIGFsbG93ZWQp
CiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlv
bkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayh3ZWJQYWdl
LT5tYWluRnJhbWUoKS0+cGFnZSgpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkp
OwogICAgIG1vY2tDbGllbnQtPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdl
YlBhZ2UqIHdlYlBhZ2UsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFjY3VyYWN5KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAg
R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1v
Y2sod2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkt
PmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kp
KTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2NhbGVQYWdlQnko
V2ViUGFnZSogd2ViUGFnZSwgZmxvYXQgc2NhbGVGYWN0b3IsIGZsb2F0IHgsIGZsb2F0IHkpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3OTg3KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wMi0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudElt
cGwpOgorCiAyMDEyLTAyLTE2ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdFQktJVF9FWFBPUlQgdG8gbmV3IFdlYkRyYWdEYXRh
IG1ldGhvZHMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDcgKzM2LDYgQEAKICAgICAgICdFTkFCTEVfQkxPQj0xJywKICAgICAg
ICdFTkFCTEVfQkxPQl9TTElDRT0xJywKICAgICAgICdFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc9
MScsCi0gICAgICAnRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xJywKICAgICAgICdF
TkFCTEVfQ1NTX0ZJTFRFUlM9MScsCiAgICAgICAnRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUPTAn
LAogICAgICAgJ0VOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEnLApJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDEw
Nzk3NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04NjgsMjAgKzg2OCw2IEBAIGJvb2wgQ2hyb21lQ2xpZW50SW1w
bDo6cGFpbnRDdXN0b21PdmVyaGEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS8vIEZJWE1FOiBS
ZW1vdmUgQ2hyb21lQ2xpZW50SW1wbDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lIGFuZCBDaHJvbWVDbGllbnRJbXBsOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Rm9yRnJhbWUKLS8vIG9uY2UgYWxsIHBvcnRzIGhhdmUgbW92ZWQgdG8gY2xpZW50LWJhc2Vk
IGdlb2xvY2F0aW9uIChzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMzczICkuCi0vLyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLCB0aGVzZSBtZXRob2Rz
IGFyZSBub3cgaW1wbGVtZW50ZWQgYXMgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uIGFuZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6Y2FuY2VsUGVybWlzc2lvblJlcXVlc3Qu
Ci0vLyAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MSAp
Lgotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoRnJhbWUqIGZyYW1lLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCi17Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Y2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRp
b24qIGdlb2xvY2F0aW9uKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw4ICsxMzYsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBz
cGFjZU5lZWRlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVk
ZWQpOwogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29y
ZTo6R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRp
b24qKTsKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdl
YkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTE2ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMS0zMSAgUmFwaGFlbCBLdWJvIGRhIENv
c3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbc291cF0gQWRkIHN1cHBvcnQg
Zm9yIG11bHRpcGxlIFNvdXBTZXNzaW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gMTA3OTc3
KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDY0LDE3ICs0NjQsNiBAQCB2b2lkIENocm9tZUNsaWVudEVm
bDo6c2V0Q3Vyc29ySGlkZGVuVW50CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBD
aHJvbWVDbGllbnRFZmw6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDaHJv
bWVDbGllbnRFZmw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShG
cmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lk
IENocm9tZUNsaWVudEVmbDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJh
bWUqLCBHZW9sb2NhdGlvbiopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTE2ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbFJlY3RJbnRvVmlldyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1v
Y2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRp
b25QZXJtaXNzaW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaDoKKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5p
dCk6CisKIDIwMTItMDItMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW3NvdXBdIE1vdmUgaW1wb3J0YW50IFNvdXBTZXNzaW9uIGZlYXR1cmUg
aW5pdGlhbGl6YXRpb24gdG8gV2ViQ29yZQpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAxMDc5Nzcp
CisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04NzUsMjIgKzg3NSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpz
ZXRDdXJzb3JIaWRkZW5VbnRpbE0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENo
cm9tZUNsaWVudDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBm
cmFtZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIFdlYktpdFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IGtpdChmcmFtZSk7Ci0gICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBvbGlj
eURlY2lzaW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9uX3Bv
bGljeV9kZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0aW9uKSkpOwotCi0gICAgZ2Jvb2xl
YW4gaXNIYW5kbGVkID0gRkFMU0U7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmll
dywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9s
aWN5RGVjaXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOwotICAgIGlmICghaXNIYW5kbGVkKQotICAg
ICAgICB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0KCkp
OwotfQotCi12b2lkIENocm9tZUNsaWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R2VvbG9jYXRpb24q
KQotewotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1w
b2xpY3ktZGVjaXNpb24tY2FuY2VsbGVkIiwga2l0KGZyYW1lKSk7Ci19Ci0KIGJvb2wgQ2hyb21l
Q2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0
dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmgJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzcsOCArMTM3LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUq
LCBHZW9sb2NhdGlvbiopOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAg
ICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdE
aXJlY3Rpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAkocmV2aXNpb24gMTA3
OTc3KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODI5LDMzICs4MjksMjYgQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNjYWxlUGFnZQogCiB2b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9j
ayo+KGNvcmUod2ViVmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAg
ICAgbW9jay0+cmVzZXQoKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBib29sIGFsbG93ZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
ICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlv
bkNsaWVudE1vY2sqPihjb3JlKHdlYlZpZXcpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xp
ZW50KCkpOwogICAgIG1vY2stPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVk
ZSwgZG91YmxlIGFjY3VyYWN5KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9j
YXRpb25DbGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkt
PmNsaWVudCgpKTsKIAogICAgIGRvdWJsZSB0aW1lc3RhbXAgPSBnX2dldF9yZWFsX3RpbWUoKSAv
IDEwMDAwMDAuMDsKICAgICBtb2NrLT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uOjpj
cmVhdGUodGltZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOwotI2VuZGlm
CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25F
cnJvcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgZXJyb3JDb2RlLCBjb25zdCBnY2hhciog
ZXJyb3JNZXNzYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAg
ICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25D
bGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVu
dCgpKTsKIAogICAgIEdlb2xvY2F0aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlOwpAQCAtODcwLDE3
ICs4NjMsMTIgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZQogICAg
IH0KIAogICAgIG1vY2stPnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShjb2RlLCBl
cnJvck1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAg
ICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25D
bGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVu
dCgpKTsKICAgICByZXR1cm4gbW9jay0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3Rz
KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGJvb2wgZW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHAJKHJl
dmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xv
Y2F0aW9uQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50R3RrLmgiCiAKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xs
ZXIuaCIKQEAgLTEzNywxMiArMTM1LDE4IEBAIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24q
IEdlb2xvY2F0aW8KIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24o
V2ViQ29yZTo6R2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQogewotICAgIGNvcmUobV93ZWJWaWV3
KS0+Y2hyb21lKCktPnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShnZW9sb2Nh
dGlvbi0+ZnJhbWUoKSwgZ2VvbG9jYXRpb24pOworICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFt
ZSA9IGtpdChnZW9sb2NhdGlvbi0+ZnJhbWUoKSk7CisgICAgR1JlZlB0cjxXZWJLaXRHZW9sb2Nh
dGlvblBvbGljeURlY2lzaW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xv
Y2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0aW9uKSkpOworCisg
ICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gRkFMU0U7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1l
KG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJG
cmFtZSwgcG9saWN5RGVjaXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOworICAgIGlmICghaXNIYW5k
bGVkKQorICAgICAgICB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNp
b24uZ2V0KCkpOwogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9u
UmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCiB7Ci0gICAgY29yZSht
X3dlYlZpZXcpLT5jaHJvbWUoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZv
ckZyYW1lKGdlb2xvY2F0aW9uLT5mcmFtZSgpLCBnZW9sb2NhdGlvbik7CisgICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1jYW5j
ZWxsZWQiLCBraXQoZ2VvbG9jYXRpb24tPmZyYW1lKCkpKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlv
bkNsaWVudDo6cG9zaXRpb25DaGFuZ2VkKEdlb2NsdWVQb3NpdGlvbiosIEdlb2NsdWVQb3NpdGlv
bkZpZWxkcyBmaWVsZHMsIGludCB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxv
bmdpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBHZW9jbHVlQWNjdXJhY3kqIGFjY3VyYWN5KQpAQCAt
MTc2LDUgKzE4MCwzIEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnQ6OmVycm9yT2NjdXJlZChjb24K
IH0KIAogfQotCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3Rr
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9j
YXRpb25DbGllbnRHdGsuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAt
MjEsOCArMjEsNiBAQAogI2lmbmRlZiBHZW9sb2NhdGlvbkNsaWVudEd0a19oCiAjZGVmaW5lIEdl
b2xvY2F0aW9uQ2xpZW50R3RrX2gKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCi0KICNpbmNsdWRlICJHUmVmUHRyLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnQu
aCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCkBAIC03NSw4ICs3Myw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2VuYWJsZUhpZ2hBY2N1cmFjeTsKICAgICBib29sIG1faXNVcGRh
dGluZzsKIH07Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IEdlb2xvY2F0aW9uQ2xpZW50R3RrX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ0OSwxOSArMzQ0
OSwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXCiAgICAgcGFn
ZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCo+KG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEd0ayk7
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgaWYg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCgpKQog
ICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNs
aWVudE1vY2s7CiAgICAgZWxzZQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVu
dCA9IG5ldyBXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50KHdlYlZpZXcpOwotI2VuZGlmCiAKICAg
ICBwcml2LT5jb3JlUGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKIAotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgaWYgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6ZHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCgpKQogICAgICAgICBzdGF0aWNfY2FzdDxHZW9s
b2NhdGlvbkNsaWVudE1vY2sqPihwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCktPnNldENv
bnRyb2xsZXIocHJpdi0+Y29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpKTsKLSNlbmRp
ZgogCiAgICAgLy8gUGFnZXMgd2l0aGluIGEgc2FtZSBzZXNzaW9uIG5lZWQgdG8gYmUgbGlua2Vk
IHRvZ2V0aGVyIG90aGVyd2lzZSBzb21lIGZ1bmN0aW9uYWxpdGllcyBzdWNoCiAgICAgLy8gYXMg
dmlzaXRlZCBsaW5rIGNvbG9yYXRpb24gKGFjcm9zcyBwYWdlcykgYW5kIGNoYW5naW5nIHBvcHVw
IHdpbmRvdyBsb2NhdGlvbiB3aWxsIG5vdCB3b3JrLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2
aXNpb24gMTA3OTg3KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDItMTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2Vi
Vmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlv
blBvc2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAg
ICAgICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRo
VGltZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRo
RnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2VvbG9jYXRpb25E
aWRDaGFuZ2VQb3NpdGlvbjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2VvbG9jYXRpb25EaWRG
YWlsV2l0aEVycm9yOl0pOgorCiAyMDEyLTAyLTE1ICBFbnJpY2EgQ2FzdWNjaSAgPGVucmljYUBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgQ2xpcGJvYXJkTWFjIGNsYXNzIHRvIHVzZSBQ
bGF0Zm9ybVN0cmF0ZWdpZXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gMTA3OTc3
KQorKysgU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcJKHdvcmtpbmcgY29weSkKQEAgLTM0LDkgKzM0LDYgQEAKIEVOQUJMRV9CTE9CID0gJChF
TkFCTEVfQkxPQl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0JMT0JfbWFjb3N4ID0g
RU5BQkxFX0JMT0I7CiAKLUVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gPSAkKEVOQUJM
RV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT05fJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKLUVOQUJM
RV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT05fbWFjb3N4ID0gRU5BQkxFX0NMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTjsKLQogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUID0gJChFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlRfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVF9tYWNvc3ggPSBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQ7CiAKQEAgLTEyNiw0ICsxMjMs
NCBAQCBFTkFCTEVfV0VCX1RJTUlORyA9IDsKIEVOQUJMRV9XT1JLRVJTID0gRU5BQkxFX1dPUktF
UlM7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTX0ZJTFRF
UlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9U
UkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQp
ICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVF
Q0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VF
SykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJT
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAk
KEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9Q
Uk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFC
TEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRB
QkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19E
T01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElG
SUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURF
TykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVE
SU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9X
T1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJ
T05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NI
QURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxF
X1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJM
RV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTElO
S19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTVVUQVRJ
T05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5B
QkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQo
RU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiAx
MDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTczLDExICsxNzMsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGZ1bGxTY3JlZW5SZW5kZXJlckNoYW5nZWQoV2ViQ29yZTo6UmVuZGVyQm94Kikg
T1ZFUlJJREU7CiAjZW5kaWYKIAotICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBhbGwgcG9ydHMg
YXJlIHVzaW5nIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbi4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQwMzczCi0gICAgLy8gRm9yIGNsaWVudC1iYXNlZCBnZW9sb2Nh
dGlvbiwgdGhlc2UgdHdvIG1ldGhvZHMgaGF2ZSBtb3ZlZCB0byBXZWJHZW9sb2NhdGlvbkNsaWVu
dC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYxCi0gICAgdmly
dHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZFUlJJREUgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZFUlJJREUgeyB9Ci0KICAgICB2aXJ0dWFs
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
IE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0JKHJldmlzaW9uIDEwNzk3NykKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC04OCwxMSArODgsNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50
OjpyZXF1ZXN0UGVybWlzCiAKIEdlb2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xp
ZW50OjpsYXN0UG9zaXRpb24oKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAgICAgcmV0dXJuIGNvcmUoW1ttX3dlYlZpZXcgX2dlb2xvY2F0aW9uUHJvdmlkZXJdIGxh
c3RQb3NpdGlvbl0pOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiBAaW1wbGVt
ZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb2xpY3lMaXN0ZW5lcgpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQkocmV2aXNp
b24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBv
c2l0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwyNiArMjksMjEgQEAKICNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0
aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotI2VuZGlmCiAKIEBpbnRlcmZhY2Ug
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIDogTlNPYmplY3QKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogewogQHB1YmxpYwogICAgIFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uPiBfcG9zaXRpb247CiB9CiAKIC0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9u
UG9zaXRpb246KFBhc3NSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9u
UG9zaXRpb247Ci0jZW5kaWYKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9u
UG9zaXRpb25JbnRlcm5hbAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
IC0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KFBhc3NSZWZQdHI8R2VvbG9j
YXRpb25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0gW3N1
cGVyIGluaXRdOwpAQCAtNTcsMjkgKzUyLDIyIEBAIC0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0
aW9uUG9zaXRpb246KFAKICAgICBfcG9zaXRpb24gPSBjb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsK
ICAgICByZXR1cm4gc2VsZjsKIH0KLSNlbmRpZgogCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQogR2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9uICpw
b3NpdGlvbikKIHsKICAgICByZXR1cm4gcG9zaXRpb24gPyBwb3NpdGlvbi0+X2ludGVybmFsLT5f
cG9zaXRpb24uZ2V0KCkgOiAwOwogfQotI2VuZGlmCiAKIC0gKGlkKWluaXRXaXRoVGltZXN0YW1w
Oihkb3VibGUpdGltZXN0YW1wIGxhdGl0dWRlOihkb3VibGUpbGF0aXR1ZGUgbG9uZ2l0dWRlOihk
b3VibGUpbG9uZ2l0dWRlIGFjY3VyYWN5Oihkb3VibGUpYWNjdXJhY3kKIHsKICAgICBzZWxmID0g
W3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIF9pbnRlcm5hbCA9IFtbV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBv
c2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZSh0aW1lc3RhbXAsIGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5KV07Ci0jZWxzZQotICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0XTsKLSNlbmRpZgogICAgIHJldHVybiBz
ZWxmOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9u
UG9zaXRpb25JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgJKHJldmlzaW9uIDEwNzk3NykKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEyICsyNSw5IEBACiAKICNpbXBvcnQgIldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwog
fQogCiBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9z
aXRpb24gKik7CiAKLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDggQEAKICNpbXBvcnQgPFdlYkNvcmUv
RnJhbWVUcmVlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9HQ0NvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9s
bGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KQEAgLTE4OCwxMSArMTkwLDYgQEAKICNp
bXBvcnQgPFdlYktpdC9XZWJEYXNoYm9hcmRSZWdpb24uaD4KICNlbmRpZgogCi0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25D
b250cm9sbGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KLSNlbmRp
ZgotCiAjaWYgRU5BQkxFKEdMSUJfU1VQUE9SVCkKICNpbXBvcnQgPGdsaWIuaD4KICNlbmRpZgpA
QCAtNzM5LDkgKzczNiw3IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1l
TmEKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHNl
bGYpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxm
KTsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xp
ZW50KHNlbGYpOwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgcGFn
ZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQoc2Vs
Zik7Ci0jZW5kaWYKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICBwYWdlQ2xpZW50cy5u
b3RpZmljYXRpb25DbGllbnQgPSBuZXcgV2ViTm90aWZpY2F0aW9uQ2xpZW50KHNlbGYpOwogI2Vu
ZGlmCkBAIC02MzgzLDIwICs2Mzc4LDE2IEBAIC0gKGlkPFdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+
KV9nZW9sb2NhdGkKIAogLSAodm9pZClfZ2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbjooV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbiAqKXBvc2l0aW9uCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBpZiAoX3ByaXZhdGUgJiYgX3ByaXZhdGUtPnBhZ2UpCiAgICAg
ICAgIF9wcml2YXRlLT5wYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+cG9zaXRpb25DaGFu
Z2VkKGNvcmUocG9zaXRpb24pKTsKLSNlbmRpZgogfQogCiAtICh2b2lkKV9nZW9sb2NhdGlvbkRp
ZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgogewotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRlLT5wYWdlKSB7CiAg
ICAgICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBnZW9sb2NhdGlvRXJyb3IgPSBHZW9sb2Nh
dGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZSwg
W2Vycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSk7CiAgICAgICAgIF9wcml2YXRlLT5wYWdlLT5n
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+ZXJyb3JPY2N1cnJlZChnZW9sb2NhdGlvRXJyb3IuZ2V0
KCkpOwogICAgIH0KLSNlbmRpZgogfQogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNp
b24gMTA3OTg3KQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMi0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBB
cGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZh
dGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAg
IChDaHJvbWVDbGllbnRRdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAodG9HZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKToKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNz
aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dl
b2xvY2F0aW9uRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJl
ck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKwogMjAxMi0wMi0xNiAg
U2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCBicm93bi1wYXBlciBiYWcgYnVpbGQgZml4LgpJbmRleDogU291cmNlL1dlYktpdC9x
dC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlLmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCwxMCArNjQsOCBAQAogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogI2luY2x1
ZGUgIkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50
UXQuaCIKLSNlbmRpZiAvLyBDTElFTlRfQkFTRURfR0VPTE9DQVRJT04KICNpbmNsdWRlICJHZW9s
b2NhdGlvblBlcm1pc3Npb25DbGllbnRRdC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgpAQCAtMzEzLDcgKzMxMSw3IEBA
IFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWcKICAgICAsIGluc3BlY3Rv
cklzSW50ZXJuYWxPbmx5KGZhbHNlKQogICAgICwgbV9sYXN0RHJvcEFjdGlvbihRdDo6SWdub3Jl
QWN0aW9uKQogewotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pIHx8IEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICAg
ICBib29sIHVzZU1vY2sgPSBRV2ViUGFnZVByaXZhdGU6OmRydFJ1bjsKICNlbmRpZgogCkBAIC0z
MjUsMTIgKzMyMywxMCBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFn
CiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IEVkaXRvckNsaWVudFF0KHEpOwog
ICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAgIHBh
Z2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICh1c2VNb2NrKQogICAg
ICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNsaWVu
dE1vY2s7CiAgICAgZWxzZQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9
IG5ldyBHZW9sb2NhdGlvbkNsaWVudFF0KHEpOwotI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCiAgICAgcGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xpZW50ID0gTm90aWZpY2F0aW9u
UHJlc2VudGVyQ2xpZW50UXQ6Om5vdGlmaWNhdGlvblByZXNlbnRlcigpOwogI2VuZGlmCkBAIC0z
NTAsMTEgKzM0Niw5IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWcK
ICAgICAvLyBhcyBleHBlY3RlZCBvdXQgb2YgdGhlIGJveCwgd2UgdXNlIGEgZGVmYXVsdCBncm91
cCBzaW1pbGFyIHRvIHdoYXQgb3RoZXIgcG9ydHMgYXJlIGRvaW5nLgogICAgIHBhZ2UtPnNldEdy
b3VwTmFtZSgiRGVmYXVsdCBHcm91cCIpOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKICAgICAvLyBJbiBjYXNlIHJ1bm5pbmcgaW4gRHVtcFJlbmRlclRyZWUgbW9kZSBz
ZXQgdGhlIGNvbnRyb2xsZXIgdG8gbW9jayBwcm92aWRlci4KICAgICBpZiAoUVdlYlBhZ2VQcml2
YXRlOjpkcnRSdW4pCiAgICAgICAgIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+
KHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50KS0+c2V0Q29udHJvbGxlcihwYWdlLT5nZW9s
b2NhdGlvbkNvbnRyb2xsZXIoKSk7Ci0jZW5kaWYKICAgICBzZXR0aW5ncyA9IG5ldyBRV2ViU2V0
dGluZ3MocGFnZS0+c2V0dGluZ3MoKSk7CiAKICAgICBoaXN0b3J5LmQgPSBuZXcgUVdlYkhpc3Rv
cnlQcml2YXRlKHN0YXRpY19jYXN0PFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdEltcGwqPihwYWdl
LT5iYWNrRm9yd2FyZExpc3QoKSkpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzYsOSArMTc2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJl
Y3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24q
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgdmly
dHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNSwxMyAr
MTA1LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBRTWFwPGludCwgUVdlYlNjcmlw
dFdvcmxkKj4gbV93b3JsZE1hcDsKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKEdlb2xv
Y2F0aW9uQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgIEFTU0VSVChRV2ViUGFnZVByaXZhdGU6OmRy
dFJ1bik7CiAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihj
bGllbnQpOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiB0b0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayhE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCogY2xpZW50KQpAQCAtODM4LDM0ICs4MzYsMjcgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0RldgogCiB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpyZXNldEdlb2xvY2F0aW9uTW9jayhRV2ViUGFnZSogcGFnZSkKIHsKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdlID0g
UVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayog
bW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlLT5nZW9sb2NhdGlv
bkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnJlc2V0KCk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dlb2xvY2F0aW9u
UGVybWlzc2lvbihRV2ViUGFnZSogcGFnZSwgYm9vbCBhbGxvd2VkKQogewotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVBy
aXZhdGU6OmNvcmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50
ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxl
cigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0UGVybWlzc2lvbihhbGxvd2VkKTsK
LSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9j
YXRpb25Qb3NpdGlvbihRV2ViUGFnZSogcGFnZSwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9u
Z2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKICAgICBQYWdlKiBjb3JlUGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShwYWdl
KTsKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9u
Q2xpZW50TW9jayhjb3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsK
ICAgICBtb2NrQ2xpZW50LT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUo
Y3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpKTsKLSNlbmRpZgog
fQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJv
cihRV2ViUGFnZSogcGFnZSwgaW50IGVycm9yQ29kZSwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSkK
IHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIGNvcmVQ
YWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogCiAgICAgR2VvbG9jYXRpb25FcnJv
cjo6RXJyb3JDb2RlIGNvZGUgPSBHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxl
OwpAQCAtODgwLDE4ICs4NzEsMTMgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
TW9ja0dlbwogCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gc3RhdGlj
X2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJv
bGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0RXJyb3IoR2VvbG9jYXRpb25F
cnJvcjo6Y3JlYXRlKGNvZGUsIG1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiBpbnQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKFFXZWJQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAg
ICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVu
dE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAg
cmV0dXJuIG1vY2tDbGllbnQtPm51bWJlck9mUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOwot
I2Vsc2UKLSAgICByZXR1cm4gLTE7Ci0jZW5kaWYKIH0KIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6aXNUYXJnZXRJdGVtKGNvbnN0IFFXZWJIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0p
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDc5ODcpCisrKyBTb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wMi0x
NiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFi
bGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGll
bnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHA6
CisgICAgICAgIChXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjppbml0V2l0aFRpbWVzdGFtcCk6Cisg
ICAgICAgIChjb3JlKToKKyAgICAgICAgKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAg
ICAgIChXZWJHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUG9z
aXRpb246OmltcGwpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
aW5pdFdpdGhGcmFtZSk6CisgICAgICAgIChXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZENoYW5nZVBv
c2l0aW9uKToKKyAgICAgICAgKFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcik6
CisKIDIwMTItMDItMTUgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIE5vdGlmeSBDaHJvbWVDbGllbnQgd2hlbiB0b3VjaC1ldmVudCBoYW5k
bGVycyBhcmUgaW5zdGFsbGVkL3JlbW92ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJH
ZW9sb2NhdGlvblBvc2l0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dl
YktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDExICsyNyw5IEBACiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLSNlbmRpZgogCiBDT01QdHI8V2ViR2VvbG9jYXRpb25Qb3NpdGlv
bj4gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlSW5zdGFuY2UoKQogewpAQCAtODMsMTUg
KzgxLDEwIEBAIFVMT05HIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OlJlbGVhc2UoKQogCiBIUkVT
VUxUIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmluaXRXaXRoVGltZXN0YW1wKGRvdWJsZSB0aW1l
c3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgbV9wb3NpdGlv
biA9IEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZSh0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5KTsKICAgICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAgcmV0dXJuIEVf
RkFJTDsKLSNlbmRpZgogfQogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
IEdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0
aW9uKQogewogICAgIGlmICghcG9zaXRpb24pCkBAIC0xMDMsNCArOTYsMyBAQCBHZW9sb2NhdGlv
blBvc2l0aW9uKiBjb3JlKElXZWJHZW9sb2NhdGlvCiAKICAgICByZXR1cm4gd2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi0+aW1wbCgpOwogfQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2Vi
S2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDE5
ICs0OCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24KICAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaW5pdFdpdGhUaW1lc3RhbXAoZG91Ymxl
IHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNj
dXJhY3kpOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlv
bi5nZXQoKTsgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgVUxPTkcgbV9yZWZDb3VudDsKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFJlZlB0cjxXZWJDb3JlOjpH
ZW9sb2NhdGlvblBvc2l0aW9uPiBtX3Bvc2l0aW9uOwotI2VuZGlmCiB9OwogCi0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24q
IGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qKTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbl9oCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24g
MTA3OTc3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkyLDYgKzkyLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVXaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dESU9iamVjdENvdW50
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KQEAgLTEzOSwxMSArMTQxLDYgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd3NUb3VjaC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUv
R2VvbG9jYXRpb25Db250cm9sbGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkVy
cm9yLmg+Ci0jZW5kaWYKLQogI2lmIFVTRShDRykKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dD
b250ZXh0Lmg+CiAjZW5kaWYKQEAgLTI2NjksOSArMjY2Niw3IEBAIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgV2ViVmlldzo6aW5pdFcKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBu
ZXcgV2ViRWRpdG9yQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBu
ZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQg
PSBtX2luc3BlY3RvckNsaWVudDsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQogICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9u
Q2xpZW50KHRoaXMpOwotI2VuZGlmCiAgICAgbV9wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMp
OwogCiAgICAgQlNUUiBsb2NhbFN0b3JhZ2VQYXRoOwpAQCAtNjU2OSwxOSArNjU2NCwxNCBAQCBI
UkVTVUxUIFdlYlZpZXc6Omdlb2xvY2F0aW9uUHJvdmlkZXIoSVdlCiAKIEhSRVNVTFQgV2ViVmll
dzo6Z2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbihJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiog
cG9zaXRpb24pCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBp
ZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKICAgICBtX3BhZ2UtPmdlb2xvY2F0
aW9uQ29udHJvbGxlcigpLT5wb3NpdGlvbkNoYW5nZWQoY29yZShwb3NpdGlvbikpOwogICAgIHJl
dHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOwotI2VuZGlmCiB9CiAKIEhS
RVNVTFQgV2ViVmlldzo6Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKElXZWJFcnJvciogZXJy
b3IpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAoIW1f
cGFnZSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKICAgICBpZiAoIWVycm9yKQpAQCAtNjU5Niw5
ICs2NTg2LDYgQEAgSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZEZhaWxXaXRoRQogICAg
IFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBnZW9sb2NhdGlvbkVycm9yID0gR2VvbG9jYXRpb25F
cnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGUsIGRlc2Ny
aXB0aW9uU3RyaW5nKTsKICAgICBtX3BhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5lcnJv
ck9jY3VycmVkKGdlb2xvY2F0aW9uRXJyb3IuZ2V0KCkpOwogICAgIHJldHVybiBTX09LOwotI2Vs
c2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOwotI2VuZGlmCiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6
c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShCT09MIGZvcmJpZGRlbiwg
QlNUUiBzY2hlbWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTE0OCwxMSArMTQ4LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJ
bnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgeyB9CiAKLSAgICAvLyBGSVhN
RTogUmVtb3ZlIG9uY2UgYWxsIHBvcnRzIGFyZSB1c2luZyBjbGllbnQtYmFzZWQgZ2VvbG9jYXRp
b24uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MwotICAgIC8v
IEZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24sIHRoZXNlIHR3byBtZXRob2RzIGhhdmUgYmVl
biBtb3ZlZCB0byBXZWJHZW9sb2NhdGlvbkNsaWVudC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUwMDYxCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9u
KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9Ci0K
ICNpZiBFTkFCTEUoVklERU8pCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbkZv
ck5vZGUoY29uc3QgV2ViQ29yZTo6Tm9kZSopOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxz
Y3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHJl
dmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNiBAQCB2b2lk
IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoCiAKIEdlb2xvY2F0aW9uUG9zaXRp
b24qIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogewotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgQ09NUHRyPElXZWJHZW9sb2NhdGlvblByb3Zp
ZGVyPiBwcm92aWRlcjsKICAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+Z2VvbG9jYXRpb25Qcm92
aWRlcigmcHJvdmlkZXIpKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC03NCw5ICs3Myw2IEBAIEdl
b2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xpZW4KICAgICBpZiAoRkFJTEVEKHBy
b3ZpZGVyLT5sYXN0UG9zaXRpb24oJnBvc2l0aW9uKSkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IHJldHVybiBjb3JlKHBvc2l0aW9uLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2Vv
bG9jYXRpb24qIGdlb2xvY2F0aW9uKQpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDEwNzk4NykKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorICAgICAgICAo
Q2hyb21lQ2xpZW50V2luQ0UpOgorCiAyMDEyLTAyLTE1ICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBh
cm9nYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luQ0UgYnVpbGQgZml4IGFm
dGVyIHIxMDc2MDYuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFdpbkNFLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysg
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2OSwxNiArMzY5LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXaW5D
RTo6Zm9ybVN0YXRlRGlkQ2hhbgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50V2luQ0U6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIENo
cm9tZUNsaWVudFdpbkNFOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJh
bWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQog
Ym9vbCBDaHJvbWVDbGllbnRXaW5DRTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQogewogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgJKHJldmlzaW9uIDEw
Nzk3NykKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuaAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDExICsxMzksNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNl
bnRlcigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIgYSBzeW5j
aHJvbm91cyBvciBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxh
eSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KLSAgICAvLyB0byB1c2UgR2VvbG9j
YXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0gICAgdmlydHVh
bCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3Jl
OjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcnVu
T3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nl
cj4pOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3Bl
Y2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
d3gvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDc5ODcpCisrKyBTb3VyY2UvV2ViS2l0L3d4L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTE2ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5o
OgorICAgICAgICAoQ2hyb21lQ2xpZW50V3gpOgorCiAyMDEyLTAyLTE1ICBTYWRydWwgSGFiaWIg
Q2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb3RpZnkgQ2hyb21l
Q2xpZW50IHdoZW4gdG91Y2gtZXZlbnQgaGFuZGxlcnMgYXJlIGluc3RhbGxlZC9yZW1vdmVkLgpJ
bmRleDogU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guY3BwCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvQ2hyb21lQ2xpZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjUsMTIgKzQ2NSw2IEBA
IHZvaWQgQ2hyb21lQ2xpZW50V3g6OnNldEN1cnNvcihjb25zdCBDdXIKICAgICAgICAgbV93ZWJW
aWV3LT5TZXRDdXJzb3IoKmN1cnNvci5pbXBsKCkpOwogfQogCi12b2lkIENocm9tZUNsaWVudFd4
OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlv
biopCi17Ci0gICAgLy8gU2VlIHRoZSBjb21tZW50IGluIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50V3g6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIHsKICAgICByZXR1cm4gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50
V3guaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw5ICsxNDEsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3Qm
KSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlv
biopIHsgfQotCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CkluZGV4OiBTb3VyY2UvY21h
a2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlL09w
dGlvbnNCbGFja0JlcnJ5LmNtYWtlCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvY21ha2Uv
T3B0aW9uc0JsYWNrQmVycnkuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw3ICsxMzMsNiBA
QCBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQVNTRU1CTEVSX1dYX0VYQ0xVCiBXRUJLSVRfRkVBVFVS
RShFTkFCTEVfQkxBQ0tCRVJSWV9DQVJFVF9BUFBFQVJBTkNFICJCbGFja2JlcnJ5IENhcmV0IEFw
cGVhcmFuY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0JMT0IgIkVuYWJs
ZSBibG9iIHNsaWNlIiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT04pCi1XRUJLSVRf
RkVBVFVSRShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJDbGllbnQgYmFzZWQgR2Vv
bG9jYXRpb24iIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQUJBU0UgIkVu
YWJsZSBkYXRhYmFzZSIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBTElT
VCAiRW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RF
VEFJTFMgIkVuYWJsZSBkZXRhaWxzIGVsZW1lbnQiIERFRkFVTFQgT04pCkluZGV4OiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9u
c0VmbC5jbWFrZQkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL2NtYWtlL09wdGlvbnNFZmwu
Y21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDYgQEAgU0VUKFZFUlNJT05fU0NSSVBU
ICItV2wsLS12ZXJzaW9uLXNjcmlwdAogCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQkxPQiAiRW5h
YmxlIGJsb2Igc2xpY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT04pCi1XRUJL
SVRfRkVBVFVSRShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJFbmFibGUgY2xpZW50
IGJhc2VkIGdlb2xvY2F0aW9uIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9E
QVRBTElTVCAiRW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMgIkVuYWJsZSBkYXRhIHRyYW5zZmVyIGl0ZW1zIiBERUZB
VUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gIkVuYWJs
ZSBkZXZpY2Ugb3JpZW50YXRpb24iIERFRkFVTFQgT0ZGKQpJbmRleDogU291cmNlL2NtYWtlL09w
dGlvbnNXaW5DRS5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNF
LmNtYWtlCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNt
YWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw2IEBAIEFERF9TVUJESVJFQ1RPUlkoJHsz
UkRQQVJUWV9ESVJ9ICIke0NNQUsKIAogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0JMT0IgIkVuYWJs
ZSBibG9iIHNsaWNlIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORyAiRW5hYmxlIGNoYW5uZWwgbWVzc2FnaW5nIiBERUZBVUxUIE9GRikKLVdFQktJ
VF9GRUFUVVJFKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gIkVuYWJsZSBjbGllbnQg
YmFzZWQgZ2VvbG9jYXRpb24iIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RB
VEFMSVNUICJFbmFibGUgZGF0YWxpc3QiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMgIkVuYWJsZSBkYXRhIHRyYW5zZmVyIGl0ZW1zIiBERUZB
VUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkcgIkVu
YWJsZSBmYXN0IG1vYmlsZSBzY3JvbGxpbmciIERFRkFVTFQgT04pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127462</attachid>
            <date>2012-02-16 16:06:59 -0800</date>
            <delta_ts>2012-03-09 17:33:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78853-20120216160658.patch</filename>
            <type>text/plain</type>
            <size>93930</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4
NykKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAy
LTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVu
YWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tC
ZXJyeS5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAg
ICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZS9jbWFrZWNvbmZpZy5oLmNtYWtlOgorCiAyMDEyLTAyLTE2ICBTaW1vbiBIYXVzbWFubiAgPHNp
bW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIE1vdmUgZXZlbnQgY29udmVy
c2lvbiBmdW5jdGlvbnMgZnJvbSBXZWJDb3JlIHRvIFdlYktpdApJbmRleDogU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UJ
KHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5n
IGNvcHkpCkBAIC04LDcgKzgsNiBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0FTX0lNQUdFCiAj
Y21ha2VkZWZpbmUwMSBFTkFCTEVfQkxPQgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HCi0jY21ha2VkZWZpbmUwMSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
CiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREFUQUxJU1QKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wMi0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwog
MjAxMi0wMi0xNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCBFcnJvci5zdGFjawpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNp
b24gMTA3OTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw5ICszNCw2IEBACiBFTkFC
TEVfQkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9C
TE9CX21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9O
QU1FKSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
REFTSEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBA
IC0xMjYsNCArMTIzLDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9
IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19T
SEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFC
TEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVO
QUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAk
KEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChF
TkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlO
RykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChF
TkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQo
RU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVf
REFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkg
JChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JF
RU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVf
SUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9D
T0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVM
T0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1F
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQo
RU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVT
VF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9X
T1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChF
TkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lD
T05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJM
RV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFC
TEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwODgs
OSArMTA4OCw3IEBACiAvKiBHZW9sb2NhdGlvbiByZXF1ZXN0IHBvbGljeS4gcHJlLWVtcHRpdmUg
cG9saWN5IGlzIHRvIGFjcXVpcmUgdXNlciBwZXJtaXNzaW9uIGJlZm9yZSBhY3F1aXJpbmcgbG9j
YXRpb24uCiAgICBDbGllbnQgYmFzZWQgaW1wbGVtZW50YXRpb25zIHdpbGwgaGF2ZSBvcHRpb24g
dG8gY2hvb3NlIGJldHdlZW4gcHJlLWVtcHRpdmUgYW5kIG5vbnByZS1lbXB0aXZlIHBlcm1pc3Np
b24gcG9saWN5LgogICAgcHJlLWVtcHRpdmUgcGVybWlzc2lvbiBwb2xpY3kgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0IGZvciBhbGwgY2xpZW50LWJhc2VkIGltcGxlbWVudGF0aW9ucy4gKi8KLSNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogI2RlZmluZSBXVEZfVVNFX1BSRUVNUFRf
R0VPTE9DQVRJT05fUEVSTUlTU0lPTiAxCi0jZW5kaWYKIAogI2lmIENQVShBUk1fVEhVTUIyKQog
I2RlZmluZSBFTkFCTEVfQlJBTkNIX0NPTVBBQ1RJT04gMQpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gMTA3OTg3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTItMDItMTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZXJ5
IHBvcnQgYXBwZWFycyB0byBlbmFibGUgdGhpcyBkZWZpbmUuICBUaGlzIHBhdGNoIHJlbW92ZXMg
dGhlCisgICAgICAgIEVOQUJMRSBmbGFnIGFuZCB0aGUgYWx0ZXJuYXRlIGNvZGVwYXRoLgorCisg
ICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAg
ICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
YmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oOgorICAgICAgICAoRW1wdHlDaHJvbWVDbGllbnQpOgorICAgICAgICAqIHBh
Z2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorICAgICAgICAqIHBh
Z2UvR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVQb3NpdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpH
ZW9sb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6
R2VvbG9jYXRpb246OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRp
b246OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChHZW9sb2NhdGlvbik6CisgICAgICAgICogcGFnZS9HZW9s
b2NhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBhZ2UvR2VvbG9jYXRpb25Db250cm9s
bGVyLmg6CisgICAgICAgICogcGFnZS9HZW9sb2NhdGlvbkVycm9yLmg6CisgICAgICAgICogcGFn
ZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAg
ICAoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpnZW9sb2NhdGlvbkNvbnRyb2xsZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvR2VvbG9jYXRpb25TZXJ2aWNlRWZsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9HZW9sb2NhdGlv
blNlcnZpY2VFZmwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50
TW9jay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aDoKKwogMjAxMi0wMi0xNiAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIENyYXNoIHdpdGggdGFibGVzIGluIG11bHRpLWNvbHVtbiBsYXlvdXQuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0MCw4ICs0NDAsOCBAQCBlbmRpZiAj
IEVORCBFTkFCTEVfRklMVEVSUwogIyAtLS0tCiBpZiBFTkFCTEVfR0VPTE9DQVRJT04KIAotRkVB
VFVSRV9ERUZJTkVTICs9IEVOQUJMRV9HRU9MT0NBVElPTj0xIEVOQUJMRV9DTElFTlRfQkFTRURf
R0VPTE9DQVRJT049MQotd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9HRU9MT0NBVElPTj0x
IC1ERU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xCitGRUFUVVJFX0RFRklORVMgKz0g
RU5BQkxFX0dFT0xPQ0FUSU9OPTEKK3dlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfR0VPTE9D
QVRJT049MQogZW5kaWYgIyBFTkQgRU5BQkxFX0dFT0xPQ0FUSU9OCiAKICMgLS0tLQpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg2LDEzICsxNjg2LDggQEAgX19aTjdX
ZWJDb3JlOERyYWdEYXRhQzFFUktOM1dURjZTdHJpbmdFUgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIF9fWk43
V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyMTNlcnJvck9jY3VycmVkRVBOU18xNkdlb2xv
Y2F0aW9uRXJyb3JFCiBfX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlcjE1cG9zaXRp
b25DaGFuZ2VkRVBOU18xOUdlb2xvY2F0aW9uUG9zaXRpb25FCi0jZWxzZQotX19aTjdXZWJDb3Jl
MjJHZW9sb2NhdGlvblNlcnZpY2VNb2NrMTFzZXRQb3NpdGlvbkVOM1dURjEwUGFzc1JlZlB0cklO
U18xMUdlb3Bvc2l0aW9uRUVFCi1fX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2s4
c2V0RXJyb3JFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTNQb3NpdGlvbkVycm9yRUVFCi0jZW5kaWYK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxFX0JMT0Ig
PSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxPQl9tYWNv
c3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9ICQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwot
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAtMTI2LDQg
KzEyMyw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBFTkFCTEVf
V09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1Nf
RklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVN
KSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FN
RVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVU
X1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVU
X1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZF
VENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVE
SUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNF
UlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FM
X0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRf
Tk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FO
SU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9D
U1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNU
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRB
QkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkg
JChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9N
VVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQo
RU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykg
JChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NW
RykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQo
RU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJ
TkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wp
ICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9U
SU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAJKHJldmlz
aW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTR2VvbG9jYXRpb25D
dXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMCArMzcsNiBAQAogI2luY2x1ZGUgIkpT
UG9zaXRpb25FcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25PcHRpb25zLmgiCiAK
LSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlICJHZW9sb2Nh
dGlvblNlcnZpY2UuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2
aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMTcsOSArMjE3LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKSB7fQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHt9Ci0KICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIHt9CiAgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSB7fQpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTIsMTMgKzIxMiw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVy
aGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
LCBjb25zdCBJbnRSZWN0Jik7CiAKLSAgICAgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIGFsbCBw
b3J0cyBhcmUgdXNpbmcgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzMKLSAgICAgICAgLy8gRm9yIGNsaWVudC1iYXNl
ZCBnZW9sb2NhdGlvbiwgdGhlc2UgdHdvIG1ldGhvZHMgaGF2ZSBtb3ZlZCB0byBHZW9sb2NhdGlv
bkNsaWVudC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYxCi0g
ICAgICAgIC8vIFRoaXMgY2FuIGJlIGVpdGhlciBhIHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91
cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBm
b3IgcGVybWlzc2lvbgotICAgICAgICAvLyB0byB1c2UgR2VvbG9jYXRpb24uCi0gICAgICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBH
ZW9sb2NhdGlvbiopID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgPSAwOwotCiAj
aWYgRU5BQkxFKElOUFVUX0NPTE9SKQogICAgICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q29sb3JD
aG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29s
b3ImKSA9IDA7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uY3BwCShy
ZXZpc2lvbiAxMDc5ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsMTkgKzMxLDE2IEBACiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29vcmRpbmF0ZXMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiR2VvcG9zaXRp
b24uaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0K
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIkNvb3JkaW5h
dGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiR2Vv
bG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKKyNpbmNs
dWRlICJHZW9wb3NpdGlvbi5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQb3NpdGlv
bkVycm9yLmgiCi0jZW5kaWYKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC01Myw4ICs1MCw2IEBAIHN0YXRpYyBjb25zdCBjaGFyIGZyYW1l
bGVzc0RvY3VtZW50RXJyb3IKIAogc3RhdGljIGNvbnN0IGludCBmaXJzdEF2YWlsYWJsZVdhdGNo
SWQgPSAxOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogc3RhdGlj
IFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+IGNyZWF0ZUdlb3Bvc2l0aW9uKEdlb2xvY2F0aW9uUG9z
aXRpb24qIHBvc2l0aW9uKQogewogICAgIGlmICghcG9zaXRpb24pCkBAIC04MCw3ICs3NSw2IEBA
IHN0YXRpYyBQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+IGNyZWF0ZVAKIAogICAgIHJldHVybiBQ
b3NpdGlvbkVycm9yOjpjcmVhdGUoY29kZSwgZXJyb3ItPm1lc3NhZ2UoKSk7CiB9Ci0jZW5kaWYK
IAogR2VvbG9jYXRpb246Okdlb05vdGlmaWVyOjpHZW9Ob3RpZmllcihHZW9sb2NhdGlvbiogZ2Vv
bG9jYXRpb24sIFBhc3NSZWZQdHI8UG9zaXRpb25DYWxsYmFjaz4gc3VjY2Vzc0NhbGxiYWNrLCBQ
YXNzUmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgUGFzc1JlZlB0
cjxQb3NpdGlvbk9wdGlvbnM+IG9wdGlvbnMpCiAgICAgOiBtX2dlb2xvY2F0aW9uKGdlb2xvY2F0
aW9uKQpAQCAtMjI2LDkgKzIyMCw2IEBAIHZvaWQgR2VvbG9jYXRpb246OldhdGNoZXJzOjpnZXRO
b3RpZmllcnMKIAogR2VvbG9jYXRpb246Okdlb2xvY2F0aW9uKEZyYW1lKiBmcmFtZSkKICAgICA6
IERPTVdpbmRvd1Byb3BlcnR5KGZyYW1lKQotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQotICAgICwgbV9zZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKHRoaXMp
KQotI2VuZGlmCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5rbm93bikKIHsKICAgICBpZiAo
IW1fZnJhbWUpCkBAIC0yNTIsMTEgKzI0Myw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnJlc2V0KCkK
IHsKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmIChwYWdlICYmIG1fYWxs
b3dHZW9sb2NhdGlvbiA9PSBJblByb2dyZXNzKSB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKICAgICAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNhbmNl
bFBlcm1pc3Npb25SZXF1ZXN0KHRoaXMpOwotI2Vsc2UKLSAgICAgICAgcGFnZS0+Y2hyb21lKCkt
PmNsaWVudCgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUobV9m
cmFtZSwgdGhpcyk7Ci0jZW5kaWYKICAgICB9CiAgICAgLy8gVGhlIGZyYW1lIG1heSBiZSBtb3Zp
bmcgdG8gYSBuZXcgcGFnZSBhbmQgd2Ugd2FudCB0byBnZXQgdGhlIHBlcm1pc3Npb25zIGZyb20g
dGhlIG5ldyBwYWdlJ3MgY2xpZW50LgogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IFVua25vd247
CkBAIC0yNzgsMTYgKzI2NSwxMSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpkaXNjb25uZWN0RnJhbWUo
KQogCiBHZW9wb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbigpCiB7Ci0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFn
ZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBtX2xhc3RQb3Np
dGlvbiA9IGNyZWF0ZUdlb3Bvc2l0aW9uKHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5s
YXN0UG9zaXRpb24oKSk7Ci0jZWxzZQotICAgIG1fbGFzdFBvc2l0aW9uID0gbV9zZXJ2aWNlLT5s
YXN0UG9zaXRpb24oKTsKLSNlbmRpZgotCiAgICAgcmV0dXJuIG1fbGFzdFBvc2l0aW9uLmdldCgp
OwogfQogCkBAIC02MTYsMTEgKzU5OCw3IEBAIHZvaWQgR2VvbG9jYXRpb246OnJlcXVlc3RQZXJt
aXNzaW9uKCkKICAgICBtX2FsbG93R2VvbG9jYXRpb24gPSBJblByb2dyZXNzOwogCiAgICAgLy8g
QXNrIHRoZSBlbWJlZGRlcjogaXQgbWFpbnRhaW5zIHRoZSBnZW9sb2NhdGlvbiBjaGFsbGVuZ2Ug
cG9saWN5IGl0c2VsZi4KLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAg
IHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5yZXF1ZXN0UGVybWlzc2lvbih0aGlzKTsK
LSNlbHNlCi0gICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5yZXF1ZXN0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUobV9mcmFtZSwgdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBHZW9s
b2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwoKQpAQCAtNjY1LDggKzY0Myw2IEBAIHZv
aWQgR2VvbG9jYXRpb246Om1ha2VTdWNjZXNzQ2FsbGJhY2tzKCkKICAgICAgICAgc3RvcFVwZGF0
aW5nKCk7CiB9CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiB2b2lk
IEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWQoKQogewogICAgIHBvc2l0aW9uQ2hhbmdlZElu
dGVybmFsKCk7CkBAIC02NzgsNTQgKzY1NCwyMyBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzZXRFcnJv
cihHZW9sb2NhdGlvbkVyCiAgICAgaGFuZGxlRXJyb3IocG9zaXRpb25FcnJvci5nZXQoKSk7CiB9
CiAKLSNlbHNlCi0KLXZvaWQgR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9u
Q2hhbmdlZChHZW9sb2NhdGlvblNlcnZpY2UqIHNlcnZpY2UpCi17Ci0gICAgQVNTRVJUX1VOVVNF
RChzZXJ2aWNlLCBzZXJ2aWNlID09IG1fc2VydmljZSk7Ci0gICAgQVNTRVJUKG1fc2VydmljZS0+
bGFzdFBvc2l0aW9uKCkpOwotCi0gICAgcG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwoKTsKLX0KLQot
dm9pZCBHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2Nh
dGlvblNlcnZpY2UqIHNlcnZpY2UpCi17Ci0gICAgQVNTRVJUKHNlcnZpY2UtPmxhc3RFcnJvcigp
KTsKLQotICAgIC8vIE5vdGUgdGhhdCB3ZSBkbyBub3Qgc3RvcCB0aW1lcnMgaGVyZS4gRm9yIG9u
ZS1zaG90cywgdGhlIHJlcXVlc3QgaXMKLSAgICAvLyBjbGVhcmVkIGluIGhhbmRsZUVycm9yLiBG
b3Igd2F0Y2hlcnMsIHRoZSBzcGVjIHJlcXVpcmVzIHRoYXQgdGhlIHRpbWVyIGlzCi0gICAgLy8g
bm90IGNsZWFyZWQuCi0gICAgaGFuZGxlRXJyb3Ioc2VydmljZS0+bGFzdEVycm9yKCkpOwotfQot
Ci0jZW5kaWYKLQogYm9vbCBHZW9sb2NhdGlvbjo6c3RhcnRVcGRhdGluZyhHZW9Ob3RpZmllciog
bm90aWZpZXIpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmFkZE9ic2VydmVy
KHRoaXMsIG5vdGlmaWVyLT5tX29wdGlvbnMtPmVuYWJsZUhpZ2hBY2N1cmFjeSgpKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIG1fc2VydmljZS0+c3RhcnRVcGRhdGluZyhu
b3RpZmllci0+bV9vcHRpb25zLmdldCgpKTsKLSNlbmRpZgogfQogCiB2b2lkIEdlb2xvY2F0aW9u
OjpzdG9wVXBkYXRpbmcoKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IHJldHVybjsKIAogICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5yZW1vdmVPYnNl
cnZlcih0aGlzKTsKLSNlbHNlCi0gICAgbV9zZXJ2aWNlLT5zdG9wVXBkYXRpbmcoKTsKLSNlbmRp
ZgotCiB9CiAKICNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb24uaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9HZW9sb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwyMyArMzUsMTQg
QEAKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCi0j
aWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0jaW5jbHVkZSAiR2VvbG9jYXRp
b25TZXJ2aWNlLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGcmFt
ZTsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogY2xhc3MgR2VvbG9jYXRp
b25Qb3NpdGlvbjsKIGNsYXNzIEdlb2xvY2F0aW9uRXJyb3I7Ci0jZW5kaWYKIGNsYXNzIFBhZ2U7
CiAKIGNsYXNzIEdlb2xvY2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb24+LCBw
dWJsaWMgRE9NV2luZG93UHJvcGVydHkKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikgJiYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgICwgcHVibGljIEdlb2xvY2F0aW9uU2Vy
dmljZUNsaWVudAotI2VuZGlmCiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R2Vv
bG9jYXRpb24+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBHZW9s
b2NhdGlvbihmcmFtZSkpOyB9CkBAIC02NiwxMiArNTcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldElzQWxsb3dlZChib29sKTsKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAgICAgdm9pZCBwb3NpdGlvbkNoYW5nZWQoKTsKICAgICB2b2lkIHNldEVycm9yKEdlb2xv
Y2F0aW9uRXJyb3IqKTsKLSNlbHNlCi0gICAgR2VvbG9jYXRpb25TZXJ2aWNlKiBnZXRHZW9sb2Nh
dGlvblNlcnZpY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2UuZ2V0KCk7IH0KLSNlbmRpZgog
CiBwcml2YXRlOgogICAgIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKQEAgLTE1NSwxMiAr
MTQyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZVBlbmRpbmdQZXJtaXNzaW9uTm90aWZp
ZXJzKCk7CiAjZW5kaWYKIAotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAm
JiBFTkFCTEUoR0VPTE9DQVRJT04pCi0gICAgLy8gR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Ci0g
ICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZChHZW9sb2Nh
dGlvblNlcnZpY2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JP
Y2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqKTsKLSNlbmRpZgotCiAgICAgUGFzc1JlZlB0cjxH
ZW9Ob3RpZmllcj4gc3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8UG9zaXRpb25DYWxsYmFjaz4sIFBh
c3NSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxQb3NpdGlvbk9wdGlv
bnM+KTsKIAogICAgIHZvaWQgZmF0YWxFcnJvck9jY3VycmVkKEdlb05vdGlmaWVyKik7CkBAIC0x
NzEsOSArMTUyLDYgQEAgcHJpdmF0ZToKIAogICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7
CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLSAgICBPd25QdHI8R2VvbG9jYXRpb25TZXJ2aWNlPiBtX3NlcnZpY2U7Ci0jZW5k
aWYKICNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OKQogICAgIEdlb05vdGlm
aWVyU2V0IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7CiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAJKHJldmlzaW9u
IDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Db250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTEgKzI1LDkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKLQotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAK
ICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9z
aXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjYsNSArMTI0LDMgQEAgR2Vv
bG9jYXRpb25Qb3NpdGlvbiogR2VvbG9jYXRpb25Db250cm9sbAogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCShyZXZp
c2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9u
Q29udHJvbGxlcl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNzUsNiArNzMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gR2Vv
bG9jYXRpb25Db250cm9sbGVyX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRp
b25FcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25F
cnJvci5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xvY2F0
aW9uRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHZW9s
b2NhdGlvbkVycm9yX2gKICNkZWZpbmUgR2VvbG9jYXRpb25FcnJvcl9oCiAKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CkBAIC02MCw2ICs1OCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNlbmRpZiAvLyBH
ZW9sb2NhdGlvbkVycm9yX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dlb2xv
Y2F0aW9uUG9zaXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRl
ZiBHZW9sb2NhdGlvblBvc2l0aW9uX2gKICNkZWZpbmUgR2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KQEAgLTEwNiw2ICsxMDQsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAj
ZW5kaWYgLy8gR2VvbG9jYXRpb25Qb3NpdGlvbl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJl
dmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCkBAIC03
NywxMCArNzgsNiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgotI2VuZGlmCi0KICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgIlVzZXJNZWRpYUNsaWVudC5oIgogI2VuZGlm
CkBAIC0xMzUsOSArMTMyLDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAsIG1faW5zcGVjdG9yQ29udHJvbGxlcihJbnNw
ZWN0b3JDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50
KSkKICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgLCBt
X2dlb2xvY2F0aW9uQ29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlz
LCBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCkpCi0jZW5kaWYKICNpZiBFTkFCTEUoTk9U
SUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZpY2F0aW9uQ29udHJvbGxlcihOb3RpZmljYXRpb25D
b250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFnZUNsaWVudHMubm90aWZpY2F0aW9uQ2xpZW50KSkK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzcsOSArMTc3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgIEluc3BlY3Rv
ckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2luc3Bl
Y3RvckNvbnRyb2xsZXIuZ2V0KCk7IH0KICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAgICAgICAgIEdlb2xvY2F0aW9uQ29udHJvbGxlciogZ2VvbG9jYXRpb25D
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvbkNvbnRyb2xsZXIuZ2V0KCk7
IH0KLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICAgICBOb3RpZmljYXRp
b25Db250cm9sbGVyKiBub3RpZmljYXRpb25Db250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9u
b3RpZmljYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKQEAgLTM3OCw5ICszNzYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgT3du
UHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICNlbmRpZgot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgICAgIE93blB0cjxHZW9s
b2NhdGlvbkNvbnRyb2xsZXI+IG1fZ2VvbG9jYXRpb25Db250cm9sbGVyOwotI2VuZGlmCiAjaWYg
RU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgICAgIE93blB0cjxOb3RpZmljYXRpb25Db250cm9s
bGVyPiBtX25vdGlmaWNhdGlvbkNvbnRyb2xsZXI7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkocmV2aXNpb24gMTA3OTc3
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNp
ZiAhRU5BQkxFKEdFT0xPQ0FUSU9OKSB8fCBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQorI2lmICFFTkFCTEUoR0VPTE9DQVRJT04pCiBzdGF0aWMgUGFzc093blB0cjxHZW9sb2NhdGlv
blNlcnZpY2U+IGNyZWF0ZUdlb2xvY2F0aW9uU2VydmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9HZW9sb2NhdGlvblNlcnZpY2VFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9HZW9sb2NhdGlvblNlcnZpY2VFZmwuY3BwCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2VvbG9jYXRpb25TZXJ2
aWNlRWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsMTYgKzIyLDEzIEBACiAjaW5jbHVkZSAi
R2VvbG9jYXRpb25TZXJ2aWNlRWZsLmgiCiAKICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0j
aWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi1HZW9sb2NhdGlvblNlcnZpY2U6
OkZhY3RvcnlGdW5jdGlvbiogR2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5jdGlvbiA9
ICZHZW9sb2NhdGlvblNlcnZpY2VFZmw6OmNyZWF0ZTsKLSNlbmRpZgotCiBQYXNzT3duUHRyPEdl
b2xvY2F0aW9uU2VydmljZT4gR2VvbG9jYXRpb25TZXJ2aWNlRWZsOjpjcmVhdGUoR2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHZW9s
b2NhdGlvblNlcnZpY2VFZmwoY2xpZW50KSk7CkBAIC02OSw0ICs2Niw1IEBAIFBvc2l0aW9uRXJy
b3IqIEdlb2xvY2F0aW9uU2VydmljZUVmbDo6bGEKIH0KIAogfQorCiAjZW5kaWYgLy8gRU5BQkxF
KEdFT0xPQ0FUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dlb2xvY2F0
aW9uU2VydmljZUVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9HZW9sb2NhdGlvblNlcnZpY2VFZmwuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0dlb2xvY2F0aW9uU2VydmljZUVmbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw2ICsyMiw3IEBACiAjZGVmaW5lIEdlb2xvY2F0aW9uU2VydmljZUVmbF9oCiAKICNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCisKICNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIK
ICNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgogI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKQEAg
LTQ5LDUgKzUwLDcgQEAgcHJpdmF0ZToKIH07CiAKIH0KKwogI2VuZGlmIC8vIEVOQUJMRShHRU9M
T0NBVElPTikKKwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dl
b2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCShyZXZpc2lvbiAxMDc5NzcpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudE1vY2suaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJHZW9sb2NhdGlvbkVycm9yLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlv
bi5oIgpAQCAtMTc4LDUgKzE3NiwzIEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpjb250
cm9sbGVyVGkKIH0KIAogfSAvLyBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9s
b2NhdGlvbkNsaWVudE1vY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw4ICszMSw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uQ2xpZW50TW9ja19o
CiAjZGVmaW5lIEdlb2xvY2F0aW9uQ2xpZW50TW9ja19oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC05NSw2ICs5Myw0
IEBAIHByaXZhdGU6CiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCi0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3OTg3KQorKysgU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTItMDItMTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdh
eXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1h
bmFnZXI6OnJlZ2lzdGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRHZW9Mb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6V2ViUGFnZSk6CisKIDIwMTItMDItMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmls
bGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW3NvdXBdIE1vdmUgaW1wb3J0YW50IFNvdXBTZXNz
aW9uIGZlYXR1cmUgaW5pdGlhbGl6YXRpb24gdG8gV2ViQ29yZQpJbmRleDogU291cmNlL1dlYktp
dDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJl
dmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw5ICszNCw2IEBACiBFTkFCTEVf
QkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9CTE9C
X21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
ID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1F
KSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFT
SEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBAIC0x
MjYsNCArMTIzLDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVO
QUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFE
RVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5B
QkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChF
TkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xP
UikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09V
UkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5B
QkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVf
UEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9U
QSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05f
TE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9X
ZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDE0ICsyOSwxMSBAQAogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9u
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgotCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KLSNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTgs
MjkgKzU1LDI0IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWUKIAog
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgYm9vbCB3YXNF
bXB0eSA9IG1fcGFnZVNldC5pc0VtcHR5KCk7CiAKICAgICBtX3BhZ2VTZXQuYWRkKHBhZ2UpOwog
ICAgIAogICAgIGlmICh3YXNFbXB0eSkKICAgICAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5n
KCksIDApOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjp1bnJlZ2lz
dGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgbV9wYWdlU2V0LnJlbW92ZShwYWdlKTsKIAogICAgIGlmIChtX3BhZ2VT
ZXQuaXNFbXB0eSgpKQogICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0b3BVcGRhdGluZygpLCAwKTsKLSNl
bmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24o
Y29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YSYgZGF0YSkKIHsKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9u
PiBwb3NpdGlvbiA9IEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShkYXRhLnRpbWVzdGFtcCwg
ZGF0YS5sYXRpdHVkZSwgZGF0YS5sb25naXR1ZGUsIGRhdGEuYWNjdXJhY3kpOwogCiAgICAgSGFz
aFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7CkBA
IC05MCwxMiArODIsMTAgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBv
cwogICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNvcmVQ
YWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5wb3NpdGlvbkNoYW5nZWQocG9zaXRpb24u
Z2V0KCkpOwogICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6
ZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAgICAgLy8gRklYTUU6IEFkZCBsb2NhbGl6ZWQgZXJyb3Igc3RyaW5nLgog
ICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBlcnJvciA9IEdlb2xvY2F0aW9uRXJyb3I6OmNy
ZWF0ZShHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlLCAvKiBMb2NhbGl6ZWQg
ZXJyb3Igc3RyaW5nICovIFN0cmluZygiIikpOwogCkBAIC0xMDYsNyArOTYsNiBAQCB2b2lkIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRvRGV0CiAgICAgICAgIGlmIChwYWdlLT5jb3Jl
UGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+Y29yZVBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPmVycm9yT2NjdXJyZWQoZXJyb3IuZ2V0KCkpOwogICAgIH0KLSNlbmRpZgogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk0LDExICsxOTQsOSBAQCB2b2lk
IEluamVjdGVkQnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFCiAKIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3Vw
LCBib29sIGVuYWJsZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
ICAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChw
YWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2Uq
Pjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsr
aXRlcikKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oKCppdGVy
KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKS0+c2V0UGVybWlzc2lvbihlbmFi
bGVkKTsKLSNlbmRpZgogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRKYXZhU2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxl
ZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDEwNzk3NykKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTkzLDE2ICs1OTMsNiBAQCBib29sIFdlYkNocm9tZUNsaWVu
dDo6cGFpbnRDdXN0b21PdmVyaGFuCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBH
ZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CiAgICAgaWYgKG1fcGFnZS0+YWN0aXZlT3BlblBh
bmVsUmVzdWx0TGlzdGVuZXIoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24g
MTA3OTc3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTUzLDExICsxNTMsNiBAQCBwcml2YXRl
OgogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKIAotICAgIC8v
IFRoaXMgaXMgYW4gYXN5bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3Bs
YXkgVUkgYXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uCi0gICAgLy8gdG8gdXNlIEdlb2xv
Y29jYXRpb24uIFRoZSBDaHJvbWVDbGllbnQgbXVzdCBjYWxsIEdlb2xvY2F0aW9uOjpzZXRTaG91
bGRDbGVhckNhY2hlKCkgYXBwcm9wcmlhdGVseS4KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2Vv
bG9jYXRpb24qKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9j
YXRpb24qKSBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29y
ZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopIE9WRVJSSURFOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLQogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUg
IldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC03OSw1ICs3NywzIEBAIHZv
aWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3MKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAkocmV2aXNpb24gMTA3OTc3KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIFdlYkdlb2xv
Y2F0aW9uQ2xpZW50X2gKICNkZWZpbmUgV2ViR2VvbG9jYXRpb25DbGllbnRfaAogCi0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9j
YXRpb25DbGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02MSw2ICs1OSw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmIC8vIFdlYkdlb2xvY2F0aW9uQ2xpZW50X2gK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI1LDkgKzIyNSw3IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCAKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGll
bnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGll
bnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2Fy
ZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7Ci0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlv
bkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudCh0aGlzKTsKLSNlbmRpZgogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdl
Ykluc3BlY3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxMDc5ODcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDItMTYgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVh
dHVyZXMuaW46CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJy
eS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToK
KyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHA6CisgICAg
ICAgICh0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRHZW9sb2NhdGlvbk1vY2spOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Np
b24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbik6CisKIDIwMTItMDItMTYgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4K
IAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gdG91Y2ggaGFuZGxpbmcgcmVsYXRlZCBj
bGFzc2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJv
dXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJv
dXREYXRhRW5hYmxlRmVhdHVyZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw2IEBAIEJM
QUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUCiBCTE9CCiBCUkFOQ0hfQ09NUEFDVElPTgogQ0hB
Tk5FTF9NRVNTQUdJTkcKLUNMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogQ09ERUJMT0NLX1NBTVBM
SU5HCiBDT01QQVJFX0FORF9TV0FQCiBDT01QVVRFRF9HT1RPX0lOVEVSUFJFVEVSCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCShyZXZpc2lvbiAxMDc5NzcpCisrKyBT
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNSwyNiArNTM1LDYgQEAgdm9pZCBDaHJvbWVD
bGllbnRCbGFja0JlcnJ5OjpleGNlZWRlZERhdAogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1l
KiBmcmFtZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIGlmICghbV93ZWJQYWdl
UHJpdmF0ZS0+bV93ZWJTZXR0aW5ncy0+aXNHZW9sb2NhdGlvbkVuYWJsZWQoKSkgewotICAgICAg
ICBnZW9sb2NhdGlvbi0+c2V0SXNBbGxvd2VkKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBET01XaW5kb3cqIHdpbmRvdyA9IGZyYW1lLT5kb21XaW5kb3coKTsKLSAgICBpZiAo
IXdpbmRvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ1N0cmluZyBsYXRpbk9yaWdpbiA9IGZy
YW1lT3JpZ2luKGZyYW1lKTsKLQotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5yZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uKG1fd2ViUGFnZVByaXZhdGUtPm1fZ2VvbG9jYXRpb25D
bGllbnQsIGdlb2xvY2F0aW9uLCBsYXRpbk9yaWdpbi5kYXRhKCksIGxhdGluT3JpZ2luLmxlbmd0
aCgpKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRp
b24pCi17Ci0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmNhbmNlbEdlb2xvY2F0aW9u
UGVybWlzc2lvbihtX3dlYlBhZ2VQcml2YXRlLT5tX2dlb2xvY2F0aW9uQ2xpZW50LCBnZW9sb2Nh
dGlvbik7Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cnVuT3BlblBhbmVsKEZy
YW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gY2hvb3NlcikKIHsKICAgICBTaGFyZWRBcnJh
eTxXZWJTdHJpbmc+IGluaXRpYWxGaWxlczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNr
QmVycnkuaAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAkod29ya2luZyBjb3B5KQpAQCAt
OTAsOCArOTAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSop
OwogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBT
dHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4pOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNv
bnN0IEN1cnNvciYpOwpJbmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCShyZXZp
c2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxMyArNDAsMTEg
QEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNf
bGlua3NJbmNsdWRlZEluVGFiQ2hhaW4gPSB0cnVlOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9HZW9sb2NhdGlvbkNsaWVu
dE1vY2soR2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICAgQVNTRVJUKGdldGVudigi
ZHJ0UnVuIikpOwogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2Nr
Kj4oY2xpZW50KTsKIH0KLSNlbmRpZgogCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OkR1bXBSZW5k
ZXJUcmVlU3VwcG9ydCgpCiB7CkBAIC05MywyNiArOTEsMTggQEAgdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnQ6OmR1bXBDb25maWd1cgogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpudW1i
ZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJQYWdlKiB3ZWJQYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRp
b25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2sod2ViUGFn
ZS0+bWFpbkZyYW1lKCktPnBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgp
KTsKICAgICByZXR1cm4gbW9ja0NsaWVudC0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVl
c3RzKCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTSh3ZWJQYWdlKTsKLSAgICByZXR1cm4gLTE7
Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnJlc2V0R2VvbG9jYXRp
b25Nb2NrKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xv
Y2F0aW9uQ2xpZW50TW9jayh3ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZSgpLT5nZW9sb2NhdGlv
bkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnJlc2V0KCk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKFdlYlBhZ2UqIHdlYlBhZ2UsIGludCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyBtZXNzYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRp
b25FcnJvcjo6RXJyb3JDb2RlIGNvZGUgPSBHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZh
aWxhYmxlOwogICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CiAgICAgY2FzZSBQb3NpdGlvbkVycm9y
OjpQRVJNSVNTSU9OX0RFTklFRDoKQEAgLTEyNSwyMyArMTE1LDE4IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG8KIAogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayog
bW9ja0NsaWVudCA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KHdlYlBhZ2Ut
Pm1haW5GcmFtZSgpLT5wYWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7
CiAgICAgbW9ja0NsaWVudC0+c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUs
IG1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0
TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlKiB3ZWJQYWdlLCBib29sIGFsbG93ZWQp
CiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlv
bkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayh3ZWJQYWdl
LT5tYWluRnJhbWUoKS0+cGFnZSgpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkp
OwogICAgIG1vY2tDbGllbnQtPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdl
YlBhZ2UqIHdlYlBhZ2UsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91Ymxl
IGFjY3VyYWN5KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAg
R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1v
Y2sod2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkt
PmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kp
KTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2NhbGVQYWdlQnko
V2ViUGFnZSogd2ViUGFnZSwgZmxvYXQgc2NhbGVGYWN0b3IsIGZsb2F0IHgsIGZsb2F0IHkpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3OTg3KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0wMi0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgor
ICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENocm9tZUNsaWVudElt
cGwpOgorCiAyMDEyLTAyLTE2ICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gQWRkIFdFQktJVF9FWFBPUlQgdG8gbmV3IFdlYkRyYWdEYXRh
IG1ldGhvZHMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCShyZXZpc2lv
biAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDcgKzM2LDYgQEAKICAgICAgICdFTkFCTEVfQkxPQj0xJywKICAgICAg
ICdFTkFCTEVfQkxPQl9TTElDRT0xJywKICAgICAgICdFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc9
MScsCi0gICAgICAnRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xJywKICAgICAgICdF
TkFCTEVfQ1NTX0ZJTFRFUlM9MScsCiAgICAgICAnRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUPTAn
LAogICAgICAgJ0VOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEnLApJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDEw
Nzk3NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04NjgsMjAgKzg2OCw2IEBAIGJvb2wgQ2hyb21lQ2xpZW50SW1w
bDo6cGFpbnRDdXN0b21PdmVyaGEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS8vIEZJWE1FOiBS
ZW1vdmUgQ2hyb21lQ2xpZW50SW1wbDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lIGFuZCBDaHJvbWVDbGllbnRJbXBsOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Rm9yRnJhbWUKLS8vIG9uY2UgYWxsIHBvcnRzIGhhdmUgbW92ZWQgdG8gY2xpZW50LWJhc2Vk
IGdlb2xvY2F0aW9uIChzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMzczICkuCi0vLyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLCB0aGVzZSBtZXRob2Rz
IGFyZSBub3cgaW1wbGVtZW50ZWQgYXMgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJt
aXNzaW9uIGFuZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6Y2FuY2VsUGVybWlzc2lvblJlcXVlc3Qu
Ci0vLyAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MSAp
Lgotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoRnJhbWUqIGZyYW1lLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCi17Ci0gICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6Y2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRp
b24qIGdlb2xvY2F0aW9uKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw4ICsxMzYsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBz
cGFjZU5lZWRlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVk
ZWQpOwogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29y
ZTo6R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRp
b24qKTsKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdl
YkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTE2ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMS0zMSAgUmFwaGFlbCBLdWJvIGRhIENv
c3RhICA8a3Vib0Bwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbc291cF0gQWRkIHN1cHBvcnQg
Zm9yIG11bHRpcGxlIFNvdXBTZXNzaW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gMTA3OTc3
KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDY0LDE3ICs0NjQsNiBAQCB2b2lkIENocm9tZUNsaWVudEVm
bDo6c2V0Q3Vyc29ySGlkZGVuVW50CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBD
aHJvbWVDbGllbnRFZmw6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDaHJv
bWVDbGllbnRFZmw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShG
cmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lk
IENocm9tZUNsaWVudEVmbDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJh
bWUqLCBHZW9sb2NhdGlvbiopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAyLTE2ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5o
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnQ6OnNjcm9sbFJlY3RJbnRvVmlldyk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1v
Y2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRp
b25QZXJtaXNzaW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaDoKKyAgICAgICAg
KiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5p
dCk6CisKIDIwMTItMDItMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW3NvdXBdIE1vdmUgaW1wb3J0YW50IFNvdXBTZXNzaW9uIGZlYXR1cmUg
aW5pdGlhbGl6YXRpb24gdG8gV2ViQ29yZQpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCShyZXZpc2lvbiAxMDc5Nzcp
CisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04NzUsMjIgKzg3NSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpz
ZXRDdXJzb3JIaWRkZW5VbnRpbE0KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENo
cm9tZUNsaWVudDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBm
cmFtZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIFdlYktpdFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IGtpdChmcmFtZSk7Ci0gICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBvbGlj
eURlY2lzaW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9uX3Bv
bGljeV9kZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0aW9uKSkpOwotCi0gICAgZ2Jvb2xl
YW4gaXNIYW5kbGVkID0gRkFMU0U7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmll
dywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9s
aWN5RGVjaXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOwotICAgIGlmICghaXNIYW5kbGVkKQotICAg
ICAgICB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0KCkp
OwotfQotCi12b2lkIENocm9tZUNsaWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R2VvbG9jYXRpb24q
KQotewotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1w
b2xpY3ktZGVjaXNpb24tY2FuY2VsbGVkIiwga2l0KGZyYW1lKSk7Ci19Ci0KIGJvb2wgQ2hyb21l
Q2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0
dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmgJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzcsOCArMTM3LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUq
LCBHZW9sb2NhdGlvbiopOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAg
ICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdE
aXJlY3Rpb24oKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAkocmV2aXNpb24gMTA3
OTc3KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODI5LDMzICs4MjksMjYgQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNjYWxlUGFnZQogCiB2b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9j
ayo+KGNvcmUod2ViVmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAg
ICAgbW9jay0+cmVzZXQoKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBib29sIGFsbG93ZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
ICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlv
bkNsaWVudE1vY2sqPihjb3JlKHdlYlZpZXcpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xp
ZW50KCkpOwogICAgIG1vY2stPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVk
ZSwgZG91YmxlIGFjY3VyYWN5KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9j
YXRpb25DbGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkt
PmNsaWVudCgpKTsKIAogICAgIGRvdWJsZSB0aW1lc3RhbXAgPSBnX2dldF9yZWFsX3RpbWUoKSAv
IDEwMDAwMDAuMDsKICAgICBtb2NrLT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uOjpj
cmVhdGUodGltZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOwotI2VuZGlm
CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25F
cnJvcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgZXJyb3JDb2RlLCBjb25zdCBnY2hhciog
ZXJyb3JNZXNzYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAg
ICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25D
bGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVu
dCgpKTsKIAogICAgIEdlb2xvY2F0aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlOwpAQCAtODcwLDE3
ICs4NjMsMTIgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZQogICAg
IH0KIAogICAgIG1vY2stPnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShjb2RlLCBl
cnJvck1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAg
ICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25D
bGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVu
dCgpKTsKICAgICByZXR1cm4gbW9jay0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3Rz
KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGJvb2wgZW5hYmxlZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHAJKHJl
dmlzaW9uIDEwNzk5MCkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xv
Y2F0aW9uQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsOCArMjEsNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50R3RrLmgiCiAKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiQ2hyb21lLmgi
CiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKQEAg
LTEzOCwxMiArMTM2LDE4IEBAIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0
aW8KIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6
R2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQogewotICAgIGNvcmUobV93ZWJWaWV3KS0+Y2hyb21l
KCktPmNsaWVudCgpLT5yZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoZ2VvbG9j
YXRpb24tPmZyYW1lKCksIGdlb2xvY2F0aW9uKTsKKyAgICBXZWJLaXRXZWJGcmFtZSogd2ViRnJh
bWUgPSBraXQoZ2VvbG9jYXRpb24tPmZyYW1lKCkpOworICAgIEdSZWZQdHI8V2ViS2l0R2VvbG9j
YXRpb25Qb2xpY3lEZWNpc2lvbj4gcG9saWN5RGVjaXNpb24oYWRvcHRHUmVmKHdlYmtpdF9nZW9s
b2NhdGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KHdlYkZyYW1lLCBnZW9sb2NhdGlvbikpKTsKKwor
ICAgIGdib29sZWFuIGlzSGFuZGxlZCA9IEZBTFNFOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVkIiwgd2Vi
RnJhbWUsIHBvbGljeURlY2lzaW9uLmdldCgpLCAmaXNIYW5kbGVkKTsKKyAgICBpZiAoIWlzSGFu
ZGxlZCkKKyAgICAgICAgd2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZW55KHBvbGljeURlY2lz
aW9uLmdldCgpKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6Y2FuY2VsUGVybWlzc2lv
blJlcXVlc3QoV2ViQ29yZTo6R2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQogewotICAgIGNvcmUo
bV93ZWJWaWV3KS0+Y2hyb21lKCktPmNsaWVudCgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Rm9yRnJhbWUoZ2VvbG9jYXRpb24tPmZyYW1lKCksIGdlb2xvY2F0aW9uKTsKKyAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZWJWaWV3LCAiZ2VvbG9jYXRpb24tcG9saWN5LWRl
Y2lzaW9uLWNhbmNlbGxlZCIsIGtpdChnZW9sb2NhdGlvbi0+ZnJhbWUoKSkpOwogfQogCiB2b2lk
IEdlb2xvY2F0aW9uQ2xpZW50Ojpwb3NpdGlvbkNoYW5nZWQoR2VvY2x1ZVBvc2l0aW9uKiwgR2Vv
Y2x1ZVBvc2l0aW9uRmllbGRzIGZpZWxkcywgaW50IHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIEdlb2NsdWVBY2N1cmFjeSogYWNj
dXJhY3kpCkBAIC0xNzcsNSArMTgxLDMgQEAgdm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6ZXJyb3JP
Y2N1cmVkKGNvbgogfQogCiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSw4ICsyMSw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uQ2xpZW50R3RrX2gK
ICNkZWZpbmUgR2VvbG9jYXRpb25DbGllbnRHdGtfaAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKLQogI2luY2x1ZGUgIkdSZWZQdHIuaCIKICNpbmNsdWRlICJHZW9sb2Nh
dGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKQEAgLTc1LDgg
KzczLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlSGlnaEFjY3VyYWN5OwogICAgIGJv
b2wgbV9pc1VwZGF0aW5nOwogfTsKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8g
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKK30gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gR2VvbG9jYXRpb25DbGllbnRHdGtfaApJbmRleDogU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNl
L1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NDQ5LDE5ICszNDQ5LDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktp
dFcKICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50Kj4obmV3IERldmljZU9yaWVudGF0aW9u
Q2xpZW50R3RrKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKICAgICBpZiAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVF
bmFibGVkKCkpCiAgICAgICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IEdl
b2xvY2F0aW9uQ2xpZW50TW9jazsKICAgICBlbHNlCiAgICAgICAgIHBhZ2VDbGllbnRzLmdlb2xv
Y2F0aW9uQ2xpZW50ID0gbmV3IFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQod2ViVmlldyk7Ci0j
ZW5kaWYKIAogICAgIHByaXYtPmNvcmVQYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOwogCi0j
aWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpCiAgICAgICAgIHN0YXRp
Y19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xp
ZW50KS0+c2V0Q29udHJvbGxlcihwcml2LT5jb3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVy
KCkpOwotI2VuZGlmCiAKICAgICAvLyBQYWdlcyB3aXRoaW4gYSBzYW1lIHNlc3Npb24gbmVlZCB0
byBiZSBsaW5rZWQgdG9nZXRoZXIgb3RoZXJ3aXNlIHNvbWUgZnVuY3Rpb25hbGl0aWVzIHN1Y2gK
ICAgICAvLyBhcyB2aXNpdGVkIGxpbmsgY29sb3JhdGlvbiAoYWNyb3NzIHBhZ2VzKSBhbmQgY2hh
bmdpbmcgcG9wdXAgd2luZG93IGxvY2F0aW9uIHdpbGwgbm90IHdvcmsuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMDc5ODcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0wMi0xNiAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGll
bnQubW06CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW06CisgICAgICAgICgtW1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0
aW9uOl0pOgorICAgICAgICAoY29yZSk6CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24gaW5pdFdpdGhUaW1lc3RhbXA6bGF0aXR1ZGU6bG9uZ2l0dWRlOmFjY3VyYWN5Ol0pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmg6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFs
aXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9n
ZW9sb2NhdGlvbkRpZENoYW5nZVBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9nZW9s
b2NhdGlvbkRpZEZhaWxXaXRoRXJyb3I6XSk6CisKIDIwMTItMDItMTUgIEVucmljYSBDYXN1Y2Np
ICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBDbGlwYm9hcmRNYWMgY2xh
c3MgdG8gdXNlIFBsYXRmb3JtU3RyYXRlZ2llcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZp
c2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxF
X0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxP
Ql9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFN
RSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RB
U0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAt
MTI2LDQgKzEyMyw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBF
TkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hB
REVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVf
U1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFC
TEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxF
X0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5L
X1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFC
TEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElP
Tl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFC
TEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChF
TkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxF
X1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQo
RU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5B
QkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcp
ICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5B
QkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVO
QUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RB
VEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQo
RU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lD
T05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09M
T1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkg
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAk
KEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NP
VVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVO
QUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVP
VEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09S
S0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5B
QkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09O
X0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVf
V0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxF
X1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJ
KHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsMTEgKzE3Myw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZChXZWJDb3JlOjpS
ZW5kZXJCb3gqKSBPVkVSUklERTsKICNlbmRpZgogCi0gICAgLy8gRklYTUU6IFJlbW92ZSBvbmNl
IGFsbCBwb3J0cyBhcmUgdXNpbmcgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzMKLSAgICAvLyBGb3IgY2xpZW50LWJh
c2VkIGdlb2xvY2F0aW9uLCB0aGVzZSB0d28gbWV0aG9kcyBoYXZlIG1vdmVkIHRvIFdlYkdlb2xv
Y2F0aW9uQ2xpZW50LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAw
NjEKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSBPVkVSUklERSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSBPVkVSUklERSB7IH0KLQog
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVX
cml0aW5nRGlyZWN0aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBv
cHVwKCkgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQkocmV2aXNpb24gMTA3
OTc3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTg4LDExICs4OCw3IEBAIHZvaWQgV2ViR2VvbG9j
YXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXMKIAogR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2Vv
bG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICByZXR1cm4gY29yZShbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Q
cm92aWRlcl0gbGFzdFBvc2l0aW9uXSk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9
CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyCkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
Lm1tCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDI2ICsyOSwyMSBAQAog
I2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAotI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xv
Y2F0aW9uUG9zaXRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0jZW5kaWYKIAog
QGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAotI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiB7CiBAcHVibGljCiAgICAgUmVmUHRy
PEdlb2xvY2F0aW9uUG9zaXRpb24+IF9wb3NpdGlvbjsKIH0KIAogLSAoaWQpaW5pdFdpdGhDb3Jl
R2VvbG9jYXRpb25Qb3NpdGlvbjooUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3Jl
R2VvbG9jYXRpb25Qb3NpdGlvbjsKLSNlbmRpZgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUGFzc1Jl
ZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CkBAIC01NywyOSArNTIsMjIgQEAgLSAoaWQpaW5pdFdpdGhD
b3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUAogICAgIF9wb3NpdGlvbiA9IGNvcmVHZW9sb2NhdGlv
blBvc2l0aW9uOwogICAgIHJldHVybiBzZWxmOwogfQotI2VuZGlmCiAKIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24KIAotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBjb3JlKFdlYkdlb2xvY2F0aW9u
UG9zaXRpb24gKnBvc2l0aW9uKQogewogICAgIHJldHVybiBwb3NpdGlvbiA/IHBvc2l0aW9uLT5f
aW50ZXJuYWwtPl9wb3NpdGlvbi5nZXQoKSA6IDA7CiB9Ci0jZW5kaWYKIAogLSAoaWQpaW5pdFdp
dGhUaW1lc3RhbXA6KGRvdWJsZSl0aW1lc3RhbXAgbGF0aXR1ZGU6KGRvdWJsZSlsYXRpdHVkZSBs
b25naXR1ZGU6KGRvdWJsZSlsb25naXR1ZGUgYWNjdXJhY3k6KGRvdWJsZSlhY2N1cmFjeQogewog
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4g
bmlsOwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgX2ludGVybmFs
ID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2NdIGluaXRXaXRoQ29yZUdl
b2xvY2F0aW9uUG9zaXRpb246R2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwg
bGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpXTsKLSNlbHNlCi0gICAgX2ludGVybmFsID0g
W1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgYWxsb2NdIGluaXRdOwotI2VuZGlmCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaAkocmV2aXNpb24g
MTA3OTc3KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTIgKzI1LDkgQEAKIAogI2ltcG9y
dCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdlb2xvY2F0aW9u
UG9zaXRpb247CiB9CiAKIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbiAqKTsKIAotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyOSw2ICsxMjksOCBAQAogI2ltcG9y
dCA8V2ViQ29yZS9GcmFtZVRyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2Nh
dGlvbkNvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgog
I2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hU
TUxOYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgpAQCAtMTg4LDExICsx
OTAsNiBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYkRhc2hib2FyZFJlZ2lvbi5oPgogI2VuZGlmCiAK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2ltcG9ydCA8V2ViQ29yZS9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJv
ci5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoR0xJQl9TVVBQT1JUKQogI2ltcG9ydCA8Z2xpYi5o
PgogI2VuZGlmCkBAIC03MzksOSArNzM2LDcgQEAgLSAodm9pZClfY29tbW9uSW5pdGlhbGl6YXRp
b25XaXRoRnJhbWVOYQogICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0
b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFn
Q2xpZW50KHNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3JDbGllbnQoc2VsZik7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlv
bkNsaWVudChzZWxmKTsKLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIHBh
Z2VDbGllbnRzLm5vdGlmaWNhdGlvbkNsaWVudCA9IG5ldyBXZWJOb3RpZmljYXRpb25DbGllbnQo
c2VsZik7CiAjZW5kaWYKQEAgLTYzODMsMjAgKzYzNzgsMTYgQEAgLSAoaWQ8V2ViR2VvbG9jYXRp
b25Qcm92aWRlcj4pX2dlb2xvY2F0aQogCiAtICh2b2lkKV9nZW9sb2NhdGlvbkRpZENoYW5nZVBv
c2l0aW9uOihXZWJHZW9sb2NhdGlvblBvc2l0aW9uICopcG9zaXRpb24KIHsKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+
cGFnZSkKICAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5w
b3NpdGlvbkNoYW5nZWQoY29yZShwb3NpdGlvbikpOwotI2VuZGlmCiB9CiAKIC0gKHZvaWQpX2dl
b2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCiB7Ci0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBpZiAoX3ByaXZhdGUgJiYgX3ByaXZhdGUt
PnBhZ2UpIHsKICAgICAgICAgUmVmUHRyPEdlb2xvY2F0aW9uRXJyb3I+IGdlb2xvY2F0aW9FcnJv
ciA9IEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVu
YXZhaWxhYmxlLCBbZXJyb3IgbG9jYWxpemVkRGVzY3JpcHRpb25dKTsKICAgICAgICAgX3ByaXZh
dGUtPnBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5lcnJvck9jY3VycmVkKGdlb2xvY2F0
aW9FcnJvci5nZXQoKSk7CiAgICAgfQotI2VuZGlmCiB9CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMDc5ODcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTE2ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OlFX
ZWJQYWdlUHJpdmF0ZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
aDoKKyAgICAgICAgKENocm9tZUNsaWVudFF0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICh0b0dlb2xvY2F0aW9uQ2xpZW50
TW9jayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6cmVzZXRHZW9sb2NhdGlv
bk1vY2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9sb2Nh
dGlvblBlcm1pc3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1v
Y2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgorCiAy
MDEyLTAyLTE2ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkIGJyb3duLXBhcGVyIGJhZyBidWlsZCBmaXguCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDEwICs2NCw4IEBACiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiR2VvbG9j
YXRpb25DbGllbnRRdC5oIgotI2VuZGlmIC8vIENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lvbkNsaWVudFF0LmgiCiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCkBAIC0zMTMs
NyArMzExLDcgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZwogICAg
ICwgaW5zcGVjdG9ySXNJbnRlcm5hbE9ubHkoZmFsc2UpCiAgICAgLCBtX2xhc3REcm9wQWN0aW9u
KFF0OjpJZ25vcmVBY3Rpb24pCiB7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgfHwg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQogICAgIGJvb2wgdXNlTW9jayA9IFFXZWJQYWdlUHJpdmF0ZTo6ZHJ0UnVuOwogI2Vu
ZGlmCiAKQEAgLTMyNSwxMiArMzIzLDEwIEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2
YXRlKFFXZWJQYWcKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgRWRpdG9yQ2xp
ZW50UXQocSk7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBEcmFnQ2xpZW50UXQo
cSk7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IEluc3BlY3RvckNsaWVu
dFF0KHEpOwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgaWYgKHVz
ZU1vY2spCiAgICAgICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IEdlb2xv
Y2F0aW9uQ2xpZW50TW9jazsKICAgICBlbHNlCiAgICAgICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0
aW9uQ2xpZW50ID0gbmV3IEdlb2xvY2F0aW9uQ2xpZW50UXQocSk7Ci0jZW5kaWYKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKICAgICBwYWdlQ2xpZW50cy5ub3RpZmljYXRpb25DbGllbnQgPSBO
b3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdDo6bm90aWZpY2F0aW9uUHJlc2VudGVyKCk7CiAj
ZW5kaWYKQEAgLTM1MCwxMSArMzQ2LDkgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZh
dGUoUVdlYlBhZwogICAgIC8vIGFzIGV4cGVjdGVkIG91dCBvZiB0aGUgYm94LCB3ZSB1c2UgYSBk
ZWZhdWx0IGdyb3VwIHNpbWlsYXIgdG8gd2hhdCBvdGhlciBwb3J0cyBhcmUgZG9pbmcuCiAgICAg
cGFnZS0+c2V0R3JvdXBOYW1lKCJEZWZhdWx0IEdyb3VwIik7CiAKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIC8vIEluIGNhc2UgcnVubmluZyBpbiBEdW1wUmVuZGVy
VHJlZSBtb2RlIHNldCB0aGUgY29udHJvbGxlciB0byBtb2NrIHByb3ZpZGVyLgogICAgIGlmIChR
V2ViUGFnZVByaXZhdGU6OmRydFJ1bikKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25D
bGllbnRNb2NrKj4ocGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQpLT5zZXRDb250cm9sbGVy
KHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpKTsKLSNlbmRpZgogICAgIHNldHRpbmdzID0g
bmV3IFFXZWJTZXR0aW5ncyhwYWdlLT5zZXR0aW5ncygpKTsKIAogICAgIGhpc3RvcnkuZCA9IG5l
dyBRV2ViSGlzdG9yeVByaXZhdGUoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0
SW1wbCo+KHBhZ2UtPmJhY2tGb3J3YXJkTGlzdCgpKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCShyZXZpc2lvbiAxMDc5Nzcp
CisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE3Niw5ICsxNzYsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBH
ZW9sb2NhdGlvbiopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQotCiAgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgdmly
dHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24o
KTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA1LDEzICsxMDUsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFFNYXA8aW50
LCBRV2ViU2NyaXB0V29ybGQqPiBtX3dvcmxkTWFwOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9HZW9sb2NhdGlvbkNsaWVu
dE1vY2soR2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICAgQVNTRVJUKFFXZWJQYWdl
UHJpdmF0ZTo6ZHJ0UnVuKTsKICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xp
ZW50TW9jayo+KGNsaWVudCk7CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIHRvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrKERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCkBAIC04MzgsMzQgKzgz
NiwyNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrRGV2CiAKIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKFFXZWJQYWdlKiBw
YWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSog
Y29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25D
bGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Ut
Pmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+cmVz
ZXQoKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2Nr
R2VvbG9jYXRpb25QZXJtaXNzaW9uKFFXZWJQYWdlKiBwYWdlLCBib29sIGFsbG93ZWQpCiB7Ci0j
aWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBjb3JlUGFnZSA9
IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShwYWdlKTsKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sq
IG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZS0+Z2VvbG9jYXRp
b25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRQZXJtaXNzaW9u
KGFsbG93ZWQpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFFXZWJQYWdlKiBwYWdlLCBkb3VibGUgbGF0aXR1ZGUs
IGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRl
Ojpjb3JlKHBhZ2UpOwogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRv
R2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+
Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRp
b246OmNyZWF0ZShjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkp
OwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9s
b2NhdGlvbkVycm9yKFFXZWJQYWdlKiBwYWdlLCBpbnQgZXJyb3JDb2RlLCBjb25zdCBRU3RyaW5n
JiBtZXNzYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAg
UGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAKICAgICBHZW9s
b2NhdGlvbkVycm9yOjpFcnJvckNvZGUgY29kZSA9IEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9u
VW5hdmFpbGFibGU7CkBAIC04ODAsMTggKzg3MSwxMyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzZXRNb2NrR2VvCiAKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGll
bnQgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjb3JlUGFnZS0+Z2VvbG9j
YXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRFcnJvcihH
ZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoY29kZSwgbWVzc2FnZSkpOwotI2VuZGlmCiB9CiAKIGlu
dCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHMoUVdlYlBhZ2UqIHBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBjb3JlUGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29y
ZShwYWdlKTsKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xv
Y2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVu
dCgpKTsKICAgICByZXR1cm4gbW9ja0NsaWVudC0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJl
cXVlc3RzKCk7Ci0jZWxzZQotICAgIHJldHVybiAtMTsKLSNlbmRpZgogfQogCiBib29sIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0Ojppc1RhcmdldEl0ZW0oY29uc3QgUVdlYkhpc3RvcnlJdGVtJiBo
aXN0b3J5SXRlbSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTAyLTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
QWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA6CisgICAgICAgIChXZWJHZW9s
b2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJHZW9sb2NhdGlvblBv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmluaXRXaXRoVGlt
ZXN0YW1wKToKKyAgICAgICAgKGNvcmUpOgorICAgICAgICAqIFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbjo6aW1wbCk6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAg
IChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKyAgICAgICAgKFdlYlZpZXc6Omdlb2xvY2F0aW9u
RGlkQ2hhbmdlUG9zaXRpb24pOgorICAgICAgICAoV2ViVmlldzo6Z2VvbG9jYXRpb25EaWRGYWls
V2l0aEVycm9yKToKKwogMjAxMi0wMi0xNSAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1
bEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90aWZ5IENocm9tZUNsaWVudCB3aGVuIHRvdWNo
LWV2ZW50IGhhbmRsZXJzIGFyZSBpbnN0YWxsZWQvcmVtb3ZlZC4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMDc5NzcpCisr
KyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsMTEgKzI3LDkgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9u
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KIAotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotI2VuZGlmCiAKIENPTVB0cjxXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGVJbnN0YW5jZSgpCiB7
CkBAIC04MywxNSArODEsMTAgQEAgVUxPTkcgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6UmVsZWFz
ZSgpCiAKIEhSRVNVTFQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6aW5pdFdpdGhUaW1lc3RhbXAo
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3Vi
bGUgYWNjdXJhY3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAg
ICBtX3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwgbGF0
aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOwogICAgIHJldHVybiBTX09LOwotI2Vsc2UKLSAg
ICByZXR1cm4gRV9GQUlMOwotI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogR2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShJV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiogcG9zaXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikKQEAgLTEwMyw0ICs5NiwzIEBA
IEdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW8KIAogICAgIHJldHVybiB3
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLT5pbXBsKCk7CiB9Ci0jZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgJKHJldmlzaW9uIDEwNzk3NykKKysr
IFNvdXJjZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtNDgsMTkgKzQ4LDEzIEBAIHB1YmxpYzoKICAgICAvLyBJV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpbml0V2l0aFRpbWVz
dGFtcChkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUs
IGRvdWJsZSBhY2N1cmFjeSk7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQogICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIGltcGwoKSBjb25zdCB7IHJldHVy
biBtX3Bvc2l0aW9uLmdldCgpOyB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBVTE9ORyBtX3Jl
ZkNvdW50OwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUmVmUHRy
PFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+IG1fcG9zaXRpb247Ci0jZW5kaWYKIH07CiAK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogV2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbiogY29yZShJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiopOwotI2VuZGlmCiAKICNl
bmRpZiAvLyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTIsNiArOTIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR0RJ
T2JqZWN0Q291bnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1l
bnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgpAQCAtMTM5LDExICsxNDEsNiBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93c1RvdWNoLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0jaW5jbHVk
ZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0dl
b2xvY2F0aW9uRXJyb3IuaD4KLSNlbmRpZgotCiAjaWYgVVNFKENHKQogI2luY2x1ZGUgPENvcmVH
cmFwaGljcy9DR0NvbnRleHQuaD4KICNlbmRpZgpAQCAtMjY2OSw5ICsyNjY2LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppbml0VwogICAgIHBhZ2VDbGllbnRzLmVkaXRv
ckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuZHJh
Z0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VDbGllbnRzLmluc3Bl
Y3RvckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50OwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgV2Vi
R2VvbG9jYXRpb25DbGllbnQodGhpcyk7Ci0jZW5kaWYKICAgICBtX3BhZ2UgPSBuZXcgUGFnZShw
YWdlQ2xpZW50cyk7CiAKICAgICBCU1RSIGxvY2FsU3RvcmFnZVBhdGg7CkBAIC02NTY5LDE5ICs2
NTY0LDE0IEBAIEhSRVNVTFQgV2ViVmlldzo6Z2VvbG9jYXRpb25Qcm92aWRlcihJV2UKIAogSFJF
U1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZENoYW5nZVBvc2l0aW9uKElXZWJHZW9sb2NhdGlv
blBvc2l0aW9uKiBwb3NpdGlvbikKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogICAgIG1fcGFn
ZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdlZChjb3JlKHBvc2l0aW9u
KSk7CiAgICAgcmV0dXJuIFNfT0s7Ci0jZWxzZQotICAgIHJldHVybiBFX05PVElNUEw7Ci0jZW5k
aWYKIH0KIAogSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZEZhaWxXaXRoRXJyb3IoSVdl
YkVycm9yKiBlcnJvcikKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogICAgIGlmICghZXJyb3Ip
CkBAIC02NTk2LDkgKzY1ODYsNiBAQCBIUkVTVUxUIFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkRmFp
bFdpdGhFCiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uRXJyb3I+IGdlb2xvY2F0aW9uRXJyb3IgPSBH
ZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWls
YWJsZSwgZGVzY3JpcHRpb25TdHJpbmcpOwogICAgIG1fcGFnZS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPmVycm9yT2NjdXJyZWQoZ2VvbG9jYXRpb25FcnJvci5nZXQoKSk7CiAgICAgcmV0dXJu
IFNfT0s7Ci0jZWxzZQotICAgIHJldHVybiBFX05PVElNUEw7Ci0jZW5kaWYKIH0KIAogSFJFU1VM
VCBXZWJWaWV3OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKEJPT0wg
Zm9yYmlkZGVuLCBCU1RSIHNjaGVtZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBT
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ4LDExICsxNDgsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCB7IH0KIAot
ICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBhbGwgcG9ydHMgYXJlIHVzaW5nIGNsaWVudC1iYXNl
ZCBnZW9sb2NhdGlvbi4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQw
MzczCi0gICAgLy8gRm9yIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbiwgdGhlc2UgdHdvIG1ldGhv
ZHMgaGF2ZSBiZWVuIG1vdmVkIHRvIFdlYkdlb2xvY2F0aW9uQ2xpZW50LiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAwNjEKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6
R2VvbG9jYXRpb24qKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRp
b24qKSB7IH0KLQogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNG
dWxsc2NyZWVuRm9yTm9kZShjb25zdCBXZWJDb3JlOjpOb2RlKik7CiAgICAgdmlydHVhbCB2b2lk
IGVudGVyRnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOwpJbmRleDogU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcAkocmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2
Niw2IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygKIAogR2VvbG9j
YXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7Ci0j
aWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBDT01QdHI8SVdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXI+IHByb3ZpZGVyOwogICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT5nZW9s
b2NhdGlvblByb3ZpZGVyKCZwcm92aWRlcikpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTc0LDkg
KzczLDYgQEAgR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25DbGllbgogICAgIGlm
IChGQUlMRUQocHJvdmlkZXItPmxhc3RQb3NpdGlvbigmcG9zaXRpb24pKSkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgcmV0dXJuIGNvcmUocG9zaXRpb24uZ2V0KCkpOwotI2Vsc2UKLSAgICByZXR1
cm4gMDsKLSNlbmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVy
bWlzc2lvbihHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTA3OTg3KQorKysgU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0xNiAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6
CisgICAgICAgIChDaHJvbWVDbGllbnRXaW5DRSk6CisKIDIwMTItMDItMTUgIFBhdHJpY2sgR2Fu
c3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXaW5DRSBi
dWlsZCBmaXggYWZ0ZXIgcjEwNzYwNi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCShyZXZpc2lvbiAx
MDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY5LDE2ICszNjksNiBAQCB2b2lkIENocm9t
ZUNsaWVudFdpbkNFOjpmb3JtU3RhdGVEaWRDaGFuCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19
Ci0KLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotfQotCiBib29sIENocm9tZUNsaWVudFdpbkNFOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAko
cmV2aXNpb24gMTA3OTc3KQorKysgU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksMTEgKzEzOSw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZp
Y2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIC8vIFRoaXMgY2FuIGJlIGVp
dGhlciBhIHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50
IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgotICAgIC8vIHRv
IHVzZSBHZW9sb2NhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKLQogICAgIHZpcnR1
YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZpbGVDaG9vc2VyPik7CiAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBp
Y29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRl
ciopOwpJbmRleDogU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNzk4NykKKysrIFNvdXJjZS9XZWJL
aXQvd3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDIt
MTYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5h
YmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRX
eC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9t
ZUNsaWVudFd4Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRXeCk6CisKIDIwMTItMDItMTUgIFNh
ZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE5v
dGlmeSBDaHJvbWVDbGllbnQgd2hlbiB0b3VjaC1ldmVudCBoYW5kbGVycyBhcmUgaW5zdGFsbGVk
L3JlbW92ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5jcHAJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2NSwx
MiArNDY1LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6c2V0Q3Vyc29yKGNvbnN0IEN1cgogICAg
ICAgICBtX3dlYlZpZXctPlNldEN1cnNvcigqY3Vyc29yLmltcGwoKSk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50V3g6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKikKLXsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9vbCBDaHJvbWVD
bGllbnRXeDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQogewogICAgIHJl
dHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDkgKzE0
MSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29u
c3QgSW50UmVjdCYpIGNvbnN0IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7Ci0gICAgdmlydHVh
bCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKikgeyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVu
dEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
b3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKSW5kZXg6
IFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UJKHJldmlzaW9uIDEwNzk3NykKKysrIFNv
dXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMz
LDcgKzEzMyw2IEBAIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9BU1NFTUJMRVJfV1hfRVhDTFUKIFdF
QktJVF9GRUFUVVJFKEVOQUJMRV9CTEFDS0JFUlJZX0NBUkVUX0FQUEVBUkFOQ0UgIkJsYWNrYmVy
cnkgQ2FyZXQgQXBwZWFyYW5jZSIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVf
QkxPQiAiRW5hYmxlIGJsb2Igc2xpY2UiIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3NhZ2luZyIgREVGQVVMVCBP
TikKLVdFQktJVF9GRUFUVVJFKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gIkNsaWVu
dCBiYXNlZCBHZW9sb2NhdGlvbiIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9E
QVRBQkFTRSAiRW5hYmxlIGRhdGFiYXNlIiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5B
QkxFX0RBVEFMSVNUICJFbmFibGUgZGF0YWxpc3QiIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVS
RShFTkFCTEVfREVUQUlMUyAiRW5hYmxlIGRldGFpbHMgZWxlbWVudCIgREVGQVVMVCBPTikKSW5k
ZXg6IFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9j
bWFrZS9PcHRpb25zRWZsLmNtYWtlCShyZXZpc2lvbiAxMDc5NzcpCisrKyBTb3VyY2UvY21ha2Uv
T3B0aW9uc0VmbC5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNiBAQCBTRVQoVkVS
U0lPTl9TQ1JJUFQgIi1XbCwtLXZlcnNpb24tc2NyaXB0CiAKIFdFQktJVF9GRUFUVVJFKEVOQUJM
RV9CTE9CICJFbmFibGUgYmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3NhZ2luZyIgREVGQVVM
VCBPTikKLVdFQktJVF9GRUFUVVJFKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gIkVu
YWJsZSBjbGllbnQgYmFzZWQgZ2VvbG9jYXRpb24iIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRV
UkUoRU5BQkxFX0RBVEFMSVNUICJFbmFibGUgZGF0YWxpc3QiIERFRkFVTFQgT04pCiBXRUJLSVRf
RkVBVFVSRShFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyAiRW5hYmxlIGRhdGEgdHJhbnNmZXIg
aXRlbXMiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTiAiRW5hYmxlIGRldmljZSBvcmllbnRhdGlvbiIgREVGQVVMVCBPRkYpCkluZGV4OiBTb3Vy
Y2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9jbWFrZS9P
cHRpb25zV2luQ0UuY21ha2UJKHJldmlzaW9uIDEwNzk3NykKKysrIFNvdXJjZS9jbWFrZS9PcHRp
b25zV2luQ0UuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAgQUREX1NVQkRJ
UkVDVE9SWSgkezNSRFBBUlRZX0RJUn0gIiR7Q01BSwogCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVf
QkxPQiAiRW5hYmxlIGJsb2Igc2xpY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQg
T0ZGKQotV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiAiRW5h
YmxlIGNsaWVudCBiYXNlZCBnZW9sb2NhdGlvbiIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVS
RShFTkFCTEVfREFUQUxJU1QgIkVuYWJsZSBkYXRhbGlzdCIgREVGQVVMVCBPRkYpCiBXRUJLSVRf
RkVBVFVSRShFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyAiRW5hYmxlIGRhdGEgdHJhbnNmZXIg
aXRlbXMiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0ZBU1RfTU9CSUxFX1ND
Uk9MTElORyAiRW5hYmxlIGZhc3QgbW9iaWxlIHNjcm9sbGluZyIgREVGQVVMVCBPTikK
</data>
<flag name="commit-queue"
          id="129602"
          type_id="3"
          status="-"
          setter="pnormand"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131142</attachid>
            <date>2012-03-09 17:33:53 -0800</date>
            <delta_ts>2012-03-09 20:42:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>78853.patch</filename>
            <type>text/plain</type>
            <size>127039</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5ZWEzOTZmLi4yZTk4YmNk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4g
UG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNt
YWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2U6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBhYTZkOWNjLi4zNzQwZGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDoKKwogMjAxMi0wMy0wOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogRGF0ZS5wYXJzZSgiVHVlIE5vdiAyMyAy
MDo0MDowNSAyMDEwIEdNVCIpIHJldHVybnMgTmFOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggNThhMDJmNS4uZGQ3Y2RkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzQsOSAr
MzQsNiBAQAogRU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1F
KSk7CiBFTkFCTEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJF
QUxfUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNv
c3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVDsKIApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5B
QkxFX1dPUktFUlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7
CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9C
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAk
KEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxF
X0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxT
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJM
RV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19E
T00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklO
RElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09O
TFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChF
TkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTU19GSUxU
RVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFE
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJf
VEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFC
TEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1ND
UklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktF
UlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJM
RV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9M
T0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA3MTZiYmE1Li4wZDVhZmNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTExLDEyICsxMTExLDggQEAKICNkZWZpbmUgV1RG
X1VTRV9BQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKLS8qIEdlb2xvY2F0
aW9uIHJlcXVlc3QgcG9saWN5LiBwcmUtZW1wdGl2ZSBwb2xpY3kgaXMgdG8gYWNxdWlyZSB1c2Vy
IHBlcm1pc3Npb24gYmVmb3JlIGFjcXVpcmluZyBsb2NhdGlvbi4KLSAgIENsaWVudCBiYXNlZCBp
bXBsZW1lbnRhdGlvbnMgd2lsbCBoYXZlIG9wdGlvbiB0byBjaG9vc2UgYmV0d2VlbiBwcmUtZW1w
dGl2ZSBhbmQgbm9ucHJlLWVtcHRpdmUgcGVybWlzc2lvbiBwb2xpY3kuCi0gICBwcmUtZW1wdGl2
ZSBwZXJtaXNzaW9uIHBvbGljeSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGFsbCBjbGllbnQt
YmFzZWQgaW1wbGVtZW50YXRpb25zLiAqLwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCisvKiBHZW9sb2NhdGlvbiByZXF1ZXN0IHBvbGljeS4gcHJlLWVtcHRpdmUgcG9saWN5
IGlzIHRvIGFjcXVpcmUgdXNlciBwZXJtaXNzaW9uIGJlZm9yZSBhY3F1aXJpbmcgbG9jYXRpb24u
ICovCiAjZGVmaW5lIFdURl9VU0VfUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OIDEKLSNl
bmRpZgogCiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAjZGVmaW5lIEVOQUJMRV9CUkFOQ0hfQ09NUEFD
VElPTiAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJmY2MyNjUuLjMxYmZkMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xMDg3LDcgKzEwODcsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKICAgICBwbGF0Zm9ybS9DbG9ja0dlbmVyaWMuY3BwCi0gICAgcGxhdGZvcm0vR2VvbG9jYXRp
b25TZXJ2aWNlLmNwcAogICAgIHBsYXRmb3JtL0hpc3RvZ3JhbVN1cHBvcnQuY3BwCiAgICAgcGxh
dGZvcm0vS1VSTC5jcHAKICAgICBwbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwCkBAIC0xMjA5LDcg
KzEyMDgsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9ybS9tb2NrL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5jcHAKLSAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2su
Y3BwCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCiAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkOTEyNzY0Li41MDE1ZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTItMDMt
MDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlUG9zaXRpb25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6R2Vv
bG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnN0b3ApOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChHZW9sb2NhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmg6CisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVycm9yLmg6CisgICAgICAgICogTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJv
bWVDbGllbnQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFBhZ2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaDogUmVtb3ZlZC4KKwogMjAxMi0wMy0wOSAgUm9i
IEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZmlsZSBGcmFt
ZUJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDU4YTAyZjUuLmRkN2NkZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0zNCw5ICszNCw2IEBACiBFTkFCTEVfQkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFM
X1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9CTE9CX21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1F
TkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVB
TF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBAIC0xMzIsNCArMTI5LDQgQEAgRU5BQkxFX1dFQl9U
SU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQg
PSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5H
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkp
ICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
SU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNS
T0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAk
KEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFC
TEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChF
TkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05P
VElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJf
QVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJM
RV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklN
QVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NT
X1NIQURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkg
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9G
SUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05f
T0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9T
Q09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVO
QUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJM
RV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFD
SykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBlYmRjYzhmLi5mMzEzM2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtNDYxLDggKzQ2MSw4IEBAIGVuZGlmICMgRU5EIEVOQUJMRV9GSUxURVJTCiAj
IC0tLS0KIGlmIEVOQUJMRV9HRU9MT0NBVElPTgogCi1GRUFUVVJFX0RFRklORVMgKz0gRU5BQkxF
X0dFT0xPQ0FUSU9OPTEgRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xCi13ZWJjb3Jl
X2NwcGZsYWdzICs9IC1ERU5BQkxFX0dFT0xPQ0FUSU9OPTEgLURFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfR0VPTE9DQVRJT049MQor
d2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9HRU9MT0NBVElPTj0xCiBlbmRpZiAjIEVORCBF
TkFCTEVfR0VPTE9DQVRJT04KIAogIyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0NTY5NDE5Li45MDZjZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTMwMjUsOCArMzAyNSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GbG9hdENv
bnZlcnNpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVu
aXQuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0hhc2hUb29scy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9IaXN0b2dyYW1TdXBwb3J0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSGlzdG9n
cmFtU3VwcG9ydC5oIFwKQEAgLTMzMzYsOCArMzMzNCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50
TW9jay5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vy
dmljZU1vY2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVt
ZU1vY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1l
TW9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQmFzZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBhNjg5YTE4Li5hZGJkMTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MzgsMTMgKzM4LDExIEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNpbmNsdWRl
ICJDb29yZGluYXRlcy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTQsOCArNTIsNiBAQCBzdGF0aWMgY29uc3QgY2hhciBmcmFtZWxlc3NEb2N1
bWVudEVycm9yTWVzc2FnZVtdID0gIkdlb2xvY2F0aW9uIGNhbm5vdCBiZSB1c2VkCiAKIHN0YXRp
YyBjb25zdCBpbnQgZmlyc3RBdmFpbGFibGVXYXRjaElkID0gMTsKIAotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCi0KIHN0YXRpYyBQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBj
cmVhdGVHZW9wb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKIHsKICAgICBp
ZiAoIXBvc2l0aW9uKQpAQCAtODEsNyArNzcsNiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxQb3NpdGlv
bkVycm9yPiBjcmVhdGVQb3NpdGlvbkVycm9yKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9yKQogCiAg
ICAgcmV0dXJuIFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShjb2RlLCBlcnJvci0+bWVzc2FnZSgpKTsK
IH0KLSNlbmRpZgogCiBHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI6Okdlb05vdGlmaWVyKEdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbiwgUGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
LCBQYXNzUmVmUHRyPFBvc2l0aW9uT3B0aW9ucz4gb3B0aW9ucykKICAgICA6IG1fZ2VvbG9jYXRp
b24oZ2VvbG9jYXRpb24pCkBAIC0yMzQsOSArMjI5LDYgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlv
bj4gR2VvbG9jYXRpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQog
CiBHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQotI2lmICFFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgICwgbV9zZXJ2aWNlKEdlb2xvY2F0aW9uU2Vydmlj
ZTo6Y3JlYXRlKHRoaXMpKQotI2VuZGlmCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5rbm93
bikKIHsKIH0KQEAgLTI3MSwxMyArMjYzLDggQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcCgpCiAg
ICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjg3Nwog
CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiBtX2FsbG93
R2VvbG9jYXRpb24gPT0gSW5Qcm9ncmVzcykgewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCisgICAgaWYgKHBhZ2UgJiYgbV9hbGxvd0dlb2xvY2F0aW9uID09IEluUHJvZ3Jl
c3MpCiAgICAgICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jYW5jZWxQZXJtaXNz
aW9uUmVxdWVzdCh0aGlzKTsKLSNlbHNlCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQo
KS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKGZyYW1lKCksIHRo
aXMpOwotI2VuZGlmCi0gICAgfQogICAgIC8vIFRoZSBmcmFtZSBtYXkgYmUgbW92aW5nIHRvIGEg
bmV3IHBhZ2UgYW5kIHdlIHdhbnQgdG8gZ2V0IHRoZSBwZXJtaXNzaW9ucyBmcm9tIHRoZSBuZXcg
cGFnZSdzIGNsaWVudC4KICAgICBtX2FsbG93R2VvbG9jYXRpb24gPSBVbmtub3duOwogICAgIGNh
bmNlbEFsbFJlcXVlc3RzKCk7CkBAIC0yODksMTUgKzI3NiwxMSBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpzdG9wKCkKIAogR2VvcG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRo
aXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9wb3NpdGlvbihwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKS0+bGFzdFBvc2l0aW9uKCkpOwotI2Vsc2UKLSAgICBtX2xhc3RQb3NpdGlvbiA9IG1fc2Vy
dmljZS0+bGFzdFBvc2l0aW9uKCk7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtX2xhc3RQb3NpdGlv
bi5nZXQoKTsKIH0KQEAgLTYyNywxMSArNjEwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVz
dFBlcm1pc3Npb24oKQogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IEluUHJvZ3Jlc3M7CiAKICAg
ICAvLyBBc2sgdGhlIGVtYmVkZGVyOiBpdCBtYWludGFpbnMgdGhlIGdlb2xvY2F0aW9uIGNoYWxs
ZW5nZSBwb2xpY3kgaXRzZWxmLgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnJlcXVlc3RQZXJtaXNzaW9uKHRo
aXMpOwotI2Vsc2UKLSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShmcmFtZSgpLCB0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lk
IEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWRJbnRlcm5hbCgpCkBAIC02NzYsOCArNjU1LDYg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZVN1Y2Nlc3NDYWxsYmFja3MoKQogICAgICAgICBzdG9w
VXBkYXRpbmcoKTsKIH0KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0K
IHZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAgICAgcG9zaXRpb25DaGFu
Z2VkSW50ZXJuYWwoKTsKQEAgLTY4OSw1NCArNjY2LDIzIEBAIHZvaWQgR2VvbG9jYXRpb246OnNl
dEVycm9yKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9yKQogICAgIGhhbmRsZUVycm9yKHBvc2l0aW9u
RXJyb3IuZ2V0KCkpOwogfQogCi0jZWxzZQotCi12b2lkIEdlb2xvY2F0aW9uOjpnZW9sb2NhdGlv
blNlcnZpY2VQb3NpdGlvbkNoYW5nZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBzZXJ2aWNlKQotewot
ICAgIEFTU0VSVF9VTlVTRUQoc2VydmljZSwgc2VydmljZSA9PSBtX3NlcnZpY2UpOwotICAgIEFT
U0VSVChtX3NlcnZpY2UtPmxhc3RQb3NpdGlvbigpKTsKLQotICAgIHBvc2l0aW9uQ2hhbmdlZElu
dGVybmFsKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uU2VydmljZUVycm9y
T2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBzZXJ2aWNlKQotewotICAgIEFTU0VSVChzZXJ2
aWNlLT5sYXN0RXJyb3IoKSk7Ci0KLSAgICAvLyBOb3RlIHRoYXQgd2UgZG8gbm90IHN0b3AgdGlt
ZXJzIGhlcmUuIEZvciBvbmUtc2hvdHMsIHRoZSByZXF1ZXN0IGlzCi0gICAgLy8gY2xlYXJlZCBp
biBoYW5kbGVFcnJvci4gRm9yIHdhdGNoZXJzLCB0aGUgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSB0
aW1lciBpcwotICAgIC8vIG5vdCBjbGVhcmVkLgotICAgIGhhbmRsZUVycm9yKHNlcnZpY2UtPmxh
c3RFcnJvcigpKTsKLX0KLQotI2VuZGlmCi0KIGJvb2wgR2VvbG9jYXRpb246OnN0YXJ0VXBkYXRp
bmcoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxl
cigpLT5hZGRPYnNlcnZlcih0aGlzLCBub3RpZmllci0+bV9vcHRpb25zLT5lbmFibGVIaWdoQWNj
dXJhY3koKSk7CiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBtX3NlcnZpY2Ut
PnN0YXJ0VXBkYXRpbmcobm90aWZpZXItPm1fb3B0aW9ucy5nZXQoKSk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBHZW9sb2NhdGlvbjo6c3RvcFVwZGF0aW5nKCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7Ci0jZWxzZQotICAgIG1fc2VydmljZS0+c3RvcFVw
ZGF0aW5nKCk7Ci0jZW5kaWYKLQogfQogCiAjaWYgVVNFKFBSRUVNUFRfR0VPTE9DQVRJT05fUEVS
TUlTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb24uaAppbmRleCAyYzZiYWI4Li45OGRmOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCkBAIC0zNSwyNSArMzUsMTYgQEAKICNp
bmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCi0jaWYgIUVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2
aWNlLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEZyYW1lOwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiBjbGFz
cyBHZW9sb2NhdGlvblBvc2l0aW9uOwogY2xhc3MgR2VvbG9jYXRpb25FcnJvcjsKLSNlbmRpZgog
Y2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIEdlb2xv
Y2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb24+LCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0Ci0jaWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICYmIEVOQUJMRShH
RU9MT0NBVElPTikKLSAgICAsIHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQKLSNlbmRp
ZgogewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlb2xvY2F0aW9uPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpAQCAtNjksMTIgKzYwLDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRJc0FsbG93ZWQoYm9vbCk7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCBzZXRFcnJv
cihHZW9sb2NhdGlvbkVycm9yKik7Ci0jZWxzZQotICAgIEdlb2xvY2F0aW9uU2VydmljZSogZ2V0
R2VvbG9jYXRpb25TZXJ2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlLmdldCgpOyB9Ci0j
ZW5kaWYKIAogcHJpdmF0ZToKICAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7CkBAIC0x
NTgsMTIgKzE0NSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVQZW5kaW5nUGVybWlzc2lv
bk5vdGlmaWVycygpOwogI2VuZGlmCiAKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikgJiYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgIC8vIEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvblNlcnZpY2VQb3NpdGlvbkNoYW5nZWQo
R2VvbG9jYXRpb25TZXJ2aWNlKik7Ci0gICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uU2Vydmlj
ZUVycm9yT2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2aWNlKik7Ci0jZW5kaWYKLQogICAgIFBhc3NS
ZWZQdHI8R2VvTm90aWZpZXI+IHN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFBvc2l0aW9uQ2FsbGJh
Y2s+LCBQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UG9zaXRp
b25PcHRpb25zPik7CiAKICAgICB2b2lkIGZhdGFsRXJyb3JPY2N1cnJlZChHZW9Ob3RpZmllciop
OwpAQCAtMTc0LDkgKzE1NSw2IEBAIHByaXZhdGU6CiAKICAgICBHZW9Ob3RpZmllclNldCBtX29u
ZVNob3RzOwogICAgIFdhdGNoZXJzIG1fd2F0Y2hlcnM7Ci0jaWYgIUVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCi0gICAgT3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4gbV9zZXJ2aWNl
OwotI2VuZGlmCiAjaWYgVVNFKFBSRUVNUFRfR0VPTE9DQVRJT05fUEVSTUlTU0lPTikKICAgICBH
ZW9Ob3RpZmllclNldCBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJzOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggOTY5NGE5OS4uOTlkNmJiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25D
b250cm9sbGVyLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjYsNSArMTI0LDMgQEAgR2VvbG9jYXRp
b25Qb3NpdGlvbiogR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMDYxMWRjMy4uNDY1YmZkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9u
Q29udHJvbGxlcl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNzUsNiArNzMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gR2Vv
bG9jYXRpb25Db250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVycm9yLmgKaW5kZXggMmEzYmFkNC4uNzM1MmU2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVy
cm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkVycm9yLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25FcnJvcl9oCiAj
ZGVmaW5lIEdlb2xvY2F0aW9uRXJyb3JfaAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLQogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjAsNiArNTgsNCBA
QCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gR2VvbG9jYXRpb25FcnJvcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb25Qb3NpdGlvbi5oCmluZGV4IDlmMjViMTEuLjdiMTU2NDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uUG9zaXRpb25faAogI2RlZmlu
ZSBHZW9sb2NhdGlvblBvc2l0aW9uX2gKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCi0KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMTA2LDYgKzEwNCw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNlbmRpZiAvLyBHZW9sb2NhdGlvblBvc2l0aW9uX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDQzNzJlNjguLjFjNDUwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTA2NSw3
ICsxMDY1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3Bw
IFwKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZVN5c3Rl
bS5jcHAgXAotICAgIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXAogICAgIHBsYXRm
b3JtL0hpc3RvZ3JhbVN1cHBvcnQuY3BwIFwKICAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9x
dC9JbWFnZUZyYW1lUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uY3BwIFwKQEAgLTExMzEsNyArMTEzMCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBcCi0gICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCBc
CiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvQmxvYkRhdGEuY3BwIFwKQEAgLTIxNTAsMTIgKzIxNDgsMTAgQEAgSEVBREVSUyAr
PSBcCiAgICAgcGxhdGZvcm0vRmlsZVN0cmVhbS5oIFwKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFt
Q2xpZW50LmggXAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCi0gICAgcGxhdGZvcm0vR2Vv
bG9jYXRpb25TZXJ2aWNlLmggXAogICAgIHBsYXRmb3JtL0hpc3RvZ3JhbVN1cHBvcnQuaCBcCiAg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmggXAogICAgIHBsYXRmb3Jt
L21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggXAogICAgIHBsYXRmb3JtL21vY2sv
R2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBcCi0gICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlv
blNlcnZpY2VNb2NrLmggXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhNDBmOGI3Li41MDUyODg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTE3OCw3ICsxMTc4LDYgQEAgX19aTks3V2ViQ29y
ZTExRnJhbWVMb2FkZXIxN25ldHdvcmtpbmdDb250ZXh0RXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1l
TG9hZGVyMjBhY3RpdmVEb2N1bWVudExvYWRlckV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRl
cjI3bnVtUGVuZGluZ09yTG9hZGluZ1JlcXVlc3RzRWIKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9h
ZGVyOGxvYWRUeXBlRXYKLV9fWk5LN1dlYkNvcmUxMUdlb2xvY2F0aW9uNWZyYW1lRXYKIF9fWk5L
N1dlYkNvcmUxMUhpc3RvcnlJdGVtMTB2aXNpdENvdW50RXYKIF9fWk5LN1dlYkNvcmUxMUhpc3Rv
cnlJdGVtMTFoYXNDaGlsZHJlbkV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTExb3JpZ2lu
YWxVUkxFdgpAQCAtMTY5MCwxMyArMTY4OSw5IEBAIF9fWk43V2ViQ29yZThEcmFnRGF0YUMxRVJL
TjNXVEY2U3RyaW5nRVJLTlNfOEludFBvaW50RVM3X05TXzEzRHJhZ09wZXJhdGlvbkVOU18yCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQorX19aTks3V2ViQ29yZTExR2VvbG9jYXRpb241ZnJhbWVFdgogX19aTjdX
ZWJDb3JlMjFHZW9sb2NhdGlvbkNvbnRyb2xsZXIxM2Vycm9yT2NjdXJyZWRFUE5TXzE2R2VvbG9j
YXRpb25FcnJvckUKIF9fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyMTVwb3NpdGlv
bkNoYW5nZWRFUE5TXzE5R2VvbG9jYXRpb25Qb3NpdGlvbkUKLSNlbHNlCi1fX1pON1dlYkNvcmUy
Mkdlb2xvY2F0aW9uU2VydmljZU1vY2sxMXNldFBvc2l0aW9uRU4zV1RGMTBQYXNzUmVmUHRySU5T
XzExR2VvcG9zaXRpb25FRUUKLV9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhz
ZXRFcnJvckVOM1dURjEwUGFzc1JlZlB0cklOU18xM1Bvc2l0aW9uRXJyb3JFRUUKLSNlbmRpZgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJh
MzgzZjYuLjcyY2U1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI5NDIsOCArMjk0Miw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vRmxvYXRDb252ZXJzaW9uLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Nsb2NrR2Vu
ZXJpYy5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwJywK
LSAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vSGFzaFRvb2xzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkwuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcCcsCkBAIC00MDY1LDggKzQw
NjMsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0nLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwJywKLSAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwJywKLSAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzMDFjMDY2Li43
OThjMWFiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtMjczMTgsMTQgKzI3MzE4LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
R2VvbG9jYXRpb25TZXJ2aWNlLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEhpc3RvZ3JhbVN1cHBvcnQuY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KQEAgLTMzNTYxLDE0ICszMzU1Myw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJ
CQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxtb2NrXEdlb2xvY2F0aW9u
U2VydmljZU1vY2suY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgiCi0J
CQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxtb2NrXFNjcm9sbGJhclRoZW1lTW9jay5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0dlb2xvY2F0aW9uQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTR2VvbG9jYXRpb25DdXN0b20uY3Bw
CmluZGV4IGNhYWMzODAuLjhhOTE4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTR2VvbG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTR2VvbG9jYXRpb25DdXN0b20uY3BwCkBAIC0zNywxMCArMzcsNiBAQAogI2luY2x1
ZGUgIkpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25PcHRpb25z
LmgiCiAKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlICJH
ZW9sb2NhdGlvblNlcnZpY2UuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IDNmYzIwNGQuLmE2NWY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTIxNyw5ICsyMTcsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdElu
dG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHt9
Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JG
cmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikge30KLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUq
LCBHcmFwaGljc0xheWVyKikge30KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpIHt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCAyNmQ3NGFiLi5iYzUzZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTIx
NCwxMyArMjE0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKIAotICAgICAgICAvLyBGSVhNRTog
UmVtb3ZlIG9uY2UgYWxsIHBvcnRzIGFyZSB1c2luZyBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24u
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MwotICAgICAgICAv
LyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLCB0aGVzZSB0d28gbWV0aG9kcyBoYXZlIG1v
dmVkIHRvIEdlb2xvY2F0aW9uQ2xpZW50LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTAwNjEKLSAgICAgICAgLy8gVGhpcyBjYW4gYmUgZWl0aGVyIGEgc3luY2hyb25v
dXMgb3IgYXN5bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkg
YXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uCi0gICAgICAgIC8vIHRvIHVzZSBHZW9sb2Nh
dGlvbi4KLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9j
YXRpb24qKSA9IDA7Ci0KICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgICAgIHZpcnR1YWwg
UGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJD
bGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
N2I2YjlmZS4uMjI0N2FlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAj
aW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgpAQCAtNzUsMTAgKzc2LDYgQEAKICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCi0j
aWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlICJHZW9sb2NhdGlv
bkNvbnRyb2xsZXIuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBI
YXNoU2V0PFBhZ2UqPiogYWxsUGFnZXM7CkBAIC0xMjUsOSArMTIyLDcgQEAgUGFnZTo6UGFnZShQ
YWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAsIG1f
aW5zcGVjdG9yQ29udHJvbGxlcihJbnNwZWN0b3JDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFn
ZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgLCBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcihHZW9sb2NhdGlv
bkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCkp
Ci0jZW5kaWYKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICwgbV9wb2ludGVyTG9ja0Nv
bnRyb2xsZXIoUG9pbnRlckxvY2tDb250cm9sbGVyOjpjcmVhdGUodGhpcykpCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggY2RmN2ZlNi4uYzVkYWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE2Nyw5
ICsxNjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsg
cmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCi0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVy
KiBnZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uQ29u
dHJvbGxlci5nZXQoKTsgfQotI2VuZGlmCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAg
ICAgUG9pbnRlckxvY2tDb250cm9sbGVyKiBwb2ludGVyTG9ja0NvbnRyb2xsZXIoKSBjb25zdCB7
IHJldHVybiBtX3BvaW50ZXJMb2NrQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCkBAIC0zNTgs
OSArMzU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgICAgIE93blB0cjxJbnNwZWN0b3JDb250cm9sbGVyPiBtX2luc3BlY3RvckNvbnRyb2xsZXI7
CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgICAgICBP
d25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcjsKLSNl
bmRpZgogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIE93blB0cjxQb2ludGVyTG9j
a0NvbnRyb2xsZXI+IG1fcG9pbnRlckxvY2tDb250cm9sbGVyOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjg3OTNhMS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKLQotI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgotI2lu
Y2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKLQotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2lm
ICFFTkFCTEUoR0VPTE9DQVRJT04pIHx8IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
Ci1zdGF0aWMgUGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IGNyZWF0ZUdlb2xvY2F0aW9u
U2VydmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KikKLXsKLSAgICByZXR1cm4gbnVs
bHB0cjsKLX0KLQotR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24qIEdlb2xvY2F0
aW9uU2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAmY3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNl
TnVsbDsKLUdlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNl
cnZpY2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlvbiA9ICZjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VO
dWxsOwotI2Vsc2UKLUdlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2Nh
dGlvblNlcnZpY2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VN
b2NrOjpjcmVhdGU7Ci0jZW5kaWYKLQotUGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IEdl
b2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50
KQotewotICAgIHJldHVybiAoKnNfZmFjdG9yeUZ1bmN0aW9uKShjbGllbnQpOwotfQotCi0jaWYg
RU5BQkxFKEdFT0xPQ0FUSU9OKQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKQot
ewotICAgIHNfZmFjdG9yeUZ1bmN0aW9uID0gc19tb2NrRmFjdG9yeUZ1bmN0aW9uOwotfQotCi12
b2lkIEdlb2xvY2F0aW9uU2VydmljZTo6c2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0
aW9uIGYpCi17Ci0gICAgc19tb2NrRmFjdG9yeUZ1bmN0aW9uID0gZjsKLX0KLQotR2VvbG9jYXRp
b25TZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBj
bGllbnQpCi0gICAgOiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChjbGllbnQpCi17Ci0gICAg
QVNTRVJUKG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KTsKLX0KLQotdm9pZCBHZW9sb2NhdGlv
blNlcnZpY2U6OnBvc2l0aW9uQ2hhbmdlZCgpCi17Ci0gICAgbV9nZW9sb2NhdGlvblNlcnZpY2VD
bGllbnQtPmdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZCh0aGlzKTsKLX0KLQotdm9p
ZCBHZW9sb2NhdGlvblNlcnZpY2U6OmVycm9yT2NjdXJyZWQoKQotewotICAgIG1fZ2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50LT5nZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3VycmVkKHRoaXMpOwot
fQotCi0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWJhOWZkNy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2Nh
dGlvblNlcnZpY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdlb2xvY2F0aW9uU2Vy
dmljZV9oCi0jZGVmaW5lIEdlb2xvY2F0aW9uU2VydmljZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIEdlb2xvY2F0aW9uU2VydmljZTsKLWNsYXNzIEdlb3Bvc2l0aW9uOwot
Y2xhc3MgUG9zaXRpb25FcnJvcjsKLWNsYXNzIFBvc2l0aW9uT3B0aW9uczsKLQotY2xhc3MgR2Vv
bG9jYXRpb25TZXJ2aWNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlv
blNlcnZpY2VDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNl
UG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2VydmljZSopID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZ2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqKSA9
IDA7Ci19OwotCi1jbGFzcyBHZW9sb2NhdGlvblNlcnZpY2UgewotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEdlb2xvY2F0aW9uU2VydmljZSk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8R2VvbG9jYXRpb25TZXJ2aWNlPiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7
Ci0gICAgdmlydHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNlKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKSB7IHJldHVybiBmYWxzZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSB7IH0KLQotICAgIHZpcnR1YWwgR2VvcG9zaXRp
b24qIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIFBvc2l0
aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLQotICAgIHZvaWQgcG9z
aXRpb25DaGFuZ2VkKCk7Ci0gICAgdm9pZCBlcnJvck9jY3VycmVkKCk7Ci0KLSAgICBzdGF0aWMg
dm9pZCB1c2VNb2NrKCk7Ci0gICAgdHlwZWRlZiBQYXNzT3duUHRyPEdlb2xvY2F0aW9uU2Vydmlj
ZT4gKEZhY3RvcnlGdW5jdGlvbikoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0aW9uKTsKLQotcHJvdGVj
dGVkOgotICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsK
LSAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGdlb2xvY2F0aW9uU2VydmljZUNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OyB9Ci0KLXByaXZhdGU6
Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVu
dDsKLQotICAgIHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwotICAg
IHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfbW9ja0ZhY3RvcnlGdW5jdGlvbjsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdlb2xvY2F0aW9uU2VydmljZV9oCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGll
bnRNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGll
bnRNb2NrLmNwcAppbmRleCBkMDY3YzhhLi5hNGEyYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBAIC0zMSw4
ICszMSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGll
bnRNb2NrLmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5j
bHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJv
ci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKQEAgLTE3OCw1ICsxNzYsMyBA
QCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6Y29udHJvbGxlclRpbWVyRmlyZWQoVGltZXI8
R2VvbG9jYXRpb25DbGllbnRNb2NrPiogdAogfQogCiB9IC8vIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAppbmRleCBiNDAwMTY2Li40
YzIzOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmgKQEAgLTMxLDggKzMxLDYgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25D
bGllbnRNb2NrX2gKICNkZWZpbmUgR2VvbG9jYXRpb25DbGllbnRNb2NrX2gKIAotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAg
LTk1LDYgKzkzLDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmY1MzRkZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2su
aCIKLQotI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNp
bmNsdWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCi0jaW5jbHVk
ZSAiUG9zaXRpb25FcnJvci5oIgotI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLUdlb2xvY2F0aW9uU2VydmljZU1vY2s6Okdlb2xvY2F0aW9uU2Vy
dmljZVNldCogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19pbnN0YW5jZXMgPSAwOwotUmVmUHRy
PEdlb3Bvc2l0aW9uPiogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19sYXN0UG9zaXRpb247Ci1S
ZWZQdHI8UG9zaXRpb25FcnJvcj4qIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNfbGFzdEVycm9y
OwotCi1QYXNzT3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4gR2VvbG9jYXRpb25TZXJ2aWNlTW9j
azo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQotewotICAgIGluaXRT
dGF0aWNzKCk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
KGNsaWVudCkpOwotfQotCi1HZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQotICAgIDogR2VvbG9jYXRp
b25TZXJ2aWNlKGNsaWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2s6OnRpbWVyRmlyZWQpCi0gICAgLCBtX2lzQWN0aXZlKGZhbHNlKQotewotICAgIHNfaW5z
dGFuY2VzLT5hZGQodGhpcyk7Ci19Ci0KLUdlb2xvY2F0aW9uU2VydmljZU1vY2s6On5HZW9sb2Nh
dGlvblNlcnZpY2VNb2NrKCkKLXsKLSAgICBHZW9sb2NhdGlvblNlcnZpY2VTZXQ6Oml0ZXJhdG9y
IGl0ZXIgPSBzX2luc3RhbmNlcy0+ZmluZCh0aGlzKTsKLSAgICBBU1NFUlQoaXRlciAhPSBzX2lu
c3RhbmNlcy0+ZW5kKCkpOwotICAgIHNfaW5zdGFuY2VzLT5yZW1vdmUoaXRlcik7Ci0gICAgY2xl
YW5VcFN0YXRpY3MoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRQb3Np
dGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbikKLXsKLSAgICBpbml0U3RhdGlj
cygpOwotICAgIEdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jaygpOwotICAgICpzX2xhc3RQb3Np
dGlvbiA9IHBvc2l0aW9uOwotICAgICpzX2xhc3RFcnJvciA9IDA7Ci0gICAgbWFrZUdlb2xvY2F0
aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2
aWNlTW9jazo6c2V0RXJyb3IoUGFzc1JlZlB0cjxQb3NpdGlvbkVycm9yPiBlcnJvcikKLXsKLSAg
ICBpbml0U3RhdGljcygpOwotICAgIEdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jaygpOwotICAg
ICpzX2xhc3RFcnJvciA9IGVycm9yOwotICAgICpzX2xhc3RQb3NpdGlvbiA9IDA7Ci0gICAgbWFr
ZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Ci19Ci0KLWJvb2wgR2VvbG9j
YXRpb25TZXJ2aWNlTW9jazo6c3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKQotewotICAg
IG1faXNBY3RpdmUgPSB0cnVlOwotICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgIHJl
dHVybiB0cnVlOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnN0b3BVcGRhdGlu
ZygpCi17Ci0gICAgbV9pc0FjdGl2ZSA9IGZhbHNlOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2Vy
dmljZU1vY2s6OnRpbWVyRmlyZWQoVGltZXI8R2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4qIHRpbWVy
KQotewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKLSAgICBt
YWtlR2VvbG9jYXRpb25DYWxsYmFjaygpOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZU1v
Y2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygpCi17Ci0gICAgR2Vv
bG9jYXRpb25TZXJ2aWNlU2V0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBzX2luc3RhbmNlcy0+ZW5k
KCk7Ci0gICAgZm9yIChHZW9sb2NhdGlvblNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIg
PSBzX2luc3RhbmNlcy0+YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgKCpp
dGVyKS0+bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNl
cnZpY2VNb2NrOjptYWtlR2VvbG9jYXRpb25DYWxsYmFjaygpCi17Ci0gICAgaWYgKCFtX2lzQWN0
aXZlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoKnNfbGFzdFBvc2l0aW9uKQotICAgICAg
ICBwb3NpdGlvbkNoYW5nZWQoKTsKLSAgICBlbHNlIGlmICgqc19sYXN0RXJyb3IpCi0gICAgICAg
IGVycm9yT2NjdXJyZWQoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjppbml0
U3RhdGljcygpCi17Ci0gICAgaWYgKHNfaW5zdGFuY2VzID09IDApIHsgCi0gICAgICAgIHNfaW5z
dGFuY2VzID0gbmV3IEdlb2xvY2F0aW9uU2VydmljZVNldDsKLSAgICAgICAgc19sYXN0UG9zaXRp
b24gPSBuZXcgUmVmUHRyPEdlb3Bvc2l0aW9uPjsKLSAgICAgICAgc19sYXN0RXJyb3IgPSBuZXcg
UmVmUHRyPFBvc2l0aW9uRXJyb3I+OwotICAgIH0KLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOjpjbGVhblVwU3RhdGljcygpCi17Ci0gICAgaWYgKHNfaW5zdGFuY2VzLT5zaXplKCkg
PT0gMCkgewotICAgICAgICBkZWxldGUgc19pbnN0YW5jZXM7Ci0gICAgICAgIHNfaW5zdGFuY2Vz
ID0gMDsKLSAgICAgICAgZGVsZXRlIHNfbGFzdFBvc2l0aW9uOwotICAgICAgICBkZWxldGUgc19s
YXN0RXJyb3I7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM5NzhmZS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2su
aAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdlb2xvY2F0aW9uU2VydmljZU1vY2tfaAot
I2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKLQotI2luY2x1ZGUgIkdlb2xvY2F0aW9u
U2VydmljZS5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgbW9jayBpbXBs
ZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uU2VydmljZSBmb3IgdGVzdGluZwotLy8gcHVycG9z
ZXMuIEl0IGFsbG93cyB0aGUgcG9zaXRpb24gb3IgZXJyb3IgdGhhdCB3aWxsIGJlIHJlcG9ydGVk
IGJ5IHRoaXMgY2xhc3MKLS8vIHRvIGJlIHNldCBtYW51YWxseSB1c2luZyB0aGUgc2V0UG9zaXRp
b24gYW5kIHNldEVycm9yIG1ldGhvZHMuIE9iamVjdHMgb2YKLS8vIHRoaXMgY2xhc3MgY2FsbCBi
YWNrIHRvIHRoZWlyIHJlc3BlY3RpdmUgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50IHdpdGggdGhl
Ci0vLyBwb3NpdGlvbiBvciBlcnJvciBldmVyeSB0aW1lIGVpdGhlciBvZiB0aGVzZSBpcyB1cGRh
dGVkLgotY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayA6IHB1YmxpYyBHZW9sb2NhdGlvblNl
cnZpY2UgewotICBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R2VvbG9jYXRpb25TZXJ2
aWNlPiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7Ci0KLSAgICBHZW9sb2NhdGlv
blNlcnZpY2VNb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOwotICAgIHZpcnR1YWwgfkdl
b2xvY2F0aW9uU2VydmljZU1vY2soKTsKLQotICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5n
KFBvc2l0aW9uT3B0aW9ucyopOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLQot
ICAgIHN0YXRpYyB2b2lkIHNldFBvc2l0aW9uKFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0
aW9uKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRFcnJvcihQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+
IHBvc2l0aW9uKTsKLQotICAgIHZpcnR1YWwgR2VvcG9zaXRpb24qIGxhc3RQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIHNfbGFzdFBvc2l0aW9uLT5nZXQoKTsgfQotICAgIHZpcnR1YWwgUG9zaXRp
b25FcnJvciogbGFzdEVycm9yKCkgY29uc3QgeyByZXR1cm4gc19sYXN0RXJyb3ItPmdldCgpOyB9
Ci0KLSAgcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBtYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zy
b21BbGxJbnN0YW5jZXMoKTsKLSAgICB2b2lkIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Ci0K
LSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8R2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4qKTsKLQot
ICAgIHN0YXRpYyB2b2lkIGluaXRTdGF0aWNzKCk7Ci0gICAgc3RhdGljIHZvaWQgY2xlYW5VcFN0
YXRpY3MoKTsKLQotICAgIHR5cGVkZWYgSGFzaFNldDxHZW9sb2NhdGlvblNlcnZpY2VNb2NrKj4g
R2VvbG9jYXRpb25TZXJ2aWNlU2V0OwotICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2VTZXQq
IHNfaW5zdGFuY2VzOwotCi0gICAgc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4qIHNfbGFzdFBv
c2l0aW9uOwotICAgIHN0YXRpYyBSZWZQdHI8UG9zaXRpb25FcnJvcj4qIHNfbGFzdEVycm9yOwot
Ci0gICAgVGltZXI8R2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4gbV90aW1lcjsKLQotICAgIGJvb2wg
bV9pc0FjdGl2ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdl
b2xvY2F0aW9uU2VydmljZU1vY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAKaW5kZXggYWQ0MzM2MC4uYWNjZTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2UuY3BwCkBAIC00NiwxMiArNDYsMTAgQEAKICNpbmNsdWRlICJFZGl0b3JDbGll
bnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKICNpZiBFTkFCTEVfRFJUCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRN
b2NrLmgiCiAjZW5kaWYKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFj
a0JlcnJ5LmgiCi0jZW5kaWYKICNpbmNsdWRlICJHcm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
SFRNTEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCkBA
IC00MTUsNyArNDEzLDYgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5pdChjb25zdCBXZWJTdHJp
bmcmIHBhZ2VHcm91cE5hbWUpCiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IGRyYWdDbGll
bnQ7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gaW5zcGVjdG9yQ2xpZW50Owog
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAvLyBOb3RlIHRoZSBv
YmplY3Qgd2lsbCBiZSBkZXN0cm95ZWQgd2hlbiB0aGUgcGFnZSBpcyBkZXN0cm95ZWQuCiAjaWYg
RU5BQkxFX0RSVAogICAgIGlmIChnZXRlbnYoImRydFJ1biIpKQpAQCAtNDI1LDcgKzQyMiw2IEBA
IHZvaWQgV2ViUGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1l
KQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25D
bGllbnQgPSBuZXcgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeSh0aGlzKTsK
ICNlbHNlCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBtX2dlb2xvY2F0aW9u
Q2xpZW50OwotI2VuZGlmCiAKICAgICBwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBu
ZXcgRGV2aWNlTW90aW9uQ2xpZW50QmxhY2tCZXJyeSh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5k
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEJsYWNr
QmVycnkodGhpcyk7CkBAIC00MzUsNyArNDMxLDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5p
dChjb25zdCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5v
dGlmaWNhdGlvbihtX3BhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNlKCkp
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAmJiBFTkFC
TEVfRFJUCisjaWYgRU5BQkxFX0RSVAogICAgIC8vIEluIGNhc2UgcnVubmluZyBpbiBEdW1wUmVu
ZGVyVHJlZSBtb2RlIHNldCB0aGUgY29udHJvbGxlciB0byBtb2NrIHByb3ZpZGVyLgogICAgIGlm
IChnZXRlbnYoImRydFJ1biIpKQogICAgICAgICBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVu
dE1vY2sqPihwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCktPnNldENvbnRyb2xsZXIobV9w
YWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwppbmRleCBiMzYzZWQzLi42NDk0NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjppbml0KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVGZWF0dXJlcy5pbjoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJv
bWVDbGllbnRCbGFja0JlcnJ5KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydC5jcHA6CisgICAgICAgICh0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRH
ZW9sb2NhdGlvbk1vY2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2Nr
R2VvbG9jYXRpb25FcnJvcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1v
Y2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisKIDIwMTItMDMtMDkgIENoYXJsZXMgV2Vp
ICA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBXZWIgTm90aWZpY2F0aW9uIG5vdCB3b3JraW5nIGFmdGVyIHJlYmFzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZl
YXR1cmVzLmluIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0
RGF0YUVuYWJsZUZlYXR1cmVzLmluCmluZGV4IDQ0NTY1ZGIuLjkzMjZkODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVG
ZWF0dXJlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
QWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KQEAgLTcsNyArNyw2IEBAIEJMQUNLQkVSUllfQ1JF
REVOVElBTF9QRVJTSVNUCiBCTE9CCiBCUkFOQ0hfQ09NUEFDVElPTgogQ0hBTk5FTF9NRVNTQUdJ
TkcKLUNMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogQ09ERUJMT0NLX1NBTVBMSU5HCiBDT01QQVJF
X0FORF9TV0FQCiBDT01QVVRFRF9HT1RPX0lOVEVSUFJFVEVSCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5jcHAKaW5kZXggM2ZjNGFmYi4uNWI5NzRkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5LmNwcApAQCAtNDU4LDI2ICs0NTgsNiBAQCB2b2lkIENocm9tZUNsaWVu
dEJsYWNrQmVycnk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgbgogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRpb24q
IGdlb2xvY2F0aW9uKQotewotICAgIGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5n
cy0+aXNHZW9sb2NhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICBnZW9sb2NhdGlvbi0+c2V0SXNB
bGxvd2VkKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBET01XaW5kb3cqIHdp
bmRvdyA9IGZyYW1lLT5kb21XaW5kb3coKTsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgQ1N0cmluZyBsYXRpbk9yaWdpbiA9IGZyYW1lT3JpZ2luKGZyYW1lKTsKLQot
ICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5yZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uKG1fd2ViUGFnZVByaXZhdGUtPm1fZ2VvbG9jYXRpb25DbGllbnQsIGdlb2xvY2F0aW9uLCBs
YXRpbk9yaWdpbi5kYXRhKCksIGxhdGluT3JpZ2luLmxlbmd0aCgpKTsKLX0KLQotdm9pZCBDaHJv
bWVDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCi17Ci0gICAgbV93ZWJQYWdl
UHJpdmF0ZS0+bV9jbGllbnQtPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvbihtX3dlYlBhZ2VQ
cml2YXRlLT5tX2dlb2xvY2F0aW9uQ2xpZW50LCBnZW9sb2NhdGlvbik7Ci19Ci0KIHZvaWQgQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeTo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gY2hvb3NlcikKIHsKICAgICBTaGFyZWRBcnJheTxXZWJTdHJpbmc+IGluaXRpYWxG
aWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGIyNGQzOWMuLmY0NzBm
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaApAQCAtOTAsOCArOTAsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5z
aWduZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopOwogICAgIHZpcnR1YWwg
dm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwogICAgIHZp
cnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUlj
b25Mb2FkZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKaW5kZXggYzhlZGU2ZS4uMzFmMWRjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCkBAIC00MCwxMyArNDAsMTEgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNfbGlua3NJbmNs
dWRlZEluVGFiQ2hhaW4gPSB0cnVlOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soR2Vv
bG9jYXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICAgQVNTRVJUKGdldGVudigiZHJ0UnVuIikp
OwogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY2xpZW50
KTsKIH0KLSNlbmRpZgogCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OkR1bXBSZW5kZXJUcmVlU3Vw
cG9ydCgpCiB7CkBAIC05OCwyNiArOTYsMTggQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6
OmR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRnJhbWUqIG1haW5GcmFtZSwgaW50IGQKIAog
aW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHMoV2ViUGFnZSogd2ViUGFnZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9
IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdlYlBhZ2UpLT5nZW9sb2NhdGlvbkNv
bnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIHJldHVybiBtb2NrQ2xpZW50LT5udW1iZXJPZlBl
bmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHdlYlBh
Z2UpOwotICAgIHJldHVybiAtMTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydDo6cmVzZXRHZW9sb2NhdGlvbk1vY2soV2ViUGFnZSogd2ViUGFnZSkKIHsKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayog
bW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdlYlBhZ2UpLT5n
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnJlc2V0
KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9s
b2NhdGlvbkVycm9yKFdlYlBhZ2UqIHdlYlBhZ2UsIGludCBlcnJvckNvZGUsIGNvbnN0IFN0cmlu
ZyBtZXNzYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAg
R2VvbG9jYXRpb25FcnJvcjo6RXJyb3JDb2RlIGNvZGUgPSBHZW9sb2NhdGlvbkVycm9yOjpQb3Np
dGlvblVuYXZhaWxhYmxlOwogICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CiAgICAgY2FzZSBQb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRDoKQEAgLTEzMCwyMyArMTIwLDE4IEBAIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihXZWJQYWdlKiB3
ZWJQYWdlLCBpbnQgZXJyb3JDCiAKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGll
bnQgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjb3JlUGFnZSh3ZWJQYWdl
KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5z
ZXRFcnJvcihHZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoY29kZSwgbWVzc2FnZSkpOwotI2VuZGlm
CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJt
aXNzaW9uKFdlYlBhZ2UqIHdlYlBhZ2UsIGJvb2wgYWxsb3dlZCkKIHsKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0Ns
aWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdlYlBhZ2UpLT5nZW9sb2Nh
dGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNldFBlcm1pc3Np
b24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYlBhZ2UqIHdlYlBhZ2UsIGRvdWJsZSBsYXRpdHVk
ZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQogewotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xp
ZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Uod2ViUGFnZSktPmdlb2xvY2F0
aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0UG9zaXRpb24o
R2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGN1cnJlbnRUaW1lKCksIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5KSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnQ6OnNjYWxlUGFnZUJ5KFdlYlBhZ2UqIHdlYlBhZ2UsIGZsb2F0IHNjYWxlRmFjdG9yLCBmbG9h
dCB4LCBmbG9hdCB5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1ZTYzMmEzLi5mN2I3
MWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAz
LTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRJbXBsKToKKwogMjAxMi0wMy0wOCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRXhwb3NlIHRoZSBzaGFyZWQgZ3Jh
cGhpY3MgY29udGV4dCBvbiBXZWJWaWV3IHNvIGNhbGxlcnMgY2FuIGFsbG9jYXRlIHJlc291cmNl
cyBvbiB0aGUgbWFpbiB0aHJlYWQgZm9yIHRoZSBjb21wb3NpdG9yIHRvIHVzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDVhMDMzYzguLjFhNDEyOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTM2LDcgKzM2LDYgQEAKICAgICAgICdFTkFCTEVf
QkxPQj0xJywKICAgICAgICdFTkFCTEVfQkxPQl9TTElDRT0xJywKICAgICAgICdFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkc9MScsCi0gICAgICAnRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
Tj0xJywKICAgICAgICdFTkFCTEVfQ1NTX0ZJTFRFUlM9MScsCiAgICAgICAnRU5BQkxFX0RBU0hC
T0FSRF9TVVBQT1JUPTAnLAogICAgICAgJ0VOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRl
eCA2M2UyYWU5Li4yZTgwYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIkZyYW1lTG9h
ZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlv
bi5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
TGF5ZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCkBAIC04ODgsMjAgKzg4Nyw2IEBAIGJvb2wgQ2hyb21lQ2xpZW50SW1wbDo6cGFpbnRDdXN0
b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi0vLyBGSVhNRTogUmVtb3ZlIENocm9tZUNsaWVudEltcGw6OnJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSBhbmQgQ2hyb21lQ2xpZW50SW1wbDo6Y2Fu
Y2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lCi0vLyBvbmNlIGFsbCBwb3J0
cyBoYXZlIG1vdmVkIHRvIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbiAoc2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MyApLgotLy8gRm9yIGNsaWVudC1iYXNl
ZCBnZW9sb2NhdGlvbiwgdGhlc2UgbWV0aG9kcyBhcmUgbm93IGltcGxlbWVudGVkIGFzIFdlYkdl
b2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbiBhbmQgV2ViR2VvbG9jYXRpb25DbGll
bnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0LgotLy8gKHNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAwNjEgKS4KLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRp
b24qIGdlb2xvY2F0aW9uKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lk
IENocm9tZUNsaWVudEltcGw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JG
cmFtZShGcmFtZSogZnJhbWUsIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKLXsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZy
YW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGMzNDk0NTQuLjM0YTBiNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTEz
Nyw4ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90
IHRvdGFsU3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5n
QXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
Q29yZTo6R2VvbG9jYXRpb24qKTsKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdl
YkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJ
REU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA5NDRlMzc4Li45YWRlYzg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
KworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKwogMjAxMi0wMy0wOCAgSHlvd29uIEtpbSAg
PGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW1RleG1hcF1bRUZMXSBJbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCBmb3IgRUZMIHBvcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwCmluZGV4IGEyNWY5ZDAuLmYwNzVmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNDY0LDE3ICs0NjQsNiBA
QCB2b2lkIENocm9tZUNsaWVudEVmbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJv
b2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikK
LXsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9u
KikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIENocm9tZUNsaWVudEVmbDo6
Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiop
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3OTQwY2EzLi43
NjYyMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDMtMDkgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3Vs
YWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZQZW5kaW5n
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25D
bGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25D
bGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKKwogMjAxMi0wMy0wNyAgS2Fu
Z2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0RSVF0gUmVtb3Zl
IFBsYWluVGV4dENvbnRyb2xsZXIgaW1wbGVtZW50YXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggZDI4MmYy
OS4uNDhlYTBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC04NjIsMjIgKzg2Miw2IEBAIHZvaWQgQ2hyb21lQ2xp
ZW50OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlz
c2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewot
ICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdChmcmFtZSk7Ci0gICAgR1JlZlB0cjxX
ZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYo
d2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0
aW9uKSkpOwotCi0gICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gRkFMU0U7Ci0gICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1
ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9saWN5RGVjaXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOwotICAg
IGlmICghaXNIYW5kbGVkKQotICAgICAgICB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2Rlbnko
cG9saWN5RGVjaXNpb24uZ2V0KCkpOwotfQotCi12b2lkIENocm9tZUNsaWVudDo6Y2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwg
V2ViQ29yZTo6R2VvbG9jYXRpb24qKQotewotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dl
YlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tY2FuY2VsbGVkIiwga2l0KGZyYW1l
KSk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBkY2VhMmYwLi4yMmI1NGY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaApAQCAtMTM0LDggKzEzNCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwogCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0
IHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9u
Kik7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93
c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA4
MDQzN2ZmLi5kMTBjNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxNCwzMyAr
ODE0LDI2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeShXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBmbG9hdCBzY2FsZUZhCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayhXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9j
YXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2Nr
Kj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAg
ICBtb2NrLT5yZXNldCgpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IGJvb2wgYWxsb3dlZCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9u
Q2xpZW50TW9jayo+KGNvcmUod2ViVmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGll
bnQoKSk7CiAgICAgbW9jay0+c2V0UGVybWlzc2lvbihhbGxvd2VkKTsKLSNlbmRpZgogfQogCiB2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24o
V2ViS2l0V2ViVmlldyogd2ViVmlldywgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2Nh
dGlvbkNsaWVudE1vY2sqPihjb3JlKHdlYlZpZXcpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+
Y2xpZW50KCkpOwogCiAgICAgZG91YmxlIHRpbWVzdGFtcCA9IGdfZ2V0X3JlYWxfdGltZSgpIC8g
MTAwMDAwMC4wOwogICAgIG1vY2stPnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb246OmNy
ZWF0ZSh0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGludCBlcnJvckNvZGUsIGNvbnN0IGdjaGFyKiBl
cnJvck1lc3NhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAg
ICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNs
aWVudE1vY2sqPihjb3JlKHdlYlZpZXcpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50
KCkpOwogCiAgICAgR2VvbG9jYXRpb25FcnJvcjo6RXJyb3JDb2RlIGNvZGU7CkBAIC04NTUsMTcg
Kzg0OCwxMiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0
aW9uRXJyb3IoV2ViS2l0V2ViVmlldyogd2ViVmlldywgaQogICAgIH0KIAogICAgIG1vY2stPnNl
dEVycm9yKEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShjb2RlLCBlcnJvck1lc3NhZ2UpKTsKLSNl
bmRpZgogfQogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpudW1iZXJPZlBlbmRpbmdH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGll
bnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY29yZSh3
ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICByZXR1cm4g
bW9jay0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKCk7Ci0jZWxzZQotICAgIHJl
dHVybiAwOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRI
aXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJv
b2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcAppbmRleCAwNmU5ZmJkLi5kM2FhYzFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVu
dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRHdGsuY3BwCkBAIC0yMSw4ICsyMSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRHdGsuaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVD
bGllbnQuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgpAQCAtMTM4LDEyICsxMzYsMTggQEAg
V2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiogR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3Np
dGlvbigpCiAKIHZvaWQgR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFdlYkNv
cmU6Okdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKIHsKLSAgICBjb3JlKG1fd2ViVmlldyktPmNo
cm9tZSgpLT5jbGllbnQoKS0+cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKGdl
b2xvY2F0aW9uLT5mcmFtZSgpLCBnZW9sb2NhdGlvbik7CisgICAgV2ViS2l0V2ViRnJhbWUqIHdl
YkZyYW1lID0ga2l0KGdlb2xvY2F0aW9uLT5mcmFtZSgpKTsKKyAgICBHUmVmUHRyPFdlYktpdEdl
b2xvY2F0aW9uUG9saWN5RGVjaXNpb24+IHBvbGljeURlY2lzaW9uKGFkb3B0R1JlZih3ZWJraXRf
Z2VvbG9jYXRpb25fcG9saWN5X2RlY2lzaW9uX25ldyh3ZWJGcmFtZSwgZ2VvbG9jYXRpb24pKSk7
CisKKyAgICBnYm9vbGVhbiBpc0hhbmRsZWQgPSBGQUxTRTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5
X25hbWUobV93ZWJWaWV3LCAiZ2VvbG9jYXRpb24tcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIs
IHdlYkZyYW1lLCBwb2xpY3lEZWNpc2lvbi5nZXQoKSwgJmlzSGFuZGxlZCk7CisgICAgaWYgKCFp
c0hhbmRsZWQpCisgICAgICAgIHdlYmtpdF9nZW9sb2NhdGlvbl9wb2xpY3lfZGVueShwb2xpY3lE
ZWNpc2lvbi5nZXQoKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1p
c3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKIHsKLSAgICBj
b3JlKG1fd2ViVmlldyktPmNocm9tZSgpLT5jbGllbnQoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdEZvckZyYW1lKGdlb2xvY2F0aW9uLT5mcmFtZSgpLCBnZW9sb2NhdGlvbik7
CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGlj
eS1kZWNpc2lvbi1jYW5jZWxsZWQiLCBraXQoZ2VvbG9jYXRpb24tPmZyYW1lKCkpKTsKIH0KIAog
dm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6cG9zaXRpb25DaGFuZ2VkKEdlb2NsdWVQb3NpdGlvbios
IEdlb2NsdWVQb3NpdGlvbkZpZWxkcyBmaWVsZHMsIGludCB0aW1lc3RhbXAsIGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBHZW9jbHVlQWNjdXJhY3kq
IGFjY3VyYWN5KQpAQCAtMTc3LDUgKzE4MSwzIEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnQ6OmVy
cm9yT2NjdXJlZChjb25zdCBjaGFyKiBtZXNzYWdlKQogfQogCiB9Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmgKaW5kZXggYmYxN2M3MS4u
MTI4N2UxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2Vv
bG9jYXRpb25DbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oCkBAIC0yMSw4ICsyMSw2IEBACiAjaWZuZGVmIEdlb2xv
Y2F0aW9uQ2xpZW50R3RrX2gKICNkZWZpbmUgR2VvbG9jYXRpb25DbGllbnRHdGtfaAogCi0jaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2luY2x1ZGUgIkdSZWZQdHIuaCIK
ICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9z
aXRpb24uaCIKQEAgLTc1LDggKzczLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlSGln
aEFjY3VyYWN5OwogICAgIGJvb2wgbV9pc1VwZGF0aW5nOwogfTsKLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gR2VvbG9jYXRpb25DbGllbnRHdGtfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDg4MGYyNDQuLmIw
ZDcxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAg
LTM1MDYsMTIgKzM1MDYsMTAgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdl
YktpdDo6RHJhZ0NsaWVudCh3ZWJWaWV3KTsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGll
bnQgPSBuZXcgV2ViS2l0OjpJbnNwZWN0b3JDbGllbnQod2ViVmlldyk7CiAKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKICAgICAgICAgcGFnZUNsaWVudHMuZ2Vv
bG9jYXRpb25DbGllbnQgPSBuZXcgR2VvbG9jYXRpb25DbGllbnRNb2NrOwogICAgIGVsc2UKICAg
ICAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgV2ViS2l0OjpHZW9sb2Nh
dGlvbkNsaWVudCh3ZWJWaWV3KTsKLSNlbmRpZgogCiAgICAgcHJpdi0+Y29yZVBhZ2UgPSBuZXcg
UGFnZShwYWdlQ2xpZW50cyk7CiAKQEAgLTM1MjAsMTAgKzM1MTgsOCBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIFdlYkNvcmU6
OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKHByaXYtPmNvcmVQYWdlLCBuZXcgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRHdGspOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJU
cmVlTW9kZUVuYWJsZWQoKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRN
b2NrKj4ocGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQpLT5zZXRDb250cm9sbGVyKHByaXYt
PmNvcmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7Ci0jZW5kaWYKIAogICAgIC8vIFBh
Z2VzIHdpdGhpbiBhIHNhbWUgc2Vzc2lvbiBuZWVkIHRvIGJlIGxpbmtlZCB0b2dldGhlciBvdGhl
cndpc2Ugc29tZSBmdW5jdGlvbmFsaXRpZXMgc3VjaAogICAgIC8vIGFzIHZpc2l0ZWQgbGluayBj
b2xvcmF0aW9uIChhY3Jvc3MgcGFnZXMpIGFuZCBjaGFuZ2luZyBwb3B1cCB3aW5kb3cgbG9jYXRp
b24gd2lsbCBub3Qgd29yay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzY2NiYjRlLi4yY2VmNTYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAg
ICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGlt
ZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJh
bWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2VvbG9jYXRpb25EaWRD
aGFuZ2VQb3NpdGlvbjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2VvbG9jYXRpb25EaWRGYWls
V2l0aEVycm9yOl0pOgorCiAyMDEyLTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwppbmRleCA1OGEwMmY1Li5kZDdjZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpA
QCAtMzQsOSArMzQsNiBAQAogRU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFU
Rk9STV9OQU1FKSk7CiBFTkFCTEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVf
REFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExB
VEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVDsKIApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElNSU5H
ID0gOwogRU5BQkxFX1dPUktFUlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5B
QkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVO
QUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURf
TEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQp
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFC
TEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVU
X1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBU
X0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19Q
UkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxF
X01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRB
KSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQo
RU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFC
TEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxF
X1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJB
U0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9N
X09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklD
QVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8p
ICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElP
KSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09S
S0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9O
X0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFE
RVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FD
WV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VS
VkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQo
RU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVE
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggNDZkMTIwMS4uMDU3NmFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE3MywxMSArMTczLDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBmdWxsU2NyZWVuUmVuZGVyZXJDaGFuZ2VkKFdlYkNvcmU6OlJl
bmRlckJveCopIE9WRVJSSURFOwogI2VuZGlmCiAKLSAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2Ug
YWxsIHBvcnRzIGFyZSB1c2luZyBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24uIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MwotICAgIC8vIEZvciBjbGllbnQtYmFz
ZWQgZ2VvbG9jYXRpb24sIHRoZXNlIHR3byBtZXRob2RzIGhhdmUgbW92ZWQgdG8gV2ViR2VvbG9j
YXRpb25DbGllbnQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2
MQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUo
V2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQotCiAg
ICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdy
aXRpbmdEaXJlY3Rpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9w
dXAoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KaW5kZXggNTQxZjQwYy4uZDY2YjA1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9j
YXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
R2VvbG9jYXRpb25DbGllbnQubW0KQEAgLTg4LDExICs4OCw3IEBAIHZvaWQgV2ViR2VvbG9jYXRp
b25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKIAog
R2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigp
CiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICByZXR1cm4gY29y
ZShbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0gbGFzdFBvc2l0aW9uXSk7Ci0jZWxz
ZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJHZW9sb2Nh
dGlvblBvbGljeUxpc3RlbmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24ubW0KaW5kZXggYzkyYjdmMS4uNjQ2N2NhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQpA
QCAtMjksMjYgKzI5LDIxIEBACiAjaW1wb3J0IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8
d3RmL1JlZlB0ci5oPgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNp
bXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKLSNlbmRpZgogCiBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRl
cm5hbCA6IE5TT2JqZWN0Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIHsK
IEBwdWJsaWMKICAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gX3Bvc2l0aW9uOwogfQog
CiAtIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOihQYXNzUmVmUHRyPEdlb2xv
Y2F0aW9uUG9zaXRpb24+KWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwotI2VuZGlmCiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwKIAotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAtIChpZClpbml0V2l0aENvcmVHZW9sb2Nh
dGlvblBvc2l0aW9uOihQYXNzUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+KWNvcmVHZW9sb2Nh
dGlvblBvc2l0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKQEAgLTU3LDI5ICs1Miwy
MiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAgICBfcG9zaXRpb24gPSBjb3JlR2VvbG9j
YXRpb25Qb3NpdGlvbjsKICAgICByZXR1cm4gc2VsZjsKIH0KLSNlbmRpZgogCiBAZW5kCiAKIEBp
bXBsZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uCiAKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQogR2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uICpwb3NpdGlvbikKIHsKICAgICByZXR1cm4gcG9zaXRpb24gPyBwb3NpdGlv
bi0+X2ludGVybmFsLT5fcG9zaXRpb24uZ2V0KCkgOiAwOwogfQotI2VuZGlmCiAKIC0gKGlkKWlu
aXRXaXRoVGltZXN0YW1wOihkb3VibGUpdGltZXN0YW1wIGxhdGl0dWRlOihkb3VibGUpbGF0aXR1
ZGUgbG9uZ2l0dWRlOihkb3VibGUpbG9uZ2l0dWRlIGFjY3VyYWN5Oihkb3VibGUpYWNjdXJhY3kK
IHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0
dXJuIG5pbDsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIF9pbnRl
cm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENv
cmVHZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZSh0aW1lc3Rh
bXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KV07Ci0jZWxzZQotICAgIF9pbnRlcm5h
bCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIGFsbG9jXSBpbml0XTsKLSNlbmRp
ZgogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaAppbmRleCAyN2Y4YTM5
Li5mNTRlNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKQEAgLTI1LDEyICsyNSw5IEBACiAKICNp
bXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHZW9sb2Nh
dGlvblBvc2l0aW9uOwogfQogCiBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBjb3JlKFdl
Ykdlb2xvY2F0aW9uUG9zaXRpb24gKik7CiAKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDljZmU4YjMuLjdmOWYyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KQEAgLTEyOSw2ICsxMjksOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVRy
ZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dD
Q29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxOYW1lcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgpAQCAtMTg4LDExICsxOTAsNiBAQAogI2ltcG9ydCA8
V2ViS2l0L1dlYkRhc2hib2FyZFJlZ2lvbi5oPgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xs
ZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgotI2VuZGlmCi0KICNp
ZiBFTkFCTEUoR0xJQl9TVVBQT1JUKQogI2ltcG9ydCA8Z2xpYi5oPgogI2VuZGlmCkBAIC03Mzks
OSArNzM2LDcgQEAgc3RhdGljIE5TU3RyaW5nICpsZWFrT3V0bG9va1F1aXJrc1VzZXJTY3JpcHRD
b250ZW50cygpCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNs
aWVudChzZWxmKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGll
bnQoc2VsZik7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3Bl
Y3RvckNsaWVudChzZWxmKTsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xp
ZW50KHNlbGYpOwotI2VuZGlmCiAgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xp
ZW50cyk7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5v
dGlmaWNhdGlvbihfcHJpdmF0ZS0+cGFnZSwgbmV3IFdlYk5vdGlmaWNhdGlvbkNsaWVudChzZWxm
KSk7CkBAIC02Mzg3LDIwICs2MzgyLDE2IEBAIHN0YXRpYyB2b2lkIGdsaWJDb250ZXh0SXRlcmF0
aW9uQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5CiAKIC0g
KHZvaWQpX2dlb2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRpb246KFdlYkdlb2xvY2F0aW9uUG9zaXRp
b24gKilwb3NpdGlvbgogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAg
ICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRlLT5wYWdlKQogICAgICAgICBfcHJpdmF0ZS0+cGFn
ZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdlZChjb3JlKHBvc2l0aW9u
KSk7Ci0jZW5kaWYKIH0KIAogLSAodm9pZClfZ2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yOihO
U0Vycm9yICopZXJyb3IKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+cGFnZSkgewogICAgICAgICBSZWZQdHI8R2Vv
bG9jYXRpb25FcnJvcj4gZ2VvbG9jYXRpb0Vycm9yID0gR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRl
KEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGUsIFtlcnJvciBsb2NhbGl6ZWRE
ZXNjcmlwdGlvbl0pOwogICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPmVycm9yT2NjdXJyZWQoZ2VvbG9jYXRpb0Vycm9yLmdldCgpKTsKICAgICB9Ci0jZW5k
aWYKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDQ5MjgzMTguLjMz
ZTI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTY0LDEwICs2NCw4IEBACiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiR2VvbG9j
YXRpb25DbGllbnRRdC5oIgotI2VuZGlmIC8vIENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lvbkNsaWVudFF0LmgiCiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCkBAIC0zMTQs
NyArMzEyLDcgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFx
KQogICAgICwgaW5zcGVjdG9ySXNJbnRlcm5hbE9ubHkoZmFsc2UpCiAgICAgLCBtX2xhc3REcm9w
QWN0aW9uKFF0OjpJZ25vcmVBY3Rpb24pCiB7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikgfHwgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQogICAgIGJvb2wgdXNlTW9jayA9IFFXZWJQYWdlUHJpdmF0ZTo6ZHJ0UnVu
OwogI2VuZGlmCiAKQEAgLTMyNiwxMiArMzI0LDEwIEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBh
Z2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBu
ZXcgRWRpdG9yQ2xpZW50UXQocSk7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBE
cmFnQ2xpZW50UXQocSk7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IElu
c3BlY3RvckNsaWVudFF0KHEpOwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAgICAgaWYgKHVzZU1vY2spCiAgICAgICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50
ID0gbmV3IEdlb2xvY2F0aW9uQ2xpZW50TW9jazsKICAgICBlbHNlCiAgICAgICAgIHBhZ2VDbGll
bnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IEdlb2xvY2F0aW9uQ2xpZW50UXQocSk7Ci0jZW5k
aWYKICAgICBwYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOwogI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCiAgICAgaWYgKHVzZU1vY2spCkBAIC0zNTEsMTEgKzM0Nyw5IEBAIFFXZWJQ
YWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAgICAvLyBhcyBleHBl
Y3RlZCBvdXQgb2YgdGhlIGJveCwgd2UgdXNlIGEgZGVmYXVsdCBncm91cCBzaW1pbGFyIHRvIHdo
YXQgb3RoZXIgcG9ydHMgYXJlIGRvaW5nLgogICAgIHBhZ2UtPnNldEdyb3VwTmFtZSgiRGVmYXVs
dCBHcm91cCIpOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAv
LyBJbiBjYXNlIHJ1bm5pbmcgaW4gRHVtcFJlbmRlclRyZWUgbW9kZSBzZXQgdGhlIGNvbnRyb2xs
ZXIgdG8gbW9jayBwcm92aWRlci4KICAgICBpZiAoUVdlYlBhZ2VQcml2YXRlOjpkcnRSdW4pCiAg
ICAgICAgIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KHBhZ2VDbGllbnRzLmdl
b2xvY2F0aW9uQ2xpZW50KS0+c2V0Q29udHJvbGxlcihwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKSk7Ci0jZW5kaWYKICAgICBzZXR0aW5ncyA9IG5ldyBRV2ViU2V0dGluZ3MocGFnZS0+c2V0
dGluZ3MoKSk7CiAKICAgICBoaXN0b3J5LmQgPSBuZXcgUVdlYkhpc3RvcnlQcml2YXRlKHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdEltcGwqPihwYWdlLT5iYWNrRm9yd2FyZExp
c3QoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA3NmQ0OWE2Li5lNWVhNzk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xd2VicGFnZS5j
cHA6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICh0b0dlb2xvY2F0aW9u
Q2xpZW50TW9jayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6cmVzZXRHZW9s
b2NhdGlvbk1vY2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tH
ZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50UXQuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorCiAyMDEyLTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCmlu
ZGV4IDM4NmI5ODYuLjIzMDY2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKQEAgLTE3Myw5ICsxNzMsNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJh
bWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsg
fQotCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCk7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRp
bmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNDU3YjQ5ZS4uMDkyOGI5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHAKQEAgLTEwNSwxMyArMTA1LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBRTWFwPGludCwgUVdlYlNjcmlwdFdvcmxkKj4gbV93b3JsZE1hcDsKIAotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIHRvR2Vv
bG9jYXRpb25DbGllbnRNb2NrKEdlb2xvY2F0aW9uQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgIEFT
U0VSVChRV2ViUGFnZVByaXZhdGU6OmRydFJ1bik7CiAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxH
ZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjbGllbnQpOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQogRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKiB0b0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jayhEZXZpY2VPcmllbnRhdGlvbkNsaWVudCogY2xpZW50KQpA
QCAtODM4LDM0ICs4MzYsMjcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9j
a0RldmljZU9yaWVudGF0aW9uKFFXZWJQYWdlKiBwYWdlLCBib29sIGNhblAKIAogdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6cmVzZXRHZW9sb2NhdGlvbk1vY2soUVdlYlBhZ2UqIHBhZ2Up
CiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBjb3Jl
UGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShwYWdlKTsKICAgICBHZW9sb2NhdGlvbkNsaWVu
dE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZS0+Z2Vv
bG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5yZXNldCgp
OwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9s
b2NhdGlvblBlcm1pc3Npb24oUVdlYlBhZ2UqIHBhZ2UsIGJvb2wgYWxsb3dlZCkKIHsKLSNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdl
YlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9j
a0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlLT5nZW9sb2NhdGlvbkNv
bnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNldFBlcm1pc3Npb24oYWxs
b3dlZCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGRvdWJsZSBsYXRpdHVkZSwgZG91
YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNv
cmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9s
b2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGll
bnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0UG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbjo6
Y3JlYXRlKGN1cnJlbnRUaW1lKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dlb2xvY2F0
aW9uRXJyb3IoUVdlYlBhZ2UqIHBhZ2UsIGludCBlcnJvckNvZGUsIGNvbnN0IFFTdHJpbmcmIG1l
c3NhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdl
KiBjb3JlUGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShwYWdlKTsKIAogICAgIEdlb2xvY2F0
aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlID0gR2VvbG9jYXRpb25FcnJvcjo6UG9zaXRpb25VbmF2
YWlsYWJsZTsKQEAgLTg4MCwxOCArODcxLDEzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFFXZWJQYWdlKiBwYWdlLCBpbnQgZXJyb3JDCiAK
ICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSBzdGF0aWNfY2FzdDxHZW9s
b2NhdGlvbkNsaWVudE1vY2sqPihjb3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNs
aWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRFcnJvcihHZW9sb2NhdGlvbkVycm9yOjpjcmVh
dGUoY29kZSwgbWVzc2FnZSkpOwotI2VuZGlmCiB9CiAKIGludCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoUVdlYlBh
Z2UqIHBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQ
YWdlKiBjb3JlUGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShwYWdlKTsKICAgICBHZW9sb2Nh
dGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3Jl
UGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICByZXR1cm4gbW9j
a0NsaWVudC0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKCk7Ci0jZWxzZQotICAg
IHJldHVybiAtMTsKLSNlbmRpZgogfQogCiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpp
c1RhcmdldEl0ZW0oY29uc3QgUVdlYkhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5o
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudFF0LmgK
aW5kZXggOWEyODI1ZC4uOWQwN2E5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudFF0LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xh
c3MgUVdlYlBhZ2U7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gVGhpcyBjbGFzcyBwcm92
aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uU2VydmljZSBmb3IgUXRXZWJr
aXQuCisvLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgR2VvbG9j
YXRpb25DbGllbnQgZm9yIFF0V2Via2l0LgogY2xhc3MgR2VvbG9jYXRpb25DbGllbnRRdCA6IHB1
YmxpYyBRT2JqZWN0LCBwdWJsaWMgR2VvbG9jYXRpb25DbGllbnQgewogICAgIFFfT0JKRUNUCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCAxNmQ5NDcwLi5kYjIyN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBB
bHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQuY3BwOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6
CisgICAgICAgICogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJHZW9s
b2NhdGlvblBvc2l0aW9uOjppbml0V2l0aFRpbWVzdGFtcCk6CisgICAgICAgIChjb3JlKToKKyAg
ICAgICAgKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAgIChXZWJHZW9sb2NhdGlv
blBvc2l0aW9uKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Omlu
aXRXaXRoRnJhbWUpOgorICAgICAgICAoV2ViVmlldzo6Z2VvbG9jYXRpb25EaWRDaGFuZ2VQb3Np
dGlvbik6CisgICAgICAgIChXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZEZhaWxXaXRoRXJyb3IpOgor
CiAyMDEyLTAzLTA4ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2VwYXJhdGUgV1RGIHBhcnRzIG9mIEphdmFTY3JpcHRDb3JlR2VuZXJhdGVkIGludG8g
V1RGR2VuZXJhdGVkIGZvciBXaW5kb3dzIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDU5YzI0MmQuLmM5NDg5MjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0xNDQsMTEgKzE0NCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IHsgfQogCi0g
ICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIGFsbCBwb3J0cyBhcmUgdXNpbmcgY2xpZW50LWJhc2Vk
IGdlb2xvY2F0aW9uLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAz
NzMKLSAgICAvLyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLCB0aGVzZSB0d28gbWV0aG9k
cyBoYXZlIGJlZW4gbW92ZWQgdG8gV2ViR2VvbG9jYXRpb25DbGllbnQuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
ZW9sb2NhdGlvbiopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlv
biopIHsgfQotCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1
bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAK
aW5kZXggYjFkODNmYi4uNDFiY2I0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcApAQCAtNjYsNyArNjYs
NiBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoKQogCiBHZW9sb2Nh
dGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKIHsKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIENPTVB0cjxJV2ViR2VvbG9j
YXRpb25Qcm92aWRlcj4gcHJvdmlkZXI7CiAgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPmdlb2xv
Y2F0aW9uUHJvdmlkZXIoJnByb3ZpZGVyKSkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNzQsOSAr
NzMsNiBAQCBHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBv
c2l0aW9uKCkKICAgICBpZiAoRkFJTEVEKHByb3ZpZGVyLT5sYXN0UG9zaXRpb24oJnBvc2l0aW9u
KSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBjb3JlKHBvc2l0aW9uLmdldCgpKTsK
LSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbkNs
aWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCAyNjU1NGRkLi5m
YjJhYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNw
cApAQCAtMjcsMTEgKzI3LDkgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotI2VuZGlmCiAKIENPTVB0cjxXZWJHZW9sb2NhdGlv
blBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGVJbnN0YW5jZSgpCiB7CkBA
IC04MywxNSArODEsMTAgQEAgVUxPTkcgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6UmVsZWFzZSgp
CiAKIEhSRVNVTFQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6aW5pdFdpdGhUaW1lc3RhbXAoZG91
YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUg
YWNjdXJhY3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBt
X3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwgbGF0aXR1
ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOwogICAgIHJldHVybiBTX09LOwotI2Vsc2UKLSAgICBy
ZXR1cm4gRV9GQUlMOwotI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQogR2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShJV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biogcG9zaXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikKQEAgLTEwMyw0ICs5NiwzIEBAIEdl
b2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9u
KQogCiAgICAgcmV0dXJuIHdlYkdlb2xvY2F0aW9uUG9zaXRpb24tPmltcGwoKTsKIH0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5o
IGIvU291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmluZGV4IDgxNjAy
NzAuLjNlMTFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9u
UG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
LmgKQEAgLTQ4LDE5ICs0OCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gSVdlYkdlb2xvY2F0aW9uUG9z
aXRpb24KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaW5pdFdpdGhUaW1l
c3RhbXAoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3kpOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBpbXBsKCkgY29uc3QgeyByZXR1
cm4gbV9wb3NpdGlvbi5nZXQoKTsgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgVUxPTkcgbV9y
ZWZDb3VudDsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFJlZlB0
cjxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX3Bvc2l0aW9uOwotI2VuZGlmCiB9Owog
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIFdlYkNvcmU6Okdlb2xvY2F0
aW9uUG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qKTsKLSNlbmRpZgogCiAj
ZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4
IDU5MjdjOTYuLjdiYjU4ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC05Miw2ICs5Miw4IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
V2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HRElPYmplY3RDb3VudGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xv
Y2F0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRN
TE5hbWVzLmg+CkBAIC0xMzksMTEgKzE0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dz
VG91Y2guaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCi0jaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJv
bGxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgotI2VuZGlmCi0K
ICNpZiBVU0UoQ0cpCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dC5oPgogI2VuZGlm
CkBAIC0yNjY5LDkgKzI2NjYsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6
OmluaXRXaXRoRnJhbWUoCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVk
aXRvckNsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkRy
YWdDbGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbV9pbnNw
ZWN0b3JDbGllbnQ7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBw
YWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudCh0
aGlzKTsKLSNlbmRpZgogICAgIG1fcGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKIAogICAg
IEJTVFIgbG9jYWxTdG9yYWdlUGF0aDsKQEAgLTY1NjksMTkgKzY1NjQsMTQgQEAgSFJFU1VMVCBX
ZWJWaWV3OjpnZW9sb2NhdGlvblByb3ZpZGVyKElXZWJHZW9sb2NhdGlvblByb3ZpZGVyKiogbG9j
YXRpb25Qcm92aWRlcikKIAogSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZENoYW5nZVBv
c2l0aW9uKElXZWJHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKIHsKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1
cm4gRV9GQUlMOwogICAgIG1fcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnBvc2l0aW9u
Q2hhbmdlZChjb3JlKHBvc2l0aW9uKSk7CiAgICAgcmV0dXJuIFNfT0s7Ci0jZWxzZQotICAgIHJl
dHVybiBFX05PVElNUEw7Ci0jZW5kaWYKIH0KIAogSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlv
bkRpZEZhaWxXaXRoRXJyb3IoSVdlYkVycm9yKiBlcnJvcikKIHsKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRV9G
QUlMOwogICAgIGlmICghZXJyb3IpCkBAIC02NTk2LDkgKzY1ODYsNiBAQCBIUkVTVUxUIFdlYlZp
ZXc6Omdlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcihJV2ViRXJyb3IqIGVycm9yKQogICAgIFJl
ZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBnZW9sb2NhdGlvbkVycm9yID0gR2VvbG9jYXRpb25FcnJv
cjo6Y3JlYXRlKEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGUsIGRlc2NyaXB0
aW9uU3RyaW5nKTsKICAgICBtX3BhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5lcnJvck9j
Y3VycmVkKGdlb2xvY2F0aW9uRXJyb3IuZ2V0KCkpOwogICAgIHJldHVybiBTX09LOwotI2Vsc2UK
LSAgICByZXR1cm4gRV9OT1RJTVBMOwotI2VuZGlmCiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6c2V0
RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShCT09MIGZvcmJpZGRlbiwgQlNU
UiBzY2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDk0NzhjYzUuLjk4OTAwZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAgIChDaHJvbWVDbGllbnRXaW5DRSk6
CisKIDIwMTItMDItMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgTW92ZSBDaHJvbWVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpIHRvIENvbnRleHRN
ZW51Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCmluZGV4IDZhMGUyNWEuLmFjMGIyNmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuY3BwCkBAIC0zNjksMTYgKzM2OSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmZv
cm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci12b2lkIENocm9tZUNsaWVudFdpbkNFOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQotdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50V2luQ0U6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggNjRl
MmJkYS4uYmRiMTE4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTM1LDExICsxMzUsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlv
blByZXNlbnRlcigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIg
YSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4g
ZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KLSAgICAvLyB0byB1c2Ug
R2VvbG9jYXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0gICAg
dmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0KICAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxl
Q2hvb3Nlcj4pOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBm
b3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
eC9DaGFuZ2VMb2cKaW5kZXggZGU1YWVmOS4uYjk5YzE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAm
JiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5
cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisK
IDIwMTItMDItMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTW92ZSBDaHJvbWVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpIHRvIENvbnRleHRNZW51
Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVu
dFd4LmNwcAppbmRleCBiYzk4NzI0Li5kMTcxYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTQ2NSwxMiArNDY1LDYgQEAg
dm9pZCBDaHJvbWVDbGllbnRXeDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogICAg
ICAgICBtX3dlYlZpZXctPlNldEN1cnNvcigqY3Vyc29yLmltcGwoKSk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50V3g6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKikKLXsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9vbCBDaHJvbWVD
bGllbnRXeDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQogewogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmgKaW5kZXggZjk1ODcxYi4uYTU5NDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEzNiw5ICsxMzYsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3Qm
KSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlv
biopIHsgfQotCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzE3
NzE1MC4uNGYyMjkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTA5ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3Np
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRv
RGV0ZXJtaW5lUG9zaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0
R2VvTG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgICogbWFjL1dlYktpdDIub3JkZXI6
CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Nv
dXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IDU4YTAyZjUuLmRkN2NkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0zNCw5ICszNCw2IEBACiBFTkFCTEVf
QkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9CTE9C
X21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
ID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1F
KSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFT
SEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBAIC0x
MzIsNCArMTI5LDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVO
QUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFE
RVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FD
WV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VS
VkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQo
RU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVE
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZF
QVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NT
U19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9T
VVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Up
ICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01J
Q1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcp
ICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVO
QUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAk
KEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FM
X0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRf
Tk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3Bw
CmluZGV4IGNlZThlMGIuLmE2NGI0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAK
QEAgLTI5LDE0ICsyOSwxMSBAQAogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgotCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNpbmNsdWRlIDxXZWJD
b3JlL0dlb2xvY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xs
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4K
LSNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNTgsMjkgKzU1LDI0IEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBDCiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpy
ZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQogICAgIGJvb2wgd2FzRW1wdHkgPSBtX3BhZ2VTZXQuaXNFbXB0eSgpOwog
CiAgICAgbV9wYWdlU2V0LmFkZChwYWdlKTsKICAgICAKICAgICBpZiAod2FzRW1wdHkpCiAgICAg
ICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJHZW9sb2NhdGlv
bk1hbmFnZXJQcm94eTo6U3RhcnRVcGRhdGluZygpLCAwKTsKLSNlbmRpZgogfQogCiB2b2lkIFdl
Ykdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKIHsK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIG1fcGFnZVNldC5yZW1v
dmUocGFnZSk7CiAKICAgICBpZiAobV9wYWdlU2V0LmlzRW1wdHkoKSkKICAgICAgICAgbV9wcm9j
ZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0aW9uTWFuYWdlclBy
b3h5OjpTdG9wVXBkYXRpbmcoKSwgMCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlv
bk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246
OkRhdGEmIGRhdGEpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAg
ICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4gcG9zaXRpb24gPSBHZW9sb2NhdGlvblBvc2l0
aW9uOjpjcmVhdGUoZGF0YS50aW1lc3RhbXAsIGRhdGEubGF0aXR1ZGUsIGRhdGEubG9uZ2l0dWRl
LCBkYXRhLmFjY3VyYWN5KTsKIAogICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOwpAQCAtOTAsMTIgKzgyLDEwIEBAIHZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBv
c2l0aW9uOjpEYXRhCiAgICAgICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQogICAgICAgICAgICAg
cGFnZS0+Y29yZVBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdl
ZChwb3NpdGlvbi5nZXQoKSk7CiAgICAgfQotI2VuZGlmCiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRp
b25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbigpCiB7Ci0jaWYgRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAvLyBGSVhNRTogQWRkIGxvY2FsaXplZCBlcnJv
ciBzdHJpbmcuCiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uRXJyb3I+IGVycm9yID0gR2VvbG9jYXRp
b25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGUsIC8q
IExvY2FsaXplZCBlcnJvciBzdHJpbmcgKi8gU3RyaW5nKCIiKSk7CiAKQEAgLTEwNiw3ICs5Niw2
IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlv
bigpCiAgICAgICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+Y29y
ZVBhZ2UoKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmVycm9yT2NjdXJyZWQoZXJyb3IuZ2V0
KCkpOwogICAgIH0KLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKaW5kZXggMjI2N2Q2Ni4uMjVlMjRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKQEAgLTE5NSwxMSArMTk1LDkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0RnJhbWVGbGF0
dGVuaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib28KIAogdm9pZCBJ
bmplY3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91cFByb3h5
KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6
cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhh
c2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdl
cy5lbmQoKTsgKytpdGVyKQogICAgICAgICBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1v
Y2sqPigoKml0ZXIpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpLT5zZXRQZXJt
aXNzaW9uKGVuYWJsZWQpOwotI2VuZGlmCiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwg
Ym9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDE2Y2IyMmEuLjU0ZTc1
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTU4NSwxNiArNTg1LDYgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgSW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xv
Y2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPiBwcnBGaWxlQ2hvb3NlcikKIHsKICAgICBpZiAobV9wYWdlLT5hY3RpdmVPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYjY4ZDhkNC4uOTY5MDQ5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNTMsMTEgKzE1Myw2IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOwogCi0gICAgLy8gVGhp
cyBpcyBhbiBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxheSBV
SSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KLSAgICAvLyB0byB1c2UgR2VvbG9jb2Nh
dGlvbi4gVGhlIENocm9tZUNsaWVudCBtdXN0IGNhbGwgR2VvbG9jYXRpb246OnNldFNob3VsZENs
ZWFyQ2FjaGUoKSBhcHByb3ByaWF0ZWx5LgotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2Nh
dGlvbiopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlv
biopIE9WRVJSSURFOwotCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpG
cmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNv
cmU6OkZpbGVJY29uTG9hZGVyKikgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5jcHAKaW5kZXggMWY5MjBhMS4uOTA0ZjQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5jcHAKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKLQogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC03OSw1ICs3NywzIEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbikKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5oCmluZGV4IDIxZmM0MzguLjllNTcxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgV2ViR2VvbG9jYXRpb25DbGllbnRf
aAogI2RlZmluZSBXZWJHZW9sb2NhdGlvbkNsaWVudF9oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNsaWVudC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYxLDYgKzU5LDQgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQotCiAjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25DbGllbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDlmOGI0MTcuLmUxNmUx
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTIyOCw5ICsyMjgsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29u
c3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICBwYWdlQ2xpZW50
cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VDbGll
bnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50
cy5iYWNrRm9yd2FyZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhp
cyk7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBwYWdlQ2xpZW50
cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudCh0aGlzKTsKLSNl
bmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xp
ZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudCh0aGlzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2Vi
S2l0Mi5vcmRlcgppbmRleCA0NTdhMDYzLi4wNDFmODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5v
cmRlcgpAQCAtMjQ1MCw3ICsyNDUwLDYgQEAgX19aTjZXZWJLaXQxMldlYlBhZ2VQcm94eTI4ZGlk
UmVzdG9yZUZyYW1lRnJvbVBhZ2VDYWNoZUV5eQogX19aTjdDb3JlSVBDMTNoYW5kbGVNZXNzYWdl
SU44TWVzc2FnZXMxMldlYlBhZ2VQcm94eTM2UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lRU42V2ViS2l0MTJXZWJQYWdlUHJveHlFTVM1X0Z2eXlOM1dURjZTdHJpbmdFRUVFdlBO
U18xNUFyZ3VtZW50RGVjb2RlckVQVDBfVDFfCiBfX1pON0NvcmVJUEMxMEFyZ3VtZW50czNJeXlO
M1dURjZTdHJpbmdFRTZkZWNvZGVFUE5TXzE1QXJndW1lbnREZWNvZGVyRVJTM18KIF9fWk43Q29y
ZUlQQzE4Y2FsbE1lbWJlckZ1bmN0aW9uSU42V2ViS2l0MTJXZWJQYWdlUHJveHlFTVMyX0Z2eXlO
M1dURjZTdHJpbmdFRXl5UzRfRUV2UktOU18xMEFyZ3VtZW50czNJVDFfVDJfVDNfRUVQVF9UMF8K
LV9fWk42V2ViS2l0MTJXZWJQYWdlUHJveHkzNnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZUV5eU4zV1RGNlN0cmluZ0UKIF9fWk42V2ViS2l0MTdXZWJTZWN1cml0eU9yaWdpbjZj
cmVhdGVFUktOM1dURjZTdHJpbmdFCiBfX1pONldlYktpdDQwR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTEzY3JlYXRlUmVxdWVzdEV5CiBfX1pONldlYktpdDMzR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5QzFFUE5TXzQwR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eUV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0Js
YWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UKaW5k
ZXggYTkwYzg1MC4uMTIyODUxYiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNCbGFj
a0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQpA
QCAtMTMzLDcgKzEzMyw2IEBAIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9BU1NFTUJMRVJfV1hfRVhD
TFVTSVZFICJBc3NlbWJsZXIgV1ggRXhjbHVzaXZlIiBERUZBVUxUIE9OCiBXRUJLSVRfRkVBVFVS
RShFTkFCTEVfQkxBQ0tCRVJSWV9DQVJFVF9BUFBFQVJBTkNFICJCbGFja2JlcnJ5IENhcmV0IEFw
cGVhcmFuY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0JMT0IgIkVuYWJs
ZSBibG9iIHNsaWNlIiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5ORUxf
TUVTU0FHSU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT04pCi1XRUJLSVRf
RkVBVFVSRShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJDbGllbnQgYmFzZWQgR2Vv
bG9jYXRpb24iIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQUJBU0UgIkVu
YWJsZSBkYXRhYmFzZSIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBTElT
VCAiRW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RF
VEFJTFMgIkVuYWJsZSBkZXRhaWxzIGVsZW1lbnQiIERFRkFVTFQgT04pCmRpZmYgLS1naXQgYS9T
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCmluZGV4IDkyNmJlOTEuLjIxMDZlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRp
b25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC02NSw3
ICs2NSw2IEBAIFNFVChWRVJTSU9OX1NDUklQVCAiLVdsLC0tdmVyc2lvbi1zY3JpcHQsJHtDTUFL
RV9NT0RVTEVfUEFUSH0vZWZsc3ltYm9scy5maWx0ZXIiCiAKIFdFQktJVF9GRUFUVVJFKEVOQUJM
RV9CTE9CICJFbmFibGUgYmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3NhZ2luZyIgREVGQVVM
VCBPTikKLVdFQktJVF9GRUFUVVJFKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gIkVu
YWJsZSBjbGllbnQgYmFzZWQgZ2VvbG9jYXRpb24iIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRV
UkUoRU5BQkxFX0RBVEFMSVNUICJFbmFibGUgZGF0YWxpc3QiIERFRkFVTFQgT04pCiBXRUJLSVRf
RkVBVFVSRShFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyAiRW5hYmxlIGRhdGEgdHJhbnNmZXIg
aXRlbXMiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTiAiRW5hYmxlIGRldmljZSBvcmllbnRhdGlvbiIgREVGQVVMVCBPRkYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNX
aW5DRS5jbWFrZQppbmRleCA2MTQ3ODM4Li41ZjA0ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvT3B0aW9uc1dpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21h
a2UKQEAgLTIxLDcgKzIxLDYgQEAgQUREX1NVQkRJUkVDVE9SWSgkezNSRFBBUlRZX0RJUn0gIiR7
Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8zcmRwYXJ0eSIpCiAKIFdFQktJVF9GRUFUVVJFKEVO
QUJMRV9CTE9CICJFbmFibGUgYmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVS
RShFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3NhZ2luZyIgREVG
QVVMVCBPRkYpCi1XRUJLSVRfRkVBVFVSRShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
ICJFbmFibGUgY2xpZW50IGJhc2VkIGdlb2xvY2F0aW9uIiBERUZBVUxUIE9GRikKIFdFQktJVF9G
RUFUVVJFKEVOQUJMRV9EQVRBTElTVCAiRW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9GRikKIFdF
QktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TICJFbmFibGUgZGF0YSB0cmFu
c2ZlciBpdGVtcyIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfRkFTVF9NT0JJ
TEVfU0NST0xMSU5HICJFbmFibGUgZmFzdCBtb2JpbGUgc2Nyb2xsaW5nIiBERUZBVUxUIE9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UgYi9Tb3VyY2UvY21ha2Vjb25m
aWcuaC5jbWFrZQppbmRleCA5OGRiMGI2Li5iMTYzYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQpAQCAtOCw3
ICs4LDYgQEAKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9BU19JTUFHRQogI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX0JMT0IKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORwotI2Nt
YWtlZGVmaW5lMDEgRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogI2NtYWtlZGVmaW5l
MDEgRU5BQkxFX0RBVEFMSVNUCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTgpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGFlNDFlZDAuLmNhMWU4
MjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFs
d2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtp
dDoKKyAgICAgICAgKiBxbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZjoKKwogMjAx
Mi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXggMmEw
NTYyNS4uOTFiZGMyMCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysr
IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTcyLDcgKzcyLDYgQEAgbXkgKAogICAg
ICRhbmltYXRpb25BUElTdXBwb3J0LAogICAgICRibG9iU3VwcG9ydCwKICAgICAkY2hhbm5lbE1l
c3NhZ2luZ1N1cHBvcnQsCi0gICAgJGNsaWVudEJhc2VkR2VvbG9jYXRpb25TdXBwb3J0LAogICAg
ICRjb3ZlcmFnZVN1cHBvcnQsCiAgICAgJGNzc0ZpbHRlcnNTdXBwb3J0LAogICAgICRjc3NHcmlk
TGF5b3V0U3VwcG9ydCwKQEAgLTE2Nyw5ICsxNjYsNiBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAg
eyBvcHRpb24gPT4gImNoYW5uZWwtbWVzc2FnaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIE1lc3NhZ2VD
aGFubmVsIGFuZCBNZXNzYWdlUG9ydCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0NIQU5ORUxfTUVTU0FHSU5HIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNoYW5uZWxNZXNz
YWdpbmdTdXBwb3J0IH0sCiAKLSAgICB7IG9wdGlvbiA9PiAiY2xpZW50LWJhc2VkLWdlb2xvY2F0
aW9uIiwgZGVzYyA9PiAiVG9nZ2xlIGNsaWVudC1iYXNlZCBHZW9sb2NhdGlvbiBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiIsIGRlZmF1
bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzQmxhY2tCZXJyeSgpKSwgdmFs
dWUgPT4gXCRjbGllbnRCYXNlZEdlb2xvY2F0aW9uU3VwcG9ydCB9LAotCiAgICAgeyBvcHRpb24g
PT4gImNzcy1maWx0ZXJzIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBGaWx0ZXJzIHN1cHBvcnQiLAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0ZJTFRFUlMiLCBkZWZhdWx0ID0+IGlzQXBwbGVX
ZWJLaXQoKSwgdmFsdWUgPT4gXCRjc3NGaWx0ZXJzU3VwcG9ydCB9LAogCmRpZmYgLS1naXQgYS9U
b29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZiBiL1Rvb2xzL3FtYWtlL21r
c3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmCmluZGV4IDU5YTBiZDQuLjA2ZGExYWYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmCisrKyBiL1Rv
b2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmCkBAIC0xNzAsNyArMTcwLDYg
QEAgY29udGFpbnMoREVGSU5FUywgV1RGX1VTRV9MSUJYTUwyPTEpIHsKICFjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfR0VPTE9DQVRJT049LikgewogICAgIGNvbnRhaW5zKE1PQklMSVRZX0NPTkZJ
RywgbG9jYXRpb24pfGNvbnRhaW5zKFFUX0NPTkZJRywgbG9jYXRpb24pIHsKICAgICAgICBERUZJ
TkVTICs9IEVOQUJMRV9HRU9MT0NBVElPTj0xCi0gICAgICAgREVGSU5FUyArPSBFTkFCTEVfQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OPTEKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdExp
YnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IDI0MDEz
NzEuLjA3MTZiN2QgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAzLTA5ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHM6CisgICAg
ICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzOgorCiAy
MDEyLTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMgYi9XZWJL
aXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwppbmRl
eCBjMjVmYjYwLi4xOGU1MTNkIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xz
L3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcworKysgYi9XZWJLaXRMaWJyYXJpZXMvd2lu
L3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwpAQCAtOSw3ICs5LDcgQEAKIAk+
CiAgIDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCVByZXByb2Nlc3NvckRlZmlu
aXRpb25zPSIkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFCTEVfM0RfQ0FO
VkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
Uyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NT
U19HUklEX0xBWU9VVCk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05T
KTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJM
RV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNU
RU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9H
RU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxF
X0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVO
QUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7
JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxF
X05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BS
T0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hB
TkRMRVIpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChF
TkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1ZH
KTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChF
TkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElT
VElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxF
X1dPUktFUlMpOyQoRU5BQkxFX1hTTFQpIgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpOyQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFC
TEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxF
X0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7
JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVf
Q1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJB
U0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9U
UkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJM
RV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQp
OyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lO
REVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVF
Q0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElN
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBF
X01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VF
Syk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX05PVElGSUNB
VElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVf
TUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVS
Uyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7
JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJf
UFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFE
T1dfRE9NKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTsk
KEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZH
X0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlO
Ryk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNybwog
CQlOYW1lPSJFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUiCkBAIC00MiwxMSArNDIsNiBA
QAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJNYWNybwotCQlO
YW1lPSJFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIgotCQlWYWx1ZT0iRU5BQkxFX0NM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTiIKLQkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgot
CS8+Ci0gIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX0NTU19GSUxURVJTIgogCQlWYWx1ZT0i
RU5BQkxFX0NTU19GSUxURVJTIgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCmRpZmYg
LS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXND
YWlyby52c3Byb3BzIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVE
ZWZpbmVzQ2Fpcm8udnNwcm9wcwppbmRleCAzY2VhYzE4Li44NmRjMDRkIDEwMDY0NAotLS0gYS9X
ZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3By
b3BzCisrKyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5l
c0NhaXJvLnZzcHJvcHMKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FO
VkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
Uyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NT
U19HUklEX0xBWU9VVCk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05T
KTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJM
RV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNU
RU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9H
RU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChF
TkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxF
X0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVO
QUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7
JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxF
X05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BS
T0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hB
TkRMRVIpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChF
TkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1ZH
KTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChF
TkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElT
VElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxF
X1dPUktFUlMpOyQoRU5BQkxFX1hTTFQpIgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChF
TkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
OyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5BQkxF
X0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xVU0lP
TlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RB
VEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTsk
KEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQo
RU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lD
T05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfQ09M
T1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9D
QUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7
JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTsk
KEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChF
TkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7JChF
TkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FV
T1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJUFRF
RF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTsk
KEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpD
X0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9N
RURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NL
RVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YU0xU
KSIKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9DQU5WQVMiCkBAIC0zNywx
MSArMzcsNiBAQAogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCiAJLz4KICAgPFVzZXJN
YWNybwotCQlOYW1lPSJFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIgotCQlWYWx1ZT0i
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiIKLQkJUGVyZm9ybUVudmlyb25tZW50U2V0
PSJ0cnVlIgotCS8+Ci0gIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX0NTU19GSUxURVJTIgog
CQlWYWx1ZT0iIgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCg==
</data>
<flag name="commit-queue"
          id="134357"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131149</attachid>
            <date>2012-03-09 20:42:40 -0800</date>
            <delta_ts>2012-03-12 18:21:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>78853.patch</filename>
            <type>text/plain</type>
            <size>127703</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5ZWEzOTZmLi4yZTk4YmNk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4g
UG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNt
YWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2U6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBhYTZkOWNjLi4zNzQwZGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDoKKwogMjAxMi0wMy0wOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogRGF0ZS5wYXJzZSgiVHVlIE5vdiAyMyAy
MDo0MDowNSAyMDEwIEdNVCIpIHJldHVybnMgTmFOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggNThhMDJmNS4uZGQ3Y2RkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzQsOSAr
MzQsNiBAQAogRU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1F
KSk7CiBFTkFCTEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJF
QUxfUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNv
c3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVDsKIApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5B
QkxFX1dPUktFUlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7
CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9C
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAk
KEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxF
X0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxT
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJM
RV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19E
T00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklO
RElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09O
TFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChF
TkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTU19GSUxU
RVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFE
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJf
VEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFC
TEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1ND
UklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktF
UlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJM
RV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9M
T0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA3MTZiYmE1Li4wZDVhZmNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTExLDEyICsxMTExLDggQEAKICNkZWZpbmUgV1RG
X1VTRV9BQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKLS8qIEdlb2xvY2F0
aW9uIHJlcXVlc3QgcG9saWN5LiBwcmUtZW1wdGl2ZSBwb2xpY3kgaXMgdG8gYWNxdWlyZSB1c2Vy
IHBlcm1pc3Npb24gYmVmb3JlIGFjcXVpcmluZyBsb2NhdGlvbi4KLSAgIENsaWVudCBiYXNlZCBp
bXBsZW1lbnRhdGlvbnMgd2lsbCBoYXZlIG9wdGlvbiB0byBjaG9vc2UgYmV0d2VlbiBwcmUtZW1w
dGl2ZSBhbmQgbm9ucHJlLWVtcHRpdmUgcGVybWlzc2lvbiBwb2xpY3kuCi0gICBwcmUtZW1wdGl2
ZSBwZXJtaXNzaW9uIHBvbGljeSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGFsbCBjbGllbnQt
YmFzZWQgaW1wbGVtZW50YXRpb25zLiAqLwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCisvKiBHZW9sb2NhdGlvbiByZXF1ZXN0IHBvbGljeS4gcHJlLWVtcHRpdmUgcG9saWN5
IGlzIHRvIGFjcXVpcmUgdXNlciBwZXJtaXNzaW9uIGJlZm9yZSBhY3F1aXJpbmcgbG9jYXRpb24u
ICovCiAjZGVmaW5lIFdURl9VU0VfUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OIDEKLSNl
bmRpZgogCiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAjZGVmaW5lIEVOQUJMRV9CUkFOQ0hfQ09NUEFD
VElPTiAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJmY2MyNjUuLjMxYmZkMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xMDg3LDcgKzEwODcsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKICAgICBwbGF0Zm9ybS9DbG9ja0dlbmVyaWMuY3BwCi0gICAgcGxhdGZvcm0vR2VvbG9jYXRp
b25TZXJ2aWNlLmNwcAogICAgIHBsYXRmb3JtL0hpc3RvZ3JhbVN1cHBvcnQuY3BwCiAgICAgcGxh
dGZvcm0vS1VSTC5jcHAKICAgICBwbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwCkBAIC0xMjA5LDcg
KzEyMDgsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9ybS9tb2NrL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5jcHAKLSAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2su
Y3BwCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCiAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkOTEyNzY0Li41MDE1ZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTItMDMt
MDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlUG9zaXRpb25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6R2Vv
bG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnN0b3ApOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChHZW9sb2NhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmg6CisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVycm9yLmg6CisgICAgICAgICogTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJv
bWVDbGllbnQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFBhZ2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaDogUmVtb3ZlZC4KKwogMjAxMi0wMy0wOSAgUm9i
IEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZmlsZSBGcmFt
ZUJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDU4YTAyZjUuLmRkN2NkZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0zNCw5ICszNCw2IEBACiBFTkFCTEVfQkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFM
X1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9CTE9CX21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1F
TkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVB
TF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBAIC0xMzIsNCArMTI5LDQgQEAgRU5BQkxFX1dFQl9U
SU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQg
PSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5H
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkp
ICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
SU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNS
T0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAk
KEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFC
TEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChF
TkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05P
VElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJf
QVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJM
RV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklN
QVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NT
X1NIQURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkg
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9G
SUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05f
T0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9T
Q09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVO
QUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJM
RV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFD
SykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBlYmRjYzhmLi5mMzEzM2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtNDYxLDggKzQ2MSw4IEBAIGVuZGlmICMgRU5EIEVOQUJMRV9GSUxURVJTCiAj
IC0tLS0KIGlmIEVOQUJMRV9HRU9MT0NBVElPTgogCi1GRUFUVVJFX0RFRklORVMgKz0gRU5BQkxF
X0dFT0xPQ0FUSU9OPTEgRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xCi13ZWJjb3Jl
X2NwcGZsYWdzICs9IC1ERU5BQkxFX0dFT0xPQ0FUSU9OPTEgLURFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfR0VPTE9DQVRJT049MQor
d2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9HRU9MT0NBVElPTj0xCiBlbmRpZiAjIEVORCBF
TkFCTEVfR0VPTE9DQVRJT04KIAogIyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0NTY5NDE5Li45MDZjZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTMwMjUsOCArMzAyNSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GbG9hdENv
bnZlcnNpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVu
aXQuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0hhc2hUb29scy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9IaXN0b2dyYW1TdXBwb3J0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSGlzdG9n
cmFtU3VwcG9ydC5oIFwKQEAgLTMzMzYsOCArMzMzNCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50
TW9jay5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vy
dmljZU1vY2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVt
ZU1vY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1l
TW9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQmFzZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBhNjg5YTE4Li5hZGJkMTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MzgsMTMgKzM4LDExIEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNpbmNsdWRl
ICJDb29yZGluYXRlcy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTQsOCArNTIsNiBAQCBzdGF0aWMgY29uc3QgY2hhciBmcmFtZWxlc3NEb2N1
bWVudEVycm9yTWVzc2FnZVtdID0gIkdlb2xvY2F0aW9uIGNhbm5vdCBiZSB1c2VkCiAKIHN0YXRp
YyBjb25zdCBpbnQgZmlyc3RBdmFpbGFibGVXYXRjaElkID0gMTsKIAotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCi0KIHN0YXRpYyBQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBj
cmVhdGVHZW9wb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKIHsKICAgICBp
ZiAoIXBvc2l0aW9uKQpAQCAtODEsNyArNzcsNiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxQb3NpdGlv
bkVycm9yPiBjcmVhdGVQb3NpdGlvbkVycm9yKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9yKQogCiAg
ICAgcmV0dXJuIFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShjb2RlLCBlcnJvci0+bWVzc2FnZSgpKTsK
IH0KLSNlbmRpZgogCiBHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI6Okdlb05vdGlmaWVyKEdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbiwgUGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
LCBQYXNzUmVmUHRyPFBvc2l0aW9uT3B0aW9ucz4gb3B0aW9ucykKICAgICA6IG1fZ2VvbG9jYXRp
b24oZ2VvbG9jYXRpb24pCkBAIC0yMzQsOSArMjI5LDYgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlv
bj4gR2VvbG9jYXRpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQog
CiBHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQotI2lmICFFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgICwgbV9zZXJ2aWNlKEdlb2xvY2F0aW9uU2Vydmlj
ZTo6Y3JlYXRlKHRoaXMpKQotI2VuZGlmCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5rbm93
bikKIHsKIH0KQEAgLTI3MSwxMyArMjYzLDggQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcCgpCiAg
ICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjg3Nwog
CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiBtX2FsbG93
R2VvbG9jYXRpb24gPT0gSW5Qcm9ncmVzcykgewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCisgICAgaWYgKHBhZ2UgJiYgbV9hbGxvd0dlb2xvY2F0aW9uID09IEluUHJvZ3Jl
c3MpCiAgICAgICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jYW5jZWxQZXJtaXNz
aW9uUmVxdWVzdCh0aGlzKTsKLSNlbHNlCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQo
KS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKGZyYW1lKCksIHRo
aXMpOwotI2VuZGlmCi0gICAgfQogICAgIC8vIFRoZSBmcmFtZSBtYXkgYmUgbW92aW5nIHRvIGEg
bmV3IHBhZ2UgYW5kIHdlIHdhbnQgdG8gZ2V0IHRoZSBwZXJtaXNzaW9ucyBmcm9tIHRoZSBuZXcg
cGFnZSdzIGNsaWVudC4KICAgICBtX2FsbG93R2VvbG9jYXRpb24gPSBVbmtub3duOwogICAgIGNh
bmNlbEFsbFJlcXVlc3RzKCk7CkBAIC0yODksMTUgKzI3NiwxMSBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpzdG9wKCkKIAogR2VvcG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRo
aXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9wb3NpdGlvbihwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKS0+bGFzdFBvc2l0aW9uKCkpOwotI2Vsc2UKLSAgICBtX2xhc3RQb3NpdGlvbiA9IG1fc2Vy
dmljZS0+bGFzdFBvc2l0aW9uKCk7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtX2xhc3RQb3NpdGlv
bi5nZXQoKTsKIH0KQEAgLTYyNywxMSArNjEwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVz
dFBlcm1pc3Npb24oKQogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IEluUHJvZ3Jlc3M7CiAKICAg
ICAvLyBBc2sgdGhlIGVtYmVkZGVyOiBpdCBtYWludGFpbnMgdGhlIGdlb2xvY2F0aW9uIGNoYWxs
ZW5nZSBwb2xpY3kgaXRzZWxmLgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnJlcXVlc3RQZXJtaXNzaW9uKHRo
aXMpOwotI2Vsc2UKLSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShmcmFtZSgpLCB0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lk
IEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWRJbnRlcm5hbCgpCkBAIC02NzYsOCArNjU1LDYg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZVN1Y2Nlc3NDYWxsYmFja3MoKQogICAgICAgICBzdG9w
VXBkYXRpbmcoKTsKIH0KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0K
IHZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAgICAgcG9zaXRpb25DaGFu
Z2VkSW50ZXJuYWwoKTsKQEAgLTY4OSw1NCArNjY2LDIzIEBAIHZvaWQgR2VvbG9jYXRpb246OnNl
dEVycm9yKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9yKQogICAgIGhhbmRsZUVycm9yKHBvc2l0aW9u
RXJyb3IuZ2V0KCkpOwogfQogCi0jZWxzZQotCi12b2lkIEdlb2xvY2F0aW9uOjpnZW9sb2NhdGlv
blNlcnZpY2VQb3NpdGlvbkNoYW5nZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBzZXJ2aWNlKQotewot
ICAgIEFTU0VSVF9VTlVTRUQoc2VydmljZSwgc2VydmljZSA9PSBtX3NlcnZpY2UpOwotICAgIEFT
U0VSVChtX3NlcnZpY2UtPmxhc3RQb3NpdGlvbigpKTsKLQotICAgIHBvc2l0aW9uQ2hhbmdlZElu
dGVybmFsKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uU2VydmljZUVycm9y
T2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBzZXJ2aWNlKQotewotICAgIEFTU0VSVChzZXJ2
aWNlLT5sYXN0RXJyb3IoKSk7Ci0KLSAgICAvLyBOb3RlIHRoYXQgd2UgZG8gbm90IHN0b3AgdGlt
ZXJzIGhlcmUuIEZvciBvbmUtc2hvdHMsIHRoZSByZXF1ZXN0IGlzCi0gICAgLy8gY2xlYXJlZCBp
biBoYW5kbGVFcnJvci4gRm9yIHdhdGNoZXJzLCB0aGUgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSB0
aW1lciBpcwotICAgIC8vIG5vdCBjbGVhcmVkLgotICAgIGhhbmRsZUVycm9yKHNlcnZpY2UtPmxh
c3RFcnJvcigpKTsKLX0KLQotI2VuZGlmCi0KIGJvb2wgR2VvbG9jYXRpb246OnN0YXJ0VXBkYXRp
bmcoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxl
cigpLT5hZGRPYnNlcnZlcih0aGlzLCBub3RpZmllci0+bV9vcHRpb25zLT5lbmFibGVIaWdoQWNj
dXJhY3koKSk7CiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBtX3NlcnZpY2Ut
PnN0YXJ0VXBkYXRpbmcobm90aWZpZXItPm1fb3B0aW9ucy5nZXQoKSk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBHZW9sb2NhdGlvbjo6c3RvcFVwZGF0aW5nKCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7Ci0jZWxzZQotICAgIG1fc2VydmljZS0+c3RvcFVw
ZGF0aW5nKCk7Ci0jZW5kaWYKLQogfQogCiAjaWYgVVNFKFBSRUVNUFRfR0VPTE9DQVRJT05fUEVS
TUlTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb24uaAppbmRleCAyYzZiYWI4Li45OGRmOWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCkBAIC0zNSwyNSArMzUsMTYgQEAKICNp
bmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogCi0jaWYgIUVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2
aWNlLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEZyYW1lOwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiBjbGFz
cyBHZW9sb2NhdGlvblBvc2l0aW9uOwogY2xhc3MgR2VvbG9jYXRpb25FcnJvcjsKLSNlbmRpZgog
Y2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIEdlb2xv
Y2F0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8R2VvbG9jYXRpb24+LCBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0Ci0jaWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICYmIEVOQUJMRShH
RU9MT0NBVElPTikKLSAgICAsIHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQKLSNlbmRp
ZgogewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlb2xvY2F0aW9uPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpAQCAtNjksMTIgKzYwLDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRJc0FsbG93ZWQoYm9vbCk7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCBzZXRFcnJv
cihHZW9sb2NhdGlvbkVycm9yKik7Ci0jZWxzZQotICAgIEdlb2xvY2F0aW9uU2VydmljZSogZ2V0
R2VvbG9jYXRpb25TZXJ2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlLmdldCgpOyB9Ci0j
ZW5kaWYKIAogcHJpdmF0ZToKICAgICBHZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9uKCk7CkBAIC0x
NTgsMTIgKzE0NSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVQZW5kaW5nUGVybWlzc2lv
bk5vdGlmaWVycygpOwogI2VuZGlmCiAKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikgJiYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgIC8vIEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudAotICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvblNlcnZpY2VQb3NpdGlvbkNoYW5nZWQo
R2VvbG9jYXRpb25TZXJ2aWNlKik7Ci0gICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uU2Vydmlj
ZUVycm9yT2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2aWNlKik7Ci0jZW5kaWYKLQogICAgIFBhc3NS
ZWZQdHI8R2VvTm90aWZpZXI+IHN0YXJ0UmVxdWVzdChQYXNzUmVmUHRyPFBvc2l0aW9uQ2FsbGJh
Y2s+LCBQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3JDYWxsYmFjaz4sIFBhc3NSZWZQdHI8UG9zaXRp
b25PcHRpb25zPik7CiAKICAgICB2b2lkIGZhdGFsRXJyb3JPY2N1cnJlZChHZW9Ob3RpZmllciop
OwpAQCAtMTc0LDkgKzE1NSw2IEBAIHByaXZhdGU6CiAKICAgICBHZW9Ob3RpZmllclNldCBtX29u
ZVNob3RzOwogICAgIFdhdGNoZXJzIG1fd2F0Y2hlcnM7Ci0jaWYgIUVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCi0gICAgT3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4gbV9zZXJ2aWNl
OwotI2VuZGlmCiAjaWYgVVNFKFBSRUVNUFRfR0VPTE9DQVRJT05fUEVSTUlTU0lPTikKICAgICBH
ZW9Ob3RpZmllclNldCBtX3BlbmRpbmdGb3JQZXJtaXNzaW9uTm90aWZpZXJzOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggOTY5NGE5OS4uOTlkNmJiZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25D
b250cm9sbGVyLmNwcApAQCAtMjcsOCArMjcsNiBAQAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKIAotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjYsNSArMTI0LDMgQEAgR2VvbG9jYXRp
b25Qb3NpdGlvbiogR2VvbG9jYXRpb25Db250cm9sbGVyOjpsYXN0UG9zaXRpb24oKQogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9j
YXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMDYxMWRjMy4uNDY1YmZkNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uQ29udHJvbGxlci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9u
Q29udHJvbGxlcl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpA
QCAtNzUsNiArNzMsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNl
bmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gR2Vv
bG9jYXRpb25Db250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb25FcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVycm9yLmgKaW5kZXggMmEzYmFkNC4uNzM1MmU2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVy
cm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkVycm9yLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25FcnJvcl9oCiAj
ZGVmaW5lIEdlb2xvY2F0aW9uRXJyb3JfaAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLQogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjAsNiArNTgsNCBA
QCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gR2VvbG9jYXRpb25FcnJvcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb25Qb3NpdGlvbi5oCmluZGV4IDlmMjViMTEuLjdiMTU2NDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5o
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uUG9zaXRpb25faAogI2RlZmlu
ZSBHZW9sb2NhdGlvblBvc2l0aW9uX2gKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCi0KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMTA2LDYgKzEwNCw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNlbmRpZiAvLyBHZW9sb2NhdGlvblBvc2l0aW9uX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IDQzNzJlNjguLjFjNDUwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTA2NSw3
ICsxMDY1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3Bw
IFwKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZVN5c3Rl
bS5jcHAgXAotICAgIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXAogICAgIHBsYXRm
b3JtL0hpc3RvZ3JhbVN1cHBvcnQuY3BwIFwKICAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9x
dC9JbWFnZUZyYW1lUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uY3BwIFwKQEAgLTExMzEsNyArMTEzMCw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3Jt
L01JTUVUeXBlUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBcCi0gICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCBc
CiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwIFwKICAgICBwbGF0Zm9y
bS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvQmxvYkRhdGEuY3BwIFwKQEAgLTIxNTAsMTIgKzIxNDgsMTAgQEAgSEVBREVSUyAr
PSBcCiAgICAgcGxhdGZvcm0vRmlsZVN0cmVhbS5oIFwKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFt
Q2xpZW50LmggXAogICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBcCi0gICAgcGxhdGZvcm0vR2Vv
bG9jYXRpb25TZXJ2aWNlLmggXAogICAgIHBsYXRmb3JtL0hpc3RvZ3JhbVN1cHBvcnQuaCBcCiAg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmggXAogICAgIHBsYXRmb3Jt
L21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggXAogICAgIHBsYXRmb3JtL21vY2sv
R2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBcCi0gICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlv
blNlcnZpY2VNb2NrLmggXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhNDBmOGI3Li41MDUyODg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTE3OCw3ICsxMTc4LDYgQEAgX19aTks3V2ViQ29y
ZTExRnJhbWVMb2FkZXIxN25ldHdvcmtpbmdDb250ZXh0RXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1l
TG9hZGVyMjBhY3RpdmVEb2N1bWVudExvYWRlckV2CiBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRl
cjI3bnVtUGVuZGluZ09yTG9hZGluZ1JlcXVlc3RzRWIKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9h
ZGVyOGxvYWRUeXBlRXYKLV9fWk5LN1dlYkNvcmUxMUdlb2xvY2F0aW9uNWZyYW1lRXYKIF9fWk5L
N1dlYkNvcmUxMUhpc3RvcnlJdGVtMTB2aXNpdENvdW50RXYKIF9fWk5LN1dlYkNvcmUxMUhpc3Rv
cnlJdGVtMTFoYXNDaGlsZHJlbkV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTExb3JpZ2lu
YWxVUkxFdgpAQCAtMTY5MCwxMyArMTY4OSw5IEBAIF9fWk43V2ViQ29yZThEcmFnRGF0YUMxRVJL
TjNXVEY2U3RyaW5nRVJLTlNfOEludFBvaW50RVM3X05TXzEzRHJhZ09wZXJhdGlvbkVOU18yCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQorX19aTks3V2ViQ29yZTExR2VvbG9jYXRpb241ZnJhbWVFdgogX19aTjdX
ZWJDb3JlMjFHZW9sb2NhdGlvbkNvbnRyb2xsZXIxM2Vycm9yT2NjdXJyZWRFUE5TXzE2R2VvbG9j
YXRpb25FcnJvckUKIF9fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyMTVwb3NpdGlv
bkNoYW5nZWRFUE5TXzE5R2VvbG9jYXRpb25Qb3NpdGlvbkUKLSNlbHNlCi1fX1pON1dlYkNvcmUy
Mkdlb2xvY2F0aW9uU2VydmljZU1vY2sxMXNldFBvc2l0aW9uRU4zV1RGMTBQYXNzUmVmUHRySU5T
XzExR2VvcG9zaXRpb25FRUUKLV9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhz
ZXRFcnJvckVOM1dURjEwUGFzc1JlZlB0cklOU18xM1Bvc2l0aW9uRXJyb3JFRUUKLSNlbmRpZgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoSUNPTkRBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJh
MzgzZjYuLjcyY2U1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI5NDIsOCArMjk0Miw2IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vRmxvYXRDb252ZXJzaW9uLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Nsb2NrR2Vu
ZXJpYy5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwJywK
LSAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vSGFzaFRvb2xzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkwuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcCcsCkBAIC00MDY1LDggKzQw
NjMsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XaWRnZXRNYWMubW0nLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwJywKLSAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwJywKLSAg
ICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzMDFjMDY2Li43
OThjMWFiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtMjczMTgsMTQgKzI3MzE4LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
R2VvbG9jYXRpb25TZXJ2aWNlLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEhpc3RvZ3JhbVN1cHBvcnQuY3BwIgogCQkJCT4KIAkJ
CTwvRmlsZT4KQEAgLTMzNTYxLDE0ICszMzU1Myw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJ
CQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxtb2NrXEdlb2xvY2F0aW9u
U2VydmljZU1vY2suY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgiCi0J
CQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxtb2NrXFNjcm9sbGJhclRoZW1lTW9jay5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0dlb2xvY2F0aW9uQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTR2VvbG9jYXRpb25DdXN0b20uY3Bw
CmluZGV4IGNhYWMzODAuLjhhOTE4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTR2VvbG9jYXRpb25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTR2VvbG9jYXRpb25DdXN0b20uY3BwCkBAIC0zNywxMCArMzcsNiBAQAogI2luY2x1
ZGUgIkpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25PcHRpb25z
LmgiCiAKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlICJH
ZW9sb2NhdGlvblNlcnZpY2UuaCIKLSNlbmRpZgotCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4
IDNmYzIwNGQuLmE2NWY0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAg
LTIxNyw5ICsyMTcsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdElu
dG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHt9
Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JG
cmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikge30KLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUq
LCBHcmFwaGljc0xheWVyKikge30KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpIHt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRl
eCAyNmQ3NGFiLi5iYzUzZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTIx
NCwxMyArMjE0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKTsKIAotICAgICAgICAvLyBGSVhNRTog
UmVtb3ZlIG9uY2UgYWxsIHBvcnRzIGFyZSB1c2luZyBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24u
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MwotICAgICAgICAv
LyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLCB0aGVzZSB0d28gbWV0aG9kcyBoYXZlIG1v
dmVkIHRvIEdlb2xvY2F0aW9uQ2xpZW50LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTAwNjEKLSAgICAgICAgLy8gVGhpcyBjYW4gYmUgZWl0aGVyIGEgc3luY2hyb25v
dXMgb3IgYXN5bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkg
YXNraW5nIHRoZSB1c2VyIGZvciBwZXJtaXNzaW9uCi0gICAgICAgIC8vIHRvIHVzZSBHZW9sb2Nh
dGlvbi4KLSAgICAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9j
YXRpb24qKSA9IDA7Ci0KICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgICAgIHZpcnR1YWwg
UGFzc093blB0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJD
bGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXgg
N2I2YjlmZS4uMjI0N2FlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAj
aW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgpAQCAtNzUsMTAgKzc2LDYgQEAKICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCi0j
aWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlICJHZW9sb2NhdGlv
bkNvbnRyb2xsZXIuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBI
YXNoU2V0PFBhZ2UqPiogYWxsUGFnZXM7CkBAIC0xMjUsOSArMTIyLDcgQEAgUGFnZTo6UGFnZShQ
YWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAsIG1f
aW5zcGVjdG9yQ29udHJvbGxlcihJbnNwZWN0b3JDb250cm9sbGVyOjpjcmVhdGUodGhpcywgcGFn
ZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50KSkKICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgLCBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcihHZW9sb2NhdGlv
bkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCkp
Ci0jZW5kaWYKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgICwgbV9wb2ludGVyTG9ja0Nv
bnRyb2xsZXIoUG9pbnRlckxvY2tDb250cm9sbGVyOjpjcmVhdGUodGhpcykpCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggY2RmN2ZlNi4uYzVkYWViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTE2Nyw5
ICsxNjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAg
ICAgICAgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlcigpIGNvbnN0IHsg
cmV0dXJuIG1faW5zcGVjdG9yQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCi0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVy
KiBnZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uQ29u
dHJvbGxlci5nZXQoKTsgfQotI2VuZGlmCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICAg
ICAgUG9pbnRlckxvY2tDb250cm9sbGVyKiBwb2ludGVyTG9ja0NvbnRyb2xsZXIoKSBjb25zdCB7
IHJldHVybiBtX3BvaW50ZXJMb2NrQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCkBAIC0zNTgs
OSArMzU2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgICAgIE93blB0cjxJbnNwZWN0b3JDb250cm9sbGVyPiBtX2luc3BlY3RvckNvbnRyb2xsZXI7
CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgICAgICBP
d25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcjsKLSNl
bmRpZgogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgICAgIE93blB0cjxQb2ludGVyTG9j
a0NvbnRyb2xsZXI+IG1fcG9pbnRlckxvY2tDb250cm9sbGVyOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjg3OTNhMS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKLQotI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgotI2lu
Y2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKLQotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2lm
ICFFTkFCTEUoR0VPTE9DQVRJT04pIHx8IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
Ci1zdGF0aWMgUGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IGNyZWF0ZUdlb2xvY2F0aW9u
U2VydmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KikKLXsKLSAgICByZXR1cm4gbnVs
bHB0cjsKLX0KLQotR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24qIEdlb2xvY2F0
aW9uU2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAmY3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNl
TnVsbDsKLUdlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNl
cnZpY2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlvbiA9ICZjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VO
dWxsOwotI2Vsc2UKLUdlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2Nh
dGlvblNlcnZpY2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VN
b2NrOjpjcmVhdGU7Ci0jZW5kaWYKLQotUGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IEdl
b2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50
KQotewotICAgIHJldHVybiAoKnNfZmFjdG9yeUZ1bmN0aW9uKShjbGllbnQpOwotfQotCi0jaWYg
RU5BQkxFKEdFT0xPQ0FUSU9OKQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKQot
ewotICAgIHNfZmFjdG9yeUZ1bmN0aW9uID0gc19tb2NrRmFjdG9yeUZ1bmN0aW9uOwotfQotCi12
b2lkIEdlb2xvY2F0aW9uU2VydmljZTo6c2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0
aW9uIGYpCi17Ci0gICAgc19tb2NrRmFjdG9yeUZ1bmN0aW9uID0gZjsKLX0KLQotR2VvbG9jYXRp
b25TZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBj
bGllbnQpCi0gICAgOiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChjbGllbnQpCi17Ci0gICAg
QVNTRVJUKG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KTsKLX0KLQotdm9pZCBHZW9sb2NhdGlv
blNlcnZpY2U6OnBvc2l0aW9uQ2hhbmdlZCgpCi17Ci0gICAgbV9nZW9sb2NhdGlvblNlcnZpY2VD
bGllbnQtPmdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZCh0aGlzKTsKLX0KLQotdm9p
ZCBHZW9sb2NhdGlvblNlcnZpY2U6OmVycm9yT2NjdXJyZWQoKQotewotICAgIG1fZ2VvbG9jYXRp
b25TZXJ2aWNlQ2xpZW50LT5nZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3VycmVkKHRoaXMpOwot
fQotCi0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWJhOWZkNy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2Nh
dGlvblNlcnZpY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdlb2xvY2F0aW9uU2Vy
dmljZV9oCi0jZGVmaW5lIEdlb2xvY2F0aW9uU2VydmljZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIEdlb2xvY2F0aW9uU2VydmljZTsKLWNsYXNzIEdlb3Bvc2l0aW9uOwot
Y2xhc3MgUG9zaXRpb25FcnJvcjsKLWNsYXNzIFBvc2l0aW9uT3B0aW9uczsKLQotY2xhc3MgR2Vv
bG9jYXRpb25TZXJ2aWNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlv
blNlcnZpY2VDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNl
UG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2VydmljZSopID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZ2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqKSA9
IDA7Ci19OwotCi1jbGFzcyBHZW9sb2NhdGlvblNlcnZpY2UgewotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEdlb2xvY2F0aW9uU2VydmljZSk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8R2VvbG9jYXRpb25TZXJ2aWNlPiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7
Ci0gICAgdmlydHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNlKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKSB7IHJldHVybiBmYWxzZTsgfQotICAg
IHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSB7IH0KLQotICAgIHZpcnR1YWwgR2VvcG9zaXRp
b24qIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIFBvc2l0
aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLQotICAgIHZvaWQgcG9z
aXRpb25DaGFuZ2VkKCk7Ci0gICAgdm9pZCBlcnJvck9jY3VycmVkKCk7Ci0KLSAgICBzdGF0aWMg
dm9pZCB1c2VNb2NrKCk7Ci0gICAgdHlwZWRlZiBQYXNzT3duUHRyPEdlb2xvY2F0aW9uU2Vydmlj
ZT4gKEZhY3RvcnlGdW5jdGlvbikoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0aW9uKTsKLQotcHJvdGVj
dGVkOgotICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsK
LSAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGdlb2xvY2F0aW9uU2VydmljZUNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OyB9Ci0KLXByaXZhdGU6
Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVu
dDsKLQotICAgIHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwotICAg
IHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfbW9ja0ZhY3RvcnlGdW5jdGlvbjsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdlb2xvY2F0aW9uU2VydmljZV9oCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGll
bnRNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGll
bnRNb2NrLmNwcAppbmRleCBkMDY3YzhhLi5hNGEyYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBAIC0zMSw4
ICszMSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGll
bnRNb2NrLmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5j
bHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJv
ci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKQEAgLTE3OCw1ICsxNzYsMyBA
QCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6Y29udHJvbGxlclRpbWVyRmlyZWQoVGltZXI8
R2VvbG9jYXRpb25DbGllbnRNb2NrPiogdAogfQogCiB9IC8vIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAppbmRleCBiNDAwMTY2Li40
YzIzOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmgKQEAgLTMxLDggKzMxLDYgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25D
bGllbnRNb2NrX2gKICNkZWZpbmUgR2VvbG9jYXRpb25DbGllbnRNb2NrX2gKIAotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAg
LTk1LDYgKzkzLDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNmY1MzRkZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2su
aCIKLQotI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNp
bmNsdWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCi0jaW5jbHVk
ZSAiUG9zaXRpb25FcnJvci5oIgotI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLUdlb2xvY2F0aW9uU2VydmljZU1vY2s6Okdlb2xvY2F0aW9uU2Vy
dmljZVNldCogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19pbnN0YW5jZXMgPSAwOwotUmVmUHRy
PEdlb3Bvc2l0aW9uPiogR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c19sYXN0UG9zaXRpb247Ci1S
ZWZQdHI8UG9zaXRpb25FcnJvcj4qIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNfbGFzdEVycm9y
OwotCi1QYXNzT3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4gR2VvbG9jYXRpb25TZXJ2aWNlTW9j
azo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQotewotICAgIGluaXRT
dGF0aWNzKCk7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
KGNsaWVudCkpOwotfQotCi1HZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQotICAgIDogR2VvbG9jYXRp
b25TZXJ2aWNlKGNsaWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2s6OnRpbWVyRmlyZWQpCi0gICAgLCBtX2lzQWN0aXZlKGZhbHNlKQotewotICAgIHNfaW5z
dGFuY2VzLT5hZGQodGhpcyk7Ci19Ci0KLUdlb2xvY2F0aW9uU2VydmljZU1vY2s6On5HZW9sb2Nh
dGlvblNlcnZpY2VNb2NrKCkKLXsKLSAgICBHZW9sb2NhdGlvblNlcnZpY2VTZXQ6Oml0ZXJhdG9y
IGl0ZXIgPSBzX2luc3RhbmNlcy0+ZmluZCh0aGlzKTsKLSAgICBBU1NFUlQoaXRlciAhPSBzX2lu
c3RhbmNlcy0+ZW5kKCkpOwotICAgIHNfaW5zdGFuY2VzLT5yZW1vdmUoaXRlcik7Ci0gICAgY2xl
YW5VcFN0YXRpY3MoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzZXRQb3Np
dGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbikKLXsKLSAgICBpbml0U3RhdGlj
cygpOwotICAgIEdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jaygpOwotICAgICpzX2xhc3RQb3Np
dGlvbiA9IHBvc2l0aW9uOwotICAgICpzX2xhc3RFcnJvciA9IDA7Ci0gICAgbWFrZUdlb2xvY2F0
aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2
aWNlTW9jazo6c2V0RXJyb3IoUGFzc1JlZlB0cjxQb3NpdGlvbkVycm9yPiBlcnJvcikKLXsKLSAg
ICBpbml0U3RhdGljcygpOwotICAgIEdlb2xvY2F0aW9uU2VydmljZTo6dXNlTW9jaygpOwotICAg
ICpzX2xhc3RFcnJvciA9IGVycm9yOwotICAgICpzX2xhc3RQb3NpdGlvbiA9IDA7Ci0gICAgbWFr
ZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Ci19Ci0KLWJvb2wgR2VvbG9j
YXRpb25TZXJ2aWNlTW9jazo6c3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKQotewotICAg
IG1faXNBY3RpdmUgPSB0cnVlOwotICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgIHJl
dHVybiB0cnVlOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnN0b3BVcGRhdGlu
ZygpCi17Ci0gICAgbV9pc0FjdGl2ZSA9IGZhbHNlOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2Vy
dmljZU1vY2s6OnRpbWVyRmlyZWQoVGltZXI8R2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4qIHRpbWVy
KQotewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKLSAgICBt
YWtlR2VvbG9jYXRpb25DYWxsYmFjaygpOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZU1v
Y2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygpCi17Ci0gICAgR2Vv
bG9jYXRpb25TZXJ2aWNlU2V0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBzX2luc3RhbmNlcy0+ZW5k
KCk7Ci0gICAgZm9yIChHZW9sb2NhdGlvblNlcnZpY2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIg
PSBzX2luc3RhbmNlcy0+YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgKCpp
dGVyKS0+bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNl
cnZpY2VNb2NrOjptYWtlR2VvbG9jYXRpb25DYWxsYmFjaygpCi17Ci0gICAgaWYgKCFtX2lzQWN0
aXZlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoKnNfbGFzdFBvc2l0aW9uKQotICAgICAg
ICBwb3NpdGlvbkNoYW5nZWQoKTsKLSAgICBlbHNlIGlmICgqc19sYXN0RXJyb3IpCi0gICAgICAg
IGVycm9yT2NjdXJyZWQoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjppbml0
U3RhdGljcygpCi17Ci0gICAgaWYgKHNfaW5zdGFuY2VzID09IDApIHsgCi0gICAgICAgIHNfaW5z
dGFuY2VzID0gbmV3IEdlb2xvY2F0aW9uU2VydmljZVNldDsKLSAgICAgICAgc19sYXN0UG9zaXRp
b24gPSBuZXcgUmVmUHRyPEdlb3Bvc2l0aW9uPjsKLSAgICAgICAgc19sYXN0RXJyb3IgPSBuZXcg
UmVmUHRyPFBvc2l0aW9uRXJyb3I+OwotICAgIH0KLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOjpjbGVhblVwU3RhdGljcygpCi17Ci0gICAgaWYgKHNfaW5zdGFuY2VzLT5zaXplKCkg
PT0gMCkgewotICAgICAgICBkZWxldGUgc19pbnN0YW5jZXM7Ci0gICAgICAgIHNfaW5zdGFuY2Vz
ID0gMDsKLSAgICAgICAgZGVsZXRlIHNfbGFzdFBvc2l0aW9uOwotICAgICAgICBkZWxldGUgc19s
YXN0RXJyb3I7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzM5NzhmZS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2su
aAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdlb2xvY2F0aW9uU2VydmljZU1vY2tfaAot
I2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKLQotI2luY2x1ZGUgIkdlb2xvY2F0aW9u
U2VydmljZS5oIgotI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
LSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgbW9jayBpbXBs
ZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uU2VydmljZSBmb3IgdGVzdGluZwotLy8gcHVycG9z
ZXMuIEl0IGFsbG93cyB0aGUgcG9zaXRpb24gb3IgZXJyb3IgdGhhdCB3aWxsIGJlIHJlcG9ydGVk
IGJ5IHRoaXMgY2xhc3MKLS8vIHRvIGJlIHNldCBtYW51YWxseSB1c2luZyB0aGUgc2V0UG9zaXRp
b24gYW5kIHNldEVycm9yIG1ldGhvZHMuIE9iamVjdHMgb2YKLS8vIHRoaXMgY2xhc3MgY2FsbCBi
YWNrIHRvIHRoZWlyIHJlc3BlY3RpdmUgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50IHdpdGggdGhl
Ci0vLyBwb3NpdGlvbiBvciBlcnJvciBldmVyeSB0aW1lIGVpdGhlciBvZiB0aGVzZSBpcyB1cGRh
dGVkLgotY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayA6IHB1YmxpYyBHZW9sb2NhdGlvblNl
cnZpY2UgewotICBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R2VvbG9jYXRpb25TZXJ2
aWNlPiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7Ci0KLSAgICBHZW9sb2NhdGlv
blNlcnZpY2VNb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOwotICAgIHZpcnR1YWwgfkdl
b2xvY2F0aW9uU2VydmljZU1vY2soKTsKLQotICAgIHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5n
KFBvc2l0aW9uT3B0aW9ucyopOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLQot
ICAgIHN0YXRpYyB2b2lkIHNldFBvc2l0aW9uKFBhc3NSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0
aW9uKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRFcnJvcihQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+
IHBvc2l0aW9uKTsKLQotICAgIHZpcnR1YWwgR2VvcG9zaXRpb24qIGxhc3RQb3NpdGlvbigpIGNv
bnN0IHsgcmV0dXJuIHNfbGFzdFBvc2l0aW9uLT5nZXQoKTsgfQotICAgIHZpcnR1YWwgUG9zaXRp
b25FcnJvciogbGFzdEVycm9yKCkgY29uc3QgeyByZXR1cm4gc19sYXN0RXJyb3ItPmdldCgpOyB9
Ci0KLSAgcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBtYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zy
b21BbGxJbnN0YW5jZXMoKTsKLSAgICB2b2lkIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Ci0K
LSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8R2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4qKTsKLQot
ICAgIHN0YXRpYyB2b2lkIGluaXRTdGF0aWNzKCk7Ci0gICAgc3RhdGljIHZvaWQgY2xlYW5VcFN0
YXRpY3MoKTsKLQotICAgIHR5cGVkZWYgSGFzaFNldDxHZW9sb2NhdGlvblNlcnZpY2VNb2NrKj4g
R2VvbG9jYXRpb25TZXJ2aWNlU2V0OwotICAgIHN0YXRpYyBHZW9sb2NhdGlvblNlcnZpY2VTZXQq
IHNfaW5zdGFuY2VzOwotCi0gICAgc3RhdGljIFJlZlB0cjxHZW9wb3NpdGlvbj4qIHNfbGFzdFBv
c2l0aW9uOwotICAgIHN0YXRpYyBSZWZQdHI8UG9zaXRpb25FcnJvcj4qIHNfbGFzdEVycm9yOwot
Ci0gICAgVGltZXI8R2VvbG9jYXRpb25TZXJ2aWNlTW9jaz4gbV90aW1lcjsKLQotICAgIGJvb2wg
bV9pc0FjdGl2ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdl
b2xvY2F0aW9uU2VydmljZU1vY2tfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAKaW5kZXggYWQ0MzM2MC4uYWNjZTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2UuY3BwCkBAIC00NiwxMiArNDYsMTAgQEAKICNpbmNsdWRlICJFZGl0b3JDbGll
bnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgiCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKICNpZiBFTkFCTEVfRFJUCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRN
b2NrLmgiCiAjZW5kaWYKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFj
a0JlcnJ5LmgiCi0jZW5kaWYKICNpbmNsdWRlICJHcm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
SFRNTEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCkBA
IC00MTUsNyArNDEzLDYgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5pdChjb25zdCBXZWJTdHJp
bmcmIHBhZ2VHcm91cE5hbWUpCiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IGRyYWdDbGll
bnQ7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gaW5zcGVjdG9yQ2xpZW50Owog
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICAvLyBOb3RlIHRoZSBv
YmplY3Qgd2lsbCBiZSBkZXN0cm95ZWQgd2hlbiB0aGUgcGFnZSBpcyBkZXN0cm95ZWQuCiAjaWYg
RU5BQkxFX0RSVAogICAgIGlmIChnZXRlbnYoImRydFJ1biIpKQpAQCAtNDI1LDcgKzQyMiw2IEBA
IHZvaWQgV2ViUGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1l
KQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25D
bGllbnQgPSBuZXcgR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeSh0aGlzKTsK
ICNlbHNlCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBtX2dlb2xvY2F0aW9u
Q2xpZW50OwotI2VuZGlmCiAKICAgICBwYWdlQ2xpZW50cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBu
ZXcgRGV2aWNlTW90aW9uQ2xpZW50QmxhY2tCZXJyeSh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5k
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudEJsYWNr
QmVycnkodGhpcyk7CkBAIC00MzUsNyArNDMxLDcgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5p
dChjb25zdCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5v
dGlmaWNhdGlvbihtX3BhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNlKCkp
OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAmJiBFTkFC
TEVfRFJUCisjaWYgRU5BQkxFX0RSVAogICAgIC8vIEluIGNhc2UgcnVubmluZyBpbiBEdW1wUmVu
ZGVyVHJlZSBtb2RlIHNldCB0aGUgY29udHJvbGxlciB0byBtb2NrIHByb3ZpZGVyLgogICAgIGlm
IChnZXRlbnYoImRydFJ1biIpKQogICAgICAgICBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVu
dE1vY2sqPihwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCktPnNldENvbnRyb2xsZXIobV9w
YWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwppbmRleCBiMzYzZWQzLi42NDk0NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjppbml0KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVGZWF0dXJlcy5pbjoKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJv
bWVDbGllbnRCbGFja0JlcnJ5KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydC5jcHA6CisgICAgICAgICh0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRH
ZW9sb2NhdGlvbk1vY2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2Nr
R2VvbG9jYXRpb25FcnJvcik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1v
Y2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisKIDIwMTItMDMtMDkgIENoYXJsZXMgV2Vp
ICA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFja0JlcnJ5
XSBXZWIgTm90aWZpY2F0aW9uIG5vdCB3b3JraW5nIGFmdGVyIHJlYmFzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZl
YXR1cmVzLmluIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0
RGF0YUVuYWJsZUZlYXR1cmVzLmluCmluZGV4IDQ0NTY1ZGIuLjkzMjZkODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVG
ZWF0dXJlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
QWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KQEAgLTcsNyArNyw2IEBAIEJMQUNLQkVSUllfQ1JF
REVOVElBTF9QRVJTSVNUCiBCTE9CCiBCUkFOQ0hfQ09NUEFDVElPTgogQ0hBTk5FTF9NRVNTQUdJ
TkcKLUNMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogQ09ERUJMT0NLX1NBTVBMSU5HCiBDT01QQVJF
X0FORF9TV0FQCiBDT01QVVRFRF9HT1RPX0lOVEVSUFJFVEVSCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeS5jcHAKaW5kZXggM2ZjNGFmYi4uNWI5NzRkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5LmNwcApAQCAtNDU4LDI2ICs0NTgsNiBAQCB2b2lkIENocm9tZUNsaWVu
dEJsYWNrQmVycnk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgbgogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cmVxdWVz
dEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRpb24q
IGdlb2xvY2F0aW9uKQotewotICAgIGlmICghbV93ZWJQYWdlUHJpdmF0ZS0+bV93ZWJTZXR0aW5n
cy0+aXNHZW9sb2NhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICBnZW9sb2NhdGlvbi0+c2V0SXNB
bGxvd2VkKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBET01XaW5kb3cqIHdp
bmRvdyA9IGZyYW1lLT5kb21XaW5kb3coKTsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgQ1N0cmluZyBsYXRpbk9yaWdpbiA9IGZyYW1lT3JpZ2luKGZyYW1lKTsKLQot
ICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5yZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uKG1fd2ViUGFnZVByaXZhdGUtPm1fZ2VvbG9jYXRpb25DbGllbnQsIGdlb2xvY2F0aW9uLCBs
YXRpbk9yaWdpbi5kYXRhKCksIGxhdGluT3JpZ2luLmxlbmd0aCgpKTsKLX0KLQotdm9pZCBDaHJv
bWVDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9y
RnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCi17Ci0gICAgbV93ZWJQYWdl
UHJpdmF0ZS0+bV9jbGllbnQtPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvbihtX3dlYlBhZ2VQ
cml2YXRlLT5tX2dlb2xvY2F0aW9uQ2xpZW50LCBnZW9sb2NhdGlvbik7Ci19Ci0KIHZvaWQgQ2hy
b21lQ2xpZW50QmxhY2tCZXJyeTo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4gY2hvb3NlcikKIHsKICAgICBTaGFyZWRBcnJheTxXZWJTdHJpbmc+IGluaXRpYWxG
aWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4IGIyNGQzOWMuLmY0NzBm
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaApAQCAtOTAsOCArOTAsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5z
aWduZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopOwogICAgIHZpcnR1YWwg
dm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKICAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwogICAgIHZp
cnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUlj
b25Mb2FkZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKaW5kZXggYzhlZGU2ZS4uMzFmMWRjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCkBAIC00MCwxMyArNDAsMTEgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNfbGlua3NJbmNs
dWRlZEluVGFiQ2hhaW4gPSB0cnVlOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soR2Vv
bG9jYXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICAgQVNTRVJUKGdldGVudigiZHJ0UnVuIikp
OwogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY2xpZW50
KTsKIH0KLSNlbmRpZgogCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OkR1bXBSZW5kZXJUcmVlU3Vw
cG9ydCgpCiB7CkBAIC05OCwyNiArOTYsMTggQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6
OmR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRnJhbWUqIG1haW5GcmFtZSwgaW50IGQKIAog
aW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdHMoV2ViUGFnZSogd2ViUGFnZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9
IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdlYlBhZ2UpLT5nZW9sb2NhdGlvbkNv
bnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIHJldHVybiBtb2NrQ2xpZW50LT5udW1iZXJPZlBl
bmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHdlYlBh
Z2UpOwotICAgIHJldHVybiAtMTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydDo6cmVzZXRHZW9sb2NhdGlvbk1vY2soV2ViUGFnZSogd2ViUGFnZSkKIHsKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayog
bW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdlYlBhZ2UpLT5n
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnJlc2V0
KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9s
b2NhdGlvbkVycm9yKFdlYlBhZ2UqIHdlYlBhZ2UsIGludCBlcnJvckNvZGUsIGNvbnN0IFN0cmlu
ZyBtZXNzYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAg
R2VvbG9jYXRpb25FcnJvcjo6RXJyb3JDb2RlIGNvZGUgPSBHZW9sb2NhdGlvbkVycm9yOjpQb3Np
dGlvblVuYXZhaWxhYmxlOwogICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CiAgICAgY2FzZSBQb3Np
dGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRDoKQEAgLTEzMCwyMyArMTIwLDE4IEBAIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihXZWJQYWdlKiB3
ZWJQYWdlLCBpbnQgZXJyb3JDCiAKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGll
bnQgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjb3JlUGFnZSh3ZWJQYWdl
KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5z
ZXRFcnJvcihHZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoY29kZSwgbWVzc2FnZSkpOwotI2VuZGlm
CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJt
aXNzaW9uKFdlYlBhZ2UqIHdlYlBhZ2UsIGJvb2wgYWxsb3dlZCkKIHsKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0Ns
aWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdlYlBhZ2UpLT5nZW9sb2Nh
dGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNldFBlcm1pc3Np
b24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNl
dE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYlBhZ2UqIHdlYlBhZ2UsIGRvdWJsZSBsYXRpdHVk
ZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQogewotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xp
ZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Uod2ViUGFnZSktPmdlb2xvY2F0
aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0UG9zaXRpb24o
R2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGN1cnJlbnRUaW1lKCksIGxhdGl0dWRlLCBsb25n
aXR1ZGUsIGFjY3VyYWN5KSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnQ6OnNjYWxlUGFnZUJ5KFdlYlBhZ2UqIHdlYlBhZ2UsIGZsb2F0IHNjYWxlRmFjdG9yLCBmbG9h
dCB4LCBmbG9hdCB5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1ZTYzMmEzLi5mN2I3
MWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAz
LTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4g
IDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6CisgICAgICAgIChD
aHJvbWVDbGllbnRJbXBsKToKKwogMjAxMi0wMy0wOCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRXhwb3NlIHRoZSBzaGFyZWQgZ3Jh
cGhpY3MgY29udGV4dCBvbiBXZWJWaWV3IHNvIGNhbGxlcnMgY2FuIGFsbG9jYXRlIHJlc291cmNl
cyBvbiB0aGUgbWFpbiB0aHJlYWQgZm9yIHRoZSBjb21wb3NpdG9yIHRvIHVzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDVhMDMzYzguLjFhNDEyOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTM2LDcgKzM2LDYgQEAKICAgICAgICdFTkFCTEVf
QkxPQj0xJywKICAgICAgICdFTkFCTEVfQkxPQl9TTElDRT0xJywKICAgICAgICdFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkc9MScsCi0gICAgICAnRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
Tj0xJywKICAgICAgICdFTkFCTEVfQ1NTX0ZJTFRFUlM9MScsCiAgICAgICAnRU5BQkxFX0RBU0hC
T0FSRF9TVVBQT1JUPTAnLAogICAgICAgJ0VOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRl
eCA2M2UyYWU5Li4yZTgwYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIkZyYW1lTG9h
ZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlv
bi5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNz
TGF5ZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0
LmgiCkBAIC04ODgsMjAgKzg4Nyw2IEBAIGJvb2wgQ2hyb21lQ2xpZW50SW1wbDo6cGFpbnRDdXN0
b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi0vLyBGSVhNRTogUmVtb3ZlIENocm9tZUNsaWVudEltcGw6OnJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSBhbmQgQ2hyb21lQ2xpZW50SW1wbDo6Y2Fu
Y2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lCi0vLyBvbmNlIGFsbCBwb3J0
cyBoYXZlIG1vdmVkIHRvIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbiAoc2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MyApLgotLy8gRm9yIGNsaWVudC1iYXNl
ZCBnZW9sb2NhdGlvbiwgdGhlc2UgbWV0aG9kcyBhcmUgbm93IGltcGxlbWVudGVkIGFzIFdlYkdl
b2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbiBhbmQgV2ViR2VvbG9jYXRpb25DbGll
bnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0LgotLy8gKHNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAwNjEgKS4KLXZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRp
b24qIGdlb2xvY2F0aW9uKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lk
IENocm9tZUNsaWVudEltcGw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JG
cmFtZShGcmFtZSogZnJhbWUsIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKLXsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykK
IHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZy
YW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGMzNDk0NTQuLjM0YTBiNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmgKQEAgLTEz
Nyw4ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90
IHRvdGFsU3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgYm9vbCBwYWludEN1c3RvbU92ZXJoYW5n
QXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
Q29yZTo6R2VvbG9jYXRpb24qKTsKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgdmlydHVh
bCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdl
YkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJ
REU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA5NDRlMzc4Li45YWRlYzg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
KworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKwogMjAxMi0wMy0wOCAgSHlvd29uIEtpbSAg
PGh3MTAwOC5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW1RleG1hcF1bRUZMXSBJbXBsZW1l
bnRhdGlvbiBvZiBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCBmb3IgRUZMIHBvcnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVm
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwu
Y3BwCmluZGV4IGEyNWY5ZDAuLmYwNzVmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNDY0LDE3ICs0NjQsNiBA
QCB2b2lkIENocm9tZUNsaWVudEVmbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJv
b2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikK
LXsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNhbmNl
bEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9u
KikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIENocm9tZUNsaWVudEVmbDo6
Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiop
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggNzdkYjk4Mi4uZTEzN2M0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmgKQEAgLTE0Nyw4ICsxNDcsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xs
UmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9p
ZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlv
biopOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxH
ZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCA3OTQwY2EzLi43NjYyMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBB
bHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZXNldEdlb2xvY2F0aW9u
Q2xpZW50TW9jayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tH
ZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKToKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dHMpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToK
KyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1
ZXN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19pbml0KToKKwogMjAxMi0wMy0wNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgW0RSVF0gUmVtb3ZlIFBsYWluVGV4dENvbnRyb2xsZXIgaW1wbGVt
ZW50YXRpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5jcHAKaW5kZXggZDI4MmYyOS4uNDhlYTBiZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC04
NjIsMjIgKzg2Miw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1v
dXNlTW92ZXMoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNs
aWVudDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwg
R2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFt
ZSA9IGtpdChmcmFtZSk7Ci0gICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lz
aW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9k
ZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0aW9uKSkpOwotCi0gICAgZ2Jvb2xlYW4gaXNI
YW5kbGVkID0gRkFMU0U7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdl
b2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9saWN5RGVj
aXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOwotICAgIGlmICghaXNIYW5kbGVkKQotICAgICAgICB3
ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0KCkpOwotfQot
Ci12b2lkIENocm9tZUNsaWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKQotewot
ICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3kt
ZGVjaXNpb24tY2FuY2VsbGVkIiwga2l0KGZyYW1lKSk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50
OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0dXJuIGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuaAppbmRleCBkY2VhMmYwLi4yMmI1NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTM0LDggKzEzNCw2IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVu
VW50aWxNb3VzZU1vdmVzKGJvb2wpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0
SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24q
KTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKICAgICAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA4MDQzN2ZmLi5kMTBjNjZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxNCwzMyArODE0LDI2IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBmbG9hdCBz
Y2FsZUZhCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZXNldEdlb2xvY2F0aW9u
Q2xpZW50TW9jayhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotI2lmIEVOQUJMRShDTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3Rh
dGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRp
b25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrLT5yZXNldCgpOwotI2VuZGlmCiB9
CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJt
aXNzaW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgYWxsb3dlZCkKIHsKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayog
bW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KGNvcmUod2ViVmlldykt
Pmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9jay0+c2V0UGVybWlz
c2lvbihhbGxvd2VkKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oV2ViS2l0V2ViVmlldyogd2ViVmlldywgZG91
YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0jaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1v
Y2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjb3JlKHdlYlZp
ZXcpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogCiAgICAgZG91YmxlIHRp
bWVzdGFtcCA9IGdfZ2V0X3JlYWxfdGltZSgpIC8gMTAwMDAwMC4wOwogICAgIG1vY2stPnNldFBv
c2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZSh0aW1lc3RhbXAsIGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5KSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IGludCBlcnJvckNvZGUsIGNvbnN0IGdjaGFyKiBlcnJvck1lc3NhZ2UpCiB7Ci0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1v
Y2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjb3JlKHdlYlZpZXcpLT5n
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogCiAgICAgR2VvbG9jYXRpb25FcnJv
cjo6RXJyb3JDb2RlIGNvZGU7CkBAIC04NTUsMTcgKzg0OCwxMiBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgaQogICAgIH0KIAogICAgIG1vY2stPnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3I6OmNy
ZWF0ZShjb2RlLCBlcnJvck1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiBpbnQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
cyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8
R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPmNsaWVudCgpKTsKICAgICByZXR1cm4gbW9jay0+bnVtYmVyT2ZQZW5kaW5nUGVybWlz
c2lvblJlcXVlc3RzKCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFi
bGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNw
cAppbmRleCAwNmU5ZmJkLi5kM2FhYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuY3BwCkBAIC0yMSw4ICsy
MSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRH
dGsuaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRl
ICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJHZW9sb2Nh
dGlvbi5oIgpAQCAtMTM4LDEyICsxMzYsMTggQEAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biogR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiAKIHZvaWQgR2VvbG9jYXRpb25D
bGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6Okdlb2xvY2F0aW9uKiBnZW9sb2NhdGlv
bikKIHsKLSAgICBjb3JlKG1fd2ViVmlldyktPmNocm9tZSgpLT5jbGllbnQoKS0+cmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKGdlb2xvY2F0aW9uLT5mcmFtZSgpLCBnZW9sb2Nh
dGlvbik7CisgICAgV2ViS2l0V2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGdlb2xvY2F0aW9uLT5m
cmFtZSgpKTsKKyAgICBHUmVmUHRyPFdlYktpdEdlb2xvY2F0aW9uUG9saWN5RGVjaXNpb24+IHBv
bGljeURlY2lzaW9uKGFkb3B0R1JlZih3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlY2lzaW9u
X25ldyh3ZWJGcmFtZSwgZ2VvbG9jYXRpb24pKSk7CisKKyAgICBnYm9vbGVhbiBpc0hhbmRsZWQg
PSBGQUxTRTsKKyAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZWJWaWV3LCAiZ2VvbG9jYXRp
b24tcG9saWN5LWRlY2lzaW9uLXJlcXVlc3RlZCIsIHdlYkZyYW1lLCBwb2xpY3lEZWNpc2lvbi5n
ZXQoKSwgJmlzSGFuZGxlZCk7CisgICAgaWYgKCFpc0hhbmRsZWQpCisgICAgICAgIHdlYmtpdF9n
ZW9sb2NhdGlvbl9wb2xpY3lfZGVueShwb2xpY3lEZWNpc2lvbi5nZXQoKSk7CiB9CiAKIHZvaWQg
R2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbikKIHsKLSAgICBjb3JlKG1fd2ViVmlldyktPmNocm9tZSgpLT5j
bGllbnQoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKGdlb2xv
Y2F0aW9uLT5mcmFtZSgpLCBnZW9sb2NhdGlvbik7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1l
KG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1jYW5jZWxsZWQiLCBraXQo
Z2VvbG9jYXRpb24tPmZyYW1lKCkpKTsKIH0KIAogdm9pZCBHZW9sb2NhdGlvbkNsaWVudDo6cG9z
aXRpb25DaGFuZ2VkKEdlb2NsdWVQb3NpdGlvbiosIEdlb2NsdWVQb3NpdGlvbkZpZWxkcyBmaWVs
ZHMsIGludCB0aW1lc3RhbXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91
YmxlIGFsdGl0dWRlLCBHZW9jbHVlQWNjdXJhY3kqIGFjY3VyYWN5KQpAQCAtMTc3LDUgKzE4MSwz
IEBAIHZvaWQgR2VvbG9jYXRpb25DbGllbnQ6OmVycm9yT2NjdXJlZChjb25zdCBjaGFyKiBtZXNz
YWdlKQogfQogCiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0
aW9uQ2xpZW50R3RrLmgKaW5kZXggYmYxN2M3MS4uMTI4N2UxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oCkBA
IC0yMSw4ICsyMSw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uQ2xpZW50R3RrX2gKICNkZWZpbmUg
R2VvbG9jYXRpb25DbGllbnRHdGtfaAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKLQogI2luY2x1ZGUgIkdSZWZQdHIuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVu
dC5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9zaXRpb24uaCIKQEAgLTc1LDggKzczLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fZW5hYmxlSGlnaEFjY3VyYWN5OwogICAgIGJvb2wgbV9pc1Vw
ZGF0aW5nOwogfTsKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gR2VvbG9jYXRpb25DbGllbnRHdGtfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCmluZGV4IDg4MGYyNDQuLmIwZDcxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTM1MDYsMTIgKzM1MDYsMTAgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X3dlYl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBw
YWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYktpdDo6RHJhZ0NsaWVudCh3ZWJWaWV3KTsK
ICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcgV2ViS2l0OjpJbnNwZWN0b3JD
bGllbnQod2ViVmlldyk7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJs
ZWQoKSkKICAgICAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgR2VvbG9j
YXRpb25DbGllbnRNb2NrOwogICAgIGVsc2UKICAgICAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRp
b25DbGllbnQgPSBuZXcgV2ViS2l0OjpHZW9sb2NhdGlvbkNsaWVudCh3ZWJWaWV3KTsKLSNlbmRp
ZgogCiAgICAgcHJpdi0+Y29yZVBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAKQEAgLTM1
MjAsMTAgKzM1MTgsOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRv
KHByaXYtPmNvcmVQYWdlLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGspOwogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKICAgICAgICAg
c3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4ocGFnZUNsaWVudHMuZ2VvbG9jYXRp
b25DbGllbnQpLT5zZXRDb250cm9sbGVyKHByaXYtPmNvcmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRy
b2xsZXIoKSk7Ci0jZW5kaWYKIAogICAgIC8vIFBhZ2VzIHdpdGhpbiBhIHNhbWUgc2Vzc2lvbiBu
ZWVkIHRvIGJlIGxpbmtlZCB0b2dldGhlciBvdGhlcndpc2Ugc29tZSBmdW5jdGlvbmFsaXRpZXMg
c3VjaAogICAgIC8vIGFzIHZpc2l0ZWQgbGluayBjb2xvcmF0aW9uIChhY3Jvc3MgcGFnZXMpIGFu
ZCBjaGFuZ2luZyBwb3B1cCB3aW5kb3cgbG9jYXRpb24gd2lsbCBub3Qgd29yay4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwppbmRleCAzY2NiYjRlLi4yY2VmNTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjUgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5h
YmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxh
c3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1t
OgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3Jl
R2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAgICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGltZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTph
Y2N1cmFjeTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRl
cm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAg
ICAgKC1bV2ViVmlldyBfZ2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbjpdKToKKyAgICAgICAg
KC1bV2ViVmlldyBfZ2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yOl0pOgorCiAyMDEyLTAzLTA5
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
RU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0
L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA1OGEwMmY1
Li5kZDdjZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxFX0JM
T0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxPQl9t
YWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9
ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkp
OwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hC
T0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAtMTMy
LDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBFTkFC
TEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9D
U1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVS
UykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJM
RV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lT
VEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVf
R0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChF
TkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAk
KEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxF
X01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZF
UlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkp
ICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVS
X1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVO
QUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkg
JChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NW
R19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNI
X0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
SU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNS
T0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAk
KEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFC
TEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChF
TkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05P
VElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJf
QVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJM
RV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDZkMTIwMS4uMDU3NmFmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTE3MywxMSArMTczLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmdWxsU2Ny
ZWVuUmVuZGVyZXJDaGFuZ2VkKFdlYkNvcmU6OlJlbmRlckJveCopIE9WRVJSSURFOwogI2VuZGlm
CiAKLSAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2UgYWxsIHBvcnRzIGFyZSB1c2luZyBjbGllbnQt
YmFzZWQgZ2VvbG9jYXRpb24uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MDM3MwotICAgIC8vIEZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24sIHRoZXNlIHR3byBt
ZXRob2RzIGhhdmUgbW92ZWQgdG8gV2ViR2VvbG9jYXRpb25DbGllbnQuIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
ZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
ZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQotCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBPVkVSUklERTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQubW0KaW5kZXggNTQxZjQwYy4uZDY2YjA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KQEAgLTg4
LDExICs4OCw3IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9u
KEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKIAogR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2Vv
bG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICByZXR1cm4gY29yZShbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Q
cm92aWRlcl0gbGFzdFBvc2l0aW9uXSk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9
CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KaW5k
ZXggYzkyYjdmMS4uNjQ2N2NhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQpAQCAtMjksMjYgKzI5LDIxIEBACiAjaW1wb3J0
IDx3dGYvUGFzc1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogCi0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Q
b3NpdGlvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLSNlbmRpZgogCiBAaW50ZXJm
YWNlIFdlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCA6IE5TT2JqZWN0Ci0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIHsKIEBwdWJsaWMKICAgICBSZWZQdHI8R2VvbG9j
YXRpb25Qb3NpdGlvbj4gX3Bvc2l0aW9uOwogfQogCiAtIChpZClpbml0V2l0aENvcmVHZW9sb2Nh
dGlvblBvc2l0aW9uOihQYXNzUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+KWNvcmVHZW9sb2Nh
dGlvblBvc2l0aW9uOwotI2VuZGlmCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uSW50ZXJuYWwKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAtIChpZClpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOihQYXNzUmVmUHRyPEdl
b2xvY2F0aW9uUG9zaXRpb24+KWNvcmVHZW9sb2NhdGlvblBvc2l0aW9uCiB7CiAgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKQEAgLTU3LDI5ICs1MiwyMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKICAgICBfcG9zaXRpb24gPSBjb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKICAgICByZXR1cm4g
c2VsZjsKIH0KLSNlbmRpZgogCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlv
blBvc2l0aW9uCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogR2VvbG9j
YXRpb25Qb3NpdGlvbiogY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9uICpwb3NpdGlvbikKIHsK
ICAgICByZXR1cm4gcG9zaXRpb24gPyBwb3NpdGlvbi0+X2ludGVybmFsLT5fcG9zaXRpb24uZ2V0
KCkgOiAwOwogfQotI2VuZGlmCiAKIC0gKGlkKWluaXRXaXRoVGltZXN0YW1wOihkb3VibGUpdGlt
ZXN0YW1wIGxhdGl0dWRlOihkb3VibGUpbGF0aXR1ZGUgbG9uZ2l0dWRlOihkb3VibGUpbG9uZ2l0
dWRlIGFjY3VyYWN5Oihkb3VibGUpYWNjdXJhY3kKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRd
OwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbkludGVybmFsIGFsbG9jXSBpbml0V2l0aENvcmVHZW9sb2NhdGlvblBvc2l0aW9uOkdlb2xv
Y2F0aW9uUG9zaXRpb246OmNyZWF0ZSh0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFj
Y3VyYWN5KV07Ci0jZWxzZQotICAgIF9pbnRlcm5hbCA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bkludGVybmFsIGFsbG9jXSBpbml0XTsKLSNlbmRpZgogICAgIHJldHVybiBzZWxmOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRp
b25JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBv
c2l0aW9uSW50ZXJuYWwuaAppbmRleCAyN2Y4YTM5Li5mNTRlNjZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVy
bmFsLmgKQEAgLTI1LDEyICsyNSw5IEBACiAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHZW9sb2NhdGlvblBvc2l0aW9uOwogfQogCiBXZWJDb3Jl
OjpHZW9sb2NhdGlvblBvc2l0aW9uKiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKik7CiAK
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDljZmU4YjMuLjdm
OWYyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEyOSw2ICsxMjks
OCBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVRyZWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJh
bWVWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRp
b25FcnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0hUTUxOYW1lcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgpA
QCAtMTg4LDExICsxOTAsNiBAQAogI2ltcG9ydCA8V2ViS2l0L1dlYkRhc2hib2FyZFJlZ2lvbi5o
PgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2ltcG9y
dCA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvR2Vv
bG9jYXRpb25FcnJvci5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoR0xJQl9TVVBQT1JUKQogI2lt
cG9ydCA8Z2xpYi5oPgogI2VuZGlmCkBAIC03MzksOSArNzM2LDcgQEAgc3RhdGljIE5TU3RyaW5n
ICpsZWFrT3V0bG9va1F1aXJrc1VzZXJTY3JpcHRDb250ZW50cygpCiAgICAgcGFnZUNsaWVudHMu
ZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudChzZWxmKTsKICAgICBwYWdlQ2xpZW50
cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQoc2VsZik7CiAgICAgcGFnZUNsaWVudHMu
aW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdlYkluc3BlY3RvckNsaWVudChzZWxmKTsKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9u
Q2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHNlbGYpOwotI2VuZGlmCiAgICAgX3By
aXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5vdGlmaWNhdGlvbihfcHJpdmF0ZS0+cGFnZSwg
bmV3IFdlYk5vdGlmaWNhdGlvbkNsaWVudChzZWxmKSk7CkBAIC02Mzg3LDIwICs2MzgyLDE2IEBA
IHN0YXRpYyB2b2lkIGdsaWJDb250ZXh0SXRlcmF0aW9uQ2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2
ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5CiAKIC0gKHZvaWQpX2dlb2xvY2F0aW9uRGlkQ2hhbmdl
UG9zaXRpb246KFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKilwb3NpdGlvbgogewotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRl
LT5wYWdlKQogICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkt
PnBvc2l0aW9uQ2hhbmdlZChjb3JlKHBvc2l0aW9uKSk7Ci0jZW5kaWYKIH0KIAogLSAodm9pZClf
Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKIHsKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0
ZS0+cGFnZSkgewogICAgICAgICBSZWZQdHI8R2VvbG9jYXRpb25FcnJvcj4gZ2VvbG9jYXRpb0Vy
cm9yID0gR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9u
VW5hdmFpbGFibGUsIFtlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0pOwogICAgICAgICBfcHJp
dmF0ZS0+cGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmVycm9yT2NjdXJyZWQoZ2VvbG9j
YXRpb0Vycm9yLmdldCgpKTsKICAgICB9Ci0jZW5kaWYKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYnBhZ2UuY3BwCmluZGV4IDQ5MjgzMTguLjdmZTFlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKQEAgLTY0LDEwICs2NCw4IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRR
dC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25D
bGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRRdC5oIgotI2VuZGlmIC8v
IENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lv
bkNsaWVudFF0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEZyYW1lT3duZXJFbGVtZW50LmgiCkBAIC0zMTQsOSArMzEyLDcgQEAgUVdlYlBhZ2VQcml2YXRl
OjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgICwgaW5zcGVjdG9ySXNJbnRlcm5h
bE9ubHkoZmFsc2UpCiAgICAgLCBtX2xhc3REcm9wQWN0aW9uKFF0OjpJZ25vcmVBY3Rpb24pCiB7
Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgfHwgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKICAgICBib29sIHVzZU1vY2sgPSBRV2ViUGFnZVByaXZhdGU6OmRydFJ1bjsK
LSNlbmRpZgogCiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZVdlYkNvcmVRdCgpOwogCkBAIC0zMjYs
MTIgKzMyMiwxMCBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAq
cXEpCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IEVkaXRvckNsaWVudFF0KHEp
OwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAg
IHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICh1c2VNb2NrKQog
ICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNs
aWVudE1vY2s7CiAgICAgZWxzZQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVu
dCA9IG5ldyBHZW9sb2NhdGlvbkNsaWVudFF0KHEpOwotI2VuZGlmCiAgICAgcGFnZSA9IG5ldyBQ
YWdlKHBhZ2VDbGllbnRzKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIGlm
ICh1c2VNb2NrKQpAQCAtMzUxLDExICszNDUsOSBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdl
UHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgLy8gYXMgZXhwZWN0ZWQgb3V0IG9mIHRoZSBib3gs
IHdlIHVzZSBhIGRlZmF1bHQgZ3JvdXAgc2ltaWxhciB0byB3aGF0IG90aGVyIHBvcnRzIGFyZSBk
b2luZy4KICAgICBwYWdlLT5zZXRHcm91cE5hbWUoIkRlZmF1bHQgR3JvdXAiKTsKIAotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgLy8gSW4gY2FzZSBydW5uaW5nIGlu
IER1bXBSZW5kZXJUcmVlIG1vZGUgc2V0IHRoZSBjb250cm9sbGVyIHRvIG1vY2sgcHJvdmlkZXIu
CiAgICAgaWYgKFFXZWJQYWdlUHJpdmF0ZTo6ZHJ0UnVuKQogICAgICAgICBzdGF0aWNfY2FzdDxH
ZW9sb2NhdGlvbkNsaWVudE1vY2sqPihwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCktPnNl
dENvbnRyb2xsZXIocGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkpOwotI2VuZGlmCiAgICAg
c2V0dGluZ3MgPSBuZXcgUVdlYlNldHRpbmdzKHBhZ2UtPnNldHRpbmdzKCkpOwogCiAgICAgaGlz
dG9yeS5kID0gbmV3IFFXZWJIaXN0b3J5UHJpdmF0ZShzdGF0aWNfY2FzdDxXZWJDb3JlOjpCYWNr
Rm9yd2FyZExpc3RJbXBsKj4ocGFnZS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggNzZkNDlhNi4uZTVlYTc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAor
MjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBh
Z2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwOgorICAgICAgICAodG9HZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKToKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9u
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dlb2xv
Y2F0aW9uRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9m
UGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAx
Mi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCAzODZiOTg2Li4yMzA2Njc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRR
dC5oCkBAIC0xNzMsOSArMTczLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNjcm9s
bFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRp
b24qKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KLQogICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9v
bCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAg
dmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CmluZGV4IDQ1N2I0OWUuLjA5MjhiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0xMDUs
MTMgKzEwNSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUU1hcDxpbnQsIFFXZWJT
Y3JpcHRXb3JsZCo+IG1fd29ybGRNYXA7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQogR2VvbG9jYXRpb25DbGllbnRNb2NrKiB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhH
ZW9sb2NhdGlvbkNsaWVudCogY2xpZW50KQogewogICAgICBBU1NFUlQoUVdlYlBhZ2VQcml2YXRl
OjpkcnRSdW4pOwogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2Nr
Kj4oY2xpZW50KTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
IERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogdG9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2soRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKQEAgLTgzOCwzNCArODM2LDI3IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihR
V2ViUGFnZSogcGFnZSwgYm9vbCBjYW5QCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OnJlc2V0R2VvbG9jYXRpb25Nb2NrKFFXZWJQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZh
dGU6OmNvcmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0g
dG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigp
LT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+cmVzZXQoKTsKLSNlbmRpZgogfQogCiB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKFFX
ZWJQYWdlKiBwYWdlLCBib29sIGFsbG93ZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKICAgICBQYWdlKiBjb3JlUGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShw
YWdlKTsKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0
aW9uQ2xpZW50TW9jayhjb3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgp
KTsKICAgICBtb2NrQ2xpZW50LT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQpOwotI2VuZGlmCiB9CiAK
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9u
KFFXZWJQYWdlKiBwYWdlLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJs
ZSBhY2N1cmFjeSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAg
IFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogICAgIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNv
cmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGll
bnQtPnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShjdXJyZW50VGltZSgp
LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFFXZWJQYWdlKiBw
YWdlLCBpbnQgZXJyb3JDb2RlLCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKQogewotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFn
ZVByaXZhdGU6OmNvcmUocGFnZSk7CiAKICAgICBHZW9sb2NhdGlvbkVycm9yOjpFcnJvckNvZGUg
Y29kZSA9IEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGU7CkBAIC04ODAsMTgg
Kzg3MSwxMyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRp
b25FcnJvcihRV2ViUGFnZSogcGFnZSwgaW50IGVycm9yQwogCiAgICAgR2VvbG9jYXRpb25DbGll
bnRNb2NrKiBtb2NrQ2xpZW50ID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4o
Y29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0Ns
aWVudC0+c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIG1lc3NhZ2UpKTsK
LSNlbmRpZgogfQogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9mUGVuZGlu
Z0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFFXZWJQYWdlKiBwYWdlKQogewotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2Vi
UGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2Nr
Q2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29u
dHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgcmV0dXJuIG1vY2tDbGllbnQtPm51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOwotI2Vsc2UKLSAgICByZXR1cm4gLTE7Ci0jZW5kaWYK
IH0KIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aXNUYXJnZXRJdGVtKGNvbnN0IFFX
ZWJIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5oCmluZGV4IDlhMjgyNWQuLjlkMDdh
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvR2VvbG9j
YXRpb25DbGllbnRRdC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFFXZWJQYWdlOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLS8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYW4gaW1wbGVtZW50YXRp
b24gb2YgYSBHZW9sb2NhdGlvblNlcnZpY2UgZm9yIFF0V2Via2l0LgorLy8gVGhpcyBjbGFzcyBw
cm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uQ2xpZW50IGZvciBRdFdl
YmtpdC4KIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50UXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGlj
IEdlb2xvY2F0aW9uQ2xpZW50IHsKICAgICBRX09CSkVDVAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
MTZkOTQ3MC4uZGIyMjdiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEy
LTAzLTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxh
aW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6aW5p
dFdpdGhUaW1lc3RhbXApOgorICAgICAgICAoY29yZSk6CisgICAgICAgICogV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAg
ICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKyAgICAg
ICAgKFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Vmlldzo6Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKToKKwogMjAxMi0wMy0wOCAgU3RldmUg
RmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlcGFyYXRlIFdURiBw
YXJ0cyBvZiBKYXZhU2NyaXB0Q29yZUdlbmVyYXRlZCBpbnRvIFdURkdlbmVyYXRlZCBmb3IgV2lu
ZG93cyBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAppbmRleCA1OWMyNDJkLi5jOTQ4OTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTQ0LDExICsx
NDQsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIC8vIEZJWE1FOiBSZW1vdmUg
b25jZSBhbGwgcG9ydHMgYXJlIHVzaW5nIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbi4gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzczCi0gICAgLy8gRm9yIGNsaWVu
dC1iYXNlZCBnZW9sb2NhdGlvbiwgdGhlc2UgdHdvIG1ldGhvZHMgaGF2ZSBiZWVuIG1vdmVkIHRv
IFdlYkdlb2xvY2F0aW9uQ2xpZW50LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTAwNjEKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lv
bkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSB7IH0KLQogI2lmIEVOQUJM
RShWSURFTykKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25z
dCBXZWJDb3JlOjpOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbkZvck5v
ZGUoV2ViQ29yZTo6Tm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmluZGV4IGIxZDgzZmIuLjQxYmNi
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKQEAgLTY2LDcgKzY2LDYgQEAgdm9pZCBXZWJHZW9sb2Nh
dGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKCkKIAogR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2Vv
bG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBDT01QdHI8SVdlYkdlb2xvY2F0aW9uUHJvdmlkZXI+IHByb3Zp
ZGVyOwogICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT5nZW9sb2NhdGlvblByb3ZpZGVyKCZwcm92
aWRlcikpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTc0LDkgKzczLDYgQEAgR2VvbG9jYXRpb25Q
b3NpdGlvbiogV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiAgICAgaWYgKEZB
SUxFRChwcm92aWRlci0+bGFzdFBvc2l0aW9uKCZwb3NpdGlvbikpKQogICAgICAgICByZXR1cm4g
MDsKICAgICByZXR1cm4gY29yZShwb3NpdGlvbi5nZXQoKSk7Ci0jZWxzZQotICAgIHJldHVybiAw
OwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNz
aW9uKEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbi5jcHAKaW5kZXggMjY1NTRkZC4uZmIyYWM2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAKQEAgLTI3LDExICsyNyw5IEBA
CiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q09NUHRyLmg+CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogI2luY2x1
ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLSNlbmRpZgogCiBDT01QdHI8V2ViR2VvbG9jYXRpb25Qb3NpdGlvbj4gV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbjo6Y3JlYXRlSW5zdGFuY2UoKQogewpAQCAtODMsMTUgKzgxLDEwIEBAIFVM
T05HIFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OlJlbGVhc2UoKQogCiBIUkVTVUxUIFdlYkdlb2xv
Y2F0aW9uUG9zaXRpb246OmluaXRXaXRoVGltZXN0YW1wKGRvdWJsZSB0aW1lc3RhbXAsIGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQogewotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgbV9wb3NpdGlvbiA9IEdlb2xvY2F0
aW9uUG9zaXRpb246OmNyZWF0ZSh0aW1lc3RhbXAsIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3Vy
YWN5KTsKICAgICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAgcmV0dXJuIEVfRkFJTDsKLSNlbmRp
ZgogfQogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIEdlb2xvY2F0aW9u
UG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQogewogICAg
IGlmICghcG9zaXRpb24pCkBAIC0xMDMsNCArOTYsMyBAQCBHZW9sb2NhdGlvblBvc2l0aW9uKiBj
b3JlKElXZWJHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKIAogICAgIHJldHVybiB3ZWJH
ZW9sb2NhdGlvblBvc2l0aW9uLT5pbXBsKCk7CiB9Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCA4MTYwMjcwLi4zZTExZGNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCkBAIC00OCwxOSArNDgsMTMg
QEAgcHVibGljOgogICAgIC8vIElXZWJHZW9sb2NhdGlvblBvc2l0aW9uCiAgICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGluaXRXaXRoVGltZXN0YW1wKGRvdWJsZSB0aW1lc3Rh
bXAsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KTsK
IAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgV2ViQ29yZTo6R2Vv
bG9jYXRpb25Qb3NpdGlvbiogaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb24uZ2V0KCk7
IH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIFVMT05HIG1fcmVmQ291bnQ7Ci0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBSZWZQdHI8V2ViQ29yZTo6R2VvbG9jYXRp
b25Qb3NpdGlvbj4gbV9wb3NpdGlvbjsKLSNlbmRpZgogfTsKIAotI2lmIEVOQUJMRShDTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pCiBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBjb3JlKElX
ZWJHZW9sb2NhdGlvblBvc2l0aW9uKik7Ci0jZW5kaWYKIAogI2VuZGlmIC8vIFdlYkdlb2xvY2F0
aW9uUG9zaXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA1OTI3Yzk2Li43YmI1OGY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtOTIsNiArOTIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVdpbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvR0RJT2JqZWN0Q291bnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25D
b250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkVycm9yLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxN
ZWRpYUVsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgpAQCAtMTM5LDEx
ICsxNDEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93c1RvdWNoLmg+CiAjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
Ci0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KLSNlbmRpZgotCiAjaWYgVVNFKENHKQogI2luY2x1
ZGUgPENvcmVHcmFwaGljcy9DR0NvbnRleHQuaD4KICNlbmRpZgpAQCAtMjY2OSw5ICsyNjY2LDcg
QEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppbml0V2l0aEZyYW1lKAogICAg
IHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQodGhpcyk7CiAg
ICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHRoaXMpOwogICAg
IHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG1faW5zcGVjdG9yQ2xpZW50OwotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRp
b25DbGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcyk7Ci0jZW5kaWYKICAgICBt
X3BhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAKICAgICBCU1RSIGxvY2FsU3RvcmFnZVBh
dGg7CkBAIC02NTY5LDE5ICs2NTY0LDE0IEBAIEhSRVNVTFQgV2ViVmlldzo6Z2VvbG9jYXRpb25Q
cm92aWRlcihJV2ViR2VvbG9jYXRpb25Qcm92aWRlcioqIGxvY2F0aW9uUHJvdmlkZXIpCiAKIEhS
RVNVTFQgV2ViVmlldzo6Z2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbihJV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbiogcG9zaXRpb24pCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKICAgICBtX3Bh
Z2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5wb3NpdGlvbkNoYW5nZWQoY29yZShwb3NpdGlv
bikpOwogICAgIHJldHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOwotI2Vu
ZGlmCiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKElX
ZWJFcnJvciogZXJyb3IpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
ICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKICAgICBpZiAoIWVycm9y
KQpAQCAtNjU5Niw5ICs2NTg2LDYgQEAgSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZEZh
aWxXaXRoRXJyb3IoSVdlYkVycm9yKiBlcnJvcikKICAgICBSZWZQdHI8R2VvbG9jYXRpb25FcnJv
cj4gZ2VvbG9jYXRpb25FcnJvciA9IEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlv
bkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlLCBkZXNjcmlwdGlvblN0cmluZyk7CiAgICAgbV9w
YWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+ZXJyb3JPY2N1cnJlZChnZW9sb2NhdGlvbkVy
cm9yLmdldCgpKTsKICAgICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAgcmV0dXJuIEVfTk9USU1Q
TDsKLSNlbmRpZgogfQogCiBIUkVTVUxUIFdlYlZpZXc6OnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUoQk9PTCBmb3JiaWRkZW4sIEJTVFIgc2NoZW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0No
YW5nZUxvZwppbmRleCA5NDc4Y2M1Li45ODkwMGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTAzLTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3
YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRX
aW5DRS5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50V2luQ0UpOgorCiAyMDEyLTAyLTI2ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vdmUgQ2hyb21l
Q2xpZW50OjpzaG93Q29udGV4dE1lbnUoKSB0byBDb250ZXh0TWVudUNsaWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNF
LmNwcAppbmRleCA2YTBlMjVhLi5hYzBiMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcApAQCAtMzY5LDE2
ICszNjksNiBAQCB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpmb3JtU3RhdGVEaWRDaGFuZ2UoY29u
c3QgTm9kZSopCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRX
aW5DRTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9j
YXRpb24qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50
V2luQ0U6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBib29sIENocm9t
ZUNsaWVudFdpbkNFOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDY0ZTJiZGEuLmJkYjExOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFdpbkNFLmgKQEAgLTEzNSwxMSArMTM1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsK
ICNlbmRpZgogCi0gICAgLy8gVGhpcyBjYW4gYmUgZWl0aGVyIGEgc3luY2hyb25vdXMgb3IgYXN5
bmNocm9ub3VzIGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkgYXNraW5nIHRo
ZSB1c2VyIGZvciBwZXJtaXNzaW9uCi0gICAgLy8gdG8gdXNlIEdlb2xvY2F0aW9uLgotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6
RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJD
b3JlOjpHZW9sb2NhdGlvbiopOwotCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJD
b3JlOjpGcmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KTsKICAgICAvLyBB
c3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFt
ZXMuCiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6
U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IGRl
NWFlZjkuLmI5OWMxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMt
MDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHA6CisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oOgorCiAyMDEyLTAyLTI2ICBIYWppbWUg
TW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vdmUgQ2hyb21lQ2xp
ZW50OjpzaG93Q29udGV4dE1lbnUoKSB0byBDb250ZXh0TWVudUNsaWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKaW5kZXggYmM5ODcy
NC4uZDE3MWMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hy
b21lQ2xpZW50V3guY3BwCkBAIC00NjUsMTIgKzQ2NSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6
OnNldEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikKICAgICAgICAgbV93ZWJWaWV3LT5TZXRD
dXJzb3IoKmN1cnNvci5pbXBsKCkpOwogfQogCi12b2lkIENocm9tZUNsaWVudFd4OjpyZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCi17Ci0g
ICAgLy8gU2VlIHRoZSBjb21tZW50IGluIFdlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50V3g6OnNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaCBiL1Nv
dXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oCmluZGV4IGY5NTg3
MWIuLmE1OTQ0MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJv
bWVDbGllbnRXeC5oCkBAIC0xMzYsOSArMTM2LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNz
aW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KLQogICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1
YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGMxNzcxNTAuLjRmMjI5MTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xv
Y2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkdl
b2xvY2F0aW9uTWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
R2VvbG9jYXRpb25NYW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lv
bik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Oldl
YlBhZ2UpOgorICAgICAgICAqIG1hYy9XZWJLaXQyLm9yZGVyOgorCiAyMDEyLTAzLTA5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA1OGEwMmY1Li5kZDdjZGQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9C
XyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxP
QjsKIAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
OwotCiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29z
eCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJM
RV9XRUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJM
RV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JF
TkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJ
T05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFC
TEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFC
TEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJP
QVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lU
RU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5B
QkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxU
RVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVf
R0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQo
RU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VS
Q0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFC
TEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNT
X1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIp
ICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVF
Q0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVO
QUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVf
VEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChF
TkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFC
TEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykg
JChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVO
QUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFC
TEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5B
QkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFU
QUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQo
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChF
TkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xP
UikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NB
TCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVO
QUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElT
VElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01V
VEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChF
TkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkg
JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVf
U1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5H
UykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkg
JChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklE
RU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dF
Ql9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJM
RV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRp
b24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
R2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCBjZWU4ZTBiLi5hNjRi
NGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dl
Ykdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9H
ZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC0yOSwxNCArMjksMTEgQEAK
ICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLQotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9HZW9sb2NhdGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBv
c2l0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+Ci0jZW5kaWYKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU4LDI5ICs1NSwyNCBAQCB2b2lkIFdlYkdlb2xvY2F0aW9u
TWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlv
biwgQwogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBh
Z2UqIHBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBi
b29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKIAogICAgIG1fcGFnZVNldC5hZGQo
cGFnZSk7CiAgICAgCiAgICAgaWYgKHdhc0VtcHR5KQogICAgICAgICBtX3Byb2Nlc3MtPmNvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0YXJ0
VXBkYXRpbmcoKSwgMCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OnVucmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKICAgICBtX3BhZ2VTZXQucmVtb3ZlKHBhZ2UpOwogCiAgICAgaWYg
KG1fcGFnZVNldC5pc0VtcHR5KCkpCiAgICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6U3RvcFVwZGF0aW5nKCks
IDApOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQ
b3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQogewotI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUmVmUHRyPEdlb2xvY2F0aW9u
UG9zaXRpb24+IHBvc2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGRhdGEudGlt
ZXN0YW1wLCBkYXRhLmxhdGl0dWRlLCBkYXRhLmxvbmdpdHVkZSwgZGF0YS5hY2N1cmFjeSk7CiAK
ICAgICBIYXNoU2V0PFdlYlBhZ2UqPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BhZ2VTZXQuYmVn
aW4oKTsKQEAgLTkwLDEyICs4MiwxMCBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlk
Q2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6RGF0YQogICAgICAg
ICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmdl
b2xvY2F0aW9uQ29udHJvbGxlcigpLT5wb3NpdGlvbkNoYW5nZWQocG9zaXRpb24uZ2V0KCkpOwog
ICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRv
RGV0ZXJtaW5lUG9zaXRpb24oKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCiAgICAgLy8gRklYTUU6IEFkZCBsb2NhbGl6ZWQgZXJyb3Igc3RyaW5nLgogICAgIFJlZlB0
cjxHZW9sb2NhdGlvbkVycm9yPiBlcnJvciA9IEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShHZW9s
b2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlLCAvKiBMb2NhbGl6ZWQgZXJyb3Igc3Ry
aW5nICovIFN0cmluZygiIikpOwogCkBAIC0xMDYsNyArOTYsNiBAQCB2b2lkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlcjo6ZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKQogICAgICAgICBpZiAocGFn
ZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmdlb2xvY2F0aW9u
Q29udHJvbGxlcigpLT5lcnJvck9jY3VycmVkKGVycm9yLmdldCgpKTsKICAgICB9Ci0jZW5kaWYK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDIy
NjdkNjYuLjI1ZTI0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0xOTUsMTEgKzE5NSw5
IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoV2ViUGFn
ZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vCiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEdl
b0xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVu
YWJsZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBjb25z
dCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXAt
PmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0
b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikKICAg
ICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oKCppdGVyKS0+Z2VvbG9j
YXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKS0+c2V0UGVybWlzc2lvbihlbmFibGVkKTsKLSNl
bmRpZgogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCAxNmNiMjJhLi41NGU3NTAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCkBAIC01ODUsMTYgKzU4NSw2IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpwYWlu
dEN1c3RvbU92ZXJoYW5nQXJlYShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEluCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBh
bmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZXIp
CiB7CiAgICAgaWYgKG1fcGFnZS0+YWN0aXZlT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IGI2OGQ4ZDQuLjk2OTA0OWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaApAQCAtMTUzLDExICsxNTMsNiBAQCBwcml2YXRlOgogICAgIAogICAgIHZpcnR1YWwgYm9v
bCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSBPVkVSUklERTsKIAotICAgIC8vIFRoaXMgaXMgYW4gYXN5bmNocm9ub3Vz
IGNhbGwuIFRoZSBDaHJvbWVDbGllbnQgY2FuIGRpc3BsYXkgVUkgYXNraW5nIHRoZSB1c2VyIGZv
ciBwZXJtaXNzaW9uCi0gICAgLy8gdG8gdXNlIEdlb2xvY29jYXRpb24uIFRoZSBDaHJvbWVDbGll
bnQgbXVzdCBjYWxsIEdlb2xvY2F0aW9uOjpzZXRTaG91bGRDbGVhckNhY2hlKCkgYXBwcm9wcmlh
dGVseS4KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSBPVkVSUklERTsKLQogICAg
IHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OkZpbGVDaG9vc2VyPikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciop
IE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCmluZGV4IDFmOTIw
YTEuLjkwNGY0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCkBAIC0yNiw4
ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25D
bGllbnQuaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNs
dWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtNzksNSArNzcsMyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9u
Q2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24p
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAppbmRleCAyMWZj
NDM4Li45ZTU3MTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCkBAIC0yNiw4ICsy
Niw2IEBACiAjaWZuZGVmIFdlYkdlb2xvY2F0aW9uQ2xpZW50X2gKICNkZWZpbmUgV2ViR2VvbG9j
YXRpb25DbGllbnRfaAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQog
I2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25DbGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC02MSw2ICs1OSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
Ci0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmIC8v
IFdlYkdlb2xvY2F0aW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCA5ZjhiNDE3Li5lMTZlMWU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMjgsOSArMjI4LDcgQEAg
V2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3
IFdlYkVkaXRvckNsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3
IFdlYkRyYWdDbGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQg
PSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKHRoaXMpOwotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQg
PSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcyk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0
b3JDbGllbnQodGhpcyk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL21hYy9X
ZWJLaXQyLm9yZGVyIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKaW5kZXggNDU3
YTA2My4uMDQxZjg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3Jk
ZXIKKysrIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKQEAgLTI0NTAsNyArMjQ1
MCw2IEBAIF9fWk42V2ViS2l0MTJXZWJQYWdlUHJveHkyOGRpZFJlc3RvcmVGcmFtZUZyb21QYWdl
Q2FjaGVFeXkKIF9fWk43Q29yZUlQQzEzaGFuZGxlTWVzc2FnZUlOOE1lc3NhZ2VzMTJXZWJQYWdl
UHJveHkzNlJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZUVONldlYktpdDEyV2Vi
UGFnZVByb3h5RU1TNV9Gdnl5TjNXVEY2U3RyaW5nRUVFRXZQTlNfMTVBcmd1bWVudERlY29kZXJF
UFQwX1QxXwogX19aTjdDb3JlSVBDMTBBcmd1bWVudHMzSXl5TjNXVEY2U3RyaW5nRUU2ZGVjb2Rl
RVBOU18xNUFyZ3VtZW50RGVjb2RlckVSUzNfCiBfX1pON0NvcmVJUEMxOGNhbGxNZW1iZXJGdW5j
dGlvbklONldlYktpdDEyV2ViUGFnZVByb3h5RU1TMl9Gdnl5TjNXVEY2U3RyaW5nRUV5eVM0X0VF
dlJLTlNfMTBBcmd1bWVudHMzSVQxX1QyX1QzX0VFUFRfVDBfCi1fX1pONldlYktpdDEyV2ViUGFn
ZVByb3h5MzZyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWVFeXlOM1dURjZTdHJp
bmdFCiBfX1pONldlYktpdDE3V2ViU2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTjNXVEY2U3RyaW5n
RQogX19aTjZXZWJLaXQ0MEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkx
M2NyZWF0ZVJlcXVlc3RFeQogX19aTjZXZWJLaXQzM0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RQcm94eUMxRVBOU180MEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlF
eQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlIGIvU291
cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCmluZGV4IGE5MGM4NTAuLjEyMjg1MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UKQEAgLTEzMyw3ICsxMzMsNiBAQCBX
RUJLSVRfRkVBVFVSRShFTkFCTEVfQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSAiQXNzZW1ibGVyIFdY
IEV4Y2x1c2l2ZSIgREVGQVVMVCBPTgogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0JMQUNLQkVSUllf
Q0FSRVRfQVBQRUFSQU5DRSAiQmxhY2tiZXJyeSBDYXJldCBBcHBlYXJhbmNlIiBERUZBVUxUIE9G
RikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9CTE9CICJFbmFibGUgYmxvYiBzbGljZSIgREVGQVVM
VCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAiRW5hYmxlIGNo
YW5uZWwgbWVzc2FnaW5nIiBERUZBVUxUIE9OKQotV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTiAiQ2xpZW50IGJhc2VkIEdlb2xvY2F0aW9uIiBERUZBVUxUIE9O
KQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RBVEFCQVNFICJFbmFibGUgZGF0YWJhc2UiIERFRkFV
TFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQUxJU1QgIkVuYWJsZSBkYXRhbGlzdCIg
REVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9ERVRBSUxTICJFbmFibGUgZGV0YWls
cyBlbGVtZW50IiBERUZBVUxUIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCA5MjZiZTkxLi4y
MTA2ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtNjUsNyArNjUsNiBAQCBTRVQoVkVSU0lP
Tl9TQ1JJUFQgIi1XbCwtLXZlcnNpb24tc2NyaXB0LCR7Q01BS0VfTU9EVUxFX1BBVEh9L2VmbHN5
bWJvbHMuZmlsdGVyIgogCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQkxPQiAiRW5hYmxlIGJsb2Ig
c2xpY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT04pCi1XRUJLSVRfRkVBVFVS
RShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJFbmFibGUgY2xpZW50IGJhc2VkIGdl
b2xvY2F0aW9uIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBTElTVCAi
RW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMgIkVuYWJsZSBkYXRhIHRyYW5zZmVyIGl0ZW1zIiBERUZBVUxUIE9GRikK
IFdFQktJVF9GRUFUVVJFKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gIkVuYWJsZSBkZXZpY2Ug
b3JpZW50YXRpb24iIERFRkFVTFQgT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlv
bnNXaW5DRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2UKaW5kZXggNjE0
NzgzOC4uNWYwNGY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFr
ZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlCkBAIC0yMSw3ICsyMSw2IEBA
IEFERF9TVUJESVJFQ1RPUlkoJHszUkRQQVJUWV9ESVJ9ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZ
X0RJUn0vM3JkcGFydHkiKQogCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQkxPQiAiRW5hYmxlIGJs
b2Igc2xpY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT0ZGKQotV0VCS0lUX0ZF
QVRVUkUoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiAiRW5hYmxlIGNsaWVudCBiYXNl
ZCBnZW9sb2NhdGlvbiIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQUxJ
U1QgIkVuYWJsZSBkYXRhbGlzdCIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUyAiRW5hYmxlIGRhdGEgdHJhbnNmZXIgaXRlbXMiIERFRkFVTFQg
T0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0ZBU1RfTU9CSUxFX1NDUk9MTElORyAiRW5hYmxl
IGZhc3QgbW9iaWxlIHNjcm9sbGluZyIgREVGQVVMVCBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5kZXggOThk
YjBiNi4uYjE2M2FhOSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKKysr
IGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTgsNyArOCw2IEBACiAjY21ha2VkZWZp
bmUwMSBFTkFCTEVfQVNfSU1BR0UKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9CTE9CCiAjY21ha2Vk
ZWZpbmUwMSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcKLSNjbWFrZWRlZmluZTAxIEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT04KICNjbWFrZWRlZmluZTAxIEVOQUJMRV9EQVRBTElTVAog
I2NtYWtlZGVmaW5lMDEgRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMKICNjbWFrZWRlZmluZTAx
IEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZTQxZWQwLi5jYTFlODI3IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisgICAgICAgICogcW1ha2Uv
bWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmY6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBi
L1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDJhMDU2MjUuLjkxYmRjMjAgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0CkBAIC03Miw3ICs3Miw2IEBAIG15ICgKICAgICAkYW5pbWF0aW9uQVBJU3VwcG9y
dCwKICAgICAkYmxvYlN1cHBvcnQsCiAgICAgJGNoYW5uZWxNZXNzYWdpbmdTdXBwb3J0LAotICAg
ICRjbGllbnRCYXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwKICAgICAkY292ZXJhZ2VTdXBwb3J0LAog
ICAgICRjc3NGaWx0ZXJzU3VwcG9ydCwKICAgICAkY3NzR3JpZExheW91dFN1cHBvcnQsCkBAIC0x
NjcsOSArMTY2LDYgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJjaGFubmVs
LW1lc3NhZ2luZyIsIGRlc2MgPT4gIlRvZ2dsZSBNZXNzYWdlQ2hhbm5lbCBhbmQgTWVzc2FnZVBv
cnQgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyIs
IGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCB9LAogCi0g
ICAgeyBvcHRpb24gPT4gImNsaWVudC1iYXNlZC1nZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2ds
ZSBjbGllbnQtYmFzZWQgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0
KCkgfHwgaXNHdGsoKSB8fCBpc0JsYWNrQmVycnkoKSksIHZhbHVlID0+IFwkY2xpZW50QmFzZWRH
ZW9sb2NhdGlvblN1cHBvcnQgfSwKLQogICAgIHsgb3B0aW9uID0+ICJjc3MtZmlsdGVycyIsIGRl
c2MgPT4gIlRvZ2dsZSBDU1MgRmlsdGVycyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0NTU19GSUxURVJTIiwgZGVmYXVsdCA9PiBpc0FwcGxlV2ViS2l0KCksIHZhbHVlID0+IFwk
Y3NzRmlsdGVyc1N1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvVG9vbHMvcW1ha2UvbWtzcGVjcy9m
ZWF0dXJlcy9mZWF0dXJlcy5wcmYgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1
cmVzLnByZgppbmRleCA1OWEwYmQ0Li4wNmRhMWFmIDEwMDY0NAotLS0gYS9Ub29scy9xbWFrZS9t
a3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgorKysgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2Zl
YXR1cmVzL2ZlYXR1cmVzLnByZgpAQCAtMTcwLDcgKzE3MCw2IEBAIGNvbnRhaW5zKERFRklORVMs
IFdURl9VU0VfTElCWE1MMj0xKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FU
SU9OPS4pIHsKICAgICBjb250YWlucyhNT0JJTElUWV9DT05GSUcsIGxvY2F0aW9uKXxjb250YWlu
cyhRVF9DT05GSUcsIGxvY2F0aW9uKSB7CiAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfR0VPTE9D
QVRJT049MQotICAgICAgIERFRklORVMgKz0gRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
Tj0xCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAyNDAxMzcxLi4wNzE2YjdkIDEwMDY0NAot
LS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzOgorICAgICAgICAqIHdpbi90b29scy92c3By
b3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wczoKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMKaW5kZXggYzI1ZmI2MC4uMThlNTEzZCAx
MDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZp
bmVzLnZzcHJvcHMKKysrIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzLnZzcHJvcHMKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpOyQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVO
REVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5B
QkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxF
X0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxT
KTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
OyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxF
X0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRf
Q09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KTskKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7
JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7
JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxF
X1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJ
UFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJM
RV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9T
T0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9Y
U0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFX1JFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKTskKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19HUklEX0xB
WU9VVCk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJM
RV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJ
RCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5B
QkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNU
T1JZX1VQTE9BRCk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVO
QUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9MSU5L
X1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVf
TUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNB
VElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RB
Ryk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQo
RU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1ZHKTskKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklE
RU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChF
TkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMp
OyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FIgpAQCAtNDIsMTEgKzQyLDYgQEAKIAkJUGVyZm9ybUVudmlyb25t
ZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KLQkJTmFtZT0iRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTiIKLQkJVmFsdWU9IkVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04iCi0JCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKLQkvPgotICA8VXNlck1hY3JvCiAJ
CU5hbWU9IkVOQUJMRV9DU1NfRklMVEVSUyIKIAkJVmFsdWU9IkVOQUJMRV9DU1NfRklMVEVSUyIK
IAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFy
aWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcyBiL1dlYktp
dExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMK
aW5kZXggM2NlYWMxOC4uODZkYzA0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90
b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcworKysgYi9XZWJLaXRMaWJy
YXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCkBAIC05
LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVO
REVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5B
QkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxF
X0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxT
KTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
OyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxF
X0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRf
Q09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KTskKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7
JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7
JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxF
X1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJ
UFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJM
RV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9T
T0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9Y
U0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChF
TkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5B
QkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DU1NfRklMVEVS
Uyk7JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFC
TEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFU
QUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJTKTskKEVO
QUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQ
QUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFC
TEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9OX09CU0VS
VkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9T
SEFET1dfRE9NKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1RZTEVfU0NPUEVE
KTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVf
U1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJ
TUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNy
bwogCQlOYW1lPSJFTkFCTEVfM0RfQ0FOVkFTIgpAQCAtMzcsMTEgKzM3LDYgQEAKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KLQkJTmFtZT0iRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiIKLQkJVmFsdWU9IkVOQUJMRV9DTElFTlRfQkFTRURf
R0VPTE9DQVRJT04iCi0JCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKLQkvPgotICA8VXNl
ck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9DU1NfRklMVEVSUyIKIAkJVmFsdWU9IiIKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgo=
</data>
<flag name="commit-queue"
          id="134369"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131482</attachid>
            <date>2012-03-12 18:21:06 -0700</date>
            <delta_ts>2012-03-12 21:55:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>78853.diff</filename>
            <type>text/plain</type>
            <size>130211</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5ZWEzOTZmLi4yZTk4YmNk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4g
UG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNt
YWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2U6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBhYTZkOWNjLi4zNzQwZGE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiB3dGYvUGxh
dGZvcm0uaDoKKwogMjAxMi0wMy0wOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogRGF0ZS5wYXJzZSgiVHVlIE5vdiAyMyAy
MDo0MDowNSAyMDEwIEdNVCIpIHJldHVybnMgTmFOCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggNThhMDJmNS4uZGQ3Y2RkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzQsOSAr
MzQsNiBAQAogRU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1F
KSk7CiBFTkFCTEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJF
QUxfUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNv
c3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFN
RSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVDsKIApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5B
QkxFX1dPUktFUlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7
CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9C
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAk
KEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxF
X0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxT
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJM
RV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19E
T00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklO
RElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09O
TFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQo
RU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChF
TkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTU19GSUxU
RVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQo
RU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFE
KSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9J
TkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BF
RUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxF
X01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJf
VEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChF
TkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFC
TEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1ND
UklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktF
UlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJM
RV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRT
KSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9M
T0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCA3MTZiYmE1Li4wZDVhZmNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMTExLDEyICsxMTExLDggQEAKICNkZWZpbmUgV1RG
X1VTRV9BQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMgMQogI2VuZGlmCiAKLS8qIEdlb2xvY2F0
aW9uIHJlcXVlc3QgcG9saWN5LiBwcmUtZW1wdGl2ZSBwb2xpY3kgaXMgdG8gYWNxdWlyZSB1c2Vy
IHBlcm1pc3Npb24gYmVmb3JlIGFjcXVpcmluZyBsb2NhdGlvbi4KLSAgIENsaWVudCBiYXNlZCBp
bXBsZW1lbnRhdGlvbnMgd2lsbCBoYXZlIG9wdGlvbiB0byBjaG9vc2UgYmV0d2VlbiBwcmUtZW1w
dGl2ZSBhbmQgbm9ucHJlLWVtcHRpdmUgcGVybWlzc2lvbiBwb2xpY3kuCi0gICBwcmUtZW1wdGl2
ZSBwZXJtaXNzaW9uIHBvbGljeSBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGFsbCBjbGllbnQt
YmFzZWQgaW1wbGVtZW50YXRpb25zLiAqLwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCisvKiBHZW9sb2NhdGlvbiByZXF1ZXN0IHBvbGljeS4gcHJlLWVtcHRpdmUgcG9saWN5
IGlzIHRvIGFjcXVpcmUgdXNlciBwZXJtaXNzaW9uIGJlZm9yZSBhY3F1aXJpbmcgbG9jYXRpb24u
ICovCiAjZGVmaW5lIFdURl9VU0VfUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OIDEKLSNl
bmRpZgogCiAjaWYgQ1BVKEFSTV9USFVNQjIpCiAjZGVmaW5lIEVOQUJMRV9CUkFOQ0hfQ09NUEFD
VElPTiAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDJmY2MyNjUuLjMxYmZkMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xMDg3LDcgKzEwODcsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcGxhdGZvcm0vRmlsZUljb25Mb2FkZXIuY3BwCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAKICAgICBwbGF0Zm9ybS9DbG9ja0dlbmVyaWMuY3BwCi0gICAgcGxhdGZvcm0vR2VvbG9jYXRp
b25TZXJ2aWNlLmNwcAogICAgIHBsYXRmb3JtL0hpc3RvZ3JhbVN1cHBvcnQuY3BwCiAgICAgcGxh
dGZvcm0vS1VSTC5jcHAKICAgICBwbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwCkBAIC0xMjA5LDcg
KzEyMDgsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9ybS9tb2NrL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5jcHAKLSAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2su
Y3BwCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwCiAKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBkOTEyNzY0Li41MDE1ZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTItMDMt
MDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlUG9zaXRpb25FcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6R2Vv
bG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246OnN0b3ApOgorICAgICAg
ICAoV2ViQ29yZTo6R2VvbG9jYXRpb246Omxhc3RQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6R2Vv
bG9jYXRpb246OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb246
OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChHZW9sb2NhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmg6CisgICAgICAg
ICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVycm9yLmg6CisgICAgICAgICogTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmg6CisgICAgICAgICogVGFyZ2V0
LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJv
bWVDbGllbnQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFBhZ2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaDogUmVtb3ZlZC4KKwogMjAxMi0wMy0wOSAgUm9i
IEJ1aXMgIDxyYnVpc0ByaW0uY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgZmlsZSBGcmFt
ZUJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDU4YTAyZjUuLmRkN2NkZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29u
ZmlnCkBAIC0zNCw5ICszNCw2IEBACiBFTkFCTEVfQkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFM
X1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9CTE9CX21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1F
TkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVB
TF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBAIC0xMzIsNCArMTI5LDQgQEAgRU5BQkxFX1dFQl9U
SU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQg
PSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5H
KSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkp
ICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1Nf
R1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQ
UE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAk
KEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9M
SU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChF
TkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNS
T0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAk
KEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFC
TEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChF
TkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9E
QVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NW
R19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05P
VElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9W
SURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJf
QVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJM
RV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNE
X1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklN
QVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChF
TkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NT
X1NIQURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkg
JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9G
SUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01B
VEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAk
KEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05f
T0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJ
VFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9S
RUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJM
RV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9T
Q09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVO
QUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJM
RV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFD
SykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tF
VFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBlYmRjYzhmLi5mMzEzM2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQpAQCAtNDYxLDggKzQ2MSw4IEBAIGVuZGlmICMgRU5EIEVOQUJMRV9GSUxURVJTCiAj
IC0tLS0KIGlmIEVOQUJMRV9HRU9MT0NBVElPTgogCi1GRUFUVVJFX0RFRklORVMgKz0gRU5BQkxF
X0dFT0xPQ0FUSU9OPTEgRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xCi13ZWJjb3Jl
X2NwcGZsYWdzICs9IC1ERU5BQkxFX0dFT0xPQ0FUSU9OPTEgLURFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OPTEKK0ZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfR0VPTE9DQVRJT049MQor
d2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9HRU9MT0NBVElPTj0xCiBlbmRpZiAjIEVORCBF
TkFCTEVfR0VPTE9DQVRJT04KIAogIyAtLS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA0NTY5NDE5Li45MDZjZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTMwMjUsOCArMzAyNSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRmlsZVN5c3RlbS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GbG9hdENv
bnZlcnNpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVu
aXQuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0hhc2hUb29scy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9IaXN0b2dyYW1TdXBwb3J0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSGlzdG9n
cmFtU3VwcG9ydC5oIFwKQEAgLTMzMzYsOCArMzMzNCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50
TW9jay5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vy
dmljZU1vY2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVt
ZU1vY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1l
TW9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlQmFzZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBhNjg5YTE4Li45ZjY0NzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAt
MzgsMTMgKzM4LDExIEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNpbmNsdWRl
ICJDb29yZGluYXRlcy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNTQsOCArNTIsNiBAQCBzdGF0aWMgY29uc3QgY2hhciBmcmFtZWxlc3NEb2N1
bWVudEVycm9yTWVzc2FnZVtdID0gIkdlb2xvY2F0aW9uIGNhbm5vdCBiZSB1c2VkCiAKIHN0YXRp
YyBjb25zdCBpbnQgZmlyc3RBdmFpbGFibGVXYXRjaElkID0gMTsKIAotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCi0KIHN0YXRpYyBQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBj
cmVhdGVHZW9wb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKIHsKICAgICBp
ZiAoIXBvc2l0aW9uKQpAQCAtODEsNyArNzcsNiBAQCBzdGF0aWMgUGFzc1JlZlB0cjxQb3NpdGlv
bkVycm9yPiBjcmVhdGVQb3NpdGlvbkVycm9yKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9yKQogCiAg
ICAgcmV0dXJuIFBvc2l0aW9uRXJyb3I6OmNyZWF0ZShjb2RlLCBlcnJvci0+bWVzc2FnZSgpKTsK
IH0KLSNlbmRpZgogCiBHZW9sb2NhdGlvbjo6R2VvTm90aWZpZXI6Okdlb05vdGlmaWVyKEdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbiwgUGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiBzdWNjZXNz
Q2FsbGJhY2ssIFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNr
LCBQYXNzUmVmUHRyPFBvc2l0aW9uT3B0aW9ucz4gb3B0aW9ucykKICAgICA6IG1fZ2VvbG9jYXRp
b24oZ2VvbG9jYXRpb24pCkBAIC0yMzQsOSArMjI5LDYgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlv
bj4gR2VvbG9jYXRpb246OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQog
CiBHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQotI2lmICFFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgICwgbV9zZXJ2aWNlKEdlb2xvY2F0aW9uU2Vydmlj
ZTo6Y3JlYXRlKHRoaXMpKQotI2VuZGlmCiAgICAgLCBtX2FsbG93R2VvbG9jYXRpb24oVW5rbm93
bikKIHsKIH0KQEAgLTI3MSwxMyArMjYzLDggQEAgdm9pZCBHZW9sb2NhdGlvbjo6c3RvcCgpCiAg
ICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjg3Nwog
CiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiBtX2FsbG93
R2VvbG9jYXRpb24gPT0gSW5Qcm9ncmVzcykgewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCisgICAgaWYgKHBhZ2UgJiYgbV9hbGxvd0dlb2xvY2F0aW9uID09IEluUHJvZ3Jl
c3MpCiAgICAgICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jYW5jZWxQZXJtaXNz
aW9uUmVxdWVzdCh0aGlzKTsKLSNlbHNlCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQo
KS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKGZyYW1lKCksIHRo
aXMpOwotI2VuZGlmCi0gICAgfQogICAgIC8vIFRoZSBmcmFtZSBtYXkgYmUgbW92aW5nIHRvIGEg
bmV3IHBhZ2UgYW5kIHdlIHdhbnQgdG8gZ2V0IHRoZSBwZXJtaXNzaW9ucyBmcm9tIHRoZSBuZXcg
cGFnZSdzIGNsaWVudC4KICAgICBtX2FsbG93R2VvbG9jYXRpb24gPSBVbmtub3duOwogICAgIGNh
bmNlbEFsbFJlcXVlc3RzKCk7CkBAIC0yODksMTUgKzI3NiwxMSBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpzdG9wKCkKIAogR2VvcG9zaXRpb24qIEdlb2xvY2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRo
aXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgbV9s
YXN0UG9zaXRpb24gPSBjcmVhdGVHZW9wb3NpdGlvbihwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKS0+bGFzdFBvc2l0aW9uKCkpOwotI2Vsc2UKLSAgICBtX2xhc3RQb3NpdGlvbiA9IG1fc2Vy
dmljZS0+bGFzdFBvc2l0aW9uKCk7Ci0jZW5kaWYKIAogICAgIHJldHVybiBtX2xhc3RQb3NpdGlv
bi5nZXQoKTsKIH0KQEAgLTYyNywxMSArNjEwLDcgQEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVz
dFBlcm1pc3Npb24oKQogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IEluUHJvZ3Jlc3M7CiAKICAg
ICAvLyBBc2sgdGhlIGVtYmVkZGVyOiBpdCBtYWludGFpbnMgdGhlIGdlb2xvY2F0aW9uIGNoYWxs
ZW5nZSBwb2xpY3kgaXRzZWxmLgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CiAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnJlcXVlc3RQZXJtaXNzaW9uKHRo
aXMpOwotI2Vsc2UKLSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPnJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShmcmFtZSgpLCB0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lk
IEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWRJbnRlcm5hbCgpCkBAIC02NzYsOCArNjU1LDYg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZVN1Y2Nlc3NDYWxsYmFja3MoKQogICAgICAgICBzdG9w
VXBkYXRpbmcoKTsKIH0KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0K
IHZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAgICAgcG9zaXRpb25DaGFu
Z2VkSW50ZXJuYWwoKTsKQEAgLTY4OSw1NCArNjY2LDIzIEBAIHZvaWQgR2VvbG9jYXRpb246OnNl
dEVycm9yKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9yKQogICAgIGhhbmRsZUVycm9yKHBvc2l0aW9u
RXJyb3IuZ2V0KCkpOwogfQogCi0jZWxzZQotCi12b2lkIEdlb2xvY2F0aW9uOjpnZW9sb2NhdGlv
blNlcnZpY2VQb3NpdGlvbkNoYW5nZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBzZXJ2aWNlKQotewot
ICAgIEFTU0VSVF9VTlVTRUQoc2VydmljZSwgc2VydmljZSA9PSBtX3NlcnZpY2UpOwotICAgIEFT
U0VSVChtX3NlcnZpY2UtPmxhc3RQb3NpdGlvbigpKTsKLQotICAgIHBvc2l0aW9uQ2hhbmdlZElu
dGVybmFsKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb246Omdlb2xvY2F0aW9uU2VydmljZUVycm9y
T2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBzZXJ2aWNlKQotewotICAgIEFTU0VSVChzZXJ2
aWNlLT5sYXN0RXJyb3IoKSk7Ci0KLSAgICAvLyBOb3RlIHRoYXQgd2UgZG8gbm90IHN0b3AgdGlt
ZXJzIGhlcmUuIEZvciBvbmUtc2hvdHMsIHRoZSByZXF1ZXN0IGlzCi0gICAgLy8gY2xlYXJlZCBp
biBoYW5kbGVFcnJvci4gRm9yIHdhdGNoZXJzLCB0aGUgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSB0
aW1lciBpcwotICAgIC8vIG5vdCBjbGVhcmVkLgotICAgIGhhbmRsZUVycm9yKHNlcnZpY2UtPmxh
c3RFcnJvcigpKTsKLX0KLQotI2VuZGlmCi0KIGJvb2wgR2VvbG9jYXRpb246OnN0YXJ0VXBkYXRp
bmcoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxl
cigpLT5hZGRPYnNlcnZlcih0aGlzLCBub3RpZmllci0+bV9vcHRpb25zLT5lbmFibGVIaWdoQWNj
dXJhY3koKSk7CiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBtX3NlcnZpY2Ut
PnN0YXJ0VXBkYXRpbmcobm90aWZpZXItPm1fb3B0aW9ucy5nZXQoKSk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBHZW9sb2NhdGlvbjo6c3RvcFVwZGF0aW5nKCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYg
KCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xs
ZXIoKS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7Ci0jZWxzZQotICAgIG1fc2VydmljZS0+c3RvcFVw
ZGF0aW5nKCk7Ci0jZW5kaWYKLQogfQogCiAjaWYgVVNFKFBSRUVNUFRfR0VPTE9DQVRJT05fUEVS
TUlTU0lPTikKQEAgLTc2MiwxNyArNzA4LDUgQEAgdm9pZCBHZW9sb2NhdGlvbjo6aGFuZGxlUGVu
ZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMoKQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2Vsc2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIEdlb2xvY2F0aW9uOjpj
bGVhcldhdGNoKGludCkgeyB9Ci12b2lkIEdlb2xvY2F0aW9uOjpzdG9wKCkgeyB9Ci1HZW9sb2Nh
dGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkgOiBBY3Rp
dmVET01PYmplY3QoY29udGV4dCwgdGhpcykgeyB9Ci1HZW9sb2NhdGlvbjo6fkdlb2xvY2F0aW9u
KCkgeyB9Ci12b2lkIEdlb2xvY2F0aW9uOjpzZXRJc0FsbG93ZWQoYm9vbCkgeyB9Ci0KLX0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAj
ZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmluZGV4IDJjNmJhYjguLjhkY2JiM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAg
LTI3LDYgKzI3LDggQEAKICNpZm5kZWYgR2VvbG9jYXRpb25faAogI2RlZmluZSBHZW9sb2NhdGlv
bl9oCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKICNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgogI2luY2x1ZGUgIlBvc2l0aW9uQ2FsbGJh
Y2suaCIKQEAgLTM1LDI1ICszNywxNiBAQAogI2luY2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCiAKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7Ci0jaWYgRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CiBjbGFz
cyBHZW9sb2NhdGlvbkVycm9yOwotI2VuZGlmCiBjbGFzcyBQYWdlOwogY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKIAogY2xhc3MgR2VvbG9jYXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxH
ZW9sb2NhdGlvbj4sIHB1YmxpYyBBY3RpdmVET01PYmplY3QKLSNpZiAhRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikgJiYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotICAgICwgcHVibGljIEdl
b2xvY2F0aW9uU2VydmljZUNsaWVudAotI2VuZGlmCiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8R2VvbG9jYXRpb24+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CkBA
IC02OSwxMiArNjIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldElzQWxsb3dlZChib29sKTsK
IAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgdm9pZCBwb3NpdGlv
bkNoYW5nZWQoKTsKICAgICB2b2lkIHNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3IqKTsKLSNlbHNl
Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlKiBnZXRHZW9sb2NhdGlvblNlcnZpY2UoKSBjb25zdCB7
IHJldHVybiBtX3NlcnZpY2UuZ2V0KCk7IH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIEdlb3Bv
c2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKQEAgLTE1OCwxMiArMTQ3LDYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGhhbmRsZVBlbmRpbmdQZXJtaXNzaW9uTm90aWZpZXJzKCk7CiAjZW5kaWYKIAotI2lm
ICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAmJiBFTkFCTEUoR0VPTE9DQVRJT04p
Ci0gICAgLy8gR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIGdlb2xv
Y2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZChHZW9sb2NhdGlvblNlcnZpY2UqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNl
cnZpY2UqKTsKLSNlbmRpZgotCiAgICAgUGFzc1JlZlB0cjxHZW9Ob3RpZmllcj4gc3RhcnRSZXF1
ZXN0KFBhc3NSZWZQdHI8UG9zaXRpb25DYWxsYmFjaz4sIFBhc3NSZWZQdHI8UG9zaXRpb25FcnJv
ckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxQb3NpdGlvbk9wdGlvbnM+KTsKIAogICAgIHZvaWQgZmF0
YWxFcnJvck9jY3VycmVkKEdlb05vdGlmaWVyKik7CkBAIC0xNzQsOSArMTU3LDYgQEAgcHJpdmF0
ZToKIAogICAgIEdlb05vdGlmaWVyU2V0IG1fb25lU2hvdHM7CiAgICAgV2F0Y2hlcnMgbV93YXRj
aGVyczsKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSAgICBPd25QdHI8
R2VvbG9jYXRpb25TZXJ2aWNlPiBtX3NlcnZpY2U7Ci0jZW5kaWYKICNpZiBVU0UoUFJFRU1QVF9H
RU9MT0NBVElPTl9QRVJNSVNTSU9OKQogICAgIEdlb05vdGlmaWVyU2V0IG1fcGVuZGluZ0ZvclBl
cm1pc3Npb25Ob3RpZmllcnM7CiAjZW5kaWYKQEAgLTE4OSwxMyArMTY5LDEzIEBAIHByaXZhdGU6
CiAgICAgICAgIE5vCiAgICAgfSBtX2FsbG93R2VvbG9jYXRpb247CiAKLSNpZiBFTkFCTEUoR0VP
TE9DQVRJT04pCiAgICAgUmVmUHRyPEdlb3Bvc2l0aW9uPiBtX2NhY2hlZFBvc2l0aW9uOwotI2Vu
ZGlmCiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1ZXN0c0F3YWl0aW5nQ2FjaGVkUG9zaXRpb247
CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCisjZW5kaWYgLy8gRU5BQkxFKEdF
T0xPQ0FUSU9OKQorCiAjZW5kaWYgLy8gR2VvbG9jYXRpb25faAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5jcHAKaW5kZXggOTY5NGE5OS4uYzkxZjMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmNwcApA
QCAtMjUsMTEgKzI1LDExIEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9s
b2NhdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NB
VElPTikKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiR2VvbG9j
YXRpb25Qb3NpdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyNyw0ICsxMjcs
NCBAQCBHZW9sb2NhdGlvblBvc2l0aW9uKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXI6Omxhc3RQb3Np
dGlvbigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmgKaW5kZXggMDYxMWRjMy4uOWIxMDM5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxl
ci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCiAj
ZGVmaW5lIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkdlb2xv
Y2F0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTc1LDYgKzc1LDYgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiAKICNl
bmRpZiAvLyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uRXJyb3IuaAppbmRleCAyYTNiYWQ0Li43
MzUyZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uRXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uRXJyb3IuaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHZW9sb2NhdGlv
bkVycm9yX2gKICNkZWZpbmUgR2VvbG9jYXRpb25FcnJvcl9oCiAKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC02
MCw2ICs1OCw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlm
IC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNlbmRpZiAvLyBHZW9sb2Nh
dGlvbkVycm9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRp
b24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXggOWYyNWIxMS4uN2IxNTY0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
blBvc2l0aW9uLmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25Qb3NpdGlv
bl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uUG9zaXRpb25faAogCi0jaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKLQogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xMDYsNiAr
MTA0LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmIC8vIEdlb2xvY2F0aW9u
UG9zaXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNDM3MmU2OC4uMWM0NTBiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC0xMDY1LDcgKzEwNjUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS9GaWxlSWNv
bkxvYWRlci5jcHAgXAogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW0uY3BwIFwKICAgICBwbGF0Zm9y
bS9GaWxlU3lzdGVtLmNwcCBcCi0gICAgcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBc
CiAgICAgcGxhdGZvcm0vSGlzdG9ncmFtU3VwcG9ydC5jcHAgXAogICAgIHBsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL3F0L0ltYWdlRnJhbWVRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnREZXNjcmlwdGlvbi5jcHAgXApAQCAtMTEzMSw3ICsxMTMwLDYgQEAgU09VUkNFUyArPSBcCiAg
ICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBcCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvbkNsaWVudE1vY2suY3BwIFwKLSAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAgXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5jcHAgXApAQCAtMjE1MCwxMiArMjE0OCwxMCBA
QCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9GaWxlU3RyZWFtLmggXAogICAgIHBsYXRmb3Jt
L0ZpbGVTdHJlYW1DbGllbnQuaCBcCiAgICAgcGxhdGZvcm0vRmlsZVN5c3RlbS5oIFwKLSAgICBw
bGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCBcCiAgICAgcGxhdGZvcm0vSGlzdG9ncmFtU3Vw
cG9ydC5oIFwKICAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBcCiAg
ICAgcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBcCiAgICAgcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwKLSAgICBwbGF0Zm9ybS9tb2Nr
L0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJU
aGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGE0MGY4
YjcuLjFhNTgzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xODYsOCArMTg2LDYgQEAgX19a
TjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18x
NFN1YnN0aXR1dGVEYXRhRWIKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE1
UmVzb3VyY2VSZXF1ZXN0RWIKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI2cmVsb2FkRWIKIF9f
Wk43V2ViQ29yZTExRnJhbWVMb2FkZXI5c2V0T3BlbmVyRVBOU181RnJhbWVFCi1fX1pON1dlYkNv
cmUxMUdlb2xvY2F0aW9uMTJzZXRJc0FsbG93ZWRFYgotX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlv
bkQxRXYKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xMHRhcmdldEl0ZW1FdgogX19aTjdXZWJD
b3JlMTFIaXN0b3J5SXRlbTExc2V0UmVmZXJyZXJFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNv
cmUxMUhpc3RvcnlJdGVtMTJhZGRDaGlsZEl0ZW1FTjNXVEYxMFBhc3NSZWZQdHJJUzBfRUUKQEAg
LTYxNiw3ICs2MTQsNiBAQCBfX1pON1dlYkNvcmUyMGJ1aWx0SW5QREZQbHVnaW5OYW1lRXYKIF9f
Wk43V2ViQ29yZTIwbWFrZVJHQkEzMkZyb21GbG9hdHNFZmZmZgogX19aTjdXZWJDb3JlMjBwcm90
b2NvbElzSmF2YVNjcmlwdEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTIxQmFja0Zvcndh
cmRDb250cm9sbGVyMTFpdGVtQXRJbmRleEVpCi1fX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ2xp
ZW50TW9jazEzc2V0UGVybWlzc2lvbkViCiBfX1pON1dlYkNvcmUyMU1lbW9yeVByZXNzdXJlSGFu
ZGxlcjdpbnN0YWxsRXYKIF9fWk43V2ViQ29yZTIxUGxhdGZvcm1LZXlib2FyZEV2ZW50MjRkaXNh
bWJpZ3VhdGVLZXlEb3duRXZlbnRFTlNfMTNQbGF0Zm9ybUV2ZW50NFR5cGVFYgogX19aTjdXZWJD
b3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyMHNlcnZlUGVuZGluZ1JlcXVlc3RzRU5TXzIwUmVz
b3VyY2VMb2FkUHJpb3JpdHlFCkBAIC0xMTc4LDcgKzExNzUsNiBAQCBfX1pOSzdXZWJDb3JlMTFG
cmFtZUxvYWRlcjE3bmV0d29ya2luZ0NvbnRleHRFdgogX19aTks3V2ViQ29yZTExRnJhbWVMb2Fk
ZXIyMGFjdGl2ZURvY3VtZW50TG9hZGVyRXYKIF9fWk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMjdu
dW1QZW5kaW5nT3JMb2FkaW5nUmVxdWVzdHNFYgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXI4
bG9hZFR5cGVFdgotX19aTks3V2ViQ29yZTExR2VvbG9jYXRpb241ZnJhbWVFdgogX19aTks3V2Vi
Q29yZTExSGlzdG9yeUl0ZW0xMHZpc2l0Q291bnRFdgogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0
ZW0xMWhhc0NoaWxkcmVuRXYKIF9fWk5LN1dlYkNvcmUxMUhpc3RvcnlJdGVtMTFvcmlnaW5hbFVS
TEV2CkBAIC0xNjkwLDEzICsxNjg2LDEyIEBAIF9fWk43V2ViQ29yZThEcmFnRGF0YUMxRVJLTjNX
VEY2U3RyaW5nRVJLTlNfOEludFBvaW50RVM3X05TXzEzRHJhZ09wZXJhdGlvbkVOU18yCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQorX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlvbjEyc2V0SXNBbGxvd2VkRWIKK19f
Wk43V2ViQ29yZTExR2VvbG9jYXRpb25EMUV2CitfX1pOSzdXZWJDb3JlMTFHZW9sb2NhdGlvbjVm
cmFtZUV2CitfX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ2xpZW50TW9jazEzc2V0UGVybWlzc2lv
bkViCiBfX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ29udHJvbGxlcjEzZXJyb3JPY2N1cnJlZEVQ
TlNfMTZHZW9sb2NhdGlvbkVycm9yRQogX19aTjdXZWJDb3JlMjFHZW9sb2NhdGlvbkNvbnRyb2xs
ZXIxNXBvc2l0aW9uQ2hhbmdlZEVQTlNfMTlHZW9sb2NhdGlvblBvc2l0aW9uRQotI2Vsc2UKLV9f
Wk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazExc2V0UG9zaXRpb25FTjNXVEYxMFBh
c3NSZWZQdHJJTlNfMTFHZW9wb3NpdGlvbkVFRQotX19aTjdXZWJDb3JlMjJHZW9sb2NhdGlvblNl
cnZpY2VNb2NrOHNldEVycm9yRU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzUG9zaXRpb25FcnJvckVF
RQotI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJQ09OREFUQUJBU0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggMmEzODNmNi4uNzJjZTU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjk0Miw4ICsy
OTQyLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9GbG9hdENvbnZlcnNpb24uaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vQ2xvY2tHZW5lcmljLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vQ2xvY2tHZW5lcmljLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0dlb2xvY2F0aW9uU2Vy
dmljZS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9IYXNoVG9vbHMuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vS1VSTC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwJywKQEAg
LTQwNjUsOCArNDA2Myw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL1dpZGdldE1hYy5t
bScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1v
Y2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9j
ay5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9j
ay5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9j
ay5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDMwMWMwNjYuLjc5OGMxYWIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0yNzMxOCwxNCArMjczMTgsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxHZW9sb2NhdGlvblNlcnZp
Y2UuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxHZW9sb2NhdGlvblNlcnZpY2UuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cSGlzdG9ncmFtU3VwcG9ydC5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzM1NjEsMTQgKzMzNTUzLDYgQEAKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tc
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZp
bGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxtb2NrXEdlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBsYXRmb3JtXG1vY2tcU2Nyb2xsYmFyVGhlbWVNb2NrLmNwcCIKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTR2VvbG9j
YXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlv
bkN1c3RvbS5jcHAKaW5kZXggY2FhYzM4MC4uOGE5MTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAKQEAgLTM3LDEwICszNyw2
IEBACiAjaW5jbHVkZSAiSlNQb3NpdGlvbkVycm9yQ2FsbGJhY2suaCIKICNpbmNsdWRlICJQb3Np
dGlvbk9wdGlvbnMuaCIKIAotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQot
I2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFj
ZSBKU0M7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGll
bnRzLmgKaW5kZXggM2ZjMjA0ZC4uYTY1ZjRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMjE3LDkgKzIxNyw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfQogCi0gICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xv
Y2F0aW9uKikge30KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7fQotCiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NM
YXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSB7fQogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCmluZGV4IDI2ZDc0YWIuLmJjNTNlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaApAQCAtMjE0LDEzICsyMTQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
dmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwogCi0gICAgICAg
IC8vIEZJWE1FOiBSZW1vdmUgb25jZSBhbGwgcG9ydHMgYXJlIHVzaW5nIGNsaWVudC1iYXNlZCBn
ZW9sb2NhdGlvbi4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzcz
Ci0gICAgICAgIC8vIEZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24sIHRoZXNlIHR3byBtZXRo
b2RzIGhhdmUgbW92ZWQgdG8gR2VvbG9jYXRpb25DbGllbnQuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MQotICAgICAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIg
YSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4g
ZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KLSAgICAgICAgLy8gdG8g
dXNlIEdlb2xvY2F0aW9uLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJh
bWUqLCBHZW9sb2NhdGlvbiopID0gMDsKLQogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKICAgICAg
ICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENv
bG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCA3YjZiOWZlLi43ZmIxZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQzLDYg
KzQzLDcgQEAKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVHJl
ZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0u
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCkBAIC03NSwxMCArNzYsNiBAQAog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUg
Ikdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIEhhc2hTZXQ8UGFnZSo+KiBhbGxQYWdlczsKQEAgLTEyNSw3ICsxMjIsNyBAQCBQ
YWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVyKEluc3BlY3RvckNvbnRyb2xsZXI6OmNyZWF0
ZSh0aGlzLCBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQpKQogI2VuZGlmCi0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAg
LCBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0
aGlzLCBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCkpCiAjZW5kaWYKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBjZGY3ZmU2Li4yYmE0ZmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogICAgICAgICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250
cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JDb250cm9sbGVyLmdldCgpOyB9CiAj
ZW5kaWYKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKICAgICAgICAgR2VvbG9jYXRpb25Db250cm9sbGVyKiBnZW9sb2NhdGlvbkNv
bnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2dlb2xvY2F0aW9uQ29udHJvbGxlci5nZXQoKTsg
fQogI2VuZGlmCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKQEAgLTM1OCw3ICszNTgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgT3duUHRy
PEluc3BlY3RvckNvbnRyb2xsZXI+IG1faW5zcGVjdG9yQ29udHJvbGxlcjsKICNlbmRpZgotI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9O
KQogICAgICAgICBPd25QdHI8R2VvbG9jYXRpb25Db250cm9sbGVyPiBtX2dlb2xvY2F0aW9uQ29u
dHJvbGxlcjsKICNlbmRpZgogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjg3OTNhMS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKLQotI2luY2x1ZGUgIkdl
b2xvY2F0aW9uU2VydmljZU1vY2suaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgotI2luY2x1
ZGUgIlBvc2l0aW9uRXJyb3IuaCIKLQotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2lmICFF
TkFCTEUoR0VPTE9DQVRJT04pIHx8IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi1z
dGF0aWMgUGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IGNyZWF0ZUdlb2xvY2F0aW9uU2Vy
dmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KikKLXsKLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24qIEdlb2xvY2F0aW9u
U2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAmY3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNlTnVs
bDsKLUdlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZp
Y2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlvbiA9ICZjcmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxs
OwotI2Vsc2UKLUdlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlv
blNlcnZpY2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlvbiA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OjpjcmVhdGU7Ci0jZW5kaWYKLQotUGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IEdlb2xv
Y2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogY2xpZW50KQot
ewotICAgIHJldHVybiAoKnNfZmFjdG9yeUZ1bmN0aW9uKShjbGllbnQpOwotfQotCi0jaWYgRU5B
QkxFKEdFT0xPQ0FUSU9OKQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKQotewot
ICAgIHNfZmFjdG9yeUZ1bmN0aW9uID0gc19tb2NrRmFjdG9yeUZ1bmN0aW9uOwotfQotCi12b2lk
IEdlb2xvY2F0aW9uU2VydmljZTo6c2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0aW9u
IGYpCi17Ci0gICAgc19tb2NrRmFjdG9yeUZ1bmN0aW9uID0gZjsKLX0KLQotR2VvbG9jYXRpb25T
ZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGll
bnQpCi0gICAgOiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudChjbGllbnQpCi17Ci0gICAgQVNT
RVJUKG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNl
cnZpY2U6OnBvc2l0aW9uQ2hhbmdlZCgpCi17Ci0gICAgbV9nZW9sb2NhdGlvblNlcnZpY2VDbGll
bnQtPmdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZCh0aGlzKTsKLX0KLQotdm9pZCBH
ZW9sb2NhdGlvblNlcnZpY2U6OmVycm9yT2NjdXJyZWQoKQotewotICAgIG1fZ2VvbG9jYXRpb25T
ZXJ2aWNlQ2xpZW50LT5nZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3VycmVkKHRoaXMpOwotfQot
Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NWJhOWZkNy4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlv
blNlcnZpY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEdlb2xvY2F0aW9uU2Vydmlj
ZV9oCi0jZGVmaW5lIEdlb2xvY2F0aW9uU2VydmljZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIEdlb2xvY2F0aW9uU2VydmljZTsKLWNsYXNzIEdlb3Bvc2l0aW9uOwotY2xh
c3MgUG9zaXRpb25FcnJvcjsKLWNsYXNzIFBvc2l0aW9uT3B0aW9uczsKLQotY2xhc3MgR2VvbG9j
YXRpb25TZXJ2aWNlQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNl
cnZpY2VDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNlUG9z
aXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2VydmljZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Z2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqKSA9IDA7
Ci19OwotCi1jbGFzcyBHZW9sb2NhdGlvblNlcnZpY2UgewotICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEdlb2xvY2F0aW9uU2VydmljZSk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
R2VvbG9jYXRpb25TZXJ2aWNlPiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7Ci0g
ICAgdmlydHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNlKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wg
c3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSB7IH0KLQotICAgIHZpcnR1YWwgR2VvcG9zaXRpb24q
IGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIFBvc2l0aW9u
RXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLQotICAgIHZvaWQgcG9zaXRp
b25DaGFuZ2VkKCk7Ci0gICAgdm9pZCBlcnJvck9jY3VycmVkKCk7Ci0KLSAgICBzdGF0aWMgdm9p
ZCB1c2VNb2NrKCk7Ci0gICAgdHlwZWRlZiBQYXNzT3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4g
KEZhY3RvcnlGdW5jdGlvbikoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7Ci0gICAgc3RhdGlj
IHZvaWQgc2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0aW9uKTsKLQotcHJvdGVjdGVk
OgotICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKLSAg
ICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGdlb2xvY2F0aW9uU2VydmljZUNsaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50OyB9Ci0KLXByaXZhdGU6Ci0g
ICAgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBtX2dlb2xvY2F0aW9uU2VydmljZUNsaWVudDsK
LQotICAgIHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfZmFjdG9yeUZ1bmN0aW9uOwotICAgIHN0
YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfbW9ja0ZhY3RvcnlGdW5jdGlvbjsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdlb2xvY2F0aW9uU2VydmljZV9oCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRN
b2NrLmNwcAppbmRleCBkMDY3YzhhLi4yNzZiNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwCkBAIC0zMSw3ICsz
MSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRN
b2NrLmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJM
RShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKQEAgLTE3OSw0ICsxNzksNCBAQCB2b2lkIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jazo6Y29udHJvbGxlclRpbWVyRmlyZWQoVGltZXI8R2VvbG9jYXRpb25D
bGllbnRNb2NrPiogdAogCiB9IC8vIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgK
aW5kZXggYjQwMDE2Ni4uNGMyMzhjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCkBAIC0zMSw4ICszMSw2IEBACiAjaWZu
ZGVmIEdlb2xvY2F0aW9uQ2xpZW50TW9ja19oCiAjZGVmaW5lIEdlb2xvY2F0aW9uQ2xpZW50TW9j
a19oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAi
R2VvbG9jYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1
ZGUgIlRpbWVyLmgiCkBAIC05NSw2ICs5Myw0IEBAIHByaXZhdGU6CiAKIH0KIAotI2VuZGlmIC8v
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmNTM0ZGQuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLmgiCi0KLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCi0KLSNpbmNsdWRl
ICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3Np
dGlvbi5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKLSNpbmNsdWRlICJQb3NpdGlvbk9w
dGlvbnMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1HZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OjpHZW9sb2NhdGlvblNlcnZpY2VTZXQqIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNfaW5zdGFu
Y2VzID0gMDsKLVJlZlB0cjxHZW9wb3NpdGlvbj4qIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNf
bGFzdFBvc2l0aW9uOwotUmVmUHRyPFBvc2l0aW9uRXJyb3I+KiBHZW9sb2NhdGlvblNlcnZpY2VN
b2NrOjpzX2xhc3RFcnJvcjsKLQotUGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IEdlb2xv
Y2F0aW9uU2VydmljZU1vY2s6OmNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVu
dCkKLXsKLSAgICBpbml0U3RhdGljcygpOwotICAgIHJldHVybiBhZG9wdFB0cihuZXcgR2VvbG9j
YXRpb25TZXJ2aWNlTW9jayhjbGllbnQpKTsKLX0KLQotR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6
R2VvbG9jYXRpb25TZXJ2aWNlTW9jayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkK
LSAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGllbnQpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp0aW1lckZpcmVkKQotICAgICwgbV9pc0FjdGl2ZShmYWxz
ZSkKLXsKLSAgICBzX2luc3RhbmNlcy0+YWRkKHRoaXMpOwotfQotCi1HZW9sb2NhdGlvblNlcnZp
Y2VNb2NrOjp+R2VvbG9jYXRpb25TZXJ2aWNlTW9jaygpCi17Ci0gICAgR2VvbG9jYXRpb25TZXJ2
aWNlU2V0OjppdGVyYXRvciBpdGVyID0gc19pbnN0YW5jZXMtPmZpbmQodGhpcyk7Ci0gICAgQVNT
RVJUKGl0ZXIgIT0gc19pbnN0YW5jZXMtPmVuZCgpKTsKLSAgICBzX2luc3RhbmNlcy0+cmVtb3Zl
KGl0ZXIpOwotICAgIGNsZWFuVXBTdGF0aWNzKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2
aWNlTW9jazo6c2V0UG9zaXRpb24oUGFzc1JlZlB0cjxHZW9wb3NpdGlvbj4gcG9zaXRpb24pCi17
Ci0gICAgaW5pdFN0YXRpY3MoKTsKLSAgICBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKTsK
LSAgICAqc19sYXN0UG9zaXRpb24gPSBwb3NpdGlvbjsKLSAgICAqc19sYXN0RXJyb3IgPSAwOwot
ICAgIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygpOwotfQotCi12b2lk
IEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldEVycm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJv
cj4gZXJyb3IpCi17Ci0gICAgaW5pdFN0YXRpY3MoKTsKLSAgICBHZW9sb2NhdGlvblNlcnZpY2U6
OnVzZU1vY2soKTsKLSAgICAqc19sYXN0RXJyb3IgPSBlcnJvcjsKLSAgICAqc19sYXN0UG9zaXRp
b24gPSAwOwotICAgIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJvbUFsbEluc3RhbmNlcygpOwot
fQotCi1ib29sIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnN0YXJ0VXBkYXRpbmcoUG9zaXRpb25P
cHRpb25zKikKLXsKLSAgICBtX2lzQWN0aXZlID0gdHJ1ZTsKLSAgICBtX3RpbWVyLnN0YXJ0T25l
U2hvdCgwKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VN
b2NrOjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKLX0KLQotdm9p
ZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp0aW1lckZpcmVkKFRpbWVyPEdlb2xvY2F0aW9uU2Vy
dmljZU1vY2s+KiB0aW1lcikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAm
bV90aW1lcik7Ci0gICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKTsKLX0KLQotdm9pZCBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5j
ZXMoKQotewotICAgIEdlb2xvY2F0aW9uU2VydmljZVNldDo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
c19pbnN0YW5jZXMtPmVuZCgpOwotICAgIGZvciAoR2VvbG9jYXRpb25TZXJ2aWNlU2V0Ojpjb25z
dF9pdGVyYXRvciBpdGVyID0gc19pbnN0YW5jZXMtPmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0
ZXIpCi0gICAgICAgICgqaXRlciktPm1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Ci19Ci0KLXZv
aWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2soKQotewot
ICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCpzX2xhc3RQ
b3NpdGlvbikKLSAgICAgICAgcG9zaXRpb25DaGFuZ2VkKCk7Ci0gICAgZWxzZSBpZiAoKnNfbGFz
dEVycm9yKQotICAgICAgICBlcnJvck9jY3VycmVkKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25T
ZXJ2aWNlTW9jazo6aW5pdFN0YXRpY3MoKQotewotICAgIGlmIChzX2luc3RhbmNlcyA9PSAwKSB7
IAotICAgICAgICBzX2luc3RhbmNlcyA9IG5ldyBHZW9sb2NhdGlvblNlcnZpY2VTZXQ7Ci0gICAg
ICAgIHNfbGFzdFBvc2l0aW9uID0gbmV3IFJlZlB0cjxHZW9wb3NpdGlvbj47Ci0gICAgICAgIHNf
bGFzdEVycm9yID0gbmV3IFJlZlB0cjxQb3NpdGlvbkVycm9yPjsKLSAgICB9Ci19Ci0KLXZvaWQg
R2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y2xlYW5VcFN0YXRpY3MoKQotewotICAgIGlmIChzX2lu
c3RhbmNlcy0+c2l6ZSgpID09IDApIHsKLSAgICAgICAgZGVsZXRlIHNfaW5zdGFuY2VzOwotICAg
ICAgICBzX2luc3RhbmNlcyA9IDA7Ci0gICAgICAgIGRlbGV0ZSBzX2xhc3RQb3NpdGlvbjsKLSAg
ICAgICAgZGVsZXRlIHNfbGFzdEVycm9yOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMz
OTc4ZmUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvblNlcnZpY2VNb2NrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBHZW9sb2NhdGlv
blNlcnZpY2VNb2NrX2gKLSNkZWZpbmUgR2VvbG9jYXRpb25TZXJ2aWNlTW9ja19oCi0KLSNpbmNs
dWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKLSNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGhpcyBjbGFzcyBwcm92
aWRlcyBhIG1vY2sgaW1wbGVtZW50YXRpb24gb2YgYSBHZW9sb2NhdGlvblNlcnZpY2UgZm9yIHRl
c3RpbmcKLS8vIHB1cnBvc2VzLiBJdCBhbGxvd3MgdGhlIHBvc2l0aW9uIG9yIGVycm9yIHRoYXQg
d2lsbCBiZSByZXBvcnRlZCBieSB0aGlzIGNsYXNzCi0vLyB0byBiZSBzZXQgbWFudWFsbHkgdXNp
bmcgdGhlIHNldFBvc2l0aW9uIGFuZCBzZXRFcnJvciBtZXRob2RzLiBPYmplY3RzIG9mCi0vLyB0
aGlzIGNsYXNzIGNhbGwgYmFjayB0byB0aGVpciByZXNwZWN0aXZlIEdlb2xvY2F0aW9uU2Vydmlj
ZUNsaWVudCB3aXRoIHRoZQotLy8gcG9zaXRpb24gb3IgZXJyb3IgZXZlcnkgdGltZSBlaXRoZXIg
b2YgdGhlc2UgaXMgdXBkYXRlZC4KLWNsYXNzIEdlb2xvY2F0aW9uU2VydmljZU1vY2sgOiBwdWJs
aWMgR2VvbG9jYXRpb25TZXJ2aWNlIHsKLSAgcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRy
PEdlb2xvY2F0aW9uU2VydmljZT4gY3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCopOwot
Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayhHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsK
LSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VNb2NrKCk7Ci0KLSAgICB2aXJ0dWFsIGJv
b2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cFVwZGF0aW5nKCk7Ci0KLSAgICBzdGF0aWMgdm9pZCBzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdl
b3Bvc2l0aW9uPiBwb3NpdGlvbik7Ci0gICAgc3RhdGljIHZvaWQgc2V0RXJyb3IoUGFzc1JlZlB0
cjxQb3NpdGlvbkVycm9yPiBwb3NpdGlvbik7Ci0KLSAgICB2aXJ0dWFsIEdlb3Bvc2l0aW9uKiBs
YXN0UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBzX2xhc3RQb3NpdGlvbi0+Z2V0KCk7IH0KLSAg
ICB2aXJ0dWFsIFBvc2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0dXJuIHNfbGFz
dEVycm9yLT5nZXQoKTsgfQotCi0gIHByaXZhdGU6Ci0gICAgc3RhdGljIHZvaWQgbWFrZUdlb2xv
Y2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7Ci0gICAgdm9pZCBtYWtlR2VvbG9jYXRp
b25DYWxsYmFjaygpOwotCi0gICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPEdlb2xvY2F0aW9uU2Vy
dmljZU1vY2s+Kik7Ci0KLSAgICBzdGF0aWMgdm9pZCBpbml0U3RhdGljcygpOwotICAgIHN0YXRp
YyB2b2lkIGNsZWFuVXBTdGF0aWNzKCk7Ci0KLSAgICB0eXBlZGVmIEhhc2hTZXQ8R2VvbG9jYXRp
b25TZXJ2aWNlTW9jayo+IEdlb2xvY2F0aW9uU2VydmljZVNldDsKLSAgICBzdGF0aWMgR2VvbG9j
YXRpb25TZXJ2aWNlU2V0KiBzX2luc3RhbmNlczsKLQotICAgIHN0YXRpYyBSZWZQdHI8R2VvcG9z
aXRpb24+KiBzX2xhc3RQb3NpdGlvbjsKLSAgICBzdGF0aWMgUmVmUHRyPFBvc2l0aW9uRXJyb3I+
KiBzX2xhc3RFcnJvcjsKLQotICAgIFRpbWVyPEdlb2xvY2F0aW9uU2VydmljZU1vY2s+IG1fdGlt
ZXI7Ci0KLSAgICBib29sIG1faXNBY3RpdmU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGFkNDMzNjAuLmFjY2U3MmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApAQCAtNDYsMTIgKzQ2LDEwIEBACiAjaW5j
bHVkZSAiRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIgotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaWYgRU5BQkxFX0RSVAogI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2VuZGlmCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250
cm9sbGVyQ2xpZW50QmxhY2tCZXJyeS5oIgotI2VuZGlmCiAjaW5jbHVkZSAiR3JvdXBTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93
bmVyRWxlbWVudC5oIgpAQCAtNDE1LDcgKzQxMyw2IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6Omlu
aXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1lKQogICAgIHBhZ2VDbGllbnRzLmRyYWdD
bGllbnQgPSBkcmFnQ2xpZW50OwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IGlu
c3BlY3RvckNsaWVudDsKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAg
ICAgLy8gTm90ZSB0aGUgb2JqZWN0IHdpbGwgYmUgZGVzdHJveWVkIHdoZW4gdGhlIHBhZ2UgaXMg
ZGVzdHJveWVkLgogI2lmIEVOQUJMRV9EUlQKICAgICBpZiAoZ2V0ZW52KCJkcnRSdW4iKSkKQEAg
LTQyNSw3ICs0MjIsNiBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjppbml0KGNvbnN0IFdlYlN0cmlu
ZyYgcGFnZUdyb3VwTmFtZSkKICAgICAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQg
PSBtX2dlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJs
YWNrQmVycnkodGhpcyk7CiAjZWxzZQogICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50
ID0gbV9nZW9sb2NhdGlvbkNsaWVudDsKLSNlbmRpZgogCiAgICAgcGFnZUNsaWVudHMuZGV2aWNl
TW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlvbkNsaWVudEJsYWNrQmVycnkodGhpcyk7CiAg
ICAgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBuZXcgRGV2aWNlT3JpZW50
YXRpb25DbGllbnRCbGFja0JlcnJ5KHRoaXMpOwpAQCAtNDM1LDcgKzQzMSw3IEBAIHZvaWQgV2Vi
UGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1lKQogICAgIFdl
YkNvcmU6OnByb3ZpZGVOb3RpZmljYXRpb24obV9wYWdlLCBOb3RpZmljYXRpb25QcmVzZW50ZXJJ
bXBsOjppbnN0YW5jZSgpKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikgJiYgRU5BQkxFX0RSVAorI2lmIEVOQUJMRV9EUlQKICAgICAvLyBJbiBjYXNlIHJ1
bm5pbmcgaW4gRHVtcFJlbmRlclRyZWUgbW9kZSBzZXQgdGhlIGNvbnRyb2xsZXIgdG8gbW9jayBw
cm92aWRlci4KICAgICBpZiAoZ2V0ZW52KCJkcnRSdW4iKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8
R2VvbG9jYXRpb25DbGllbnRNb2NrKj4ocGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQpLT5z
ZXRDb250cm9sbGVyKG1fcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggYjM2M2VkMy4uNjQ5NDYzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGgg
IDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJp
dmF0ZTo6aW5pdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVh
dHVyZXMuaW46CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJy
eS5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5o
OgorICAgICAgICAoQ2hyb21lQ2xpZW50QmxhY2tCZXJyeSk6CisgICAgICAgICogV2ViS2l0U3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwOgorICAgICAgICAodG9HZW9sb2NhdGlvbkNs
aWVudE1vY2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpudW1iZXJPZlBlbmRp
bmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRlclRy
ZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorCiAyMDEyLTAz
LTA5ICBDaGFybGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAg
ICAgICBbQmxhY2tCZXJyeV0gV2ViIE5vdGlmaWNhdGlvbiBub3Qgd29ya2luZyBhZnRlciByZWJh
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9B
Ym91dERhdGFFbmFibGVGZWF0dXJlcy5pbiBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVGZWF0dXJlcy5pbgppbmRleCA0NDU2NWRiLi45MzI2
ZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
QWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluCkBAIC03LDcgKzcsNiBA
QCBCTEFDS0JFUlJZX0NSRURFTlRJQUxfUEVSU0lTVAogQkxPQgogQlJBTkNIX0NPTVBBQ1RJT04K
IENIQU5ORUxfTUVTU0FHSU5HCi1DTElFTlRfQkFTRURfR0VPTE9DQVRJT04KIENPREVCTE9DS19T
QU1QTElORwogQ09NUEFSRV9BTkRfU1dBUAogQ09NUFVURURfR09UT19JTlRFUlBSRVRFUgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDNmYzRhZmIuLjViOTc0ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTQ1OCwyNiArNDU4LDYgQEAg
dm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG4KICNlbmRpZgogfQogCi12b2lkIENocm9tZUNsaWVudEJs
YWNrQmVycnk6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSogZnJh
bWUsIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKLXsKLSAgICBpZiAoIW1fd2ViUGFnZVByaXZh
dGUtPm1fd2ViU2V0dGluZ3MtPmlzR2VvbG9jYXRpb25FbmFibGVkKCkpIHsKLSAgICAgICAgZ2Vv
bG9jYXRpb24tPnNldElzQWxsb3dlZChmYWxzZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0g
ICAgRE9NV2luZG93KiB3aW5kb3cgPSBmcmFtZS0+ZG9tV2luZG93KCk7Ci0gICAgaWYgKCF3aW5k
b3cpCi0gICAgICAgIHJldHVybjsKLQotICAgIENTdHJpbmcgbGF0aW5PcmlnaW4gPSBmcmFtZU9y
aWdpbihmcmFtZSk7Ci0KLSAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+cmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbihtX3dlYlBhZ2VQcml2YXRlLT5tX2dlb2xvY2F0aW9uQ2xpZW50
LCBnZW9sb2NhdGlvbiwgbGF0aW5PcmlnaW4uZGF0YSgpLCBsYXRpbk9yaWdpbi5sZW5ndGgoKSk7
Ci19Ci0KLXZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6Y2FuY2VsR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQot
ewotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5jYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb24obV93ZWJQYWdlUHJpdmF0ZS0+bV9nZW9sb2NhdGlvbkNsaWVudCwgZ2VvbG9jYXRpb24p
OwotfQotCiB2b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OnJ1bk9wZW5QYW5lbChGcmFtZSos
IFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGNob29zZXIpCiB7CiAgICAgU2hhcmVkQXJyYXk8V2Vi
U3RyaW5nPiBpbml0aWFsRmlsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaAppbmRl
eCBiMjRkMzljLi5mNDcwZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKQEAg
LTkwLDggKzkwLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFu
ZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3Qg
U3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7
CiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNo
b29zZXI+KTsKICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyKik7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihj
b25zdCBDdXJzb3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJL
aXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCmluZGV4IGM4ZWRl
NmUuLjMxZjFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L1dlYktpdFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcApAQCAtNDAsMTMg
KzQwLDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBw
b3J0OjpzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluID0gdHJ1ZTsKIAotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIHRvR2VvbG9jYXRp
b25DbGllbnRNb2NrKEdlb2xvY2F0aW9uQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgIEFTU0VSVChn
ZXRlbnYoImRydFJ1biIpKTsKICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xp
ZW50TW9jayo+KGNsaWVudCk7CiB9Ci0jZW5kaWYKIAogRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpE
dW1wUmVuZGVyVHJlZVN1cHBvcnQoKQogewpAQCAtOTgsMjYgKzk2LDE4IEBAIHZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0OjpkdW1wQ29uZmlndXJhdGlvbkZvclZpZXdwb3J0KEZyYW1lKiBtYWlu
RnJhbWUsIGludCBkCiAKIGludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6Om51bWJlck9mUGVuZGlu
Z0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7Ci0jaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1v
Y2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZSh3ZWJQYWdl
KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICByZXR1cm4gbW9ja0Ns
aWVudC0+bnVtYmVyT2ZQZW5kaW5nUGVybWlzc2lvblJlcXVlc3RzKCk7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTSh3ZWJQYWdlKTsKLSAgICByZXR1cm4gLTE7Ci0jZW5kaWYKIH0KIAogdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKFdlYlBhZ2UqIHdlYlBh
Z2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2Nh
dGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3Jl
UGFnZSh3ZWJQYWdlKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBt
b2NrQ2xpZW50LT5yZXNldCgpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihXZWJQYWdlKiB3ZWJQYWdlLCBpbnQgZXJyb3JD
b2RlLCBjb25zdCBTdHJpbmcgbWVzc2FnZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlID0gR2VvbG9j
YXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZTsKICAgICBzd2l0Y2ggKGVycm9yQ29kZSkg
ewogICAgIGNhc2UgUG9zaXRpb25FcnJvcjo6UEVSTUlTU0lPTl9ERU5JRUQ6CkBAIC0xMzAsMjMg
KzEyMCwxOCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9u
RXJyb3IoV2ViUGFnZSogd2ViUGFnZSwgaW50IGVycm9yQwogCiAgICAgR2VvbG9jYXRpb25DbGll
bnRNb2NrKiBtb2NrQ2xpZW50ID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4o
Y29yZVBhZ2Uod2ViUGFnZSktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAg
ICAgbW9ja0NsaWVudC0+c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIG1l
c3NhZ2UpKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9j
a0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlKiB3ZWJQYWdlLCBib29sIGFsbG93ZWQpCiB7
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNs
aWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZSh3
ZWJQYWdlKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xp
ZW50LT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihXZWJQYWdlKiB3ZWJQYWdl
LCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKIHsK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xp
ZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdl
YlBhZ2UpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGll
bnQtPnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShjdXJyZW50VGltZSgp
LCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0OjpzY2FsZVBhZ2VCeShXZWJQYWdlKiB3ZWJQYWdlLCBmbG9hdCBz
Y2FsZUZhY3RvciwgZmxvYXQgeCwgZmxvYXQgeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggNWU2MzJhMy4uZjdiNzFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBC
ZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5cyBl
bmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorICAgICAgICAq
IHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1w
bC5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50SW1wbCk6CisKIDIwMTItMDMtMDggIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEV4cG9z
ZSB0aGUgc2hhcmVkIGdyYXBoaWNzIGNvbnRleHQgb24gV2ViVmlldyBzbyBjYWxsZXJzIGNhbiBh
bGxvY2F0ZSByZXNvdXJjZXMgb24gdGhlIG1haW4gdGhyZWFkIGZvciB0aGUgY29tcG9zaXRvciB0
byB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaSBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQppbmRleCA1YTAzM2M4Li4xYTQx
Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCkBAIC0zNiw3ICszNiw2IEBA
CiAgICAgICAnRU5BQkxFX0JMT0I9MScsCiAgICAgICAnRU5BQkxFX0JMT0JfU0xJQ0U9MScsCiAg
ICAgICAnRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HPTEnLAotICAgICAgJ0VOQUJMRV9DTElFTlRf
QkFTRURfR0VPTE9DQVRJT049MScsCiAgICAgICAnRU5BQkxFX0NTU19GSUxURVJTPTEnLAogICAg
ICAgJ0VOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVD0wJywKICAgICAgICdFTkFCTEVfREFUQV9UUkFO
U0ZFUl9JVEVNUz0xJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0No
cm9tZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5jcHAKaW5kZXggNjNlMmFlOS4uMmU4MGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKQEAgLTUxLDcgKzUxLDYgQEAKICNp
bmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiR2VvbG9jYXRpb24uaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKICNp
bmNsdWRlICJHcmFwaGljc0xheWVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSGl0VGVzdFJlc3VsdC5oIgpAQCAtODg4LDIwICs4ODcsNiBAQCBib29sIENocm9tZUNsaWVu
dEltcGw6OnBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwg
Y29uc3QgSQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotLy8gRklYTUU6IFJlbW92ZSBDaHJvbWVD
bGllbnRJbXBsOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUgYW5kIENocm9t
ZUNsaWVudEltcGw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZQot
Ly8gb25jZSBhbGwgcG9ydHMgaGF2ZSBtb3ZlZCB0byBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24g
KHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzMgKS4KLS8v
IEZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24sIHRoZXNlIG1ldGhvZHMgYXJlIG5vdyBpbXBs
ZW1lbnRlZCBhcyBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24gYW5kIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdC4KLS8vIChzZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYxICkuCi12b2lkIENocm9t
ZUNsaWVudEltcGw6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSog
ZnJhbWUsIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRp
b24pCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiB2b2lkIENocm9tZUNsaWVudEltcGw6OmF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuaAppbmRleCBjMzQ5
NDU0Li4zNGEwYjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJv
bWVDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xp
ZW50SW1wbC5oCkBAIC0xMzcsOCArMTM3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBy
ZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwg
dm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRDdXN0b21PdmVyaGFuZ0FyZWEoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0gICAgdmly
dHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7CiAjaWYgRU5BQkxFKElOUFVUX0NP
TE9SKQogICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0
ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYpIE9WRVJSSURFOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggOTQ0ZTM3OC4u
OWFkZWM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAzLTA5ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisKIDIwMTItMDMt
MDggIEh5b3dvbiBLaW0gIDxodzEwMDgua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtUZXht
YXBdW0VGTF0gSW1wbGVtZW50YXRpb24gb2YgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQg
Zm9yIEVGTCBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCBhMjVmOWQwLi5mMDc1ZmEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAg
LTQ2NCwxNyArNDY0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OnNldEN1cnNvckhpZGRlblVu
dGlsTW91c2VNb3Zlcyhib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUq
LCBHZW9sb2NhdGlvbiopCi17Ci0gICAgLy8gU2VlIHRoZSBjb21tZW50IGluIFdlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgQ2hyb21l
Q2xpZW50RWZsOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJh
bWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBD
aHJvbWVDbGllbnRFZmw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1l
KiwgR2VvbG9jYXRpb24qKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oCmluZGV4IDc3ZGI5
ODIuLmUxMzdjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEVmbC5oCkBAIC0xNDcsOCArMTQ3LDYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZy
YW1lKiwgR2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKICAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9s
b2NhdGlvbiopOwogCiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50cyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggNzk0MGNhMy4uNzY2MjA3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA5ICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4
NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlv
bkNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1
ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uQ2xpZW50OjpjYW5j
ZWxQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRHdGsuaDoKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfaW5pdCk6CisKIDIwMTItMDMtMDcgIEthbmdpbCBIYW4gIDxr
YW5naWwuaGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtEUlRdIFJlbW92ZSBQbGFpblRleHRD
b250cm9sbGVyIGltcGxlbWVudGF0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IGQyODJmMjkuLjQ4ZWEwYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcApAQCAtODYyLDIyICs4NjIsNiBAQCB2b2lkIENocm9tZUNsaWVudDo6c2V0Q3Vy
c29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBDaHJvbWVDbGllbnQ6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFt
ZShGcmFtZSogZnJhbWUsIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKLXsKLSAgICBXZWJLaXRX
ZWJGcmFtZSogd2ViRnJhbWUgPSBraXQoZnJhbWUpOwotICAgIEdSZWZQdHI8V2ViS2l0R2VvbG9j
YXRpb25Qb2xpY3lEZWNpc2lvbj4gcG9saWN5RGVjaXNpb24oYWRvcHRHUmVmKHdlYmtpdF9nZW9s
b2NhdGlvbl9wb2xpY3lfZGVjaXNpb25fbmV3KHdlYkZyYW1lLCBnZW9sb2NhdGlvbikpKTsKLQot
ICAgIGdib29sZWFuIGlzSGFuZGxlZCA9IEZBTFNFOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tcmVxdWVzdGVkIiwgd2Vi
RnJhbWUsIHBvbGljeURlY2lzaW9uLmdldCgpLCAmaXNIYW5kbGVkKTsKLSAgICBpZiAoIWlzSGFu
ZGxlZCkKLSAgICAgICAgd2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZW55KHBvbGljeURlY2lz
aW9uLmdldCgpKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnQ6OmNhbmNlbEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6Okdl
b2xvY2F0aW9uKikKLXsKLSAgICBnX3NpZ25hbF9lbWl0X2J5X25hbWUobV93ZWJWaWV3LCAiZ2Vv
bG9jYXRpb24tcG9saWN5LWRlY2lzaW9uLWNhbmNlbGxlZCIsIGtpdChmcmFtZSkpOwotfQotCiBi
b29sIENocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQog
ewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKaW5kZXggZGNlYTJmMC4uMjJiNTRmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAg
LTEzNCw4ICsxMzQsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lk
IHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKTsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGlu
Z0RpcmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggODA0MzdmZi4uZDEw
YzY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04MTQsMzMgKzgxNCwyNiBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgZmxvYXQgc2NhbGVGYQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50
TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KGNvcmUod2Vi
VmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9jay0+cmVz
ZXQoKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9j
a0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGFsbG93
ZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2Nh
dGlvbkNsaWVudE1vY2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sq
Pihjb3JlKHdlYlZpZXcpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAg
IG1vY2stPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFj
Y3VyYWN5KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2Vv
bG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRN
b2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsK
IAogICAgIGRvdWJsZSB0aW1lc3RhbXAgPSBnX2dldF9yZWFsX3RpbWUoKSAvIDEwMDAwMDAuMDsK
ICAgICBtb2NrLT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUodGltZXN0
YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOwotI2VuZGlmCiB9CiAKIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBpbnQgZXJyb3JDb2RlLCBjb25zdCBnY2hhciogZXJyb3JNZXNzYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRp
b25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4o
Y29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKIAogICAg
IEdlb2xvY2F0aW9uRXJyb3I6OkVycm9yQ29kZSBjb2RlOwpAQCAtODU1LDE3ICs4NDgsMTIgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIGkKICAgICB9CiAKICAgICBtb2NrLT5zZXRFcnJvcihHZW9s
b2NhdGlvbkVycm9yOjpjcmVhdGUoY29kZSwgZXJyb3JNZXNzYWdlKSk7Ci0jZW5kaWYKIH0KIAog
aW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdHMoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKLSNpZiBFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9j
ayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KGNvcmUod2ViVmlldyktPmdl
b2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgcmV0dXJuIG1vY2stPm51bWJl
ck9mUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNl
bmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0SGl4aWU3NldlYlNv
Y2tldFByb3RvY29sRW5hYmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlv
bkNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2Nh
dGlvbkNsaWVudEd0ay5jcHAKaW5kZXggMDZlOWZiZC4uZDNhYWMxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3Rr
LmNwcApAQCAtMjEsOCArMjEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ2xpZW50R3RrLmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQotCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAj
aW5jbHVkZSAiR2VvbG9jYXRpb24uaCIKQEAgLTEzOCwxMiArMTM2LDE4IEBAIFdlYkNvcmU6Okdl
b2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogCiB2
b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2Nh
dGlvbiogZ2VvbG9jYXRpb24pCiB7Ci0gICAgY29yZShtX3dlYlZpZXcpLT5jaHJvbWUoKS0+Y2xp
ZW50KCktPnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShnZW9sb2NhdGlvbi0+
ZnJhbWUoKSwgZ2VvbG9jYXRpb24pOworICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtp
dChnZW9sb2NhdGlvbi0+ZnJhbWUoKSk7CisgICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBv
bGljeURlY2lzaW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9u
X3BvbGljeV9kZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0aW9uKSkpOworCisgICAgZ2Jv
b2xlYW4gaXNIYW5kbGVkID0gRkFMU0U7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2Vi
VmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwg
cG9saWN5RGVjaXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOworICAgIGlmICghaXNIYW5kbGVkKQor
ICAgICAgICB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0
KCkpOwogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVz
dChXZWJDb3JlOjpHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCiB7Ci0gICAgY29yZShtX3dlYlZp
ZXcpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RGb3JGcmFtZShnZW9sb2NhdGlvbi0+ZnJhbWUoKSwgZ2VvbG9jYXRpb24pOworICAgIGdfc2ln
bmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24t
Y2FuY2VsbGVkIiwga2l0KGdlb2xvY2F0aW9uLT5mcmFtZSgpKSk7CiB9CiAKIHZvaWQgR2VvbG9j
YXRpb25DbGllbnQ6OnBvc2l0aW9uQ2hhbmdlZChHZW9jbHVlUG9zaXRpb24qLCBHZW9jbHVlUG9z
aXRpb25GaWVsZHMgZmllbGRzLCBpbnQgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJs
ZSBsb25naXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgR2VvY2x1ZUFjY3VyYWN5KiBhY2N1cmFjeSkK
QEAgLTE3Nyw1ICsxODEsMyBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjplcnJvck9jY3VyZWQo
Y29uc3QgY2hhciogbWVzc2FnZSkKIH0KIAogfQotCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oCmluZGV4IGJmMTdjNzEuLjEyODdlMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xp
ZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRp
b25DbGllbnRHdGsuaApAQCAtMjEsOCArMjEsNiBAQAogI2lmbmRlZiBHZW9sb2NhdGlvbkNsaWVu
dEd0a19oCiAjZGVmaW5lIEdlb2xvY2F0aW9uQ2xpZW50R3RrX2gKIAotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJHUmVmUHRyLmgiCiAjaW5jbHVkZSAi
R2VvbG9jYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCkBA
IC03NSw4ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2VuYWJsZUhpZ2hBY2N1cmFjeTsK
ICAgICBib29sIG1faXNVcGRhdGluZzsKIH07Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2Vu
ZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIEdlb2xvY2F0aW9uQ2xpZW50R3RrX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA4ODBmMjQ0Li5iMGQ3MTM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBAIC0zNTA2LDEyICsz
NTA2LDEwIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJLaXQ6OkRyYWdD
bGllbnQod2ViVmlldyk7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbmV3IFdl
YktpdDo6SW5zcGVjdG9yQ2xpZW50KHdlYlZpZXcpOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBpZiAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wUmVu
ZGVyVHJlZU1vZGVFbmFibGVkKCkpCiAgICAgICAgIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xp
ZW50ID0gbmV3IEdlb2xvY2F0aW9uQ2xpZW50TW9jazsKICAgICBlbHNlCiAgICAgICAgIHBhZ2VD
bGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQo
d2ViVmlldyk7Ci0jZW5kaWYKIAogICAgIHByaXYtPmNvcmVQYWdlID0gbmV3IFBhZ2UocGFnZUNs
aWVudHMpOwogCkBAIC0zNTIwLDEwICszNTE4LDggQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92
aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2
aWNlT3JpZW50YXRpb25Ubyhwcml2LT5jb3JlUGFnZSwgbmV3IERldmljZU9yaWVudGF0aW9uQ2xp
ZW50R3RrKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
ICAgICBpZiAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFi
bGVkKCkpCiAgICAgICAgIHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KHBhZ2VD
bGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50KS0+c2V0Q29udHJvbGxlcihwcml2LT5jb3JlUGFnZS0+
Z2VvbG9jYXRpb25Db250cm9sbGVyKCkpOwotI2VuZGlmCiAKICAgICAvLyBQYWdlcyB3aXRoaW4g
YSBzYW1lIHNlc3Npb24gbmVlZCB0byBiZSBsaW5rZWQgdG9nZXRoZXIgb3RoZXJ3aXNlIHNvbWUg
ZnVuY3Rpb25hbGl0aWVzIHN1Y2gKICAgICAvLyBhcyB2aXNpdGVkIGxpbmsgY29sb3JhdGlvbiAo
YWNyb3NzIHBhZ2VzKSBhbmQgY2hhbmdpbmcgcG9wdXAgd2luZG93IGxvY2F0aW9uIHdpbGwgbm90
IHdvcmsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggM2NjYmI0ZS4uMmNlZjU2MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbToKKyAgICAgICAgKFdlYkdlb2xv
Y2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIFdlYlZpZXcvV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbi5tbToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVy
bmFsIGluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246XSk6CisgICAgICAgIChjb3JlKToK
KyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBpbml0V2l0aFRpbWVzdGFtcDpsYXRp
dHVkZTpsb25naXR1ZGU6YWNjdXJhY3k6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06Cisg
ICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91
cE5hbWU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2dlb2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRp
b246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2dlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcjpd
KToKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
IGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKaW5kZXggNThhMDJmNS4uZGQ3Y2RkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTM0LDkgKzM0
LDYgQEAKIEVOQUJMRV9CTE9CID0gJChFTkFCTEVfQkxPQl8kKFJFQUxfUExBVEZPUk1fTkFNRSkp
OwogRU5BQkxFX0JMT0JfbWFjb3N4ID0gRU5BQkxFX0JMT0I7CiAKLUVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04gPSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT05fJChSRUFM
X1BMQVRGT1JNX05BTUUpKTsKLUVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT05fbWFjb3N4
ID0gRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTjsKLQogRU5BQkxFX0RBU0hCT0FSRF9T
VVBQT1JUID0gJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlRfJChSRUFMX1BMQVRGT1JNX05BTUUp
KTsKIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF9tYWNvc3ggPSBFTkFCTEVfREFTSEJPQVJEX1NV
UFBPUlQ7CiAKQEAgLTEzMiw0ICsxMjksNCBAQCBFTkFCTEVfV0VCX1RJTUlORyA9IDsKIEVOQUJM
RV9XT1JLRVJTID0gRU5BQkxFX1dPUktFUlM7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwog
Ci1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikg
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChF
TkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9E
QVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykg
JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAk
KEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9J
Q09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxP
Q0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikg
JChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQo
RU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFU
SVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVf
TVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdF
X1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAk
KEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9N
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJM
RV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJ
TkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZ
KSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9W
SURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVf
V0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5B
QkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5B
QkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1NfRklMVEVS
UykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RS
QU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJ
T04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVO
QUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVD
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVf
TU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVL
KSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RB
RykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxF
X1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09M
X0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJ
UFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVf
U1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykg
JChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9B
RElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJH
TCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VC
X1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDQ2ZDEy
MDEuLjA1NzZhZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNzMsMTEgKzE3Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZnVsbFNjcmVlblJlbmRlcmVyQ2hhbmdlZChXZWJDb3JlOjpSZW5kZXJCb3gqKSBP
VkVSUklERTsKICNlbmRpZgogCi0gICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIGFsbCBwb3J0cyBh
cmUgdXNpbmcgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzMKLSAgICAvLyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0
aW9uLCB0aGVzZSB0d28gbWV0aG9kcyBoYXZlIG1vdmVkIHRvIFdlYkdlb2xvY2F0aW9uQ2xpZW50
LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAwNjEKLSAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKSBPVkVSUklERSB7IH0KLQogICAgIHZpcnR1YWwg
Ym9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0
aW9uKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Qg
T1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDU0MWY0MGMuLmVkMGY5ZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50Lm1tCkBAIC0yNSw2ICsyNSw4IEBACiAKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uQ2xp
ZW50LmgiCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisKICNpbXBvcnQgIldlYkRlbGVnYXRl
SW1wbGVtZW50YXRpb25DYWNoaW5nLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFsLmgiCiAj
aW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCIKQEAgLTg4LDExICs5MCw3
IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0
aW9uKiBnZW9sb2NhdGlvbikKIAogR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25D
bGllbnQ6Omxhc3RQb3NpdGlvbigpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKICAgICByZXR1cm4gY29yZShbW21fd2ViVmlldyBfZ2VvbG9jYXRpb25Qcm92aWRlcl0g
bGFzdFBvc2l0aW9uXSk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyCkBAIC0xMTcsMyArMTE1LDQg
QEAgR2VvbG9jYXRpb25Qb3NpdGlvbiogV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlv
bigpCiAKIEBlbmQKIAorI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQppbmRleCBj
OTJiN2YxLi42NDY3Y2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
Ykdlb2xvY2F0aW9uUG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCkBAIC0yOSwyNiArMjksMjEgQEAKICNpbXBvcnQgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0
aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotI2VuZGlmCiAKIEBpbnRlcmZhY2Ug
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsIDogTlNPYmplY3QKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogewogQHB1YmxpYwogICAgIFJlZlB0cjxHZW9sb2NhdGlv
blBvc2l0aW9uPiBfcG9zaXRpb247CiB9CiAKIC0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9u
UG9zaXRpb246KFBhc3NSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9u
UG9zaXRpb247Ci0jZW5kaWYKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9u
UG9zaXRpb25JbnRlcm5hbAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
IC0gKGlkKWluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246KFBhc3NSZWZQdHI8R2VvbG9j
YXRpb25Qb3NpdGlvbj4pY29yZUdlb2xvY2F0aW9uUG9zaXRpb24KIHsKICAgICBzZWxmID0gW3N1
cGVyIGluaXRdOwpAQCAtNTcsMjkgKzUyLDIyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
ICAgIF9wb3NpdGlvbiA9IGNvcmVHZW9sb2NhdGlvblBvc2l0aW9uOwogICAgIHJldHVybiBzZWxm
OwogfQotI2VuZGlmCiAKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9uUG9z
aXRpb24KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiBHZW9sb2NhdGlv
blBvc2l0aW9uKiBjb3JlKFdlYkdlb2xvY2F0aW9uUG9zaXRpb24gKnBvc2l0aW9uKQogewogICAg
IHJldHVybiBwb3NpdGlvbiA/IHBvc2l0aW9uLT5faW50ZXJuYWwtPl9wb3NpdGlvbi5nZXQoKSA6
IDA7CiB9Ci0jZW5kaWYKIAogLSAoaWQpaW5pdFdpdGhUaW1lc3RhbXA6KGRvdWJsZSl0aW1lc3Rh
bXAgbGF0aXR1ZGU6KGRvdWJsZSlsYXRpdHVkZSBsb25naXR1ZGU6KGRvdWJsZSlsb25naXR1ZGUg
YWNjdXJhY3k6KGRvdWJsZSlhY2N1cmFjeQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgX2ludGVybmFsID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9u
SW50ZXJuYWwgYWxsb2NdIGluaXRXaXRoQ29yZUdlb2xvY2F0aW9uUG9zaXRpb246R2VvbG9jYXRp
b25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJh
Y3kpXTsKLSNlbHNlCi0gICAgX2ludGVybmFsID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50
ZXJuYWwgYWxsb2NdIGluaXRdOwotI2VuZGlmCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbklu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRp
b25JbnRlcm5hbC5oCmluZGV4IDI3ZjhhMzkuLmY1NGU2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwu
aApAQCAtMjUsMTIgKzI1LDkgQEAKIAogI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5o
IgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIEdlb2xvY2F0aW9uUG9zaXRpb247CiB9CiAKIFdlYkNvcmU6Okdl
b2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqKTsKIAotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggOWNmZThiMy4uNzkwMWJm
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTI5LDYgKzEyOSw4IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVHJlZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZp
ZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvR0NDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlvbkVy
cm9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvSFRNTE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CkBAIC0x
ODgsMTEgKzE5MCw2IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViRGFzaGJvYXJkUmVnaW9uLmg+CiAj
ZW5kaWYKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0jaW1wb3J0IDxX
ZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2Nh
dGlvbkVycm9yLmg+Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShHTElCX1NVUFBPUlQpCiAjaW1wb3J0
IDxnbGliLmg+CiAjZW5kaWYKQEAgLTczOSw3ICs3MzYsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKmxl
YWtPdXRsb29rUXVpcmtzVXNlclNjcmlwdENvbnRlbnRzKCkKICAgICBwYWdlQ2xpZW50cy5lZGl0
b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmRy
YWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudChzZWxmKTsKICAgICBwYWdlQ2xpZW50cy5pbnNw
ZWN0b3JDbGllbnQgPSBuZXcgV2ViSW5zcGVjdG9yQ2xpZW50KHNlbGYpOwotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHBh
Z2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHNl
bGYpOwogI2VuZGlmCiAgICAgX3ByaXZhdGUtPnBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7
CkBAIC02Mzg3LDIwICs2Mzg0LDIwIEBAIHN0YXRpYyB2b2lkIGdsaWJDb250ZXh0SXRlcmF0aW9u
Q2FsbGJhY2soQ0ZSdW5Mb29wT2JzZXJ2ZXJSZWYsIENGUnVuTG9vcEFjdGl2aXR5CiAKIC0gKHZv
aWQpX2dlb2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRpb246KFdlYkdlb2xvY2F0aW9uUG9zaXRpb24g
Kilwb3NpdGlvbgogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYg
RU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+cGFnZSkK
ICAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5wb3NpdGlv
bkNoYW5nZWQoY29yZShwb3NpdGlvbikpOwotI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xP
Q0FUSU9OKQogfQogCiAtICh2b2lkKV9nZW9sb2NhdGlvbkRpZEZhaWxXaXRoRXJyb3I6KE5TRXJy
b3IgKillcnJvcgogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYg
RU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+cGFnZSkg
ewogICAgICAgICBSZWZQdHI8R2VvbG9jYXRpb25FcnJvcj4gZ2VvbG9jYXRpb0Vycm9yID0gR2Vv
bG9jYXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFi
bGUsIFtlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0pOwogICAgICAgICBfcHJpdmF0ZS0+cGFn
ZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmVycm9yT2NjdXJyZWQoZ2VvbG9jYXRpb0Vycm9y
LmdldCgpKTsKICAgICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9
CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCA0OTI4MzE4Li43ZmUxZTU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCkBAIC02NCwxMCArNjQsOCBAQAogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50UXQuaCIKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
I2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9u
Q2xpZW50UXQuaCIKLSNlbmRpZiAvLyBDTElFTlRfQkFTRURfR0VPTE9DQVRJT04KICNpbmNsdWRl
ICJHZW9sb2NhdGlvblBlcm1pc3Npb25DbGllbnRRdC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgpAQCAtMzE0LDkgKzMx
Miw3IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAg
ICAsIGluc3BlY3RvcklzSW50ZXJuYWxPbmx5KGZhbHNlKQogICAgICwgbV9sYXN0RHJvcEFjdGlv
bihRdDo6SWdub3JlQWN0aW9uKQogewotI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pIHx8
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgYm9vbCB1c2VNb2NrID0gUVdl
YlBhZ2VQcml2YXRlOjpkcnRSdW47Ci0jZW5kaWYKIAogICAgIFdlYkNvcmU6OmluaXRpYWxpemVX
ZWJDb3JlUXQoKTsKIApAQCAtMzI2LDEyICszMjIsMTAgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2Vi
UGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9
IG5ldyBFZGl0b3JDbGllbnRRdChxKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3
IERyYWdDbGllbnRRdChxKTsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBuZXcg
SW5zcGVjdG9yQ2xpZW50UXQocSk7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKICAgICBpZiAodXNlTW9jaykKICAgICAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGll
bnQgPSBuZXcgR2VvbG9jYXRpb25DbGllbnRNb2NrOwogICAgIGVsc2UKICAgICAgICAgcGFnZUNs
aWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgR2VvbG9jYXRpb25DbGllbnRRdChxKTsKLSNl
bmRpZgogICAgIHBhZ2UgPSBuZXcgUGFnZShwYWdlQ2xpZW50cyk7CiAjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKICAgICBpZiAodXNlTW9jaykKQEAgLTM1MSwxMSArMzQ1LDkgQEAgUVdl
YlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgIC8vIGFzIGV4
cGVjdGVkIG91dCBvZiB0aGUgYm94LCB3ZSB1c2UgYSBkZWZhdWx0IGdyb3VwIHNpbWlsYXIgdG8g
d2hhdCBvdGhlciBwb3J0cyBhcmUgZG9pbmcuCiAgICAgcGFnZS0+c2V0R3JvdXBOYW1lKCJEZWZh
dWx0IEdyb3VwIik7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAg
IC8vIEluIGNhc2UgcnVubmluZyBpbiBEdW1wUmVuZGVyVHJlZSBtb2RlIHNldCB0aGUgY29udHJv
bGxlciB0byBtb2NrIHByb3ZpZGVyLgogICAgIGlmIChRV2ViUGFnZVByaXZhdGU6OmRydFJ1bikK
ICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4ocGFnZUNsaWVudHMu
Z2VvbG9jYXRpb25DbGllbnQpLT5zZXRDb250cm9sbGVyKHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJv
bGxlcigpKTsKLSNlbmRpZgogICAgIHNldHRpbmdzID0gbmV3IFFXZWJTZXR0aW5ncyhwYWdlLT5z
ZXR0aW5ncygpKTsKIAogICAgIGhpc3RvcnkuZCA9IG5ldyBRV2ViSGlzdG9yeVByaXZhdGUoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0SW1wbCo+KHBhZ2UtPmJhY2tGb3J3YXJk
TGlzdCgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDc2ZDQ5YTYuLmU1ZWE3OTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAg
ICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3F3ZWJwYWdl
LmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKHRvR2VvbG9jYXRp
b25DbGllbnRNb2NrKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpyZXNldEdl
b2xvY2F0aW9uTW9jayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9j
a0dlb2xvY2F0aW9uUGVybWlzc2lvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKToKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
cyk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgK
aW5kZXggMzg2Yjk4Ni4uMjMwNjY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaApAQCAtMTczLDkgKzE3Myw2IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0
IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikg
eyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCA0NTdiNDllLi4wOTI4YjkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcApAQCAtMTA1LDEzICsxMDUsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIFFNYXA8aW50LCBRV2ViU2NyaXB0V29ybGQqPiBtX3dvcmxkTWFwOwogCi0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9H
ZW9sb2NhdGlvbkNsaWVudE1vY2soR2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICAg
QVNTRVJUKFFXZWJQYWdlUHJpdmF0ZTo6ZHJ0UnVuKTsKICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KGNsaWVudCk7CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIHRvRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNb2NrKERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBjbGllbnQp
CkBAIC04MzgsMzQgKzgzNiwyNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRN
b2NrRGV2aWNlT3JpZW50YXRpb24oUVdlYlBhZ2UqIHBhZ2UsIGJvb2wgY2FuUAogCiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpyZXNldEdlb2xvY2F0aW9uTW9jayhRV2ViUGFnZSogcGFn
ZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIGNv
cmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogICAgIEdlb2xvY2F0aW9uQ2xp
ZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlLT5n
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnJlc2V0
KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dl
b2xvY2F0aW9uUGVybWlzc2lvbihRV2ViUGFnZSogcGFnZSwgYm9vbCBhbGxvd2VkKQogewotI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBR
V2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBt
b2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9u
Q29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0UGVybWlzc2lvbihh
bGxvd2VkKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRN
b2NrR2VvbG9jYXRpb25Qb3NpdGlvbihRV2ViUGFnZSogcGFnZSwgZG91YmxlIGxhdGl0dWRlLCBk
b3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBjb3JlUGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6
Y29yZShwYWdlKTsKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dl
b2xvY2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNs
aWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRQb3NpdGlvbihHZW9sb2NhdGlvblBvc2l0aW9u
OjpjcmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpKTsK
LSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9j
YXRpb25FcnJvcihRV2ViUGFnZSogcGFnZSwgaW50IGVycm9yQ29kZSwgY29uc3QgUVN0cmluZyYg
bWVzc2FnZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBh
Z2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogCiAgICAgR2VvbG9j
YXRpb25FcnJvcjo6RXJyb3JDb2RlIGNvZGUgPSBHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVu
YXZhaWxhYmxlOwpAQCAtODgwLDE4ICs4NzEsMTMgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoUVdlYlBhZ2UqIHBhZ2UsIGludCBlcnJvckMK
IAogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHN0YXRpY19jYXN0PEdl
b2xvY2F0aW9uQ2xpZW50TW9jayo+KGNvcmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+
Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3I6OmNy
ZWF0ZShjb2RlLCBtZXNzYWdlKSk7Ci0jZW5kaWYKIH0KIAogaW50IER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyhRV2Vi
UGFnZSogcGFnZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAg
IFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogICAgIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNv
cmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIHJldHVybiBt
b2NrQ2xpZW50LT5udW1iZXJPZlBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKTsKLSNlbHNlCi0g
ICAgcmV0dXJuIC0xOwotI2VuZGlmCiB9CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
OmlzVGFyZ2V0SXRlbShjb25zdCBRV2ViSGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGVtKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudFF0
LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50UXQu
aAppbmRleCA5YTI4MjVkLi45ZDA3YTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50UXQuaApAQCAtNDcsNyArNDcsNyBAQCBj
bGFzcyBRV2ViUGFnZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBUaGlzIGNsYXNzIHBy
b3ZpZGVzIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgR2VvbG9jYXRpb25TZXJ2aWNlIGZvciBRdFdl
YmtpdC4KKy8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBHZW9s
b2NhdGlvbkNsaWVudCBmb3IgUXRXZWJraXQuCiBjbGFzcyBHZW9sb2NhdGlvbkNsaWVudFF0IDog
cHVibGljIFFPYmplY3QsIHB1YmxpYyBHZW9sb2NhdGlvbkNsaWVudCB7CiAgICAgUV9PQkpFQ1QK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IDE2ZDk0NzAuLmRiMjI3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAg
IEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5jcHA6CisgICAgICAgIChXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9u
KToKKyAgICAgICAgKiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkdl
b2xvY2F0aW9uUG9zaXRpb246OmluaXRXaXRoVGltZXN0YW1wKToKKyAgICAgICAgKGNvcmUpOgor
ICAgICAgICAqIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAgICAgICAgKFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24pOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
aW5pdFdpdGhGcmFtZSk6CisgICAgICAgIChXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZENoYW5nZVBv
c2l0aW9uKToKKyAgICAgICAgKFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcik6
CisKIDIwMTItMDMtMDggIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTZXBhcmF0ZSBXVEYgcGFydHMgb2YgSmF2YVNjcmlwdENvcmVHZW5lcmF0ZWQgaW50
byBXVEZHZW5lcmF0ZWQgZm9yIFdpbmRvd3MgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNTljMjQyZC4uYzk0ODky
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTE0NCwxMSArMTQ0LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgeyB9CiAK
LSAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2UgYWxsIHBvcnRzIGFyZSB1c2luZyBjbGllbnQtYmFz
ZWQgZ2VvbG9jYXRpb24uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
MDM3MwotICAgIC8vIEZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24sIHRoZXNlIHR3byBtZXRo
b2RzIGhhdmUgYmVlbiBtb3ZlZCB0byBXZWJHZW9sb2NhdGlvbkNsaWVudC4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYxCi0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6
Okdlb2xvY2F0aW9uKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0
aW9uKikgeyB9Ci0KICNpZiBFTkFCTEUoVklERU8pCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
RnVsbHNjcmVlbkZvck5vZGUoY29uc3QgV2ViQ29yZTo6Tm9kZSopOwogICAgIHZpcnR1YWwgdm9p
ZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cAppbmRleCBiMWQ4M2ZiLi40MWJjYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCkBAIC02Niw3ICs2
Niw2IEBAIHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZygpCiAKIEdlb2xv
Y2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgQ09NUHRyPElXZWJHZW9s
b2NhdGlvblByb3ZpZGVyPiBwcm92aWRlcjsKICAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+Z2Vv
bG9jYXRpb25Qcm92aWRlcigmcHJvdmlkZXIpKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC03NCw5
ICs3Myw2IEBAIEdlb2xvY2F0aW9uUG9zaXRpb24qIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0
UG9zaXRpb24oKQogICAgIGlmIChGQUlMRUQocHJvdmlkZXItPmxhc3RQb3NpdGlvbigmcG9zaXRp
b24pKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGNvcmUocG9zaXRpb24uZ2V0KCkp
OwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0aW9u
Q2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwCmluZGV4IDI2NTU0ZGQu
LmZiMmFjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9z
aXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwCkBAIC0yNywxMSArMjcsOSBAQAogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uUG9zaXRpb24u
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0jZW5kaWYKIAogQ09NUHRyPFdlYkdlb2xvY2F0
aW9uUG9zaXRpb24+IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZUluc3RhbmNlKCkKIHsK
QEAgLTgzLDE1ICs4MSwxMCBAQCBVTE9ORyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpSZWxlYXNl
KCkKIAogSFJFU1VMVCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjppbml0V2l0aFRpbWVzdGFtcChk
b3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJs
ZSBhY2N1cmFjeSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAg
IG1fcG9zaXRpb24gPSBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUodGltZXN0YW1wLCBsYXRp
dHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSk7CiAgICAgcmV0dXJuIFNfT0s7Ci0jZWxzZQotICAg
IHJldHVybiBFX0ZBSUw7Ci0jZW5kaWYKIH0KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBjb3JlKElXZWJHZW9sb2NhdGlvblBvc2l0
aW9uKiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQpAQCAtMTAzLDQgKzk2LDMgQEAg
R2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiogcG9zaXRp
b24pCiAKICAgICByZXR1cm4gd2ViR2VvbG9jYXRpb25Qb3NpdGlvbi0+aW1wbCgpOwogfQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5kZXggODE2
MDI3MC4uM2UxMWRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaApAQCAtNDgsMTkgKzQ4LDEzIEBAIHB1YmxpYzoKICAgICAvLyBJV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpbml0V2l0aFRp
bWVzdGFtcChkb3VibGUgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1
ZGUsIGRvdWJsZSBhY2N1cmFjeSk7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQogICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIGltcGwoKSBjb25zdCB7IHJl
dHVybiBtX3Bvc2l0aW9uLmdldCgpOyB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBVTE9ORyBt
X3JlZkNvdW50OwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUmVm
UHRyPFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24+IG1fcG9zaXRpb247Ci0jZW5kaWYKIH07
CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogV2ViQ29yZTo6R2VvbG9j
YXRpb25Qb3NpdGlvbiogY29yZShJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiopOwotI2VuZGlmCiAK
ICNlbmRpZiAvLyBXZWJHZW9sb2NhdGlvblBvc2l0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5k
ZXggNTkyN2M5Ni4uN2JiNThmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTkyLDYgKzkyLDgg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVXaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dESU9iamVjdENvdW50ZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvR2Vv
bG9jYXRpb25FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9I
VE1MTmFtZXMuaD4KQEAgLTEzOSwxMSArMTQxLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRv
d3NUb3VjaC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250
cm9sbGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkVycm9yLmg+Ci0jZW5kaWYK
LQogI2lmIFVTRShDRykKICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dDb250ZXh0Lmg+CiAjZW5k
aWYKQEAgLTI2NjksOSArMjY2Niw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmll
dzo6aW5pdFdpdGhGcmFtZSgKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2Vi
RWRpdG9yQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2Vi
RHJhZ0NsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5pbnNwZWN0b3JDbGllbnQgPSBtX2lu
c3BlY3RvckNsaWVudDsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAg
IHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50
KHRoaXMpOwotI2VuZGlmCiAgICAgbV9wYWdlID0gbmV3IFBhZ2UocGFnZUNsaWVudHMpOwogCiAg
ICAgQlNUUiBsb2NhbFN0b3JhZ2VQYXRoOwpAQCAtNjU2OSwxOSArNjU2NCwxNCBAQCBIUkVTVUxU
IFdlYlZpZXc6Omdlb2xvY2F0aW9uUHJvdmlkZXIoSVdlYkdlb2xvY2F0aW9uUHJvdmlkZXIqKiBs
b2NhdGlvblByb3ZpZGVyKQogCiBIUkVTVUxUIFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkQ2hhbmdl
UG9zaXRpb24oSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQogewotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJl
dHVybiBFX0ZBSUw7CiAgICAgbV9wYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+cG9zaXRp
b25DaGFuZ2VkKGNvcmUocG9zaXRpb24pKTsKICAgICByZXR1cm4gU19PSzsKLSNlbHNlCi0gICAg
cmV0dXJuIEVfTk9USU1QTDsKLSNlbmRpZgogfQogCiBIUkVTVUxUIFdlYlZpZXc6Omdlb2xvY2F0
aW9uRGlkRmFpbFdpdGhFcnJvcihJV2ViRXJyb3IqIGVycm9yKQogewotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBF
X0ZBSUw7CiAgICAgaWYgKCFlcnJvcikKQEAgLTY1OTYsOSArNjU4Niw2IEBAIEhSRVNVTFQgV2Vi
Vmlldzo6Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKElXZWJFcnJvciogZXJyb3IpCiAgICAg
UmVmUHRyPEdlb2xvY2F0aW9uRXJyb3I+IGdlb2xvY2F0aW9uRXJyb3IgPSBHZW9sb2NhdGlvbkVy
cm9yOjpjcmVhdGUoR2VvbG9jYXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZSwgZGVzY3Jp
cHRpb25TdHJpbmcpOwogICAgIG1fcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmVycm9y
T2NjdXJyZWQoZ2VvbG9jYXRpb25FcnJvci5nZXQoKSk7CiAgICAgcmV0dXJuIFNfT0s7Ci0jZWxz
ZQotICAgIHJldHVybiBFX05PVElNUEw7Ci0jZW5kaWYKIH0KIAogSFJFU1VMVCBXZWJWaWV3Ojpz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKEJPT0wgZm9yYmlkZGVuLCBC
U1RSIHNjaGVtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXggOTQ3OGNjNS4uOTg5MDBlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBw
bGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKENocm9tZUNsaWVudFdpbkNF
KToKKwogMjAxMi0wMi0yNiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBNb3ZlIENocm9tZUNsaWVudDo6c2hvd0NvbnRleHRNZW51KCkgdG8gQ29udGV4
dE1lbnVDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKaW5kZXggNmEwZTI1YS4uYWMwYjI2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRXaW5DRS5jcHAKQEAgLTM2OSwxNiArMzY5LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6
Zm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IE5vZGUqKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
fQotCi12b2lkIENocm9tZUNsaWVudFdpbkNFOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQogYm9vbCBDaHJvbWVDbGllbnRXaW5DRTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaCBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAppbmRleCA2
NGUyYmRhLi5iZGIxMThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCkBAIC0xMzUsMTEgKzEzNSw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0
aW9uUHJlc2VudGVyKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIC8vIFRoaXMgY2FuIGJlIGVpdGhl
ciBhIHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNh
biBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgotICAgIC8vIHRvIHVz
ZSBHZW9sb2NhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlz
c2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1l
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKLQogICAgIHZpcnR1YWwg
dm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZp
bGVDaG9vc2VyPik7CiAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29u
IGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L3d4L0NoYW5nZUxvZwppbmRleCBkZTVhZWY5Li5iOTljMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDEyLTAzLTA5ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3
YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guY3BwOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoK
KwogMjAxMi0wMi0yNiAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBNb3ZlIENocm9tZUNsaWVudDo6c2hvd0NvbnRleHRNZW51KCkgdG8gQ29udGV4dE1l
bnVDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJv
bWVDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guY3BwCmluZGV4IGJjOTg3MjQuLmQxNzFjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcApAQCAtNDY1LDEyICs0NjUsNiBA
QCB2b2lkIENocm9tZUNsaWVudFd4OjpzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiAg
ICAgICAgIG1fd2ViVmlldy0+U2V0Q3Vyc29yKCpjdXJzb3IuaW1wbCgpKTsKIH0KIAotdm9pZCBD
aHJvbWVDbGllbnRXeDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1l
KiwgR2VvbG9jYXRpb24qKQotewotICAgIC8vIFNlZSB0aGUgY29tbWVudCBpbiBXZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBib29sIENocm9t
ZUNsaWVudFd4OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmggYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guaAppbmRleCBmOTU4NzFiLi5hNTk0NDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaApAQCAtMTM2LDkgKzEzNiw2IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVj
dCYpIGNvbnN0IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7Ci0gICAgdmlydHVhbCB2b2lkIGNh
bmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0
aW9uKikgeyB9Ci0KICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NN
ZW51V3JpdGluZ0RpcmVjdGlvbigpOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQb3B1cE1lbnU+
IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBj
MTc3MTUwLi40ZjIyOTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDMtMDkg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6dW5yZWdpc3RlcldlYlBh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBv
c2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRGYWls
VG9EZXRlcm1pbmVQb3NpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpz
ZXRHZW9Mb2NhdGlvblBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKiBtYWMvV2ViS2l0Mi5vcmRl
cjoKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIv
U291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggNThhMDJmNS4uZGQ3Y2RkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdDIvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTM0LDkgKzM0LDYgQEAKIEVOQUJM
RV9CTE9CID0gJChFTkFCTEVfQkxPQl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0JM
T0JfbWFjb3N4ID0gRU5BQkxFX0JMT0I7CiAKLUVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04gPSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT05fJChSRUFMX1BMQVRGT1JNX05B
TUUpKTsKLUVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT05fbWFjb3N4ID0gRU5BQkxFX0NM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTjsKLQogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUID0gJChF
TkFCTEVfREFTSEJPQVJEX1NVUFBPUlRfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVF9tYWNvc3ggPSBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQ7CiAKQEAg
LTEzMiw0ICsxMjksNCBAQCBFTkFCTEVfV0VCX1RJTUlORyA9IDsKIEVOQUJMRV9XT1JLRVJTID0g
RU5BQkxFX1dPUktFUlM7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFC
TEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NI
QURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChF
TkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxF
X1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5B
QkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0Up
ICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJM
RV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVH
QUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhN
TCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVO
QUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JT
RVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlf
QVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJ
U1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkg
JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9T
SEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09Q
RUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJM
RV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9U
T1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMp
ICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVf
Q1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1T
KSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJT
KSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5B
QkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0Up
ICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVf
TUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNB
VElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQo
RU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gp
ICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
UUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVY
VF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChF
TkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5j
cHAKaW5kZXggY2VlOGUwYi4uNjBiODFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNw
cApAQCAtMjksMTQgKzI5LDExIEBACiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCi0KLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogI2luY2x1ZGUgPFdl
YkNvcmUvR2VvbG9jYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJv
bGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvR2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgotI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01OCwyOSArNTUsMjUg
QEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIEMKIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgYm9vbCB3YXNFbXB0eSA9IG1fcGFnZVNldC5pc0VtcHR5KCk7
CiAKICAgICBtX3BhZ2VTZXQuYWRkKHBhZ2UpOwogICAgIAogICAgIGlmICh3YXNFbXB0eSkKICAg
ICAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkdlb2xvY2F0
aW9uTWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5nKCksIDApOwotI2VuZGlmCiB9CiAKIHZvaWQg
V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQog
ewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgbV9wYWdlU2V0LnJl
bW92ZShwYWdlKTsKIAogICAgIGlmIChtX3BhZ2VTZXQuaXNFbXB0eSgpKQogICAgICAgICBtX3By
b2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk6OlN0b3BVcGRhdGluZygpLCAwKTsKLSNlbmRpZgogfQogCiB2b2lkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlcjo6ZGlkQ2hhbmdlUG9zaXRpb24oY29uc3QgV2ViR2VvbG9jYXRpb25Qb3NpdGlv
bjo6RGF0YSYgZGF0YSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQor
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBSZWZQdHI8R2VvbG9jYXRpb25Qb3NpdGlvbj4g
cG9zaXRpb24gPSBHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoZGF0YS50aW1lc3RhbXAsIGRh
dGEubGF0aXR1ZGUsIGRhdGEubG9uZ2l0dWRlLCBkYXRhLmFjY3VyYWN5KTsKIAogICAgIEhhc2hT
ZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOwpAQCAt
OTAsMTIgKzgzLDEyIEBAIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3Np
dGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhCiAgICAgICAgIGlmIChwYWdl
LT5jb3JlUGFnZSgpKQogICAgICAgICAgICAgcGFnZS0+Y29yZVBhZ2UoKS0+Z2VvbG9jYXRpb25D
b250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdlZChwb3NpdGlvbi5nZXQoKSk7CiAgICAgfQotI2Vu
ZGlmCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQogfQogCiB2b2lkIFdlYkdlb2xvY2F0
aW9uTWFuYWdlcjo6ZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKQogewotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIC8v
IEZJWE1FOiBBZGQgbG9jYWxpemVkIGVycm9yIHN0cmluZy4KICAgICBSZWZQdHI8R2VvbG9jYXRp
b25FcnJvcj4gZXJyb3IgPSBHZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25FcnJv
cjo6UG9zaXRpb25VbmF2YWlsYWJsZSwgLyogTG9jYWxpemVkIGVycm9yIHN0cmluZyAqLyBTdHJp
bmcoIiIpKTsKIApAQCAtMTA2LDcgKzk5LDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6
OmRpZEZhaWxUb0RldGVybWluZVBvc2l0aW9uKCkKICAgICAgICAgaWYgKHBhZ2UtPmNvcmVQYWdl
KCkpCiAgICAgICAgICAgICBwYWdlLT5jb3JlUGFnZSgpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIo
KS0+ZXJyb3JPY2N1cnJlZChlcnJvci5nZXQoKSk7CiAgICAgfQotI2VuZGlmCisjZW5kaWYgLy8g
RU5BQkxFKEdFT0xPQ0FUSU9OKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKaW5kZXggMjI2N2Q2Ni4uNDJmODY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKQEAgLTE5NSwxMSArMTk1LDExIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vCiAKIHZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnNldEdlb0xvY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlR3JvdXBQcm94
eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgY29uc3QgSGFzaFNldDxQ
YWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlmaWVy
KCkpLT5wYWdlcygpOwogICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBw
YWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCiAgICAgICAgIHN0YXRp
Y19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KCgqaXRlciktPmdlb2xvY2F0aW9uQ29udHJv
bGxlcigpLT5jbGllbnQoKSktPnNldFBlcm1pc3Npb24oZW5hYmxlZCk7Ci0jZW5kaWYKKyNlbmRp
ZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldEph
dmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwg
Ym9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDE2Y2IyMmEuLjU0ZTc1
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTU4NSwxNiArNTg1LDYgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCwgY29uc3QgSW4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xv
Y2F0aW9uKikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9v
c2VyPiBwcnBGaWxlQ2hvb3NlcikKIHsKICAgICBpZiAobV9wYWdlLT5hY3RpdmVPcGVuUGFuZWxS
ZXN1bHRMaXN0ZW5lcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYjY4ZDhkNC4uOTY5MDQ5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNTMsMTEgKzE1Myw2IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3ZlcmhhbmdBcmVhKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJSSURFOwogCi0gICAgLy8gVGhp
cyBpcyBhbiBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxheSBV
SSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KLSAgICAvLyB0byB1c2UgR2VvbG9jb2Nh
dGlvbi4gVGhlIENocm9tZUNsaWVudCBtdXN0IGNhbGwgR2VvbG9jYXRpb246OnNldFNob3VsZENs
ZWFyQ2FjaGUoKSBhcHByb3ByaWF0ZWx5LgotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2Nh
dGlvbiopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlv
biopIE9WRVJSSURFOwotCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpG
cmFtZSosIFBhc3NSZWZQdHI8V2ViQ29yZTo6RmlsZUNob29zZXI+KSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNv
cmU6OkZpbGVJY29uTG9hZGVyKikgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5jcHAKaW5kZXggMWY5MjBhMS4uOTkzZjk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJXZWJHZW9sb2NhdGlvbkNsaWVudC5oIgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAKICNpbmNsdWRlICJXZWJHZW9s
b2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCkBAIC04MCw0ICs4MCw0IEBA
IHZvaWQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KEdlb2xv
Y2F0aW9uKiBnZW9sb2NhdGlvbikKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAv
LyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShHRU9M
T0NBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAppbmRleCAyMWZjNDM4Li45ZTU3
MTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCkBAIC0yNiw4ICsyNiw2IEBACiAj
aWZuZGVmIFdlYkdlb2xvY2F0aW9uQ2xpZW50X2gKICNkZWZpbmUgV2ViR2VvbG9jYXRpb25DbGll
bnRfaAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2luY2x1ZGUg
PFdlYkNvcmUvR2VvbG9jYXRpb25DbGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02
MSw2ICs1OSw0IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYg
Ly8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmIC8vIFdlYkdlb2xv
Y2F0aW9uQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCA5ZjhiNDE3Li4zOGY0NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgV2ViUGFnZTo6
V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRv
ckNsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdD
bGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuYmFja0ZvcndhcmRDbGllbnQgPSBXZWJCYWNr
Rm9yd2FyZExpc3RQcm94eTo6Y3JlYXRlKHRoaXMpOwotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIHBhZ2VDbGllbnRzLmdl
b2xvY2F0aW9uQ2xpZW50ID0gbmV3IFdlYkdlb2xvY2F0aW9uQ2xpZW50KHRoaXMpOwogI2VuZGlm
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL21hYy9X
ZWJLaXQyLm9yZGVyIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKaW5kZXggNDU3
YTA2My4uMDQxZjg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3Jk
ZXIKKysrIGIvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIKQEAgLTI0NTAsNyArMjQ1
MCw2IEBAIF9fWk42V2ViS2l0MTJXZWJQYWdlUHJveHkyOGRpZFJlc3RvcmVGcmFtZUZyb21QYWdl
Q2FjaGVFeXkKIF9fWk43Q29yZUlQQzEzaGFuZGxlTWVzc2FnZUlOOE1lc3NhZ2VzMTJXZWJQYWdl
UHJveHkzNlJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZUVONldlYktpdDEyV2Vi
UGFnZVByb3h5RU1TNV9Gdnl5TjNXVEY2U3RyaW5nRUVFRXZQTlNfMTVBcmd1bWVudERlY29kZXJF
UFQwX1QxXwogX19aTjdDb3JlSVBDMTBBcmd1bWVudHMzSXl5TjNXVEY2U3RyaW5nRUU2ZGVjb2Rl
RVBOU18xNUFyZ3VtZW50RGVjb2RlckVSUzNfCiBfX1pON0NvcmVJUEMxOGNhbGxNZW1iZXJGdW5j
dGlvbklONldlYktpdDEyV2ViUGFnZVByb3h5RU1TMl9Gdnl5TjNXVEY2U3RyaW5nRUV5eVM0X0VF
dlJLTlNfMTBBcmd1bWVudHMzSVQxX1QyX1QzX0VFUFRfVDBfCi1fX1pONldlYktpdDEyV2ViUGFn
ZVByb3h5MzZyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWVFeXlOM1dURjZTdHJp
bmdFCiBfX1pONldlYktpdDE3V2ViU2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTjNXVEY2U3RyaW5n
RQogX19aTjZXZWJLaXQ0MEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkx
M2NyZWF0ZVJlcXVlc3RFeQogX19aTjZXZWJLaXQzM0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RQcm94eUMxRVBOU180MEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHlF
eQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlIGIvU291
cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCmluZGV4IGE5MGM4NTAuLjEyMjg1MWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UKQEAgLTEzMyw3ICsxMzMsNiBAQCBX
RUJLSVRfRkVBVFVSRShFTkFCTEVfQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSAiQXNzZW1ibGVyIFdY
IEV4Y2x1c2l2ZSIgREVGQVVMVCBPTgogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0JMQUNLQkVSUllf
Q0FSRVRfQVBQRUFSQU5DRSAiQmxhY2tiZXJyeSBDYXJldCBBcHBlYXJhbmNlIiBERUZBVUxUIE9G
RikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9CTE9CICJFbmFibGUgYmxvYiBzbGljZSIgREVGQVVM
VCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAiRW5hYmxlIGNo
YW5uZWwgbWVzc2FnaW5nIiBERUZBVUxUIE9OKQotV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTiAiQ2xpZW50IGJhc2VkIEdlb2xvY2F0aW9uIiBERUZBVUxUIE9O
KQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RBVEFCQVNFICJFbmFibGUgZGF0YWJhc2UiIERFRkFV
TFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQUxJU1QgIkVuYWJsZSBkYXRhbGlzdCIg
REVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9ERVRBSUxTICJFbmFibGUgZGV0YWls
cyBlbGVtZW50IiBERUZBVUxUIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCA5MjZiZTkxLi4y
MTA2ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtNjUsNyArNjUsNiBAQCBTRVQoVkVSU0lP
Tl9TQ1JJUFQgIi1XbCwtLXZlcnNpb24tc2NyaXB0LCR7Q01BS0VfTU9EVUxFX1BBVEh9L2VmbHN5
bWJvbHMuZmlsdGVyIgogCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQkxPQiAiRW5hYmxlIGJsb2Ig
c2xpY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5ORUxfTUVTU0FH
SU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT04pCi1XRUJLSVRfRkVBVFVS
RShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJFbmFibGUgY2xpZW50IGJhc2VkIGdl
b2xvY2F0aW9uIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBTElTVCAi
RW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVMgIkVuYWJsZSBkYXRhIHRyYW5zZmVyIGl0ZW1zIiBERUZBVUxUIE9GRikK
IFdFQktJVF9GRUFUVVJFKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gIkVuYWJsZSBkZXZpY2Ug
b3JpZW50YXRpb24iIERFRkFVTFQgT0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlv
bnNXaW5DRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2UKaW5kZXggNjE0
NzgzOC4uNWYwNGY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFr
ZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlCkBAIC0yMSw3ICsyMSw2IEBA
IEFERF9TVUJESVJFQ1RPUlkoJHszUkRQQVJUWV9ESVJ9ICIke0NNQUtFX0NVUlJFTlRfQklOQVJZ
X0RJUn0vM3JkcGFydHkiKQogCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQkxPQiAiRW5hYmxlIGJs
b2Igc2xpY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT0ZGKQotV0VCS0lUX0ZF
QVRVUkUoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiAiRW5hYmxlIGNsaWVudCBiYXNl
ZCBnZW9sb2NhdGlvbiIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQUxJ
U1QgIkVuYWJsZSBkYXRhbGlzdCIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUyAiRW5hYmxlIGRhdGEgdHJhbnNmZXIgaXRlbXMiIERFRkFVTFQg
T0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0ZBU1RfTU9CSUxFX1NDUk9MTElORyAiRW5hYmxl
IGZhc3QgbW9iaWxlIHNjcm9sbGluZyIgREVGQVVMVCBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5kZXggOThk
YjBiNi4uYjE2M2FhOSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKKysr
IGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTgsNyArOCw2IEBACiAjY21ha2VkZWZp
bmUwMSBFTkFCTEVfQVNfSU1BR0UKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9CTE9CCiAjY21ha2Vk
ZWZpbmUwMSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcKLSNjbWFrZWRlZmluZTAxIEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT04KICNjbWFrZWRlZmluZTAxIEVOQUJMRV9EQVRBTElTVAog
I2NtYWtlZGVmaW5lMDEgRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMKICNjbWFrZWRlZmluZTAx
IEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhZTQxZWQwLi5jYTFlODI3IDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MDMtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisgICAgICAgICogcW1ha2Uv
bWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmY6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCBi
L1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IDJhMDU2MjUuLjkxYmRjMjAgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0CkBAIC03Miw3ICs3Miw2IEBAIG15ICgKICAgICAkYW5pbWF0aW9uQVBJU3VwcG9y
dCwKICAgICAkYmxvYlN1cHBvcnQsCiAgICAgJGNoYW5uZWxNZXNzYWdpbmdTdXBwb3J0LAotICAg
ICRjbGllbnRCYXNlZEdlb2xvY2F0aW9uU3VwcG9ydCwKICAgICAkY292ZXJhZ2VTdXBwb3J0LAog
ICAgICRjc3NGaWx0ZXJzU3VwcG9ydCwKICAgICAkY3NzR3JpZExheW91dFN1cHBvcnQsCkBAIC0x
NjcsOSArMTY2LDYgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJjaGFubmVs
LW1lc3NhZ2luZyIsIGRlc2MgPT4gIlRvZ2dsZSBNZXNzYWdlQ2hhbm5lbCBhbmQgTWVzc2FnZVBv
cnQgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyIs
IGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCB9LAogCi0g
ICAgeyBvcHRpb24gPT4gImNsaWVudC1iYXNlZC1nZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2ds
ZSBjbGllbnQtYmFzZWQgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0
KCkgfHwgaXNHdGsoKSB8fCBpc0JsYWNrQmVycnkoKSksIHZhbHVlID0+IFwkY2xpZW50QmFzZWRH
ZW9sb2NhdGlvblN1cHBvcnQgfSwKLQogICAgIHsgb3B0aW9uID0+ICJjc3MtZmlsdGVycyIsIGRl
c2MgPT4gIlRvZ2dsZSBDU1MgRmlsdGVycyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0NTU19GSUxURVJTIiwgZGVmYXVsdCA9PiBpc0FwcGxlV2ViS2l0KCksIHZhbHVlID0+IFwk
Y3NzRmlsdGVyc1N1cHBvcnQgfSwKIApkaWZmIC0tZ2l0IGEvVG9vbHMvcW1ha2UvbWtzcGVjcy9m
ZWF0dXJlcy9mZWF0dXJlcy5wcmYgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1
cmVzLnByZgppbmRleCA1OWEwYmQ0Li4wNmRhMWFmIDEwMDY0NAotLS0gYS9Ub29scy9xbWFrZS9t
a3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgorKysgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2Zl
YXR1cmVzL2ZlYXR1cmVzLnByZgpAQCAtMTcwLDcgKzE3MCw2IEBAIGNvbnRhaW5zKERFRklORVMs
IFdURl9VU0VfTElCWE1MMj0xKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FU
SU9OPS4pIHsKICAgICBjb250YWlucyhNT0JJTElUWV9DT05GSUcsIGxvY2F0aW9uKXxjb250YWlu
cyhRVF9DT05GSUcsIGxvY2F0aW9uKSB7CiAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfR0VPTE9D
QVRJT049MQotICAgICAgIERFRklORVMgKz0gRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
Tj0xCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAyNDAxMzcxLi4wNzE2YjdkIDEwMDY0NAot
LS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzOgorICAgICAgICAqIHdpbi90b29scy92c3By
b3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wczoKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEVOQUJMRShMRUdB
Q1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29s
cy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMKaW5kZXggYzI1ZmI2MC4uMThlNTEzZCAx
MDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZp
bmVzLnZzcHJvcHMKKysrIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1
cmVEZWZpbmVzLnZzcHJvcHMKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpOyQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVO
REVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5B
QkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxF
X0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxT
KTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
OyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxF
X0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRf
Q09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KTskKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7
JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7
JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxF
X1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJ
UFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJM
RV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9T
T0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9Y
U0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFX1JFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FKTskKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19HUklEX0xB
WU9VVCk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJM
RV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJ
RCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5B
QkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNU
T1JZX1VQTE9BRCk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5B
QkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVO
QUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9MSU5L
X1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVf
TUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNB
VElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RB
Ryk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQo
RU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1ZHKTskKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklE
RU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChF
TkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMp
OyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFX1JFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FIgpAQCAtNDIsMTEgKzQyLDYgQEAKIAkJUGVyZm9ybUVudmlyb25t
ZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KLQkJTmFtZT0iRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTiIKLQkJVmFsdWU9IkVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04iCi0JCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKLQkvPgotICA8VXNlck1hY3JvCiAJ
CU5hbWU9IkVOQUJMRV9DU1NfRklMVEVSUyIKIAkJVmFsdWU9IkVOQUJMRV9DU1NfRklMVEVSUyIK
IAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFy
aWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcyBiL1dlYktp
dExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMK
aW5kZXggM2NlYWMxOC4uODZkYzA0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL3dpbi90
b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcworKysgYi9XZWJLaXRMaWJy
YXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCkBAIC05
LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJl
cHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChFTkFCTEVfM0RfUkVO
REVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5BQkxFX0JMT0IpOyQo
RU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5B
QkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxF
X0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxT
KTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
OyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxF
X0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRf
Q09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTsk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KTskKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7
JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7
JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVO
QUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxF
X1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJ
UFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9P
QkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJM
RV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9T
T0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9Y
U0xUKSIKKwkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFXzNEX0NBTlZBUyk7JChF
TkFCTEVfM0RfUkVOREVSSU5HKTskKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpOyQoRU5B
QkxFX0JMT0IpOyQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKTskKEVOQUJMRV9DU1NfRklMVEVS
Uyk7JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFC
TEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFU
QUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJTKTskKEVO
QUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQ
QUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9T
UEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
VElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9U
WVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVf
V0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFC
TEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9OX09CU0VS
VkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9T
SEFET1dfRE9NKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1RZTEVfU0NPUEVE
KTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVf
U1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJ
TUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWFNMVCkiCiAJLz4KICAgPFVzZXJNYWNy
bwogCQlOYW1lPSJFTkFCTEVfM0RfQ0FOVkFTIgpAQCAtMzcsMTEgKzM3LDYgQEAKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KLQkJTmFtZT0iRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiIKLQkJVmFsdWU9IkVOQUJMRV9DTElFTlRfQkFTRURf
R0VPTE9DQVRJT04iCi0JCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKLQkvPgotICA8VXNl
ck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9DU1NfRklMVEVSUyIKIAkJVmFsdWU9IiIKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgo=
</data>
<flag name="commit-queue"
          id="134848"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131541</attachid>
            <date>2012-03-12 21:55:08 -0700</date>
            <delta_ts>2012-03-12 23:50:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>78853.diff</filename>
            <type>text/plain</type>
            <size>130509</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwM2UyNmQ4Li42NTA3ODdl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4g
UG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNt
YWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2U6CisKIDIwMTItMDMtMTIgIFNjb3R0IEJ5ZXIgIDxzY290dGJ5ZXJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENsZWFudXAgb2Jzb2xldGUgZmlsZXMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwppbmRleCBjZjI1YmMzLi4wYmFkYjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwog
MjAxMi0wMy0xMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEFy
aXRobWV0aWMgdXNlIGluZmVyZW5jZSBzaG91bGQgYmUgcHJvY2VkdXJlLWdsb2JhbCBhbmQgc2hv
dWxkIHJ1biBpbiB0YW5kZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA1OGEwMmY1Li5k
ZDdjZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZp
Z3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0zNCw5ICszNCw2IEBACiBFTkFC
TEVfQkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9C
TE9CX21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9O
QU1FKSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQo
RU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVf
REFTSEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBA
IC0xMzIsNCArMTI5LDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9
IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9E
RUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NI
QU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19T
SEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09C
U0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZ
X0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVH
SVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
ICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NP
UEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFC
TEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVf
VE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0sp
ICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRT
KSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsK
K0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAk
KEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxF
X0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVS
UykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJB
U0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVf
SkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5B
QkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNF
KSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxF
X01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklD
QVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19U
QUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAk
KEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNI
KSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVf
U1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RF
WFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5B
QkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxF
X1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQo
RU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oCmluZGV4IDllZDFiODMuLmNhYThlODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1Bs
YXRmb3JtLmgKQEAgLTExMTEsMTIgKzExMTEsOCBAQAogI2RlZmluZSBXVEZfVVNFX0FDQ0VTU0lC
SUxJVFlfQ09OVEVYVF9NRU5VUyAxCiAjZW5kaWYKIAotLyogR2VvbG9jYXRpb24gcmVxdWVzdCBw
b2xpY3kuIHByZS1lbXB0aXZlIHBvbGljeSBpcyB0byBhY3F1aXJlIHVzZXIgcGVybWlzc2lvbiBi
ZWZvcmUgYWNxdWlyaW5nIGxvY2F0aW9uLgotICAgQ2xpZW50IGJhc2VkIGltcGxlbWVudGF0aW9u
cyB3aWxsIGhhdmUgb3B0aW9uIHRvIGNob29zZSBiZXR3ZWVuIHByZS1lbXB0aXZlIGFuZCBub25w
cmUtZW1wdGl2ZSBwZXJtaXNzaW9uIHBvbGljeS4KLSAgIHByZS1lbXB0aXZlIHBlcm1pc3Npb24g
cG9saWN5IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgYWxsIGNsaWVudC1iYXNlZCBpbXBsZW1l
bnRhdGlvbnMuICovCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKy8qIEdl
b2xvY2F0aW9uIHJlcXVlc3QgcG9saWN5LiBwcmUtZW1wdGl2ZSBwb2xpY3kgaXMgdG8gYWNxdWly
ZSB1c2VyIHBlcm1pc3Npb24gYmVmb3JlIGFjcXVpcmluZyBsb2NhdGlvbi4gKi8KICNkZWZpbmUg
V1RGX1VTRV9QUkVFTVBUX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT04gMQotI2VuZGlmCiAKICNpZiBD
UFUoQVJNX1RIVU1CMikKICNkZWZpbmUgRU5BQkxFX0JSQU5DSF9DT01QQUNUSU9OIDEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggMmZjYzI2NS4uMzFiZmQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTEwODcsNyArMTA4Nyw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9G
aWxlSWNvbkxvYWRlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAogICAgIHBsYXRm
b3JtL0Nsb2NrR2VuZXJpYy5jcHAKLSAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3Bw
CiAgICAgcGxhdGZvcm0vSGlzdG9ncmFtU3VwcG9ydC5jcHAKICAgICBwbGF0Zm9ybS9LVVJMLmNw
cAogICAgIHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKQEAgLTEyMDksNyArMTIwOCw2IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNw
cAotICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKICAgICBwbGF0
Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAKIAogICAgIHBsYXRmb3JtL25ldHdvcmsv
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgwZGYxNjkuLmNm
ZTA2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMi0wMy0xMiAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBw
bGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQb3NpdGlv
bkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpHZW9sb2NhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpH
ZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9u
OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3Rh
cnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEdlb2xvY2F0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uRXJyb3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0dl
b2xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6Cisg
ICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKENocm9tZUNsaWVudCk6Cisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgor
ICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFnZSk6CisgICAgICAgICogcGxhdGZv
cm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9H
ZW9sb2NhdGlvblNlcnZpY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dl
b2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvbkNsaWVudE1vY2suaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vy
dmljZU1vY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svR2VvbG9jYXRp
b25TZXJ2aWNlTW9jay5oOiBSZW1vdmVkLgorCiAyMDEyLTAzLTEyICBLZW50YXJvIEhhcmEgIDxo
YXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdW1JlZmFjdG9yaW5nXSBSZW1vdmUg
Z2V0Q2FjaGVkV3JhcHBlclNsb3coKSBmcm9tIFY4QmluZGluZ3MuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IDU4YTAyZjUuLmRkN2NkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0zNCw5ICszNCw2IEBACiBFTkFCTEVf
QkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9CTE9C
X21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
ID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OXyQoUkVBTF9QTEFURk9STV9OQU1F
KSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OX21hY29zeCA9IEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFT
SEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUOwogCkBAIC0x
MzIsNCArMTI5LDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVO
QUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJ
TkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5O
RUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFE
RVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVf
SU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FD
WV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwp
ICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFC
TEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VS
VkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
SSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNU
RVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQo
RU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hB
UkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVE
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9V
Q0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZF
QVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NT
U19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0RBU0hCT0FSRF9T
VVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykg
JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Up
ICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01J
Q1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJ
T05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcp
ICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVO
QUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAk
KEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FM
X0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRf
Tk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxF
X1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCBlYmRj
YzhmLi5mMzEzM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNDYxLDggKzQ2MSw4IEBAIGVu
ZGlmICMgRU5EIEVOQUJMRV9GSUxURVJTCiAjIC0tLS0KIGlmIEVOQUJMRV9HRU9MT0NBVElPTgog
Ci1GRUFUVVJFX0RFRklORVMgKz0gRU5BQkxFX0dFT0xPQ0FUSU9OPTEgRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTj0xCi13ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0dFT0xPQ0FU
SU9OPTEgLURFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OPTEKK0ZFQVRVUkVfREVGSU5F
UyArPSBFTkFCTEVfR0VPTE9DQVRJT049MQord2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9H
RU9MT0NBVElPTj0xCiBlbmRpZiAjIEVORCBFTkFCTEVfR0VPTE9DQVRJT04KIAogIyAtLS0tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhMzQ0NDM2Li4wMmU3MjMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMwMjUsOCArMzAyNSw2IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GbG9hdENvbnZlcnNpb24uaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2Vv
bG9jYXRpb25TZXJ2aWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hhc2hUb29scy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9IaXN0b2dyYW1TdXBwb3J0LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vSGlzdG9ncmFtU3VwcG9ydC5oIFwKQEAgLTMzMzYsOCArMzMz
NCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcAppbmRleCBh
Njg5YTE4Li45ZjY0NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uLmNwcApAQCAtMzgsMTMgKzM4LDExIEBACiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCi0jaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKICNpbmNsdWRlICJDb29yZGluYXRlcy5oIgogI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKICNp
bmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25FcnJvci5o
IgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsOCArNTIsNiBAQCBzdGF0
aWMgY29uc3QgY2hhciBmcmFtZWxlc3NEb2N1bWVudEVycm9yTWVzc2FnZVtdID0gIkdlb2xvY2F0
aW9uIGNhbm5vdCBiZSB1c2VkCiAKIHN0YXRpYyBjb25zdCBpbnQgZmlyc3RBdmFpbGFibGVXYXRj
aElkID0gMTsKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KIHN0YXRp
YyBQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBjcmVhdGVHZW9wb3NpdGlvbihHZW9sb2NhdGlvblBv
c2l0aW9uKiBwb3NpdGlvbikKIHsKICAgICBpZiAoIXBvc2l0aW9uKQpAQCAtODEsNyArNzcsNiBA
QCBzdGF0aWMgUGFzc1JlZlB0cjxQb3NpdGlvbkVycm9yPiBjcmVhdGVQb3NpdGlvbkVycm9yKEdl
b2xvY2F0aW9uRXJyb3IqIGVycm9yKQogCiAgICAgcmV0dXJuIFBvc2l0aW9uRXJyb3I6OmNyZWF0
ZShjb2RlLCBlcnJvci0+bWVzc2FnZSgpKTsKIH0KLSNlbmRpZgogCiBHZW9sb2NhdGlvbjo6R2Vv
Tm90aWZpZXI6Okdlb05vdGlmaWVyKEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbiwgUGFzc1JlZlB0
cjxQb3NpdGlvbkNhbGxiYWNrPiBzdWNjZXNzQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UG9zaXRpb25F
cnJvckNhbGxiYWNrPiBlcnJvckNhbGxiYWNrLCBQYXNzUmVmUHRyPFBvc2l0aW9uT3B0aW9ucz4g
b3B0aW9ucykKICAgICA6IG1fZ2VvbG9jYXRpb24oZ2VvbG9jYXRpb24pCkBAIC0yMzQsOSArMjI5
LDYgQEAgUGFzc1JlZlB0cjxHZW9sb2NhdGlvbj4gR2VvbG9jYXRpb246OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogCiBHZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChjb250
ZXh0LCB0aGlzKQotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotICAgICwg
bV9zZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKHRoaXMpKQotI2VuZGlmCiAgICAg
LCBtX2FsbG93R2VvbG9jYXRpb24oVW5rbm93bikKIHsKIH0KQEAgLTI3MSwxMyArMjYzLDggQEAg
dm9pZCBHZW9sb2NhdGlvbjo6c3RvcCgpCiAgICAgLy8gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01Mjg3NwogCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKLSAgICBpZiAocGFnZSAmJiBtX2FsbG93R2VvbG9jYXRpb24gPT0gSW5Qcm9ncmVzcykgewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgaWYgKHBhZ2UgJiYgbV9h
bGxvd0dlb2xvY2F0aW9uID09IEluUHJvZ3Jlc3MpCiAgICAgICAgIHBhZ2UtPmdlb2xvY2F0aW9u
Q29udHJvbGxlcigpLT5jYW5jZWxQZXJtaXNzaW9uUmVxdWVzdCh0aGlzKTsKLSNlbHNlCi0gICAg
ICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdEZvckZyYW1lKGZyYW1lKCksIHRoaXMpOwotI2VuZGlmCi0gICAgfQogICAgIC8vIFRo
ZSBmcmFtZSBtYXkgYmUgbW92aW5nIHRvIGEgbmV3IHBhZ2UgYW5kIHdlIHdhbnQgdG8gZ2V0IHRo
ZSBwZXJtaXNzaW9ucyBmcm9tIHRoZSBuZXcgcGFnZSdzIGNsaWVudC4KICAgICBtX2FsbG93R2Vv
bG9jYXRpb24gPSBVbmtub3duOwogICAgIGNhbmNlbEFsbFJlcXVlc3RzKCk7CkBAIC0yODksMTUg
KzI3NiwxMSBAQCB2b2lkIEdlb2xvY2F0aW9uOjpzdG9wKCkKIAogR2VvcG9zaXRpb24qIEdlb2xv
Y2F0aW9uOjpsYXN0UG9zaXRpb24oKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgbV9sYXN0UG9zaXRpb24gPSBjcmVhdGVHZW9wb3NpdGlv
bihwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+bGFzdFBvc2l0aW9uKCkpOwotI2Vsc2UK
LSAgICBtX2xhc3RQb3NpdGlvbiA9IG1fc2VydmljZS0+bGFzdFBvc2l0aW9uKCk7Ci0jZW5kaWYK
IAogICAgIHJldHVybiBtX2xhc3RQb3NpdGlvbi5nZXQoKTsKIH0KQEAgLTYyNywxMSArNjEwLDcg
QEAgdm9pZCBHZW9sb2NhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oKQogICAgIG1fYWxsb3dHZW9s
b2NhdGlvbiA9IEluUHJvZ3Jlc3M7CiAKICAgICAvLyBBc2sgdGhlIGVtYmVkZGVyOiBpdCBtYWlu
dGFpbnMgdGhlIGdlb2xvY2F0aW9uIGNoYWxsZW5nZSBwb2xpY3kgaXRzZWxmLgotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPnJlcXVlc3RQZXJtaXNzaW9uKHRoaXMpOwotI2Vsc2UKLSAgICBwYWdlLT5jaHJvbWUo
KS0+Y2xpZW50KCktPnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShmcmFtZSgp
LCB0aGlzKTsKLSNlbmRpZgogfQogCiB2b2lkIEdlb2xvY2F0aW9uOjpwb3NpdGlvbkNoYW5nZWRJ
bnRlcm5hbCgpCkBAIC02NzYsOCArNjU1LDYgQEAgdm9pZCBHZW9sb2NhdGlvbjo6bWFrZVN1Y2Nl
c3NDYWxsYmFja3MoKQogICAgICAgICBzdG9wVXBkYXRpbmcoKTsKIH0KIAotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KIHZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hh
bmdlZCgpCiB7CiAgICAgcG9zaXRpb25DaGFuZ2VkSW50ZXJuYWwoKTsKQEAgLTY4OSw1NCArNjY2
LDIzIEBAIHZvaWQgR2VvbG9jYXRpb246OnNldEVycm9yKEdlb2xvY2F0aW9uRXJyb3IqIGVycm9y
KQogICAgIGhhbmRsZUVycm9yKHBvc2l0aW9uRXJyb3IuZ2V0KCkpOwogfQogCi0jZWxzZQotCi12
b2lkIEdlb2xvY2F0aW9uOjpnZW9sb2NhdGlvblNlcnZpY2VQb3NpdGlvbkNoYW5nZWQoR2VvbG9j
YXRpb25TZXJ2aWNlKiBzZXJ2aWNlKQotewotICAgIEFTU0VSVF9VTlVTRUQoc2VydmljZSwgc2Vy
dmljZSA9PSBtX3NlcnZpY2UpOwotICAgIEFTU0VSVChtX3NlcnZpY2UtPmxhc3RQb3NpdGlvbigp
KTsKLQotICAgIHBvc2l0aW9uQ2hhbmdlZEludGVybmFsKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRp
b246Omdlb2xvY2F0aW9uU2VydmljZUVycm9yT2NjdXJyZWQoR2VvbG9jYXRpb25TZXJ2aWNlKiBz
ZXJ2aWNlKQotewotICAgIEFTU0VSVChzZXJ2aWNlLT5sYXN0RXJyb3IoKSk7Ci0KLSAgICAvLyBO
b3RlIHRoYXQgd2UgZG8gbm90IHN0b3AgdGltZXJzIGhlcmUuIEZvciBvbmUtc2hvdHMsIHRoZSBy
ZXF1ZXN0IGlzCi0gICAgLy8gY2xlYXJlZCBpbiBoYW5kbGVFcnJvci4gRm9yIHdhdGNoZXJzLCB0
aGUgc3BlYyByZXF1aXJlcyB0aGF0IHRoZSB0aW1lciBpcwotICAgIC8vIG5vdCBjbGVhcmVkLgot
ICAgIGhhbmRsZUVycm9yKHNlcnZpY2UtPmxhc3RFcnJvcigpKTsKLX0KLQotI2VuZGlmCi0KIGJv
b2wgR2VvbG9jYXRpb246OnN0YXJ0VXBkYXRpbmcoR2VvTm90aWZpZXIqIG5vdGlmaWVyKQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRo
aXMtPnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5hZGRPYnNlcnZlcih0aGlzLCBub3RpZmll
ci0+bV9vcHRpb25zLT5lbmFibGVIaWdoQWNjdXJhY3koKSk7CiAgICAgcmV0dXJuIHRydWU7Ci0j
ZWxzZQotICAgIHJldHVybiBtX3NlcnZpY2UtPnN0YXJ0VXBkYXRpbmcobm90aWZpZXItPm1fb3B0
aW9ucy5nZXQoKSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBHZW9sb2NhdGlvbjo6c3RvcFVwZGF0aW5n
KCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKICAg
ICBwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7Ci0j
ZWxzZQotICAgIG1fc2VydmljZS0+c3RvcFVwZGF0aW5nKCk7Ci0jZW5kaWYKLQogfQogCiAjaWYg
VVNFKFBSRUVNUFRfR0VPTE9DQVRJT05fUEVSTUlTU0lPTikKQEAgLTc2MiwxNyArNzA4LDUgQEAg
dm9pZCBHZW9sb2NhdGlvbjo6aGFuZGxlUGVuZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMoKQogI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vsc2UKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi12b2lkIEdlb2xvY2F0aW9uOjpjbGVhcldhdGNoKGludCkgeyB9Ci12b2lkIEdlb2xv
Y2F0aW9uOjpzdG9wKCkgeyB9Ci1HZW9sb2NhdGlvbjo6R2VvbG9jYXRpb24oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCkgOiBBY3RpdmVET01PYmplY3QoY29udGV4dCwgdGhpcykgeyB9
Ci1HZW9sb2NhdGlvbjo6fkdlb2xvY2F0aW9uKCkgeyB9Ci12b2lkIEdlb2xvY2F0aW9uOjpzZXRJ
c0FsbG93ZWQoYm9vbCkgeyB9Ci0KLX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5oCmlu
ZGV4IDJjNmJhYjguLjhkY2JiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKQEAgLTI3LDYgKzI3LDggQEAKICNpZm5kZWYgR2VvbG9j
YXRpb25faAogI2RlZmluZSBHZW9sb2NhdGlvbl9oCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
CisKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJHZW9wb3NpdGlvbi5o
IgogI2luY2x1ZGUgIlBvc2l0aW9uQ2FsbGJhY2suaCIKQEAgLTM1LDI1ICszNywxNiBAQAogI2lu
Y2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKLSNpZiAhRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZp
Y2UuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50Owog
Y2xhc3MgRnJhbWU7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIGNsYXNz
IEdlb2xvY2F0aW9uUG9zaXRpb247CiBjbGFzcyBHZW9sb2NhdGlvbkVycm9yOwotI2VuZGlmCiBj
bGFzcyBQYWdlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xhc3MgR2VvbG9j
YXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxHZW9sb2NhdGlvbj4sIHB1YmxpYyBBY3RpdmVET01P
YmplY3QKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJiYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQotICAgICwgcHVibGljIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudAotI2VuZGlm
CiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8R2VvbG9jYXRpb24+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CkBAIC02OSwxMiArNjIsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldElzQWxsb3dlZChib29sKTsKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgdm9pZCBwb3NpdGlvbkNoYW5nZWQoKTsKICAgICB2b2lkIHNldEVycm9y
KEdlb2xvY2F0aW9uRXJyb3IqKTsKLSNlbHNlCi0gICAgR2VvbG9jYXRpb25TZXJ2aWNlKiBnZXRH
ZW9sb2NhdGlvblNlcnZpY2UoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2UuZ2V0KCk7IH0KLSNl
bmRpZgogCiBwcml2YXRlOgogICAgIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24oKTsKQEAgLTE1
OCwxMiArMTQ3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZVBlbmRpbmdQZXJtaXNzaW9u
Tm90aWZpZXJzKCk7CiAjZW5kaWYKIAotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKSAmJiBFTkFCTEUoR0VPTE9DQVRJT04pCi0gICAgLy8gR2VvbG9jYXRpb25TZXJ2aWNlQ2xp
ZW50Ci0gICAgdmlydHVhbCB2b2lkIGdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZChH
ZW9sb2NhdGlvblNlcnZpY2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNl
RXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqKTsKLSNlbmRpZgotCiAgICAgUGFzc1Jl
ZlB0cjxHZW9Ob3RpZmllcj4gc3RhcnRSZXF1ZXN0KFBhc3NSZWZQdHI8UG9zaXRpb25DYWxsYmFj
az4sIFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvckNhbGxiYWNrPiwgUGFzc1JlZlB0cjxQb3NpdGlv
bk9wdGlvbnM+KTsKIAogICAgIHZvaWQgZmF0YWxFcnJvck9jY3VycmVkKEdlb05vdGlmaWVyKik7
CkBAIC0xNzQsOSArMTU3LDYgQEAgcHJpdmF0ZToKIAogICAgIEdlb05vdGlmaWVyU2V0IG1fb25l
U2hvdHM7CiAgICAgV2F0Y2hlcnMgbV93YXRjaGVyczsKLSNpZiAhRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKLSAgICBPd25QdHI8R2VvbG9jYXRpb25TZXJ2aWNlPiBtX3NlcnZpY2U7
Ci0jZW5kaWYKICNpZiBVU0UoUFJFRU1QVF9HRU9MT0NBVElPTl9QRVJNSVNTSU9OKQogICAgIEdl
b05vdGlmaWVyU2V0IG1fcGVuZGluZ0ZvclBlcm1pc3Npb25Ob3RpZmllcnM7CiAjZW5kaWYKQEAg
LTE4OSwxMyArMTY5LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIE5vCiAgICAgfSBtX2FsbG93R2Vv
bG9jYXRpb247CiAKLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgUmVmUHRyPEdlb3Bvc2l0
aW9uPiBtX2NhY2hlZFBvc2l0aW9uOwotI2VuZGlmCiAgICAgR2VvTm90aWZpZXJTZXQgbV9yZXF1
ZXN0c0F3YWl0aW5nQ2FjaGVkUG9zaXRpb247CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQorCiAjZW5kaWYgLy8gR2VvbG9j
YXRpb25faAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggOTY5NGE5OS4uYzkxZjMxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlv
bkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24v
R2VvbG9jYXRpb25Db250cm9sbGVyLmNwcApAQCAtMjUsMTEgKzI1LDExIEBACiAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRl
ICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9u
Q2xpZW50LmgiCisjaW5jbHVkZSAiR2VvbG9jYXRpb25Qb3NpdGlvbi5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTEyNyw0ICsxMjcsNCBAQCBHZW9sb2NhdGlvblBvc2l0aW9uKiBHZW9s
b2NhdGlvbkNvbnRyb2xsZXI6Omxhc3RQb3NpdGlvbigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjZW5kaWYg
Ly8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250cm9sbGVyLmgKaW5kZXggMDYxMWRjMy4u
OWIxMDM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9H
ZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVm
IEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9o
CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9M
T0NBVElPTikKIAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KQEAgLTc1LDYgKzc1LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNlbmRpZiAv
LyBFTkFCTEUoR0VPTE9DQVRJT04pCiAKICNlbmRpZiAvLyBHZW9sb2NhdGlvbkNvbnRyb2xsZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2Nh
dGlvbkVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0
aW9uRXJyb3IuaAppbmRleCAyYTNiYWQ0Li43MzUyZTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uRXJyb3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uRXJyb3IuaApAQCAtMjYsOCAr
MjYsNiBAQAogI2lmbmRlZiBHZW9sb2NhdGlvbkVycm9yX2gKICNkZWZpbmUgR2VvbG9jYXRpb25F
cnJvcl9oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC02MCw2ICs1OCw0IEBAIHByaXZhdGU6CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCi0KICNlbmRpZiAvLyBHZW9sb2NhdGlvbkVycm9yX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmgKaW5k
ZXggOWYyNWIxMS4uN2IxNTY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAgLTI2LDggKzI2LDYgQEAK
ICNpZm5kZWYgR2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAjZGVmaW5lIEdlb2xvY2F0aW9uUG9zaXRp
b25faAogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CkBAIC0xMDYsNiArMTA0LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKLQogI2VuZGlmIC8vIEdlb2xvY2F0aW9uUG9zaXRpb25faApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYThl
ZTdjOC4uZDRlZGFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMDYzLDcgKzEwNjMsNiBAQCBTT1VSQ0VT
ICs9IFwKICAgICBwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAgXAogICAgIHBsYXRmb3JtL0Zp
bGVTdHJlYW0uY3BwIFwKICAgICBwbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcCBcCi0gICAgcGxhdGZv
cm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBcCiAgICAgcGxhdGZvcm0vSGlzdG9ncmFtU3VwcG9y
dC5jcHAgXAogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3F0L0ltYWdlRnJhbWVRdC5jcHAg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAgXApAQCAtMTEyOSw3
ICsxMTI4LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5j
cHAgXAogICAgIHBsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcCBc
CiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suY3BwIFwKLSAgICBwbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9tb2Nr
L1Njcm9sbGJhclRoZW1lTW9jay5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9CbG9iRGF0YS5j
cHAgXApAQCAtMjE0NywxMiArMjE0NSwxMCBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9G
aWxlU3RyZWFtLmggXAogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW1DbGllbnQuaCBcCiAgICAgcGxh
dGZvcm0vRmlsZVN5c3RlbS5oIFwKLSAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCBc
CiAgICAgcGxhdGZvcm0vSGlzdG9ncmFtU3VwcG9ydC5oIFwKICAgICBwbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9JbWFnZURlY29kZXIuaCBcCiAgICAgcGxhdGZvcm0vbW9jay9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1vY2suaCBcCiAgICAgcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1v
Y2suY3BwIFwKLSAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaCBcCiAg
ICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IGE3MTA2MDQuLmYyMzA0NTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xODYsOCArMTg2LDYgQEAgX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRsb2FkRVJL
TlNfMTVSZXNvdXJjZVJlcXVlc3RFUktOU18xNFN1YnN0aXR1dGVEYXRhRWIKIF9fWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXI0bG9hZEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RWIKIF9fWk43V2ViQ29y
ZTExRnJhbWVMb2FkZXI2cmVsb2FkRWIKIF9fWk43V2ViQ29yZTExRnJhbWVMb2FkZXI5c2V0T3Bl
bmVyRVBOU181RnJhbWVFCi1fX1pON1dlYkNvcmUxMUdlb2xvY2F0aW9uMTJzZXRJc0FsbG93ZWRF
YgotX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlvbkQxRXYKIF9fWk43V2ViQ29yZTExSGlzdG9yeUl0
ZW0xMHRhcmdldEl0ZW1FdgogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTExc2V0UmVmZXJyZXJF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMTJhZGRDaGlsZEl0ZW1F
TjNXVEYxMFBhc3NSZWZQdHJJUzBfRUUKQEAgLTYxNyw3ICs2MTUsNiBAQCBfX1pON1dlYkNvcmUy
MGJ1aWx0SW5QREZQbHVnaW5OYW1lRXYKIF9fWk43V2ViQ29yZTIwbWFrZVJHQkEzMkZyb21GbG9h
dHNFZmZmZgogX19aTjdXZWJDb3JlMjBwcm90b2NvbElzSmF2YVNjcmlwdEVSS04zV1RGNlN0cmlu
Z0UKIF9fWk43V2ViQ29yZTIxQmFja0ZvcndhcmRDb250cm9sbGVyMTFpdGVtQXRJbmRleEVpCi1f
X1pON1dlYkNvcmUyMUdlb2xvY2F0aW9uQ2xpZW50TW9jazEzc2V0UGVybWlzc2lvbkViCiBfX1pO
N1dlYkNvcmUyMU1lbW9yeVByZXNzdXJlSGFuZGxlcjdpbnN0YWxsRXYKIF9fWk43V2ViQ29yZTIx
UGxhdGZvcm1LZXlib2FyZEV2ZW50MjRkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnRFTlNfMTNQbGF0
Zm9ybUV2ZW50NFR5cGVFYgogX19aTjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyMHNl
cnZlUGVuZGluZ1JlcXVlc3RzRU5TXzIwUmVzb3VyY2VMb2FkUHJpb3JpdHlFCkBAIC0xMTg5LDcg
KzExODYsNiBAQCBfX1pOSzdXZWJDb3JlMTFGcmFtZUxvYWRlcjE3bmV0d29ya2luZ0NvbnRleHRF
dgogX19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXIyMGFjdGl2ZURvY3VtZW50TG9hZGVyRXYKIF9f
Wk5LN1dlYkNvcmUxMUZyYW1lTG9hZGVyMjdudW1QZW5kaW5nT3JMb2FkaW5nUmVxdWVzdHNFYgog
X19aTks3V2ViQ29yZTExRnJhbWVMb2FkZXI4bG9hZFR5cGVFdgotX19aTks3V2ViQ29yZTExR2Vv
bG9jYXRpb241ZnJhbWVFdgogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xMHZpc2l0Q291bnRF
dgogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0xMWhhc0NoaWxkcmVuRXYKIF9fWk5LN1dlYkNv
cmUxMUhpc3RvcnlJdGVtMTFvcmlnaW5hbFVSTEV2CkBAIC0xNzA0LDEzICsxNzAwLDEyIEBAIF9f
Wk43V2ViQ29yZThEcmFnRGF0YUMxRVJLTjNXVEY2U3RyaW5nRVJLTlNfOEludFBvaW50RVM3X05T
XzEzRHJhZ09wZXJhdGlvbkVOU18yCiAjZW5kaWYKIAogI2lmIEVOQUJMRShHRU9MT0NBVElPTikK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorX19aTjdXZWJDb3JlMTFHZW9s
b2NhdGlvbjEyc2V0SXNBbGxvd2VkRWIKK19fWk43V2ViQ29yZTExR2VvbG9jYXRpb25EMUV2Citf
X1pOSzdXZWJDb3JlMTFHZW9sb2NhdGlvbjVmcmFtZUV2CitfX1pON1dlYkNvcmUyMUdlb2xvY2F0
aW9uQ2xpZW50TW9jazEzc2V0UGVybWlzc2lvbkViCiBfX1pON1dlYkNvcmUyMUdlb2xvY2F0aW9u
Q29udHJvbGxlcjEzZXJyb3JPY2N1cnJlZEVQTlNfMTZHZW9sb2NhdGlvbkVycm9yRQogX19aTjdX
ZWJDb3JlMjFHZW9sb2NhdGlvbkNvbnRyb2xsZXIxNXBvc2l0aW9uQ2hhbmdlZEVQTlNfMTlHZW9s
b2NhdGlvblBvc2l0aW9uRQotI2Vsc2UKLV9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNl
TW9jazExc2V0UG9zaXRpb25FTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTFHZW9wb3NpdGlvbkVFRQot
X19aTjdXZWJDb3JlMjJHZW9sb2NhdGlvblNlcnZpY2VNb2NrOHNldEVycm9yRU4zV1RGMTBQYXNz
UmVmUHRySU5TXzEzUG9zaXRpb25FcnJvckVFRQotI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShJQ09OREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOGQxYzM1MC4uZDQ0Y2YxOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjk0NSw4ICsyOTQ1LDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9y
bS9GbG9hdENvbnZlcnNpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ2xvY2tHZW5lcmlj
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQ2xvY2tHZW5lcmljLmgnLAotICAgICAgICAg
ICAgJ3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRm
b3JtL0dlb2xvY2F0aW9uU2VydmljZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9IYXNoVG9v
bHMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vS1VSTC5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL0tVUkxHb29nbGUuY3BwJywKQEAgLTQwODAsOCArNDA3OCw2IEBACiAgICAgICAgICAg
ICAncGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9j
ay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3Jt
L21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
b2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2sv
U2Nyb2xsYmFyVGhlbWVNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDIxNmJmZjUuLjVjZDU3MWEgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzMxOCwxNCArMjcz
MTgsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxHZW9sb2NhdGlvblNlcnZpY2UuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJ
CTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxHZW9sb2NhdGlvblNlcnZpY2Uu
aCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cSGlzdG9ncmFtU3VwcG9ydC5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzM1NjEs
MTQgKzMzNTUzLDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAiCi0J
CQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxtb2NrXEdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4K
LQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcU2Nyb2xsYmFy
VGhlbWVNb2NrLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTR2VvbG9jYXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggY2FhYzM4MC4uOGE5
MTg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlv
bkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNHZW9sb2NhdGlv
bkN1c3RvbS5jcHAKQEAgLTM3LDEwICszNyw2IEBACiAjaW5jbHVkZSAiSlNQb3NpdGlvbkVycm9y
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKIAotI2lmICFFTkFCTEUo
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5o
IgotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggM2ZjMjA0ZC4uYTY1ZjRmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMjE3LDkgKzIxNyw2IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVj
dCYpIGNvbnN0IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1p
c3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikge30KLSAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9j
YXRpb24qKSB7fQotCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSB7
fQogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDI2ZDc0YWIuLmJjNTNlMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjE0LDEzICsyMTQsNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50Q3VzdG9tT3Zlcmhh
bmdBcmVhKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgSW50UmVjdCYpOwogCi0gICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBhbGwgcG9y
dHMgYXJlIHVzaW5nIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbi4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzczCi0gICAgICAgIC8vIEZvciBjbGllbnQtYmFzZWQg
Z2VvbG9jYXRpb24sIHRoZXNlIHR3byBtZXRob2RzIGhhdmUgbW92ZWQgdG8gR2VvbG9jYXRpb25D
bGllbnQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MQotICAg
ICAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIgYSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMg
Y2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9y
IHBlcm1pc3Npb24KLSAgICAgICAgLy8gdG8gdXNlIEdlb2xvY2F0aW9uLgotICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2Vv
bG9jYXRpb24qKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopID0gMDsKLQogI2lm
IEVOQUJMRShJTlBVVF9DT0xPUikKICAgICAgICAgdmlydHVhbCBQYXNzT3duUHRyPENvbG9yQ2hv
b3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9y
JikgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA3YjZiOWZlLi43ZmIxZGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJGcmFtZVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgor
I2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9s
bGVyLmgiCkBAIC03NSwxMCArNzYsNiBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIEhhc2hTZXQ8UGFnZSo+KiBhbGxQ
YWdlczsKQEAgLTEyNSw3ICsxMjIsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xp
ZW50cykKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICwgbV9pbnNwZWN0b3JDb250cm9sbGVy
KEluc3BlY3RvckNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5pbnNwZWN0b3JD
bGllbnQpKQogI2VuZGlmCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgLCBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcihHZW9s
b2NhdGlvbkNvbnRyb2xsZXI6OmNyZWF0ZSh0aGlzLCBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNs
aWVudCkpCiAjZW5kaWYKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRl
eCBjZGY3ZmU2Li4yYmE0ZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTY3LDcgKzE2Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBJbnNwZWN0
b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9pbnNw
ZWN0b3JDb250cm9sbGVyLmdldCgpOyB9CiAjZW5kaWYKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICAgICAgR2VvbG9jYXRp
b25Db250cm9sbGVyKiBnZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2dl
b2xvY2F0aW9uQ29udHJvbGxlci5nZXQoKTsgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKQEAgLTM1OCw3ICszNTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAgICAgT3duUHRyPEluc3BlY3RvckNvbnRyb2xsZXI+IG1faW5zcGVj
dG9yQ29udHJvbGxlcjsKICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICAgICBPd25QdHI8R2VvbG9jYXRpb25D
b250cm9sbGVyPiBtX2dlb2xvY2F0aW9uQ29udHJvbGxlcjsKICNlbmRpZgogI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2Nh
dGlvblNlcnZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjg3OTNhMS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsODQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlv
blNlcnZpY2UuaCIKLQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKLSNpbmNs
dWRlICJHZW9wb3NpdGlvbi5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJyb3IuaCIKLQotI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotI2lmICFFTkFCTEUoR0VPTE9DQVRJT04pIHx8IEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi1zdGF0aWMgUGFzc093blB0cjxHZW9sb2NhdGlvblNl
cnZpY2U+IGNyZWF0ZUdlb2xvY2F0aW9uU2VydmljZU51bGwoR2VvbG9jYXRpb25TZXJ2aWNlQ2xp
ZW50KikKLXsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotR2VvbG9jYXRpb25TZXJ2aWNlOjpG
YWN0b3J5RnVuY3Rpb24qIEdlb2xvY2F0aW9uU2VydmljZTo6c19mYWN0b3J5RnVuY3Rpb24gPSAm
Y3JlYXRlR2VvbG9jYXRpb25TZXJ2aWNlTnVsbDsKLUdlb2xvY2F0aW9uU2VydmljZTo6RmFjdG9y
eUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlvbiA9ICZj
cmVhdGVHZW9sb2NhdGlvblNlcnZpY2VOdWxsOwotI2Vsc2UKLUdlb2xvY2F0aW9uU2VydmljZTo6
RmFjdG9yeUZ1bmN0aW9uKiBHZW9sb2NhdGlvblNlcnZpY2U6OnNfbW9ja0ZhY3RvcnlGdW5jdGlv
biA9ICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjcmVhdGU7Ci0jZW5kaWYKLQotUGFzc093blB0
cjxHZW9sb2NhdGlvblNlcnZpY2U+IEdlb2xvY2F0aW9uU2VydmljZTo6Y3JlYXRlKEdlb2xvY2F0
aW9uU2VydmljZUNsaWVudCogY2xpZW50KQotewotICAgIHJldHVybiAoKnNfZmFjdG9yeUZ1bmN0
aW9uKShjbGllbnQpOwotfQotCi0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotdm9pZCBHZW9sb2Nh
dGlvblNlcnZpY2U6OnVzZU1vY2soKQotewotICAgIHNfZmFjdG9yeUZ1bmN0aW9uID0gc19tb2Nr
RmFjdG9yeUZ1bmN0aW9uOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZTo6c2V0Q3VzdG9t
TW9ja0ZhY3RvcnkoRmFjdG9yeUZ1bmN0aW9uIGYpCi17Ci0gICAgc19tb2NrRmFjdG9yeUZ1bmN0
aW9uID0gZjsKLX0KLQotR2VvbG9jYXRpb25TZXJ2aWNlOjpHZW9sb2NhdGlvblNlcnZpY2UoR2Vv
bG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX2dlb2xvY2F0aW9uU2Vydmlj
ZUNsaWVudChjbGllbnQpCi17Ci0gICAgQVNTRVJUKG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50
KTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OnBvc2l0aW9uQ2hhbmdlZCgpCi17Ci0g
ICAgbV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQtPmdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9u
Q2hhbmdlZCh0aGlzKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2U6OmVycm9yT2NjdXJy
ZWQoKQotewotICAgIG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50LT5nZW9sb2NhdGlvblNlcnZp
Y2VFcnJvck9jY3VycmVkKHRoaXMpOwotfQotCi0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJhOWZkNy4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaAorKysgL2Rldi9udWxsCkBAIC0x
LDc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIEdlb2xvY2F0aW9uU2VydmljZV9oCi0jZGVmaW5lIEdlb2xvY2F0aW9uU2Vydmlj
ZV9oCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdlb2xvY2F0aW9uU2Vydmlj
ZTsKLWNsYXNzIEdlb3Bvc2l0aW9uOwotY2xhc3MgUG9zaXRpb25FcnJvcjsKLWNsYXNzIFBvc2l0
aW9uT3B0aW9uczsKLQotY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50IHsKLXB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2VDbGllbnQoKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2Vydmlj
ZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNlRXJyb3JPY2N1cnJl
ZChHZW9sb2NhdGlvblNlcnZpY2UqKSA9IDA7Ci19OwotCi1jbGFzcyBHZW9sb2NhdGlvblNlcnZp
Y2UgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEdlb2xvY2F0aW9uU2VydmljZSk7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8R2VvbG9jYXRpb25TZXJ2aWNlPiBjcmVhdGUoR2Vv
bG9jYXRpb25TZXJ2aWNlQ2xpZW50Kik7Ci0gICAgdmlydHVhbCB+R2VvbG9jYXRpb25TZXJ2aWNl
KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlvbnMq
KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSB7IH0K
LQotICAgIHZpcnR1YWwgR2VvcG9zaXRpb24qIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJu
IDA7IH0KLSAgICB2aXJ0dWFsIFBvc2l0aW9uRXJyb3IqIGxhc3RFcnJvcigpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KLQotICAgIHZvaWQgcG9zaXRpb25DaGFuZ2VkKCk7Ci0gICAgdm9pZCBlcnJvck9j
Y3VycmVkKCk7Ci0KLSAgICBzdGF0aWMgdm9pZCB1c2VNb2NrKCk7Ci0gICAgdHlwZWRlZiBQYXNz
T3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4gKEZhY3RvcnlGdW5jdGlvbikoR2VvbG9jYXRpb25T
ZXJ2aWNlQ2xpZW50Kik7Ci0gICAgc3RhdGljIHZvaWQgc2V0Q3VzdG9tTW9ja0ZhY3RvcnkoRmFj
dG9yeUZ1bmN0aW9uKTsKLQotcHJvdGVjdGVkOgotICAgIEdlb2xvY2F0aW9uU2VydmljZShHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqKTsKLSAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIGdl
b2xvY2F0aW9uU2VydmljZUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50OyB9Ci0KLXByaXZhdGU6Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KiBt
X2dlb2xvY2F0aW9uU2VydmljZUNsaWVudDsKLQotICAgIHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24q
IHNfZmFjdG9yeUZ1bmN0aW9uOwotICAgIHN0YXRpYyBGYWN0b3J5RnVuY3Rpb24qIHNfbW9ja0Zh
Y3RvcnlGdW5jdGlvbjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEdlb2xvY2F0aW9uU2VydmljZV9oCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcAppbmRleCBkMDY3YzhhLi4yNzZiNGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xp
ZW50TW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlv
bkNsaWVudE1vY2suY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkdl
b2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKQEAg
LTE3OSw0ICsxNzksNCBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50TW9jazo6Y29udHJvbGxlclRp
bWVyRmlyZWQoVGltZXI8R2VvbG9jYXRpb25DbGllbnRNb2NrPiogdAogCiB9IC8vIFdlYkNvcmUK
IAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjZW5kaWYgLy8g
RU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgKaW5kZXggYjQwMDE2Ni4uNGMyMzhjZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2su
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9j
ay5oCkBAIC0zMSw4ICszMSw2IEBACiAjaWZuZGVmIEdlb2xvY2F0aW9uQ2xpZW50TW9ja19oCiAj
ZGVmaW5lIEdlb2xvY2F0aW9uQ2xpZW50TW9ja19oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC05NSw2ICs5Myw0IEBA
IHByaXZhdGU6CiAKIH0KIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCi0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9H
ZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
R2VvbG9jYXRpb25TZXJ2aWNlTW9jay5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZmNTM0ZGQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9s
b2NhdGlvblNlcnZpY2VNb2NrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgiCi0KLSNpZiBFTkFC
TEUoR0VPTE9DQVRJT04pCi0KLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiR2VvbG9j
YXRpb24uaCIKLSNpbmNsdWRlICJHZW9wb3NpdGlvbi5oIgotI2luY2x1ZGUgIlBvc2l0aW9uRXJy
b3IuaCIKLSNpbmNsdWRlICJQb3NpdGlvbk9wdGlvbnMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1HZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpHZW9sb2NhdGlvblNlcnZpY2VTZXQqIEdlb2xv
Y2F0aW9uU2VydmljZU1vY2s6OnNfaW5zdGFuY2VzID0gMDsKLVJlZlB0cjxHZW9wb3NpdGlvbj4q
IEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNfbGFzdFBvc2l0aW9uOwotUmVmUHRyPFBvc2l0aW9u
RXJyb3I+KiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzX2xhc3RFcnJvcjsKLQotUGFzc093blB0
cjxHZW9sb2NhdGlvblNlcnZpY2U+IEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OmNyZWF0ZShHZW9s
b2NhdGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKLXsKLSAgICBpbml0U3RhdGljcygpOwotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayhjbGllbnQpKTsKLX0K
LQotR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6R2VvbG9jYXRpb25TZXJ2aWNlTW9jayhHZW9sb2Nh
dGlvblNlcnZpY2VDbGllbnQqIGNsaWVudCkKLSAgICA6IEdlb2xvY2F0aW9uU2VydmljZShjbGll
bnQpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp0aW1lckZp
cmVkKQotICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKLXsKLSAgICBzX2luc3RhbmNlcy0+YWRkKHRo
aXMpOwotfQotCi1HZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp+R2VvbG9jYXRpb25TZXJ2aWNlTW9j
aygpCi17Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlU2V0OjppdGVyYXRvciBpdGVyID0gc19pbnN0
YW5jZXMtPmZpbmQodGhpcyk7Ci0gICAgQVNTRVJUKGl0ZXIgIT0gc19pbnN0YW5jZXMtPmVuZCgp
KTsKLSAgICBzX2luc3RhbmNlcy0+cmVtb3ZlKGl0ZXIpOwotICAgIGNsZWFuVXBTdGF0aWNzKCk7
Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0UG9zaXRpb24oUGFzc1JlZlB0
cjxHZW9wb3NpdGlvbj4gcG9zaXRpb24pCi17Ci0gICAgaW5pdFN0YXRpY3MoKTsKLSAgICBHZW9s
b2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKTsKLSAgICAqc19sYXN0UG9zaXRpb24gPSBwb3NpdGlv
bjsKLSAgICAqc19sYXN0RXJyb3IgPSAwOwotICAgIG1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJv
bUFsbEluc3RhbmNlcygpOwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnNldEVy
cm9yKFBhc3NSZWZQdHI8UG9zaXRpb25FcnJvcj4gZXJyb3IpCi17Ci0gICAgaW5pdFN0YXRpY3Mo
KTsKLSAgICBHZW9sb2NhdGlvblNlcnZpY2U6OnVzZU1vY2soKTsKLSAgICAqc19sYXN0RXJyb3Ig
PSBlcnJvcjsKLSAgICAqc19sYXN0UG9zaXRpb24gPSAwOwotICAgIG1ha2VHZW9sb2NhdGlvbkNh
bGxiYWNrRnJvbUFsbEluc3RhbmNlcygpOwotfQotCi1ib29sIEdlb2xvY2F0aW9uU2VydmljZU1v
Y2s6OnN0YXJ0VXBkYXRpbmcoUG9zaXRpb25PcHRpb25zKikKLXsKLSAgICBtX2lzQWN0aXZlID0g
dHJ1ZTsKLSAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpzdG9wVXBkYXRpbmcoKQotewotICAgIG1f
aXNBY3RpdmUgPSBmYWxzZTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjp0aW1l
ckZpcmVkKFRpbWVyPEdlb2xvY2F0aW9uU2VydmljZU1vY2s+KiB0aW1lcikKLXsKLSAgICBBU1NF
UlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7Ci0gICAgbWFrZUdlb2xvY2F0aW9u
Q2FsbGJhY2soKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9j
YXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKQotewotICAgIEdlb2xvY2F0aW9uU2Vydmlj
ZVNldDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gc19pbnN0YW5jZXMtPmVuZCgpOwotICAgIGZvciAo
R2VvbG9jYXRpb25TZXJ2aWNlU2V0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gc19pbnN0YW5jZXMt
PmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCi0gICAgICAgICgqaXRlciktPm1ha2VHZW9s
b2NhdGlvbkNhbGxiYWNrKCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6bWFr
ZUdlb2xvY2F0aW9uQ2FsbGJhY2soKQotewotICAgIGlmICghbV9pc0FjdGl2ZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKCpzX2xhc3RQb3NpdGlvbikKLSAgICAgICAgcG9zaXRpb25DaGFu
Z2VkKCk7Ci0gICAgZWxzZSBpZiAoKnNfbGFzdEVycm9yKQotICAgICAgICBlcnJvck9jY3VycmVk
KCk7Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6aW5pdFN0YXRpY3MoKQotewot
ICAgIGlmIChzX2luc3RhbmNlcyA9PSAwKSB7IAotICAgICAgICBzX2luc3RhbmNlcyA9IG5ldyBH
ZW9sb2NhdGlvblNlcnZpY2VTZXQ7Ci0gICAgICAgIHNfbGFzdFBvc2l0aW9uID0gbmV3IFJlZlB0
cjxHZW9wb3NpdGlvbj47Ci0gICAgICAgIHNfbGFzdEVycm9yID0gbmV3IFJlZlB0cjxQb3NpdGlv
bkVycm9yPjsKLSAgICB9Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y2xlYW5V
cFN0YXRpY3MoKQotewotICAgIGlmIChzX2luc3RhbmNlcy0+c2l6ZSgpID09IDApIHsKLSAgICAg
ICAgZGVsZXRlIHNfaW5zdGFuY2VzOwotICAgICAgICBzX2luc3RhbmNlcyA9IDA7Ci0gICAgICAg
IGRlbGV0ZSBzX2xhc3RQb3NpdGlvbjsKLSAgICAgICAgZGVsZXRlIHNfbGFzdEVycm9yOwotICAg
IH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMzOTc4ZmUuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBHZW9sb2NhdGlvblNlcnZpY2VNb2NrX2gKLSNkZWZpbmUgR2VvbG9j
YXRpb25TZXJ2aWNlTW9ja19oCi0KLSNpbmNsdWRlICJHZW9sb2NhdGlvblNlcnZpY2UuaCIKLSNp
bmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotLy8gVGhpcyBjbGFzcyBwcm92aWRlcyBhIG1vY2sgaW1wbGVtZW50YXRpb24gb2Yg
YSBHZW9sb2NhdGlvblNlcnZpY2UgZm9yIHRlc3RpbmcKLS8vIHB1cnBvc2VzLiBJdCBhbGxvd3Mg
dGhlIHBvc2l0aW9uIG9yIGVycm9yIHRoYXQgd2lsbCBiZSByZXBvcnRlZCBieSB0aGlzIGNsYXNz
Ci0vLyB0byBiZSBzZXQgbWFudWFsbHkgdXNpbmcgdGhlIHNldFBvc2l0aW9uIGFuZCBzZXRFcnJv
ciBtZXRob2RzLiBPYmplY3RzIG9mCi0vLyB0aGlzIGNsYXNzIGNhbGwgYmFjayB0byB0aGVpciBy
ZXNwZWN0aXZlIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCB3aXRoIHRoZQotLy8gcG9zaXRpb24g
b3IgZXJyb3IgZXZlcnkgdGltZSBlaXRoZXIgb2YgdGhlc2UgaXMgdXBkYXRlZC4KLWNsYXNzIEdl
b2xvY2F0aW9uU2VydmljZU1vY2sgOiBwdWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlIHsKLSAgcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4gY3JlYXRlKEdl
b2xvY2F0aW9uU2VydmljZUNsaWVudCopOwotCi0gICAgR2VvbG9jYXRpb25TZXJ2aWNlTW9jayhH
ZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsKLSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZp
Y2VNb2NrKCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc3RhcnRVcGRhdGluZyhQb3NpdGlvbk9wdGlv
bnMqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCk7Ci0KLSAgICBzdGF0aWMgdm9p
ZCBzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBwb3NpdGlvbik7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0RXJyb3IoUGFzc1JlZlB0cjxQb3NpdGlvbkVycm9yPiBwb3NpdGlvbik7Ci0K
LSAgICB2aXJ0dWFsIEdlb3Bvc2l0aW9uKiBsYXN0UG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBz
X2xhc3RQb3NpdGlvbi0+Z2V0KCk7IH0KLSAgICB2aXJ0dWFsIFBvc2l0aW9uRXJyb3IqIGxhc3RF
cnJvcigpIGNvbnN0IHsgcmV0dXJuIHNfbGFzdEVycm9yLT5nZXQoKTsgfQotCi0gIHByaXZhdGU6
Ci0gICAgc3RhdGljIHZvaWQgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2Vz
KCk7Ci0gICAgdm9pZCBtYWtlR2VvbG9jYXRpb25DYWxsYmFjaygpOwotCi0gICAgdm9pZCB0aW1l
ckZpcmVkKFRpbWVyPEdlb2xvY2F0aW9uU2VydmljZU1vY2s+Kik7Ci0KLSAgICBzdGF0aWMgdm9p
ZCBpbml0U3RhdGljcygpOwotICAgIHN0YXRpYyB2b2lkIGNsZWFuVXBTdGF0aWNzKCk7Ci0KLSAg
ICB0eXBlZGVmIEhhc2hTZXQ8R2VvbG9jYXRpb25TZXJ2aWNlTW9jayo+IEdlb2xvY2F0aW9uU2Vy
dmljZVNldDsKLSAgICBzdGF0aWMgR2VvbG9jYXRpb25TZXJ2aWNlU2V0KiBzX2luc3RhbmNlczsK
LQotICAgIHN0YXRpYyBSZWZQdHI8R2VvcG9zaXRpb24+KiBzX2xhc3RQb3NpdGlvbjsKLSAgICBz
dGF0aWMgUmVmUHRyPFBvc2l0aW9uRXJyb3I+KiBzX2xhc3RFcnJvcjsKLQotICAgIFRpbWVyPEdl
b2xvY2F0aW9uU2VydmljZU1vY2s+IG1fdGltZXI7Ci0KLSAgICBib29sIG1faXNBY3RpdmU7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBHZW9sb2NhdGlvblNlcnZp
Y2VNb2NrX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGFk
NDMzNjAuLmFjY2U3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNw
cApAQCAtNDYsMTIgKzQ2LDEwIEBACiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5o
IgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeS5oIgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAj
aWYgRU5BQkxFX0RSVAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2VuZGlm
CiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50QmxhY2tCZXJyeS5oIgotI2Vu
ZGlmCiAjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgogI2luY2x1ZGUgIkhUTUxBcmVhRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgpAQCAtNDE1LDcgKzQxMyw2
IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBO
YW1lKQogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBkcmFnQ2xpZW50OwogICAgIHBhZ2VD
bGllbnRzLmluc3BlY3RvckNsaWVudCA9IGluc3BlY3RvckNsaWVudDsKIAotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgLy8gTm90ZSB0aGUgb2JqZWN0IHdpbGwgYmUg
ZGVzdHJveWVkIHdoZW4gdGhlIHBhZ2UgaXMgZGVzdHJveWVkLgogI2lmIEVOQUJMRV9EUlQKICAg
ICBpZiAoZ2V0ZW52KCJkcnRSdW4iKSkKQEAgLTQyNSw3ICs0MjIsNiBAQCB2b2lkIFdlYlBhZ2VQ
cml2YXRlOjppbml0KGNvbnN0IFdlYlN0cmluZyYgcGFnZUdyb3VwTmFtZSkKICAgICAgICAgcGFn
ZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBtX2dlb2xvY2F0aW9uQ2xpZW50ID0gbmV3IEdl
b2xvY2F0aW9uQ29udHJvbGxlckNsaWVudEJsYWNrQmVycnkodGhpcyk7CiAjZWxzZQogICAgIHBh
Z2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50ID0gbV9nZW9sb2NhdGlvbkNsaWVudDsKLSNlbmRp
ZgogCiAgICAgcGFnZUNsaWVudHMuZGV2aWNlTW90aW9uQ2xpZW50ID0gbmV3IERldmljZU1vdGlv
bkNsaWVudEJsYWNrQmVycnkodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuZGV2aWNlT3JpZW50YXRp
b25DbGllbnQgPSBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRCbGFja0JlcnJ5KHRoaXMpOwpA
QCAtNDM1LDcgKzQzMSw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmluaXQoY29uc3QgV2ViU3Ry
aW5nJiBwYWdlR3JvdXBOYW1lKQogICAgIFdlYkNvcmU6OnByb3ZpZGVOb3RpZmljYXRpb24obV9w
YWdlLCBOb3RpZmljYXRpb25QcmVzZW50ZXJJbXBsOjppbnN0YW5jZSgpKTsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJiYgRU5BQkxFX0RSVAorI2lmIEVO
QUJMRV9EUlQKICAgICAvLyBJbiBjYXNlIHJ1bm5pbmcgaW4gRHVtcFJlbmRlclRyZWUgbW9kZSBz
ZXQgdGhlIGNvbnRyb2xsZXIgdG8gbW9jayBwcm92aWRlci4KICAgICBpZiAoZ2V0ZW52KCJkcnRS
dW4iKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4ocGFnZUNs
aWVudHMuZ2VvbG9jYXRpb25DbGllbnQpLT5zZXRDb250cm9sbGVyKG1fcGFnZS0+Z2VvbG9jYXRp
b25Db250cm9sbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggZTJkMzJh
MS4uODZhMjkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFt
aW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxl
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZTo6aW5pdCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW46CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoQ2hyb21lQ2xpZW50QmxhY2tC
ZXJyeSk6CisgICAgICAgICogV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3Bw
OgorICAgICAgICAodG9HZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
cyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnJlc2V0R2VvbG9jYXRpb25Nb2Nr
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xvY2F0aW9uRXJy
b3IpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xv
Y2F0aW9uUG9zaXRpb24pOgorCiAyMDEyLTAzLTEyICBBbmR5IENoZW4gIDxhbmRjaGVuQHJpbS5j
b20+CiAKICAgICAgICAgW0JsYWNrYmVycnldIE1ha2UgdGhlIHByb2Nlc3Mgb2YgbWFya2luZyBh
bGwgbWF0Y2hlcyBpbnRlcnJ1cHRpYmxlIGFuZCBhc3luY2hyb25vdXMgZm9yIGZpbmQtaW4tcGFn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fi
b3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNv
cmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluCmluZGV4IDQ0NTY1ZGIuLjkzMjZk
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9B
Ym91dERhdGFFbmFibGVGZWF0dXJlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KQEAgLTcsNyArNyw2IEBA
IEJMQUNLQkVSUllfQ1JFREVOVElBTF9QRVJTSVNUCiBCTE9CCiBCUkFOQ0hfQ09NUEFDVElPTgog
Q0hBTk5FTF9NRVNTQUdJTkcKLUNMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogQ09ERUJMT0NLX1NB
TVBMSU5HCiBDT01QQVJFX0FORF9TV0FQCiBDT01QVVRFRF9HT1RPX0lOVEVSUFJFVEVSCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggM2ZjNGFmYi4uNWI5NzRkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtNDU4LDI2ICs0NTgsNiBAQCB2
b2lkIENocm9tZUNsaWVudEJsYWNrQmVycnk6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSog
ZnJhbWUsIGNvbnN0IFN0cmluZyYgbgogI2VuZGlmCiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50Qmxh
Y2tCZXJyeTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFt
ZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIGlmICghbV93ZWJQYWdlUHJpdmF0
ZS0+bV93ZWJTZXR0aW5ncy0+aXNHZW9sb2NhdGlvbkVuYWJsZWQoKSkgewotICAgICAgICBnZW9s
b2NhdGlvbi0+c2V0SXNBbGxvd2VkKGZhbHNlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAg
ICBET01XaW5kb3cqIHdpbmRvdyA9IGZyYW1lLT5kb21XaW5kb3coKTsKLSAgICBpZiAoIXdpbmRv
dykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ1N0cmluZyBsYXRpbk9yaWdpbiA9IGZyYW1lT3Jp
Z2luKGZyYW1lKTsKLQotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5yZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uKG1fd2ViUGFnZVByaXZhdGUtPm1fZ2VvbG9jYXRpb25DbGllbnQs
IGdlb2xvY2F0aW9uLCBsYXRpbk9yaWdpbi5kYXRhKCksIGxhdGluT3JpZ2luLmxlbmd0aCgpKTsK
LX0KLQotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCi17
Ci0gICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlz
c2lvbihtX3dlYlBhZ2VQcml2YXRlLT5tX2dlb2xvY2F0aW9uQ2xpZW50LCBnZW9sb2NhdGlvbik7
Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50QmxhY2tCZXJyeTo6cnVuT3BlblBhbmVsKEZyYW1lKiwg
UGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gY2hvb3NlcikKIHsKICAgICBTaGFyZWRBcnJheTxXZWJT
dHJpbmc+IGluaXRpYWxGaWxlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCmluZGV4
IGIyNGQzOWMuLmY0NzBmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaApAQCAt
OTAsOCArOTAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG51bVdoZWVsRXZlbnRIYW5k
bGVyc0NoYW5nZWQodW5zaWduZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSop
OwogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBT
dHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsK
ICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hv
b3Nlcj4pOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiwgRmlsZUljb25Mb2FkZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNv
bnN0IEN1cnNvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKaW5kZXggYzhlZGU2
ZS4uMzFmMWRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnQuY3BwCkBAIC00MCwxMyAr
NDAsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnQ6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4gPSB0cnVlOwogCi0jaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogdG9HZW9sb2NhdGlv
bkNsaWVudE1vY2soR2VvbG9jYXRpb25DbGllbnQqIGNsaWVudCkKIHsKICAgICAgQVNTRVJUKGdl
dGVudigiZHJ0UnVuIikpOwogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGll
bnRNb2NrKj4oY2xpZW50KTsKIH0KLSNlbmRpZgogCiBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OkR1
bXBSZW5kZXJUcmVlU3VwcG9ydCgpCiB7CkBAIC05OCwyNiArOTYsMTggQEAgdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnQ6OmR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQoRnJhbWUqIG1haW5G
cmFtZSwgaW50IGQKIAogaW50IER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6bnVtYmVyT2ZQZW5kaW5n
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoV2ViUGFnZSogd2ViUGFnZSkKIHsKLSNpZiBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9j
ayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdlYlBhZ2Up
LT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIHJldHVybiBtb2NrQ2xp
ZW50LT5udW1iZXJPZlBlbmRpbmdQZXJtaXNzaW9uUmVxdWVzdHMoKTsKLSNlbHNlCi0gICAgVU5V
U0VEX1BBUkFNKHdlYlBhZ2UpOwotICAgIHJldHVybiAtMTsKLSNlbmRpZgogfQogCiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRHZW9sb2NhdGlvbk1vY2soV2ViUGFnZSogd2ViUGFn
ZSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0
aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQ
YWdlKHdlYlBhZ2UpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1v
Y2tDbGllbnQtPnJlc2V0KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnQ6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFdlYlBhZ2UqIHdlYlBhZ2UsIGludCBlcnJvckNv
ZGUsIGNvbnN0IFN0cmluZyBtZXNzYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25FcnJvcjo6RXJyb3JDb2RlIGNvZGUgPSBHZW9sb2Nh
dGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlOwogICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7
CiAgICAgY2FzZSBQb3NpdGlvbkVycm9yOjpQRVJNSVNTSU9OX0RFTklFRDoKQEAgLTEzMCwyMyAr
MTIwLDE4IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25F
cnJvcihXZWJQYWdlKiB3ZWJQYWdlLCBpbnQgZXJyb3JDCiAKICAgICBHZW9sb2NhdGlvbkNsaWVu
dE1vY2sqIG1vY2tDbGllbnQgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihj
b3JlUGFnZSh3ZWJQYWdlKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAg
ICBtb2NrQ2xpZW50LT5zZXRFcnJvcihHZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoY29kZSwgbWVz
c2FnZSkpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2Nr
R2VvbG9jYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2UqIHdlYlBhZ2UsIGJvb2wgYWxsb3dlZCkKIHsK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xp
ZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlKHdl
YlBhZ2UpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGll
bnQtPnNldFBlcm1pc3Npb24oYWxsb3dlZCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYlBhZ2UqIHdlYlBhZ2Us
IGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGll
bnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Uod2Vi
UGFnZSktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVu
dC0+c2V0UG9zaXRpb24oR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKGN1cnJlbnRUaW1lKCks
IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5KSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ6OnNjYWxlUGFnZUJ5KFdlYlBhZ2UqIHdlYlBhZ2UsIGZsb2F0IHNj
YWxlRmFjdG9yLCBmbG9hdCB4LCBmbG9hdCB5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCAwZGUyOGY4Li5mMTJiYjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDEyLTAzLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJl
bmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVu
YWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6CisgICAgICAgICog
c3JjL0Nocm9tZUNsaWVudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBs
Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRJbXBsKToKKwogMjAxMi0wMy0xMiAgSGFqaW1lIE1v
cnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIFdpbmRv
d3MgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDVhMDMz
YzguLjFhNDEyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTM2LDcg
KzM2LDYgQEAKICAgICAgICdFTkFCTEVfQkxPQj0xJywKICAgICAgICdFTkFCTEVfQkxPQl9TTElD
RT0xJywKICAgICAgICdFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc9MScsCi0gICAgICAnRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTj0xJywKICAgICAgICdFTkFCTEVfQ1NTX0ZJTFRFUlM9
MScsCiAgICAgICAnRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUPTAnLAogICAgICAgJ0VOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TPTEnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBhZDM1MzgyLi40ZDM4MWVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTEsNyArNTEs
NiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2Vydmlj
ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCkBAIC04ODgsMjAgKzg4Nyw2IEBAIGJvb2wgQ2hy
b21lQ2xpZW50SW1wbDo6cGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0vLyBGSVhNRTogUmVtb3Zl
IENocm9tZUNsaWVudEltcGw6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSBh
bmQgQ2hyb21lQ2xpZW50SW1wbDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZv
ckZyYW1lCi0vLyBvbmNlIGFsbCBwb3J0cyBoYXZlIG1vdmVkIHRvIGNsaWVudC1iYXNlZCBnZW9s
b2NhdGlvbiAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3
MyApLgotLy8gRm9yIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbiwgdGhlc2UgbWV0aG9kcyBhcmUg
bm93IGltcGxlbWVudGVkIGFzIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
biBhbmQgV2ViR2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0LgotLy8g
KHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAwNjEgKS4KLXZv
aWQgQ2hyb21lQ2xpZW50SW1wbDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1l
KEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIENocm9tZUNsaWVudEltcGw6OmNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSogZnJhbWUsIEdlb2xvY2F0aW9uKiBn
ZW9sb2NhdGlvbikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6YXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmlu
ZGV4IGMzNDk0NTQuLjM0YTBiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmgKQEAgLTEzNyw4ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwg
Ym9vbCBwYWludEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVy
bWlzc2lvbkZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsK
LSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZy
YW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICNpZiBFTkFCTEUo
SU5QVVRfQ09MT1IpCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nl
cj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAw
OWQwZTc3Li5kMjY2OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTIt
MDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKwog
MjAxMi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1l
IE5vdGlmaWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4
IGE1OGExMWIuLjBiMDAzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNDY0LDE3ICs0NjQsNiBAQCB2b2lkIENo
cm9tZUNsaWVudEVmbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlcXVlc3RHZW9s
b2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICAv
LyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCi0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIENocm9tZUNsaWVudEVmbDo6Y2FuY2VsR2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCiB7CiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXggMTUyNjI0NS4uMjVkZDM1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTE0
Nyw4ICsxNDcsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9W
aWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwotICAg
IHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUo
RnJhbWUqLCBHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKICAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCA3OTQwY2EzLi5mNDE5NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjUgQEAKKzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVu
amFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5h
YmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9j
ayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlv
blBlcm1pc3Npb24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6bnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAg
KFdlYktpdDo6R2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oOgorICAgICAgICAq
IHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0
KToKKwogMjAxMi0wMy0wNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0RSVF0gUmVtb3ZlIFBsYWluVGV4dENvbnRyb2xsZXIgaW1wbGVtZW50YXRpb25z
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAKaW5kZXggZDI4MmYyOS4uNDhlYTBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC04NjIsMjIgKzg2
Miw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMo
Ym9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudDo6cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRp
b24qIGdlb2xvY2F0aW9uKQotewotICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdChm
cmFtZSk7Ci0gICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uPiBwb2xp
Y3lEZWNpc2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZWNpc2lvbl9u
ZXcod2ViRnJhbWUsIGdlb2xvY2F0aW9uKSkpOwotCi0gICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0g
RkFMU0U7Ci0gICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdlb2xvY2F0aW9u
LXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9saWN5RGVjaXNpb24uZ2V0
KCksICZpc0hhbmRsZWQpOwotICAgIGlmICghaXNIYW5kbGVkKQotICAgICAgICB3ZWJraXRfZ2Vv
bG9jYXRpb25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0KCkpOwotfQotCi12b2lkIENo
cm9tZUNsaWVudDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdl
YkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKQotewotICAgIGdfc2ln
bmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24t
Y2FuY2VsbGVkIiwga2l0KGZyYW1lKSk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJ
dGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApp
bmRleCBkY2VhMmYwLi4yMmI1NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTM0LDggKzEzNCw2IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3Vz
ZU1vdmVzKGJvb2wpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXco
Y29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdl
b2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFt
ZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmNwcAppbmRleCA4MDQzN2ZmLi43NjE2YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTgxNCw3ICs4MTQsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZmxvYXQgc2NhbGVGYQogCiB2
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2so
V2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1v
Y2sqIG1vY2sgPSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjb3JlKHdlYlZp
ZXcpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2stPnJlc2V0
KCk7CiAjZW5kaWYKQEAgLTgyMiw3ICs4MjIsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soV2ViS2l0V2ViVmlldyogd2ViVmlldwog
CiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlz
c2lvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGFsbG93ZWQpCiB7Ci0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAg
R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGll
bnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgp
KTsKICAgICBtb2NrLT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQpOwogI2VuZGlmCkBAIC04MzAsNyAr
ODMwLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlv
blBlcm1pc3Npb24oV2ViS2l0V2ViVmlldyogd2ViVmkKIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIGRvdWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQog
ewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xP
Q0FUSU9OKQogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdl
b2xvY2F0aW9uQ2xpZW50TW9jayo+KGNvcmUod2ViVmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxl
cigpLT5jbGllbnQoKSk7CiAKICAgICBkb3VibGUgdGltZXN0YW1wID0gZ19nZXRfcmVhbF90aW1l
KCkgLyAxMDAwMDAwLjA7CkBAIC04NDAsNyArODQwLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcKIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGludCBlcnJvckNvZGUsIGNvbnN0IGdjaGFyKiBl
cnJvck1lc3NhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNp
ZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0g
c3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9j
YXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKIAogICAgIEdlb2xvY2F0aW9uRXJyb3I6OkVy
cm9yQ29kZSBjb2RlOwpAQCAtODYwLDExICs4NjAsOSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
aQogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpudW1iZXJPZlBlbmRpbmdHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0cyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQog
ICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9u
Q2xpZW50TW9jayo+KGNvcmUod2ViVmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGll
bnQoKSk7CiAgICAgcmV0dXJuIG1vY2stPm51bWJlck9mUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0
cygpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHAK
aW5kZXggMDZlOWZiZC4uNmFjZWQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcApAQCAtMjEsNyArMjEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50R3Rr
LmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVu
dC5oIgpAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBv
c2l0aW9uLmgiCisjaW5jbHVkZSAid2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbnByaXZh
dGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3cHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIv
Z2kxOG4tbGliLmg+CiAKQEAgLTEzOCwxMiArMTM5LDE4IEBAIFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb24qIEdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogCiB2b2lkIEdlb2xv
Y2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpHZW9sb2NhdGlvbiogZ2Vv
bG9jYXRpb24pCiB7Ci0gICAgY29yZShtX3dlYlZpZXcpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnJl
cXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShnZW9sb2NhdGlvbi0+ZnJhbWUoKSwg
Z2VvbG9jYXRpb24pOworICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdChnZW9sb2Nh
dGlvbi0+ZnJhbWUoKSk7CisgICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lz
aW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9k
ZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0aW9uKSkpOworCisgICAgZ2Jvb2xlYW4gaXNI
YW5kbGVkID0gRkFMU0U7CisgICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdl
b2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9saWN5RGVj
aXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOworICAgIGlmICghaXNIYW5kbGVkKQorICAgICAgICB3
ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0KCkpOwogfQog
CiB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjpjYW5jZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJDb3Jl
OjpHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCiB7Ci0gICAgY29yZShtX3dlYlZpZXcpLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFt
ZShnZW9sb2NhdGlvbi0+ZnJhbWUoKSwgZ2VvbG9jYXRpb24pOworICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tY2FuY2VsbGVk
Iiwga2l0KGdlb2xvY2F0aW9uLT5mcmFtZSgpKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRpb25DbGll
bnQ6OnBvc2l0aW9uQ2hhbmdlZChHZW9jbHVlUG9zaXRpb24qLCBHZW9jbHVlUG9zaXRpb25GaWVs
ZHMgZmllbGRzLCBpbnQgdGltZXN0YW1wLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1
ZGUsIGRvdWJsZSBhbHRpdHVkZSwgR2VvY2x1ZUFjY3VyYWN5KiBhY2N1cmFjeSkKQEAgLTE3OCw0
ICsxODUsNCBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjplcnJvck9jY3VyZWQoY29uc3QgY2hh
ciogbWVzc2FnZSkKIAogfQogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTikKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oIGIvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRHdGsuaAppbmRleCBi
ZjE3YzcxLi44MzllNWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5k
ZWYgR2VvbG9jYXRpb25DbGllbnRHdGtfaAogI2RlZmluZSBHZW9sb2NhdGlvbkNsaWVudEd0a19o
CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9M
T0NBVElPTikKIAogI2luY2x1ZGUgIkdSZWZQdHIuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNs
aWVudC5oIgpAQCAtNzUsOCArNzUsOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9lbmFibGVIaWdo
QWNjdXJhY3k7CiAgICAgYm9vbCBtX2lzVXBkYXRpbmc7CiB9OworCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjZW5k
aWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQogCiAjZW5kaWYgLy8gR2VvbG9jYXRpb25DbGllbnRH
dGtfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDg4
MGYyNDQuLmQyOTkzNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmll
dy5jcHAKQEAgLTM1MDUsOCArMzUwNSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19p
bml0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50
ID0gbmV3IFdlYktpdDo6RWRpdG9yQ2xpZW50KHdlYlZpZXcpOwogICAgIHBhZ2VDbGllbnRzLmRy
YWdDbGllbnQgPSBuZXcgV2ViS2l0OjpEcmFnQ2xpZW50KHdlYlZpZXcpOwogICAgIHBhZ2VDbGll
bnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJLaXQ6Okluc3BlY3RvckNsaWVudCh3ZWJWaWV3
KTsKLQotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQogICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJU
cmVlTW9kZUVuYWJsZWQoKSkKICAgICAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQg
PSBuZXcgR2VvbG9jYXRpb25DbGllbnRNb2NrOwogICAgIGVsc2UKQEAgLTM1MjAsMTAgKzM1MTks
OCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfaW5pdChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKHByaXYtPmNvcmVQ
YWdlLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGllbnRHdGspOwogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8
R2VvbG9jYXRpb25DbGllbnRNb2NrKj4ocGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQpLT5z
ZXRDb250cm9sbGVyKHByaXYtPmNvcmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7Ci0j
ZW5kaWYKIAogICAgIC8vIFBhZ2VzIHdpdGhpbiBhIHNhbWUgc2Vzc2lvbiBuZWVkIHRvIGJlIGxp
bmtlZCB0b2dldGhlciBvdGhlcndpc2Ugc29tZSBmdW5jdGlvbmFsaXRpZXMgc3VjaAogICAgIC8v
IGFzIHZpc2l0ZWQgbGluayBjb2xvcmF0aW9uIChhY3Jvc3MgcGFnZXMpIGFuZCBjaGFuZ2luZyBw
b3B1cCB3aW5kb3cgbG9jYXRpb24gd2lsbCBub3Qgd29yay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBj
ZGVmOGY5Li5lMDQwN2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTIt
MDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50Lm1tOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6
CisgICAgICAgICogV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tOgorICAgICAgICAo
LVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Q
b3NpdGlvbjpdKToKKyAgICAgICAgKGNvcmUpOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBv
c2l0aW9uIGluaXRXaXRoVGltZXN0YW1wOmxhdGl0dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5p
dGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmll
dyBfZ2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBf
Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yOl0pOgorCiAyMDEyLTAzLTExICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgaG93IHRoZSBXZWIg
SW5zcGVjdG9yIHJlc291cmNlcyBhcmUgbG9hZGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA1OGEw
MmY1Li5kZDdjZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxF
X0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxP
Ql9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFN
RSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVO
QUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RB
U0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAt
MTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBF
TkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFO
TkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJM
RV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hB
REVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVf
U1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFC
TEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxF
X0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxF
X0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdB
Q1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1M
KSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNF
UlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lT
VEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAk
KEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BF
RCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RP
VUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAk
KEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykg
JChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitG
RUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChF
TkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9D
U1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMp
ICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMp
ICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9M
T0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pB
VkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkg
JChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9N
SUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFH
KSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkg
JChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NR
TF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxF
X1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhU
X05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJM
RV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9X
RUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVO
QUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDZkMTIwMS4uMDU3NmFmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKQEAgLTE3MywxMSArMTczLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBmdWxs
U2NyZWVuUmVuZGVyZXJDaGFuZ2VkKFdlYkNvcmU6OlJlbmRlckJveCopIE9WRVJSSURFOwogI2Vu
ZGlmCiAKLSAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2UgYWxsIHBvcnRzIGFyZSB1c2luZyBjbGll
bnQtYmFzZWQgZ2VvbG9jYXRpb24uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MDM3MwotICAgIC8vIEZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24sIHRoZXNlIHR3
byBtZXRob2RzIGhhdmUgbW92ZWQgdG8gV2ViR2VvbG9jYXRpb25DbGllbnQuIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MQotICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQotCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRp
b25DbGllbnQubW0KaW5kZXggNTQxZjQwYy4uZWQwZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KQEAg
LTI1LDYgKzI1LDggQEAKIAogI2ltcG9ydCAiV2ViR2VvbG9jYXRpb25DbGllbnQuaCIKIAorI2lm
IEVOQUJMRShHRU9MT0NBVElPTikKKwogI2ltcG9ydCAiV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlv
bkNhY2hpbmcuaCIKICNpbXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkdl
b2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgpAQCAtODgsMTEgKzkwLDcgQEAgdm9pZCBXZWJH
ZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24qIGdlb2xvY2F0
aW9uKQogCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBv
c2l0aW9uKCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIHJl
dHVybiBjb3JlKFtbbV93ZWJWaWV3IF9nZW9sb2NhdGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25d
KTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogQGltcGxlbWVudGF0aW9uIFdl
Ykdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIKQEAgLTExNywzICsxMTUsNCBAQCBHZW9sb2NhdGlv
blBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKIAogQGVuZAog
CisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLm1tCmluZGV4IGM5MmI3ZjEuLjY0Njdj
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9u
UG9zaXRpb24ubW0KQEAgLTI5LDI2ICsyOSwyMSBAQAogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uUG9zaXRpb24uaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0jZW5kaWYKIAogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlv
blBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiB7CiBAcHVibGljCiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IF9w
b3NpdGlvbjsKIH0KIAogLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUGFz
c1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKLSNl
bmRpZgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVy
bmFsCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogLSAoaWQpaW5pdFdp
dGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9u
Piljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CkBA
IC01NywyOSArNTIsMjIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAgICAgX3Bvc2l0aW9u
ID0gY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiAgICAgcmV0dXJuIHNlbGY7CiB9Ci0jZW5kaWYK
IAogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbgogCi0jaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIEdlb2xvY2F0aW9uUG9zaXRpb24qIGNv
cmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9zaXRpb24pCiB7CiAgICAgcmV0dXJuIHBvc2l0
aW9uID8gcG9zaXRpb24tPl9pbnRlcm5hbC0+X3Bvc2l0aW9uLmdldCgpIDogMDsKIH0KLSNlbmRp
ZgogCiAtIChpZClpbml0V2l0aFRpbWVzdGFtcDooZG91YmxlKXRpbWVzdGFtcCBsYXRpdHVkZToo
ZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZG91YmxlKWxvbmdpdHVkZSBhY2N1cmFjeTooZG91
YmxlKWFjY3VyYWN5CiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYp
CiAgICAgICAgIHJldHVybiBuaWw7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKICAgICBfaW50ZXJuYWwgPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCBhbGxv
Y10gaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpHZW9sb2NhdGlvblBvc2l0aW9uOjpj
cmVhdGUodGltZXN0YW1wLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSldOwotI2Vsc2UK
LSAgICBfaW50ZXJuYWwgPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbCBhbGxvY10g
aW5pdF07Ci0jZW5kaWYKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgK
aW5kZXggMjdmOGEzOS4uZjU0ZTY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oCkBAIC0yNSwxMiAr
MjUsOSBAQAogCiAjaW1wb3J0ICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIH0KIAogV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3Np
dGlvbiogY29yZShXZWJHZW9sb2NhdGlvblBvc2l0aW9uICopOwogCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA5Y2ZlOGIzLi43OTAxYmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMjksNiArMTI5LDggQEAKICNpbXBvcnQgPFdl
YkNvcmUvRnJhbWVUcmVlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25D
b250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFt
ZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KQEAgLTE4OCwxMSArMTkwLDYg
QEAKICNpbXBvcnQgPFdlYktpdC9XZWJEYXNoYm9hcmRSZWdpb24uaD4KICNlbmRpZgogCi0jaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9j
YXRpb25Db250cm9sbGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4K
LSNlbmRpZgotCiAjaWYgRU5BQkxFKEdMSUJfU1VQUE9SVCkKICNpbXBvcnQgPGdsaWIuaD4KICNl
bmRpZgpAQCAtNzM5LDcgKzczNiw3IEBAIHN0YXRpYyBOU1N0cmluZyAqbGVha091dGxvb2tRdWly
a3NVc2VyU2NyaXB0Q29udGVudHMoKQogICAgIHBhZ2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5l
dyBXZWJFZGl0b3JDbGllbnQoc2VsZik7CiAgICAgcGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5l
dyBXZWJEcmFnQ2xpZW50KHNlbGYpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9
IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgcGFnZUNsaWVudHMuZ2Vv
bG9jYXRpb25DbGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQoc2VsZik7CiAjZW5kaWYK
ICAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKQEAgLTYzODcsMjAg
KzYzODQsMjAgQEAgc3RhdGljIHZvaWQgZ2xpYkNvbnRleHRJdGVyYXRpb25DYWxsYmFjayhDRlJ1
bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHkKIAogLSAodm9pZClfZ2VvbG9jYXRp
b25EaWRDaGFuZ2VQb3NpdGlvbjooV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqKXBvc2l0aW9uCiB7
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9D
QVRJT04pCiAgICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRlLT5wYWdlKQogICAgICAgICBfcHJp
dmF0ZS0+cGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdlZChjb3Jl
KHBvc2l0aW9uKSk7Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAK
IC0gKHZvaWQpX2dlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yCiB7
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9D
QVRJT04pCiAgICAgaWYgKF9wcml2YXRlICYmIF9wcml2YXRlLT5wYWdlKSB7CiAgICAgICAgIFJl
ZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBnZW9sb2NhdGlvRXJyb3IgPSBHZW9sb2NhdGlvbkVycm9y
OjpjcmVhdGUoR2VvbG9jYXRpb25FcnJvcjo6UG9zaXRpb25VbmF2YWlsYWJsZSwgW2Vycm9yIGxv
Y2FsaXplZERlc2NyaXB0aW9uXSk7CiAgICAgICAgIF9wcml2YXRlLT5wYWdlLT5nZW9sb2NhdGlv
bkNvbnRyb2xsZXIoKS0+ZXJyb3JPY2N1cnJlZChnZW9sb2NhdGlvRXJyb3IuZ2V0KCkpOwogICAg
IH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKIH0KIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDQ5MjgzMTguLjdmZTFlNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5jcHAKQEAgLTY0LDEwICs2NCw4IEBACiAjaW5jbHVkZSAiRnJhbWVMb2Fk
ZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaW5jbHVkZSAiR2Vv
bG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRRdC5oIgot
I2VuZGlmIC8vIENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogI2luY2x1ZGUgIkdlb2xvY2F0aW9u
UGVybWlzc2lvbkNsaWVudFF0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCkBAIC0zMTQsOSArMzEyLDcgQEAgUVdlYlBh
Z2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdlYlBhZ2UgKnFxKQogICAgICwgaW5zcGVjdG9y
SXNJbnRlcm5hbE9ubHkoZmFsc2UpCiAgICAgLCBtX2xhc3REcm9wQWN0aW9uKFF0OjpJZ25vcmVB
Y3Rpb24pCiB7Ci0jaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgfHwgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBib29sIHVzZU1vY2sgPSBRV2ViUGFnZVByaXZhdGU6
OmRydFJ1bjsKLSNlbmRpZgogCiAgICAgV2ViQ29yZTo6aW5pdGlhbGl6ZVdlYkNvcmVRdCgpOwog
CkBAIC0zMjYsMTIgKzMyMiwxMCBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShR
V2ViUGFnZSAqcXEpCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IEVkaXRvckNs
aWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVudFF0
KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBJbnNwZWN0b3JDbGll
bnRRdChxKTsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICh1
c2VNb2NrKQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9s
b2NhdGlvbkNsaWVudE1vY2s7CiAgICAgZWxzZQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2Nh
dGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNsaWVudFF0KHEpOwotI2VuZGlmCiAgICAgcGFn
ZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQogICAgIGlmICh1c2VNb2NrKQpAQCAtMzUxLDExICszNDUsOSBAQCBRV2ViUGFnZVByaXZhdGU6
OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgLy8gYXMgZXhwZWN0ZWQgb3V0IG9m
IHRoZSBib3gsIHdlIHVzZSBhIGRlZmF1bHQgZ3JvdXAgc2ltaWxhciB0byB3aGF0IG90aGVyIHBv
cnRzIGFyZSBkb2luZy4KICAgICBwYWdlLT5zZXRHcm91cE5hbWUoIkRlZmF1bHQgR3JvdXAiKTsK
IAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgLy8gSW4gY2FzZSBy
dW5uaW5nIGluIER1bXBSZW5kZXJUcmVlIG1vZGUgc2V0IHRoZSBjb250cm9sbGVyIHRvIG1vY2sg
cHJvdmlkZXIuCiAgICAgaWYgKFFXZWJQYWdlUHJpdmF0ZTo6ZHJ0UnVuKQogICAgICAgICBzdGF0
aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNs
aWVudCktPnNldENvbnRyb2xsZXIocGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCkpOwotI2Vu
ZGlmCiAgICAgc2V0dGluZ3MgPSBuZXcgUVdlYlNldHRpbmdzKHBhZ2UtPnNldHRpbmdzKCkpOwog
CiAgICAgaGlzdG9yeS5kID0gbmV3IFFXZWJIaXN0b3J5UHJpdmF0ZShzdGF0aWNfY2FzdDxXZWJD
b3JlOjpCYWNrRm9yd2FyZExpc3RJbXBsKj4ocGFnZS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKaW5kZXggZDljNGVlOS4uYTRmMWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMyBAQAorMjAxMi0wMy0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBC
ZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5cyBl
bmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAg
ICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAodG9HZW9sb2NhdGlvbkNsaWVudE1vY2sp
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0R2VvbG9jYXRpb25Nb2Nr
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2Vv
bG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3Jl
KToKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIE5vdGlmaWNhdGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCAz
ODZiOTg2Li4yMzA2Njc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xNzMsOSArMTczLDYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZy
YW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KLQog
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwog
ICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGly
ZWN0aW9uKCk7CiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwCmluZGV4IDQ1N2I0OWUuLjA5MjhiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCkBAIC0xMDUsMTMgKzEwNSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
UU1hcDxpbnQsIFFXZWJTY3JpcHRXb3JsZCo+IG1fd29ybGRNYXA7CiAKLSNpZiBFTkFCTEUoQ0xJ
RU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogR2VvbG9jYXRpb25DbGllbnRNb2NrKiB0b0dlb2xvY2F0
aW9uQ2xpZW50TW9jayhHZW9sb2NhdGlvbkNsaWVudCogY2xpZW50KQogewogICAgICBBU1NFUlQo
UVdlYlBhZ2VQcml2YXRlOjpkcnRSdW4pOwogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9j
YXRpb25DbGllbnRNb2NrKj4oY2xpZW50KTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKIERldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogdG9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudE1vY2soRGV2aWNlT3JpZW50YXRpb25DbGllbnQqIGNsaWVudCkKQEAgLTgz
OCwzNCArODM2LDI3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tEZXZp
Y2VPcmllbnRhdGlvbihRV2ViUGFnZSogcGFnZSwgYm9vbCBjYW5QCiAKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKFFXZWJQYWdlKiBwYWdlKQogewot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2Ug
PSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2Nr
KiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0
aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+cmVzZXQoKTsKLSNl
bmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRp
b25QZXJtaXNzaW9uKFFXZWJQYWdlKiBwYWdlLCBib29sIGFsbG93ZWQpCiB7Ci0jaWYgRU5BQkxF
KENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBjb3JlUGFnZSA9IFFXZWJQYWdl
UHJpdmF0ZTo6Y29yZShwYWdlKTsKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGll
bnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQp
OwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9s
b2NhdGlvblBvc2l0aW9uKFFXZWJQYWdlKiBwYWdlLCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBs
b25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBh
Z2UpOwogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRp
b25DbGllbnRNb2NrKGNvcmVQYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkp
OwogICAgIG1vY2tDbGllbnQtPnNldFBvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0
ZShjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSkpOwotI2VuZGlm
CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9sb2NhdGlvbkVy
cm9yKFFXZWJQYWdlKiBwYWdlLCBpbnQgZXJyb3JDb2RlLCBjb25zdCBRU3RyaW5nJiBtZXNzYWdl
KQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29y
ZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAKICAgICBHZW9sb2NhdGlvbkVy
cm9yOjpFcnJvckNvZGUgY29kZSA9IEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFi
bGU7CkBAIC04ODAsMTggKzg3MSwxMyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpz
ZXRNb2NrR2VvbG9jYXRpb25FcnJvcihRV2ViUGFnZSogcGFnZSwgaW50IGVycm9yQwogCiAgICAg
R2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRp
b25DbGllbnRNb2NrKj4oY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQo
KSk7CiAgICAgbW9ja0NsaWVudC0+c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKGNv
ZGUsIG1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiBpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6
Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFFXZWJQYWdlKiBw
YWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSog
Y29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25D
bGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Ut
Pmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgcmV0dXJuIG1vY2tDbGll
bnQtPm51bWJlck9mUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOwotI2Vsc2UKLSAgICByZXR1
cm4gLTE7Ci0jZW5kaWYKIH0KIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6aXNUYXJn
ZXRJdGVtKGNvbnN0IFFXZWJIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50UXQuaCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5oCmluZGV4
IDlhMjgyNWQuLjlkMDdhOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFFX
ZWJQYWdlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIFRoaXMgY2xhc3MgcHJvdmlkZXMg
YW4gaW1wbGVtZW50YXRpb24gb2YgYSBHZW9sb2NhdGlvblNlcnZpY2UgZm9yIFF0V2Via2l0Lgor
Ly8gVGhpcyBjbGFzcyBwcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9u
Q2xpZW50IGZvciBRdFdlYmtpdC4KIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50UXQgOiBwdWJsaWMg
UU9iamVjdCwgcHVibGljIEdlb2xvY2F0aW9uQ2xpZW50IHsKICAgICBRX09CSkVDVAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggYWIxYmZjYS4uNGIyYzhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDEyLTAzLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYm
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlz
IGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAg
ICAgICAqIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbjo6aW5pdFdpdGhUaW1lc3RhbXApOgorICAgICAgICAoY29yZSk6CisgICAgICAg
ICogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbik6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0
aEZyYW1lKToKKyAgICAgICAgKFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRpb24p
OgorICAgICAgICAoV2ViVmlldzo6Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKToKKwogMjAx
Mi0wMy0xMiAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1v
cmUgV2luZG93cyBidWlsZCBmaXhpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDQ3OGY1ZDUuLjYzYmY1ZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC0xNDQsMTEgKzE0NCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxS
ZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IHsgfQogCi0gICAgLy8g
RklYTUU6IFJlbW92ZSBvbmNlIGFsbCBwb3J0cyBhcmUgdXNpbmcgY2xpZW50LWJhc2VkIGdlb2xv
Y2F0aW9uLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzMKLSAg
ICAvLyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLCB0aGVzZSB0d28gbWV0aG9kcyBoYXZl
IGJlZW4gbW92ZWQgdG8gV2ViR2VvbG9jYXRpb25DbGllbnQuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9j
YXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2Nh
dGlvbiopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIHsg
fQotCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3Jl
ZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJG
dWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKaW5kZXgg
YjFkODNmYi4uNDFiY2I0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcApAQCAtNjYsNyArNjYsNiBAQCB2
b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoKQogCiBHZW9sb2NhdGlvblBv
c2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKIHsKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIENPTVB0cjxJV2ViR2VvbG9jYXRpb25Q
cm92aWRlcj4gcHJvdmlkZXI7CiAgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPmdlb2xvY2F0aW9u
UHJvdmlkZXIoJnByb3ZpZGVyKSkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNzQsOSArNzMsNiBA
QCBHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9u
KCkKICAgICBpZiAoRkFJTEVEKHByb3ZpZGVyLT5sYXN0UG9zaXRpb24oJnBvc2l0aW9uKSkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBjb3JlKHBvc2l0aW9uLmdldCgpKTsKLSNlbHNl
Ci0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6
cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAppbmRleCAyNjU1NGRkLi5mYjJhYzZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAt
MjcsMTEgKzI3LDkgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwotI2VuZGlmCiAKIENPTVB0cjxXZWJHZW9sb2NhdGlvblBvc2l0
aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGVJbnN0YW5jZSgpCiB7CkBAIC04Mywx
NSArODEsMTAgQEAgVUxPTkcgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6UmVsZWFzZSgpCiAKIEhS
RVNVTFQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6aW5pdFdpdGhUaW1lc3RhbXAoZG91YmxlIHRp
bWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJh
Y3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBtX3Bvc2l0
aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3JlYXRlKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxv
bmdpdHVkZSwgYWNjdXJhY3kpOwogICAgIHJldHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4g
RV9GQUlMOwotI2VuZGlmCiB9CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQogR2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiogcG9z
aXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikKQEAgLTEwMyw0ICs5NiwzIEBAIEdlb2xvY2F0
aW9uUG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKQogCiAg
ICAgcmV0dXJuIHdlYkdlb2xvY2F0aW9uUG9zaXRpb24tPmltcGwoKTsKIH0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291
cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oCmluZGV4IDgxNjAyNzAuLjNl
MTFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAg
LTQ4LDE5ICs0OCwxMyBAQCBwdWJsaWM6CiAgICAgLy8gSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24K
ICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaW5pdFdpdGhUaW1lc3RhbXAo
ZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3Vi
bGUgYWNjdXJhY3kpOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAg
ICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9w
b3NpdGlvbi5nZXQoKTsgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgVUxPTkcgbV9yZWZDb3Vu
dDsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFJlZlB0cjxXZWJD
b3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX3Bvc2l0aW9uOwotI2VuZGlmCiB9OwogCi0jaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9z
aXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qKTsKLSNlbmRpZgogCiAjZW5kaWYg
Ly8gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDE0MWQz
NmMuLmYzNDJlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC05Miw2ICs5Miw4IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lV2luLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9HRElPYmplY3RDb3VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9u
RXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE5hbWVz
Lmg+CkBAIC0xMzksMTEgKzE0MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzVG91Y2gu
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKLSNpbmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25FcnJvci5oPgotI2VuZGlmCi0KICNpZiBV
U0UoQ0cpCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNzL0NHQ29udGV4dC5oPgogI2VuZGlmCkBAIC0y
NjY5LDkgKzI2NjYsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmluaXRX
aXRoRnJhbWUoCiAgICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNs
aWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5kcmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGll
bnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9yQ2xpZW50ID0gbV9pbnNwZWN0b3JD
bGllbnQ7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBwYWdlQ2xp
ZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBXZWJHZW9sb2NhdGlvbkNsaWVudCh0aGlzKTsK
LSNlbmRpZgogICAgIG1fcGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKIAogICAgIEJTVFIg
bG9jYWxTdG9yYWdlUGF0aDsKQEAgLTY1NjksMTkgKzY1NjQsMTQgQEAgSFJFU1VMVCBXZWJWaWV3
OjpnZW9sb2NhdGlvblByb3ZpZGVyKElXZWJHZW9sb2NhdGlvblByb3ZpZGVyKiogbG9jYXRpb25Q
cm92aWRlcikKIAogSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZENoYW5nZVBvc2l0aW9u
KElXZWJHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3NpdGlvbikKIHsKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRV9G
QUlMOwogICAgIG1fcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdl
ZChjb3JlKHBvc2l0aW9uKSk7CiAgICAgcmV0dXJuIFNfT0s7Ci0jZWxzZQotICAgIHJldHVybiBF
X05PVElNUEw7Ci0jZW5kaWYKIH0KIAogSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZEZh
aWxXaXRoRXJyb3IoSVdlYkVycm9yKiBlcnJvcikKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gRV9GQUlMOwog
ICAgIGlmICghZXJyb3IpCkBAIC02NTk2LDkgKzY1ODYsNiBAQCBIUkVTVUxUIFdlYlZpZXc6Omdl
b2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcihJV2ViRXJyb3IqIGVycm9yKQogICAgIFJlZlB0cjxH
ZW9sb2NhdGlvbkVycm9yPiBnZW9sb2NhdGlvbkVycm9yID0gR2VvbG9jYXRpb25FcnJvcjo6Y3Jl
YXRlKEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGUsIGRlc2NyaXB0aW9uU3Ry
aW5nKTsKICAgICBtX3BhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5lcnJvck9jY3VycmVk
KGdlb2xvY2F0aW9uRXJyb3IuZ2V0KCkpOwogICAgIHJldHVybiBTX09LOwotI2Vsc2UKLSAgICBy
ZXR1cm4gRV9OT1RJTVBMOwotI2VuZGlmCiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6c2V0RG9tYWlu
UmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShCT09MIGZvcmJpZGRlbiwgQlNUUiBzY2hl
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDVjYTZkOTEuLjg5ODc0MTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
KworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAgIChDaHJvbWVDbGllbnRXaW5DRSk6CisKIDIw
MTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBO
b3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90aWZpY2F0aW9uQ2xpZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3Bw
CmluZGV4IDZhMGUyNWEuLmFjMGIyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCkBAIC0zNjksMTYgKzM2
OSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBO
b2RlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudFdpbkNF
OjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlv
biopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRXaW5D
RTo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2Vv
bG9jYXRpb24qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xp
ZW50V2luQ0U6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKIHsKICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXggNDE3OTIwMi4uZGI4NjQwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuaApAQCAtMTM1LDExICsxMzUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpO
b3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwogI2VuZGlm
CiAKLSAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIgYSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25v
dXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4gZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIg
Zm9yIHBlcm1pc3Npb24KLSAgICAvLyB0byB1c2UgR2VvbG9jYXRpb24uCi0gICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdl
b2xvY2F0aW9uKik7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZy
YW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwogICAgIC8vIEFzeW5jaHJv
bm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKaW5kZXggZGU1YWVmOS4u
NTdkNmJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxh
aW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKiBXZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisKIDIwMTItMDItMjYgIEhhamltZSBNb3JyaXRh
ICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTW92ZSBDaHJvbWVDbGllbnQ6OnNo
b3dDb250ZXh0TWVudSgpIHRvIENvbnRleHRNZW51Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAppbmRleCBiYzk4NzI0Li5kMTcx
YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xp
ZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGll
bnRXeC5jcHAKQEAgLTQ2NSwxMiArNDY1LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6c2V0Q3Vy
c29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogICAgICAgICBtX3dlYlZpZXctPlNldEN1cnNvcigq
Y3Vyc29yLmltcGwoKSk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlcXVlc3RHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICAvLyBT
ZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCi0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLX0KLQogYm9vbCBDaHJvbWVDbGllbnRXeDo6c2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5oIGIvU291cmNlL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKaW5kZXggZjk1ODcxYi4uYTU5
NDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVu
dFd4LmgKQEAgLTEzNiw5ICsxMzYsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwg
dm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2Nh
dGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHsgfQotCiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDgyOTRjZi4uYWY5YTZjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTEyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRp
b25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2Nh
dGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
Ykdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6
CisgICAgICAgICogbWFjL1dlYktpdDIub3JkZXI6CisKIDIwMTItMDMtMTIgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdHlwbyBpbiBQYWdlQ2xpZW50SW1wbCB3
aGVyZSB3ZSB3ZXJlIG92ZXJyaWRpbmcgdmlld0xheWVySG9zdGluZ01vZGUgd2l0aApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwppbmRleCA1OGEwMmY1Li5kZDdjZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMzQsOSArMzQsNiBAQAog
RU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFC
TEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZP
Uk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFC
TEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQg
PSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5B
QkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsK
IApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktF
UlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRV
UkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9D
U1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNU
KSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJM
RV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxF
X0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkg
JChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRB
QkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQo
RU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQo
RU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFC
TEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJM
RV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVf
TUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1Mp
ICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElP
Tl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxF
X1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxF
X1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQo
RU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5B
QkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RS
QUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09D
S0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNM
VCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxP
QikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNI
Qk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJf
SVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJ
TFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5B
QkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NP
VVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVO
QUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JF
U1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExF
UikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQ
RUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5B
QkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQo
RU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJM
RV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcAppbmRleCBjZWU4ZTBiLi42MGI4MWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFn
ZXIuY3BwCkBAIC0yOSwxNCArMjksMTEgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3MuaCIKLQotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaW5jbHVk
ZSA8V2ViQ29yZS9HZW9sb2NhdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25D
b250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkVycm9yLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+Ci0jZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU4LDI5ICs1
NSwyNSBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29y
ZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQwogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1w
dHkoKTsKIAogICAgIG1fcGFnZVNldC5hZGQocGFnZSk7CiAgICAgCiAgICAgaWYgKHdhc0VtcHR5
KQogICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2Vv
bG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0YXJ0VXBkYXRpbmcoKSwgMCk7Ci0jZW5kaWYKIH0KIAog
dm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBh
Z2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBtX3BhZ2VT
ZXQucmVtb3ZlKHBhZ2UpOwogCiAgICAgaWYgKG1fcGFnZVNldC5pc0VtcHR5KCkpCiAgICAgICAg
IG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJHZW9sb2NhdGlvbk1h
bmFnZXJQcm94eTo6U3RvcFVwZGF0aW5nKCksIDApOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3NpdGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBv
c2l0aW9uOjpEYXRhJiBkYXRhKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJ
T04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0
aW9uPiBwb3NpdGlvbiA9IEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShkYXRhLnRpbWVzdGFt
cCwgZGF0YS5sYXRpdHVkZSwgZGF0YS5sb25naXR1ZGUsIGRhdGEuYWNjdXJhY3kpOwogCiAgICAg
SGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7
CkBAIC05MCwxMiArODMsMTIgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5n
ZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9uUG9zaXRpb246OkRhdGEKICAgICAgICAgaWYg
KHBhZ2UtPmNvcmVQYWdlKCkpCiAgICAgICAgICAgICBwYWdlLT5jb3JlUGFnZSgpLT5nZW9sb2Nh
dGlvbkNvbnRyb2xsZXIoKS0+cG9zaXRpb25DaGFuZ2VkKHBvc2l0aW9uLmdldCgpKTsKICAgICB9
Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAKIHZvaWQgV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRlcm1pbmVQb3NpdGlvbigpCiB7Ci0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAg
ICAgLy8gRklYTUU6IEFkZCBsb2NhbGl6ZWQgZXJyb3Igc3RyaW5nLgogICAgIFJlZlB0cjxHZW9s
b2NhdGlvbkVycm9yPiBlcnJvciA9IEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlv
bkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlLCAvKiBMb2NhbGl6ZWQgZXJyb3Igc3RyaW5nICov
IFN0cmluZygiIikpOwogCkBAIC0xMDYsNyArOTksNyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlcjo6ZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRpb24oKQogICAgICAgICBpZiAocGFnZS0+Y29y
ZVBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCktPmdlb2xvY2F0aW9uQ29udHJv
bGxlcigpLT5lcnJvck9jY3VycmVkKGVycm9yLmdldCgpKTsKICAgICB9Ci0jZW5kaWYKKyNlbmRp
ZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAppbmRleCAyMjY3ZDY2Li40MmY4Njc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcApAQCAtMTk1LDExICsxOTUsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib28KIAog
dm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0R2VvTG9jYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91
cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBjb25zdCBIYXNo
U2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50
aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRl
ciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikKICAgICAgICAg
c3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oKCppdGVyKS0+Z2VvbG9jYXRpb25D
b250cm9sbGVyKCktPmNsaWVudCgpKS0+c2V0UGVybWlzc2lvbihlbmFibGVkKTsKLSNlbmRpZgor
I2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6
c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdy
b3VwLCBib29sIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTZjYjIyYS4u
NTRlNzUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNTg1LDE2ICs1ODUsNiBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBJbgogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwg
R2VvbG9jYXRpb24qKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJh
bWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8Rmls
ZUNob29zZXI+IHBycEZpbGVDaG9vc2VyKQogewogICAgIGlmIChtX3BhZ2UtPmFjdGl2ZU9wZW5Q
YW5lbFJlc3VsdExpc3RlbmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBiNjhkOGQ0Li45
NjkwNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1MywxMSArMTUzLDYgQEAgcHJpdmF0
ZToKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgT1ZFUlJJREU7CiAKLSAgICAv
LyBUaGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNw
bGF5IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgotICAgIC8vIHRvIHVzZSBHZW9s
b2NvY2F0aW9uLiBUaGUgQ2hyb21lQ2xpZW50IG11c3QgY2FsbCBHZW9sb2NhdGlvbjo6c2V0U2hv
dWxkQ2xlYXJDYWNoZSgpIGFwcHJvcHJpYXRlbHkuCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RH
ZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdl
b2xvY2F0aW9uKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xv
Y2F0aW9uKikgT1ZFUlJJREU7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNv
cmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
V2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAppbmRleCAxZjkyMGExLi45OTNmOTllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50LmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50LmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIldl
Ykdlb2xvY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKQEAgLTgwLDQgKzgw
LDQgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6Y2FuY2VsUGVybWlzc2lvblJlcXVlc3Qo
R2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2Vu
ZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjZW5kaWYgLy8gRU5BQkxF
KEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCmluZGV4IDIxZmM0Mzgu
LjllNTcxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmgKQEAgLTI2LDggKzI2LDYg
QEAKICNpZm5kZWYgV2ViR2VvbG9jYXRpb25DbGllbnRfaAogI2RlZmluZSBXZWJHZW9sb2NhdGlv
bkNsaWVudF9oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5j
bHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNsaWVudC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTYxLDYgKzU5LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNl
bmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gV2Vi
R2VvbG9jYXRpb25DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDlmOGI0MTcuLjM4ZjQ1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIyOCw3ICsyMjgsNyBAQCBXZWJQ
YWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYgcGFyYW1ldGVycykKICAgICBwYWdlQ2xpZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2Vi
RWRpdG9yQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2Vi
RHJhZ0NsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IFdl
YkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUodGhpcyk7Ci0jaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgcGFnZUNsaWVu
dHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgV2ViR2VvbG9jYXRpb25DbGllbnQodGhpcyk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
bWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgppbmRl
eCA0NTdhMDYzLi4wNDFmODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0
Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgpAQCAtMjQ1MCw3
ICsyNDUwLDYgQEAgX19aTjZXZWJLaXQxMldlYlBhZ2VQcm94eTI4ZGlkUmVzdG9yZUZyYW1lRnJv
bVBhZ2VDYWNoZUV5eQogX19aTjdDb3JlSVBDMTNoYW5kbGVNZXNzYWdlSU44TWVzc2FnZXMxMldl
YlBhZ2VQcm94eTM2UmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lRU42V2ViS2l0
MTJXZWJQYWdlUHJveHlFTVM1X0Z2eXlOM1dURjZTdHJpbmdFRUVFdlBOU18xNUFyZ3VtZW50RGVj
b2RlckVQVDBfVDFfCiBfX1pON0NvcmVJUEMxMEFyZ3VtZW50czNJeXlOM1dURjZTdHJpbmdFRTZk
ZWNvZGVFUE5TXzE1QXJndW1lbnREZWNvZGVyRVJTM18KIF9fWk43Q29yZUlQQzE4Y2FsbE1lbWJl
ckZ1bmN0aW9uSU42V2ViS2l0MTJXZWJQYWdlUHJveHlFTVMyX0Z2eXlOM1dURjZTdHJpbmdFRXl5
UzRfRUV2UktOU18xMEFyZ3VtZW50czNJVDFfVDJfVDNfRUVQVF9UMF8KLV9fWk42V2ViS2l0MTJX
ZWJQYWdlUHJveHkzNnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZUV5eU4zV1RG
NlN0cmluZ0UKIF9fWk42V2ViS2l0MTdXZWJTZWN1cml0eU9yaWdpbjZjcmVhdGVFUktOM1dURjZT
dHJpbmdFCiBfX1pONldlYktpdDQwR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTEzY3JlYXRlUmVxdWVzdEV5CiBfX1pONldlYktpdDMzR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdFByb3h5QzFFUE5TXzQwR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eUV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2Ug
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UKaW5kZXggYTkwYzg1MC4uMTIy
ODUxYiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCisr
KyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQpAQCAtMTMzLDcgKzEzMyw2
IEBAIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9BU1NFTUJMRVJfV1hfRVhDTFVTSVZFICJBc3NlbWJs
ZXIgV1ggRXhjbHVzaXZlIiBERUZBVUxUIE9OCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQkxBQ0tC
RVJSWV9DQVJFVF9BUFBFQVJBTkNFICJCbGFja2JlcnJ5IENhcmV0IEFwcGVhcmFuY2UiIERFRkFV
TFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0JMT0IgIkVuYWJsZSBibG9iIHNsaWNlIiBE
RUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HICJFbmFi
bGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQgT04pCi1XRUJLSVRfRkVBVFVSRShFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJDbGllbnQgYmFzZWQgR2VvbG9jYXRpb24iIERFRkFV
TFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQUJBU0UgIkVuYWJsZSBkYXRhYmFzZSIg
REVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBTElTVCAiRW5hYmxlIGRhdGFs
aXN0IiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RFVEFJTFMgIkVuYWJsZSBk
ZXRhaWxzIGVsZW1lbnQiIERFRkFVTFQgT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDkyNmJl
OTEuLjIxMDZlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisr
KyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC02NSw3ICs2NSw2IEBAIFNFVChW
RVJTSU9OX1NDUklQVCAiLVdsLC0tdmVyc2lvbi1zY3JpcHQsJHtDTUFLRV9NT0RVTEVfUEFUSH0v
ZWZsc3ltYm9scy5maWx0ZXIiCiAKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9CTE9CICJFbmFibGUg
YmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3NhZ2luZyIgREVGQVVMVCBPTikKLVdFQktJVF9G
RUFUVVJFKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gIkVuYWJsZSBjbGllbnQgYmFz
ZWQgZ2VvbG9jYXRpb24iIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RBVEFM
SVNUICJFbmFibGUgZGF0YWxpc3QiIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUyAiRW5hYmxlIGRhdGEgdHJhbnNmZXIgaXRlbXMiIERFRkFVTFQg
T0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiAiRW5hYmxlIGRl
dmljZSBvcmllbnRhdGlvbiIgREVGQVVMVCBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Uv
T3B0aW9uc1dpbkNFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZQppbmRl
eCA2MTQ3ODM4Li41ZjA0ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNF
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2UKQEAgLTIxLDcgKzIx
LDYgQEAgQUREX1NVQkRJUkVDVE9SWSgkezNSRFBBUlRZX0RJUn0gIiR7Q01BS0VfQ1VSUkVOVF9C
SU5BUllfRElSfS8zcmRwYXJ0eSIpCiAKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9CTE9CICJFbmFi
bGUgYmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3NhZ2luZyIgREVGQVVMVCBPRkYpCi1XRUJL
SVRfRkVBVFVSRShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJFbmFibGUgY2xpZW50
IGJhc2VkIGdlb2xvY2F0aW9uIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9E
QVRBTElTVCAiRW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TICJFbmFibGUgZGF0YSB0cmFuc2ZlciBpdGVtcyIgREVG
QVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfRkFTVF9NT0JJTEVfU0NST0xMSU5HICJF
bmFibGUgZmFzdCBtb2JpbGUgc2Nyb2xsaW5nIiBERUZBVUxUIE9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL2NtYWtlY29uZmlnLmguY21ha2UgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRl
eCA5OGRiMGI2Li5iMTYzYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFr
ZQorKysgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQpAQCAtOCw3ICs4LDYgQEAKICNjbWFr
ZWRlZmluZTAxIEVOQUJMRV9BU19JTUFHRQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0JMT0IKICNj
bWFrZWRlZmluZTAxIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORwotI2NtYWtlZGVmaW5lMDEgRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0RBVEFM
SVNUCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUwogI2NtYWtlZGVm
aW5lMDEgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJmZWY2MzAuLmRhNTcwYTAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wMy0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLXdlYmtpdDoKKyAgICAgICAgKiBx
bWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZjoKKwogMjAxMi0wMy0xMiAgT2phbiBW
YWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHdlYmtpdC1wYXRjaCBvcHRpbWl6
ZS1iYXNlbGluZXMgc29tZXRpbWVzIGNyZWF0ZXMgYSBtYWMtZnV0dXJlIHJlc3VsdApkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAppbmRleCA5ZDE0ZjNjLi5jMjc2Zjc1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtNzIsNyArNzIs
NiBAQCBteSAoCiAgICAgJGFuaW1hdGlvbkFQSVN1cHBvcnQsCiAgICAgJGJsb2JTdXBwb3J0LAog
ICAgICRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCwKLSAgICAkY2xpZW50QmFzZWRHZW9sb2NhdGlv
blN1cHBvcnQsCiAgICAgJGNvdmVyYWdlU3VwcG9ydCwKICAgICAkY3NzRmlsdGVyc1N1cHBvcnQs
CiAgICAgJGNzc0dyaWRMYXlvdXRTdXBwb3J0LApAQCAtMTY3LDkgKzE2Niw2IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAiY2hhbm5lbC1tZXNzYWdpbmciLCBkZXNjID0+ICJU
b2dnbGUgTWVzc2FnZUNoYW5uZWwgYW5kIE1lc3NhZ2VQb3J0IHN1cHBvcnQiLAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkciLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+
IFwkY2hhbm5lbE1lc3NhZ2luZ1N1cHBvcnQgfSwKIAotICAgIHsgb3B0aW9uID0+ICJjbGllbnQt
YmFzZWQtZ2VvbG9jYXRpb24iLCBkZXNjID0+ICJUb2dnbGUgY2xpZW50LWJhc2VkIEdlb2xvY2F0
aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNCbGFj
a0JlcnJ5KCkpLCB2YWx1ZSA9PiBcJGNsaWVudEJhc2VkR2VvbG9jYXRpb25TdXBwb3J0IH0sCi0K
ICAgICB7IG9wdGlvbiA9PiAiY3NzLWZpbHRlcnMiLCBkZXNjID0+ICJUb2dnbGUgQ1NTIEZpbHRl
cnMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfRklMVEVSUyIsIGRlZmF1
bHQgPT4gaXNBcHBsZVdlYktpdCgpLCB2YWx1ZSA9PiBcJGNzc0ZpbHRlcnNTdXBwb3J0IH0sCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmIGIv
VG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmYKaW5kZXggNTlhMGJkNC4u
MDZkYTFhZiAxMDA2NDQKLS0tIGEvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJl
cy5wcmYKKysrIGIvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmYKQEAg
LTE3MCw3ICsxNzAsNiBAQCBjb250YWlucyhERUZJTkVTLCBXVEZfVVNFX0xJQlhNTDI9MSkgewog
IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9MT0NBVElPTj0uKSB7CiAgICAgY29udGFpbnMo
TU9CSUxJVFlfQ09ORklHLCBsb2NhdGlvbil8Y29udGFpbnMoUVRfQ09ORklHLCBsb2NhdGlvbikg
ewogICAgICAgIERFRklORVMgKz0gRU5BQkxFX0dFT0xPQ0FUSU9OPTEKLSAgICAgICBERUZJTkVT
ICs9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT049MQogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VM
b2cKaW5kZXggYmVlYWY2Ni4uMjJhZTc5MiAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0No
YW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4g
UG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMu
dnNwcm9wczoKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJv
LnZzcHJvcHM6CisKIDIwMTItMDMtMTIgIEVucmljYSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWJLaXQyOiByZW1vdmUgTlNQYXN0ZWJvYXJkIGFjY2VzcyBmb3IgcHJv
bWlzZWQgZGF0YSBmcm9tIHRoZSBXZWJQcm9jZXNzCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJp
ZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcyBiL1dlYktpdExpYnJh
cmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCmluZGV4IGMyNWZi
NjAuLjE4ZTUxM2QgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9w
cy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCisrKyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRv
b2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9
IiQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKTskKEVOQUJMRV8zRF9DQU5WQVMpOyQo
RU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVO
QUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX0dSSURf
TEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5B
QkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFH
UklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChF
TkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FU
SU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQo
RU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSk7JChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9J
TlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJM
RV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJ
Q0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1Nf
VEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7
JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFET1dfRE9NKTskKEVOQUJMRV9T
SEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVkcpOyQoRU5B
QkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9W
SURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTsk
KEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VS
Uyk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV9S
RVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9S
RU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7
JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJM
RV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5BQkxFX0NTU19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVH
SU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpOyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChF
TkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFMSVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVS
X0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTskKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQo
RU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVf
U1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFC
TEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05EQVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9E
QVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfQ09MT1IpOyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpOyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
OyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7
JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFCTEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9U
QUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVO
QUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJM
RV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NP
TF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00p
OyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxF
X1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMp
OyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVO
QUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YU0xUKSIKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9
IkVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSIKQEAgLTQyLDExICs0Miw2IEBACiAJCVBl
cmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCi0JCU5hbWU9IkVO
QUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04iCi0JCVZhbHVlPSJFTkFCTEVfQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OIgotCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCi0JLz4KLSAg
PFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfQ1NTX0ZJTFRFUlMiCiAJCVZhbHVlPSJFTkFCTEVf
Q1NTX0ZJTFRFUlMiCiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKZGlmZiAtLWdpdCBh
L1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZz
cHJvcHMgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXND
YWlyby52c3Byb3BzCmluZGV4IDNjZWFjMTguLjg2ZGMwNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdExp
YnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKKysr
IGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8u
dnNwcm9wcwpAQCAtOSw3ICs5LDcgQEAKIAk+CiAgIDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQo
RU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVO
QUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX0dSSURf
TEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5B
QkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFH
UklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChF
TkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJTKTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChF
TkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FU
SU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQo
RU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSk7JChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9J
TlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSyk7JChFTkFCTEVfSkFWQVND
UklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX0xJ
TktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJM
RV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJ
Q0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1Nf
VEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7
JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVOQUJMRV9TSEFET1dfRE9NKTskKEVOQUJMRV9T
SEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1RZTEVfU0NPUEVEKTskKEVOQUJMRV9TVkcpOyQoRU5B
QkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9W
SURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTsk
KEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VS
Uyk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8z
RF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFC
TEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCk7JChFTkFCTEVfQ1NTX1NI
QURFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChF
TkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1Qp
OyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVf
RklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTsk
KEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFC
QVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChF
TkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChF
TkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJM
RV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxF
X0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9N
QVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9N
VVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0Vf
VklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQo
RU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVD
SCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxF
X1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElO
R1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NP
VVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQo
RU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hTTFQpIgogCS8+
CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZBUyIKQEAgLTM3LDExICszNyw2
IEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCi0J
CU5hbWU9IkVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04iCi0JCVZhbHVlPSJFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIgotCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUi
Ci0JLz4KLSAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfQ1NTX0ZJTFRFUlMiCiAJCVZhbHVl
PSIiCiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIK
</data>
<flag name="commit-queue"
          id="134896"
          type_id="3"
          status="-"
          setter="gustavo.noronha"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131557</attachid>
            <date>2012-03-12 23:50:08 -0700</date>
            <delta_ts>2012-03-12 23:59:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>78853.diff</filename>
            <type>text/plain</type>
            <size>130479</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwM2UyNmQ4Li42NTA3ODdl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4g
UG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNt
YWtlOgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlOgorICAgICAgICAq
IFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2U6CisgICAgICAgICogU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2U6CisKIDIwMTItMDMtMTIgIFNjb3R0IEJ5ZXIgIDxzY290dGJ5ZXJAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIENsZWFudXAgb2Jzb2xldGUgZmlsZXMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZwppbmRleCAxNThlZDliLi5kNmIxNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9u
cy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwog
MjAxMi0wMy0xMiAgSG9qb25nIEhhbiAgPGhvam9uZy5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgRml4IHRlc3QgY2FzZXMgZm9yIFJlZ0V4cCBtdWx0aWxpbmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwppbmRleCA1OGEwMmY1Li5kZDdjZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBA
IC0zNCw5ICszNCw2IEBACiBFTkFCTEVfQkxPQiA9ICQoRU5BQkxFX0JMT0JfJChSRUFMX1BMQVRG
T1JNX05BTUUpKTsKIEVOQUJMRV9CTE9CX21hY29zeCA9IEVOQUJMRV9CTE9COwogCi1FTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OID0gJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OXyQoUkVBTF9QTEFURk9STV9OQU1FKSk7Ci1FTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OX21hY29zeCA9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT047Ci0KIEVOQUJMRV9E
QVNIQk9BUkRfU1VQUE9SVCA9ICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUXyQoUkVBTF9QTEFU
Rk9STV9OQU1FKSk7CiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlRfbWFjb3N4ID0gRU5BQkxFX0RB
U0hCT0FSRF9TVVBQT1JUOwogCkBAIC0xMzIsNCArMTI5LDQgQEAgRU5BQkxFX1dFQl9USU1JTkcg
PSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFC
TEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5B
QkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9M
QVlPVVQpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkg
JChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxF
X0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZ
X1VQTE9BRCkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikg
JChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJM
RV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BS
RUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVf
TUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEp
ICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVf
U0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFT
RSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01f
T0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNB
VElPTlNfT05MWSkgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05f
QVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NIQURF
UlMpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZ
U1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxF
X0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZ
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9UQUcpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJW
RVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJ
KSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RF
Ul9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChF
TkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFS
RURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQp
ICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9T
VkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VD
SF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IDllZDFiODMuLmNhYThlODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKQEAgLTExMTEsMTIgKzExMTEsOCBAQAogI2Rl
ZmluZSBXVEZfVVNFX0FDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUyAxCiAjZW5kaWYKIAotLyog
R2VvbG9jYXRpb24gcmVxdWVzdCBwb2xpY3kuIHByZS1lbXB0aXZlIHBvbGljeSBpcyB0byBhY3F1
aXJlIHVzZXIgcGVybWlzc2lvbiBiZWZvcmUgYWNxdWlyaW5nIGxvY2F0aW9uLgotICAgQ2xpZW50
IGJhc2VkIGltcGxlbWVudGF0aW9ucyB3aWxsIGhhdmUgb3B0aW9uIHRvIGNob29zZSBiZXR3ZWVu
IHByZS1lbXB0aXZlIGFuZCBub25wcmUtZW1wdGl2ZSBwZXJtaXNzaW9uIHBvbGljeS4KLSAgIHBy
ZS1lbXB0aXZlIHBlcm1pc3Npb24gcG9saWN5IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgYWxs
IGNsaWVudC1iYXNlZCBpbXBsZW1lbnRhdGlvbnMuICovCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKKy8qIEdlb2xvY2F0aW9uIHJlcXVlc3QgcG9saWN5LiBwcmUtZW1wdGl2
ZSBwb2xpY3kgaXMgdG8gYWNxdWlyZSB1c2VyIHBlcm1pc3Npb24gYmVmb3JlIGFjcXVpcmluZyBs
b2NhdGlvbi4gKi8KICNkZWZpbmUgV1RGX1VTRV9QUkVFTVBUX0dFT0xPQ0FUSU9OX1BFUk1JU1NJ
T04gMQotI2VuZGlmCiAKICNpZiBDUFUoQVJNX1RIVU1CMikKICNkZWZpbmUgRU5BQkxFX0JSQU5D
SF9DT01QQUNUSU9OIDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmZjYzI2NS4uMzFiZmQyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEwODcsNyArMTA4Nyw2IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBwbGF0Zm9ybS9GaWxlSWNvbkxvYWRlci5jcHAKICAgICBwbGF0Zm9ybS9GaWxl
U3lzdGVtLmNwcAogICAgIHBsYXRmb3JtL0Nsb2NrR2VuZXJpYy5jcHAKLSAgICBwbGF0Zm9ybS9H
ZW9sb2NhdGlvblNlcnZpY2UuY3BwCiAgICAgcGxhdGZvcm0vSGlzdG9ncmFtU3VwcG9ydC5jcHAK
ICAgICBwbGF0Zm9ybS9LVVJMLmNwcAogICAgIHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKQEAg
LTEyMDksNyArMTIwOCw2IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBsYXRmb3JtL21v
Y2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmNwcAogICAgIHBsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25DbGllbnRNb2NrLmNwcAotICAgIHBsYXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2
aWNlTW9jay5jcHAKICAgICBwbGF0Zm9ybS9tb2NrL1Njcm9sbGJhclRoZW1lTW9jay5jcHAKIAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDJkMDkxNmIuLjM1ZmZiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAor
MjAxMi0wMy0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQ
b3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5h
bToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVQb3NpdGlvbkVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0
aW9uOjpHZW9sb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6c3RvcCk6
CisgICAgICAgIChXZWJDb3JlOjpHZW9sb2NhdGlvbjo6bGFzdFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpHZW9sb2NhdGlvbjo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpHZW9s
b2NhdGlvbjo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEdlb2xvY2F0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHA6
CisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uRXJyb3IuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaDoKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0dlb2xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAg
ICAgKENocm9tZUNsaWVudCk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoUGFn
ZSk6CisgICAgICAgICogcGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNsaWVudE1vY2suaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oOiBSZW1vdmVkLgorCiAyMDEyLTAz
LTEyICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCBJbmRleGVkREIgYnVpbGQgd2l0aCBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNThhMDJmNS4uZGQ3Y2Rk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKQEAgLTM0LDkgKzM0LDYgQEAKIEVOQUJMRV9CTE9CID0gJChFTkFCTEVf
QkxPQl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0JMT0JfbWFjb3N4ID0gRU5BQkxF
X0JMT0I7CiAKLUVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gPSAkKEVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT05fJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKLUVOQUJMRV9DTElF
TlRfQkFTRURfR0VPTE9DQVRJT05fbWFjb3N4ID0gRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTjsKLQogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUID0gJChFTkFCTEVfREFTSEJPQVJEX1NV
UFBPUlRfJChSRUFMX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF9t
YWNvc3ggPSBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQ7CiAKQEAgLTEzMiw0ICsxMjksNCBAQCBF
TkFCTEVfV0VCX1RJTUlORyA9IDsKIEVOQUJMRV9XT1JLRVJTID0gRU5BQkxFX1dPUktFUlM7CiBF
TkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8z
RF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5J
TUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQo
RU5BQkxFX0NTU19HUklEX0xBWU9VVCkgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0RB
U0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAk
KEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5B
QkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURf
REFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQo
RU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRI
KSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChF
TkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMp
ICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFf
U09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQo
RU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9O
T1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5E
TEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0NSSVBURURf
U1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChF
TkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NWRykg
JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcp
ICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQo
RU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1J
TkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQo
RU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKSAk
KEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxF
X0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxT
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQp
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
Q09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
TE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElN
RSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkg
JChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NU
QVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJM
RV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BB
R0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEp
ICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19E
T00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklO
RElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09O
TFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGViZGNjOGYuLmYzMTMzYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC00NjEsOCArNDYxLDggQEAgZW5kaWYgIyBFTkQgRU5BQkxF
X0ZJTFRFUlMKICMgLS0tLQogaWYgRU5BQkxFX0dFT0xPQ0FUSU9OCiAKLUZFQVRVUkVfREVGSU5F
UyArPSBFTkFCTEVfR0VPTE9DQVRJT049MSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
PTEKLXdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfR0VPTE9DQVRJT049MSAtREVOQUJMRV9D
TElFTlRfQkFTRURfR0VPTE9DQVRJT049MQorRkVBVFVSRV9ERUZJTkVTICs9IEVOQUJMRV9HRU9M
T0NBVElPTj0xCit3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxFX0dFT0xPQ0FUSU9OPTEKIGVu
ZGlmICMgRU5EIEVOQUJMRV9HRU9MT0NBVElPTgogCiAjIC0tLS0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IGEzNDQ0MzYuLjAyZTcyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMzAyNSw4ICszMDI1LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0Zsb2F0Q29udmVyc2lvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GcmFjdGlv
bmFsTGF5b3V0VW5pdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNl
cnZpY2UuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSGFzaFRvb2xzLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0hpc3RvZ3JhbVN1cHBvcnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9IaXN0b2dyYW1TdXBwb3J0LmggXApAQCAtMzMzNiw4ICszMzM0LDYgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0
aW9uQ2xpZW50TW9jay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25DbGllbnRNb2NrLmggXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25TZXJ2aWNlTW9jay5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2Vv
bG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1Nj
cm9sbGJhclRoZW1lTW9jay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svU2Ny
b2xsYmFyVGhlbWVNb2NrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4IGE2ODlhMTguLjlmNjQ3NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b24uY3BwCkBAIC0zOCwxMyArMzgsMTEgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9O
KQogI2luY2x1ZGUgIkNvb3JkaW5hdGVzLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUG9zaXRpb24uaCIKICNpbmNsdWRlICJQb3NpdGlvbkVycm9yLmgiCi0jZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCw4ICs1Miw2IEBAIHN0YXRpYyBjb25zdCBjaGFyIGZy
YW1lbGVzc0RvY3VtZW50RXJyb3JNZXNzYWdlW10gPSAiR2VvbG9jYXRpb24gY2Fubm90IGJlIHVz
ZWQKIAogc3RhdGljIGNvbnN0IGludCBmaXJzdEF2YWlsYWJsZVdhdGNoSWQgPSAxOwogCi0jaWYg
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogc3RhdGljIFBhc3NSZWZQdHI8R2Vv
cG9zaXRpb24+IGNyZWF0ZUdlb3Bvc2l0aW9uKEdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9u
KQogewogICAgIGlmICghcG9zaXRpb24pCkBAIC04MSw3ICs3Nyw2IEBAIHN0YXRpYyBQYXNzUmVm
UHRyPFBvc2l0aW9uRXJyb3I+IGNyZWF0ZVBvc2l0aW9uRXJyb3IoR2VvbG9jYXRpb25FcnJvciog
ZXJyb3IpCiAKICAgICByZXR1cm4gUG9zaXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIGVycm9yLT5t
ZXNzYWdlKCkpOwogfQotI2VuZGlmCiAKIEdlb2xvY2F0aW9uOjpHZW9Ob3RpZmllcjo6R2VvTm90
aWZpZXIoR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uLCBQYXNzUmVmUHRyPFBvc2l0aW9uQ2FsbGJh
Y2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFzc1JlZlB0cjxQb3NpdGlvbkVycm9yQ2FsbGJhY2s+IGVy
cm9yQ2FsbGJhY2ssIFBhc3NSZWZQdHI8UG9zaXRpb25PcHRpb25zPiBvcHRpb25zKQogICAgIDog
bV9nZW9sb2NhdGlvbihnZW9sb2NhdGlvbikKQEAgLTIzNCw5ICsyMjksNiBAQCBQYXNzUmVmUHRy
PEdlb2xvY2F0aW9uPiBHZW9sb2NhdGlvbjo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQpCiAKIEdlb2xvY2F0aW9uOjpHZW9sb2NhdGlvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRoaXMpCi0jaWYg
IUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0gICAgLCBtX3NlcnZpY2UoR2VvbG9j
YXRpb25TZXJ2aWNlOjpjcmVhdGUodGhpcykpCi0jZW5kaWYKICAgICAsIG1fYWxsb3dHZW9sb2Nh
dGlvbihVbmtub3duKQogewogfQpAQCAtMjcxLDEzICsyNjMsOCBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpzdG9wKCkKICAgICAvLyBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUyODc3CiAKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAgIGlmIChwYWdl
ICYmIG1fYWxsb3dHZW9sb2NhdGlvbiA9PSBJblByb2dyZXNzKSB7Ci0jaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICBpZiAocGFnZSAmJiBtX2FsbG93R2VvbG9jYXRpb24g
PT0gSW5Qcm9ncmVzcykKICAgICAgICAgcGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNh
bmNlbFBlcm1pc3Npb25SZXF1ZXN0KHRoaXMpOwotI2Vsc2UKLSAgICAgICAgcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5jYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUo
ZnJhbWUoKSwgdGhpcyk7Ci0jZW5kaWYKLSAgICB9CiAgICAgLy8gVGhlIGZyYW1lIG1heSBiZSBt
b3ZpbmcgdG8gYSBuZXcgcGFnZSBhbmQgd2Ugd2FudCB0byBnZXQgdGhlIHBlcm1pc3Npb25zIGZy
b20gdGhlIG5ldyBwYWdlJ3MgY2xpZW50LgogICAgIG1fYWxsb3dHZW9sb2NhdGlvbiA9IFVua25v
d247CiAgICAgY2FuY2VsQWxsUmVxdWVzdHMoKTsKQEAgLTI4OSwxNSArMjc2LDExIEBAIHZvaWQg
R2VvbG9jYXRpb246OnN0b3AoKQogCiBHZW9wb3NpdGlvbiogR2VvbG9jYXRpb246Omxhc3RQb3Np
dGlvbigpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdl
KiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBtX2xhc3RQb3NpdGlvbiA9IGNyZWF0ZUdlb3Bvc2l0aW9uKHBhZ2UtPmdlb2xvY2F0
aW9uQ29udHJvbGxlcigpLT5sYXN0UG9zaXRpb24oKSk7Ci0jZWxzZQotICAgIG1fbGFzdFBvc2l0
aW9uID0gbV9zZXJ2aWNlLT5sYXN0UG9zaXRpb24oKTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIG1f
bGFzdFBvc2l0aW9uLmdldCgpOwogfQpAQCAtNjI3LDExICs2MTAsNyBAQCB2b2lkIEdlb2xvY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbigpCiAgICAgbV9hbGxvd0dlb2xvY2F0aW9uID0gSW5Qcm9n
cmVzczsKIAogICAgIC8vIEFzayB0aGUgZW1iZWRkZXI6IGl0IG1haW50YWlucyB0aGUgZ2VvbG9j
YXRpb24gY2hhbGxlbmdlIHBvbGljeSBpdHNlbGYuCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTikKICAgICBwYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+cmVxdWVzdFBl
cm1pc3Npb24odGhpcyk7Ci0jZWxzZQotICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKGZyYW1lKCksIHRoaXMpOwotI2VuZGlm
CiB9CiAKIHZvaWQgR2VvbG9jYXRpb246OnBvc2l0aW9uQ2hhbmdlZEludGVybmFsKCkKQEAgLTY3
Niw4ICs2NTUsNiBAQCB2b2lkIEdlb2xvY2F0aW9uOjptYWtlU3VjY2Vzc0NhbGxiYWNrcygpCiAg
ICAgICAgIHN0b3BVcGRhdGluZygpOwogfQogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLQogdm9pZCBHZW9sb2NhdGlvbjo6cG9zaXRpb25DaGFuZ2VkKCkKIHsKICAgICBw
b3NpdGlvbkNoYW5nZWRJbnRlcm5hbCgpOwpAQCAtNjg5LDU0ICs2NjYsMjMgQEAgdm9pZCBHZW9s
b2NhdGlvbjo6c2V0RXJyb3IoR2VvbG9jYXRpb25FcnJvciogZXJyb3IpCiAgICAgaGFuZGxlRXJy
b3IocG9zaXRpb25FcnJvci5nZXQoKSk7CiB9CiAKLSNlbHNlCi0KLXZvaWQgR2VvbG9jYXRpb246
Omdlb2xvY2F0aW9uU2VydmljZVBvc2l0aW9uQ2hhbmdlZChHZW9sb2NhdGlvblNlcnZpY2UqIHNl
cnZpY2UpCi17Ci0gICAgQVNTRVJUX1VOVVNFRChzZXJ2aWNlLCBzZXJ2aWNlID09IG1fc2Vydmlj
ZSk7Ci0gICAgQVNTRVJUKG1fc2VydmljZS0+bGFzdFBvc2l0aW9uKCkpOwotCi0gICAgcG9zaXRp
b25DaGFuZ2VkSW50ZXJuYWwoKTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvbjo6Z2VvbG9jYXRpb25T
ZXJ2aWNlRXJyb3JPY2N1cnJlZChHZW9sb2NhdGlvblNlcnZpY2UqIHNlcnZpY2UpCi17Ci0gICAg
QVNTRVJUKHNlcnZpY2UtPmxhc3RFcnJvcigpKTsKLQotICAgIC8vIE5vdGUgdGhhdCB3ZSBkbyBu
b3Qgc3RvcCB0aW1lcnMgaGVyZS4gRm9yIG9uZS1zaG90cywgdGhlIHJlcXVlc3QgaXMKLSAgICAv
LyBjbGVhcmVkIGluIGhhbmRsZUVycm9yLiBGb3Igd2F0Y2hlcnMsIHRoZSBzcGVjIHJlcXVpcmVz
IHRoYXQgdGhlIHRpbWVyIGlzCi0gICAgLy8gbm90IGNsZWFyZWQuCi0gICAgaGFuZGxlRXJyb3Io
c2VydmljZS0+bGFzdEVycm9yKCkpOwotfQotCi0jZW5kaWYKLQogYm9vbCBHZW9sb2NhdGlvbjo6
c3RhcnRVcGRhdGluZyhHZW9Ob3RpZmllciogbm90aWZpZXIpCiB7Ci0jaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcGFnZS0+Z2VvbG9jYXRp
b25Db250cm9sbGVyKCktPmFkZE9ic2VydmVyKHRoaXMsIG5vdGlmaWVyLT5tX29wdGlvbnMtPmVu
YWJsZUhpZ2hBY2N1cmFjeSgpKTsKICAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJu
IG1fc2VydmljZS0+c3RhcnRVcGRhdGluZyhub3RpZmllci0+bV9vcHRpb25zLmdldCgpKTsKLSNl
bmRpZgogfQogCiB2b2lkIEdlb2xvY2F0aW9uOjpzdG9wVXBkYXRpbmcoKQogewotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2Uo
KTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIHBhZ2UtPmdlb2xvY2F0
aW9uQ29udHJvbGxlcigpLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKLSNlbHNlCi0gICAgbV9zZXJ2
aWNlLT5zdG9wVXBkYXRpbmcoKTsKLSNlbmRpZgotCiB9CiAKICNpZiBVU0UoUFJFRU1QVF9HRU9M
T0NBVElPTl9QRVJNSVNTSU9OKQpAQCAtNzYyLDE3ICs3MDgsNSBAQCB2b2lkIEdlb2xvY2F0aW9u
OjpoYW5kbGVQZW5kaW5nUGVybWlzc2lvbk5vdGlmaWVycygpCiAjZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZWxzZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgR2Vv
bG9jYXRpb246OmNsZWFyV2F0Y2goaW50KSB7IH0KLXZvaWQgR2VvbG9jYXRpb246OnN0b3AoKSB7
IH0KLUdlb2xvY2F0aW9uOjpHZW9sb2NhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KSA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKSB7IH0KLUdlb2xvY2F0aW9uOjp+
R2VvbG9jYXRpb24oKSB7IH0KLXZvaWQgR2VvbG9jYXRpb246OnNldElzQWxsb3dlZChib29sKSB7
IH0KLQotfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKaW5kZXggMmM2YmFiOC4uOGRj
YmIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9s
b2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb24uaApAQCAtMjcsNiArMjcsOCBAQAogI2lmbmRlZiBHZW9sb2NhdGlvbl9oCiAjZGVmaW5l
IEdlb2xvY2F0aW9uX2gKIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKwogI2luY2x1ZGUgIkFj
dGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkdlb3Bvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUG9z
aXRpb25DYWxsYmFjay5oIgpAQCAtMzUsMjUgKzM3LDE2IEBACiAjaW5jbHVkZSAiUG9zaXRpb25P
cHRpb25zLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIAotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgotI2VuZGlmCi0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogY2xhc3MgR2VvbG9jYXRpb25Qb3Np
dGlvbjsKIGNsYXNzIEdlb2xvY2F0aW9uRXJyb3I7Ci0jZW5kaWYKIGNsYXNzIFBhZ2U7CiBjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBHZW9sb2NhdGlvbiA6IHB1YmxpYyBS
ZWZDb3VudGVkPEdlb2xvY2F0aW9uPiwgcHVibGljIEFjdGl2ZURPTU9iamVjdAotI2lmICFFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAmJiBFTkFCTEUoR0VPTE9DQVRJT04pCi0gICAg
LCBwdWJsaWMgR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50Ci0jZW5kaWYKIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxHZW9sb2NhdGlvbj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKQEAgLTY5LDEyICs2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SXNBbGxv
d2VkKGJvb2wpOwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICB2
b2lkIHBvc2l0aW9uQ2hhbmdlZCgpOwogICAgIHZvaWQgc2V0RXJyb3IoR2VvbG9jYXRpb25FcnJv
ciopOwotI2Vsc2UKLSAgICBHZW9sb2NhdGlvblNlcnZpY2UqIGdldEdlb2xvY2F0aW9uU2Vydmlj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZS5nZXQoKTsgfQotI2VuZGlmCiAKIHByaXZhdGU6
CiAgICAgR2VvcG9zaXRpb24qIGxhc3RQb3NpdGlvbigpOwpAQCAtMTU4LDEyICsxNDcsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgaGFuZGxlUGVuZGluZ1Blcm1pc3Npb25Ob3RpZmllcnMoKTsKICNl
bmRpZgogCi0jaWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICYmIEVOQUJMRShH
RU9MT0NBVElPTikKLSAgICAvLyBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQKLSAgICB2aXJ0dWFs
IHZvaWQgZ2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKEdlb2xvY2F0aW9uU2Vydmlj
ZSopOwotICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3VycmVkKEdl
b2xvY2F0aW9uU2VydmljZSopOwotI2VuZGlmCi0KICAgICBQYXNzUmVmUHRyPEdlb05vdGlmaWVy
PiBzdGFydFJlcXVlc3QoUGFzc1JlZlB0cjxQb3NpdGlvbkNhbGxiYWNrPiwgUGFzc1JlZlB0cjxQ
b3NpdGlvbkVycm9yQ2FsbGJhY2s+LCBQYXNzUmVmUHRyPFBvc2l0aW9uT3B0aW9ucz4pOwogCiAg
ICAgdm9pZCBmYXRhbEVycm9yT2NjdXJyZWQoR2VvTm90aWZpZXIqKTsKQEAgLTE3NCw5ICsxNTcs
NiBAQCBwcml2YXRlOgogCiAgICAgR2VvTm90aWZpZXJTZXQgbV9vbmVTaG90czsKICAgICBXYXRj
aGVycyBtX3dhdGNoZXJzOwotI2lmICFFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQot
ICAgIE93blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IG1fc2VydmljZTsKLSNlbmRpZgogI2lmIFVT
RShQUkVFTVBUX0dFT0xPQ0FUSU9OX1BFUk1JU1NJT04pCiAgICAgR2VvTm90aWZpZXJTZXQgbV9w
ZW5kaW5nRm9yUGVybWlzc2lvbk5vdGlmaWVyczsKICNlbmRpZgpAQCAtMTg5LDEzICsxNjksMTMg
QEAgcHJpdmF0ZToKICAgICAgICAgTm8KICAgICB9IG1fYWxsb3dHZW9sb2NhdGlvbjsKIAotI2lm
IEVOQUJMRShHRU9MT0NBVElPTikKICAgICBSZWZQdHI8R2VvcG9zaXRpb24+IG1fY2FjaGVkUG9z
aXRpb247Ci0jZW5kaWYKICAgICBHZW9Ob3RpZmllclNldCBtX3JlcXVlc3RzQXdhaXRpbmdDYWNo
ZWRQb3NpdGlvbjsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAv
LyBFTkFCTEUoR0VPTE9DQVRJT04pCisKICNlbmRpZiAvLyBHZW9sb2NhdGlvbl9oCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25Db250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmNwcAppbmRleCA5Njk0YTk5Li5jOTFmMzE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRy
b2xsZXIuY3BwCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uUG9z
aXRpb24uaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5B
QkxFKEdFT0xPQ0FUSU9OKQogCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnQuaCIKKyNpbmNs
dWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MTI3LDQgKzEyNyw0IEBAIEdlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uQ29udHJvbGxl
cjo6bGFzdFBvc2l0aW9uKCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9D
QVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaAppbmRleCAwNjExZGMzLi45YjEwMzk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRp
b25Db250cm9sbGVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25Db250
cm9sbGVyX2gKICNkZWZpbmUgR2VvbG9jYXRpb25Db250cm9sbGVyX2gKIAotI2lmIEVOQUJMRShD
TElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogCiAjaW5j
bHVkZSAiR2VvbG9jYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNzUsNiAr
NzUsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBF
TkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NB
VElPTikKIAogI2VuZGlmIC8vIEdlb2xvY2F0aW9uQ29udHJvbGxlcl9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uRXJyb3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb25FcnJvci5oCmluZGV4
IDJhM2JhZDQuLjczNTJlNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2Vv
bG9jYXRpb24vR2VvbG9jYXRpb25FcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Z2VvbG9jYXRpb24vR2VvbG9jYXRpb25FcnJvci5oCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVm
IEdlb2xvY2F0aW9uRXJyb3JfaAogI2RlZmluZSBHZW9sb2NhdGlvbkVycm9yX2gKIAotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0KICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KQEAgLTYwLDYgKzU4LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCi0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlm
IC8vIEdlb2xvY2F0aW9uRXJyb3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUG9zaXRpb24uaAppbmRleCA5ZjI1YjExLi43YjE1
NjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xv
Y2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9u
L0dlb2xvY2F0aW9uUG9zaXRpb24uaApAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBHZW9sb2Nh
dGlvblBvc2l0aW9uX2gKICNkZWZpbmUgR2VvbG9jYXRpb25Qb3NpdGlvbl9oCiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
QEAgLTEwNiw2ICsxMDQsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
LSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8g
R2VvbG9jYXRpb25Qb3NpdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA3NDM0M2YwLi44ZWMyYmJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTEwNjUsNyArMTA2NSw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRm
b3JtL0ZpbGVJY29uTG9hZGVyLmNwcCBcCiAgICAgcGxhdGZvcm0vRmlsZVN0cmVhbS5jcHAgXAog
ICAgIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uY3BwIFwKLSAgICBwbGF0Zm9ybS9HZW9sb2NhdGlvblNl
cnZpY2UuY3BwIFwKICAgICBwbGF0Zm9ybS9IaXN0b2dyYW1TdXBwb3J0LmNwcCBcCiAgICAgcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvcXQvSW1hZ2VGcmFtZVF0LmNwcCBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcCBcCkBAIC0xMTMxLDcgKzExMzAsNiBAQCBTT1VS
Q0VTICs9IFwKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcCBcCiAgICAgcGxhdGZv
cm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwIFwKICAgICBwbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAotICAgIHBsYXRmb3JtL21vY2svR2VvbG9j
YXRpb25TZXJ2aWNlTW9jay5jcHAgXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVN
b2NrLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJh
c2UuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JEYXRhLmNwcCBcCkBAIC0yMTQ5LDEy
ICsyMTQ3LDEwIEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL0ZpbGVTdHJlYW0uaCBcCiAg
ICAgcGxhdGZvcm0vRmlsZVN0cmVhbUNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9GaWxlU3lzdGVt
LmggXAotICAgIHBsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oIFwKICAgICBwbGF0Zm9ybS9I
aXN0b2dyYW1TdXBwb3J0LmggXAogICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVj
b2Rlci5oIFwKICAgICBwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5o
IFwKICAgICBwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAgXAotICAgIHBs
YXRmb3JtL21vY2svR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIFwKICAgICBwbGF0Zm9ybS9tb2Nr
L1Njcm9sbGJhclRoZW1lTW9jay5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggYTcxMDYwNC4uZjIzMDQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE4Niw4ICsx
ODYsNiBAQCBfX1pON1dlYkNvcmUxMUZyYW1lTG9hZGVyNGxvYWRFUktOU18xNVJlc291cmNlUmVx
dWVzdEVSS05TXzE0U3Vic3RpdHV0ZURhdGFFYgogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjRs
b2FkRVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFYgogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjZy
ZWxvYWRFYgogX19aTjdXZWJDb3JlMTFGcmFtZUxvYWRlcjlzZXRPcGVuZXJFUE5TXzVGcmFtZUUK
LV9fWk43V2ViQ29yZTExR2VvbG9jYXRpb24xMnNldElzQWxsb3dlZEViCi1fX1pON1dlYkNvcmUx
MUdlb2xvY2F0aW9uRDFFdgogX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbTEwdGFyZ2V0SXRlbUV2
CiBfX1pON1dlYkNvcmUxMUhpc3RvcnlJdGVtMTFzZXRSZWZlcnJlckVSS04zV1RGNlN0cmluZ0UK
IF9fWk43V2ViQ29yZTExSGlzdG9yeUl0ZW0xMmFkZENoaWxkSXRlbUVOM1dURjEwUGFzc1JlZlB0
cklTMF9FRQpAQCAtNjE3LDcgKzYxNSw2IEBAIF9fWk43V2ViQ29yZTIwYnVpbHRJblBERlBsdWdp
bk5hbWVFdgogX19aTjdXZWJDb3JlMjBtYWtlUkdCQTMyRnJvbUZsb2F0c0VmZmZmCiBfX1pON1dl
YkNvcmUyMHByb3RvY29sSXNKYXZhU2NyaXB0RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MjFCYWNrRm9yd2FyZENvbnRyb2xsZXIxMWl0ZW1BdEluZGV4RWkKLV9fWk43V2ViQ29yZTIxR2Vv
bG9jYXRpb25DbGllbnRNb2NrMTNzZXRQZXJtaXNzaW9uRWIKIF9fWk43V2ViQ29yZTIxTWVtb3J5
UHJlc3N1cmVIYW5kbGVyN2luc3RhbGxFdgogX19aTjdXZWJDb3JlMjFQbGF0Zm9ybUtleWJvYXJk
RXZlbnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOU18xM1BsYXRmb3JtRXZlbnQ0VHlwZUVi
CiBfX1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIwc2VydmVQZW5kaW5nUmVxdWVz
dHNFTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKQEAgLTExODksNyArMTE4Niw2IEBAIF9fWk5L
N1dlYkNvcmUxMUZyYW1lTG9hZGVyMTduZXR3b3JraW5nQ29udGV4dEV2CiBfX1pOSzdXZWJDb3Jl
MTFGcmFtZUxvYWRlcjIwYWN0aXZlRG9jdW1lbnRMb2FkZXJFdgogX19aTks3V2ViQ29yZTExRnJh
bWVMb2FkZXIyN251bVBlbmRpbmdPckxvYWRpbmdSZXF1ZXN0c0ViCiBfX1pOSzdXZWJDb3JlMTFG
cmFtZUxvYWRlcjhsb2FkVHlwZUV2Ci1fX1pOSzdXZWJDb3JlMTFHZW9sb2NhdGlvbjVmcmFtZUV2
CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTEwdmlzaXRDb3VudEV2CiBfX1pOSzdXZWJDb3Jl
MTFIaXN0b3J5SXRlbTExaGFzQ2hpbGRyZW5FdgogX19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW0x
MW9yaWdpbmFsVVJMRXYKQEAgLTE3MDQsMTMgKzE3MDAsMTIgQEAgX19aTjdXZWJDb3JlOERyYWdE
YXRhQzFFUktOM1dURjZTdHJpbmdFUktOU184SW50UG9pbnRFUzdfTlNfMTNEcmFnT3BlcmF0aW9u
RU5TXzIKICNlbmRpZgogCiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCitfX1pON1dlYkNvcmUxMUdlb2xvY2F0aW9uMTJzZXRJc0Fs
bG93ZWRFYgorX19aTjdXZWJDb3JlMTFHZW9sb2NhdGlvbkQxRXYKK19fWk5LN1dlYkNvcmUxMUdl
b2xvY2F0aW9uNWZyYW1lRXYKK19fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25DbGllbnRNb2NrMTNz
ZXRQZXJtaXNzaW9uRWIKIF9fWk43V2ViQ29yZTIxR2VvbG9jYXRpb25Db250cm9sbGVyMTNlcnJv
ck9jY3VycmVkRVBOU18xNkdlb2xvY2F0aW9uRXJyb3JFCiBfX1pON1dlYkNvcmUyMUdlb2xvY2F0
aW9uQ29udHJvbGxlcjE1cG9zaXRpb25DaGFuZ2VkRVBOU18xOUdlb2xvY2F0aW9uUG9zaXRpb25F
Ci0jZWxzZQotX19aTjdXZWJDb3JlMjJHZW9sb2NhdGlvblNlcnZpY2VNb2NrMTFzZXRQb3NpdGlv
bkVOM1dURjEwUGFzc1JlZlB0cklOU18xMUdlb3Bvc2l0aW9uRUVFCi1fX1pON1dlYkNvcmUyMkdl
b2xvY2F0aW9uU2VydmljZU1vY2s4c2V0RXJyb3JFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTNQb3Np
dGlvbkVycm9yRUVFCi0jZW5kaWYKICNlbmRpZgogCiAjaWYgRU5BQkxFKElDT05EQVRBQkFTRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBiODE3MWVjLi5mNmM3MWY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0yOTQ3LDggKzI5NDcsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Zsb2F0Q29udmVyc2lv
bi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9DbG9ja0dlbmVyaWMuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9DbG9ja0dlbmVyaWMuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vR2Vv
bG9jYXRpb25TZXJ2aWNlLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9jYXRpb25T
ZXJ2aWNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0hhc2hUb29scy5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9LVVJMLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vS1VSTEdvb2ds
ZS5jcHAnLApAQCAtNDA4Miw4ICs0MDgwLDYgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMv
V2lkZ2V0TWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svR2VvbG9jYXRp
b25DbGllbnRNb2NrLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlv
blNlcnZpY2VNb2NrLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbW9jay9HZW9sb2NhdGlv
blNlcnZpY2VNb2NrLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhl
bWVNb2NrLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1v
Y2suaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZUJhc2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggMjE2YmZmNS4uNWNkNTcxYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3MzE4LDE0ICsyNzMxOCw2IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEdlb2xv
Y2F0aW9uU2VydmljZS5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEdlb2xvY2F0aW9uU2VydmljZS5oIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxIaXN0b2dyYW1T
dXBwb3J0LmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0zMzU2MSwxNCArMzM1NTMsNiBAQAog
CQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cbW9ja1xHZW9sb2NhdGlvblNlcnZpY2VNb2NrLmNwcCIKLQkJCQkJPgotCQkJCTwvRmls
ZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG1vY2tcR2VvbG9j
YXRpb25TZXJ2aWNlTW9jay5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbW9ja1xTY3JvbGxiYXJUaGVtZU1vY2suY3BwIgog
CQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0dlb2xvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCBjYWFjMzgwLi44YTkxODU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0dlb2xvY2F0aW9uQ3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0dlb2xvY2F0aW9uQ3VzdG9tLmNwcApAQCAt
MzcsMTAgKzM3LDYgQEAKICNpbmNsdWRlICJKU1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIlBvc2l0aW9uT3B0aW9ucy5oIgogCi0jaWYgIUVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCi0jaW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlLmgiCi0jZW5kaWYKLQogdXNp
bmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAppbmRleCAzZmMyMDRkLi5hNjVmNGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0yMTcsOSArMjE3LDYgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZy
YW1lKiwgR2VvbG9jYXRpb24qKSB7fQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopIHt9Ci0KICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIHt9CiAgICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSB7fQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMjZkNzRhYi4uYmM1M2UxNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCkBAIC0yMTQsMTMgKzIxNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7
CiAKLSAgICAgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIGFsbCBwb3J0cyBhcmUgdXNpbmcgY2xp
ZW50LWJhc2VkIGdlb2xvY2F0aW9uLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDAzNzMKLSAgICAgICAgLy8gRm9yIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbiwgdGhl
c2UgdHdvIG1ldGhvZHMgaGF2ZSBtb3ZlZCB0byBHZW9sb2NhdGlvbkNsaWVudC4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDYxCi0gICAgICAgIC8vIFRoaXMgY2Fu
IGJlIGVpdGhlciBhIHN5bmNocm9ub3VzIG9yIGFzeW5jaHJvbm91cyBjYWxsLiBUaGUgQ2hyb21l
Q2xpZW50IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVybWlzc2lvbgotICAg
ICAgICAvLyB0byB1c2UgR2VvbG9jYXRpb24uCi0gICAgICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RG
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikgPSAwOwotCiAjaWYgRU5BQkxFKElOUFVUX0NP
TE9SKQogICAgICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xv
ckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKSA9IDA7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDdiNmI5ZmUuLjdmYjFkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkZyYW1lU2VsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiR2VvbG9j
YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
aXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKQEAgLTc1LDEw
ICs3Niw2IEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
Ci0jaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9sbGVyLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdGF0aWMgSGFzaFNldDxQYWdlKj4qIGFsbFBhZ2VzOwpAQCAtMTI1LDcg
KzEyMiw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgLCBtX2luc3BlY3RvckNvbnRyb2xsZXIoSW5zcGVjdG9yQ29udHJv
bGxlcjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCkpCiAjZW5kaWYK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NB
VElPTikKICAgICAsIG1fZ2VvbG9jYXRpb25Db250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxl
cjo6Y3JlYXRlKHRoaXMsIHBhZ2VDbGllbnRzLmdlb2xvY2F0aW9uQ2xpZW50KSkKICNlbmRpZgog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGNkZjdmZTYuLjJiYTRm
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNjcsNyArMTY3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXIqIGlu
c3BlY3RvckNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckNvbnRyb2xsZXIu
Z2V0KCk7IH0KICNlbmRpZgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisj
aWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgICAgICBHZW9sb2NhdGlvbkNvbnRyb2xsZXIqIGdl
b2xvY2F0aW9uQ29udHJvbGxlcigpIGNvbnN0IHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25Db250cm9s
bGVyLmdldCgpOyB9CiAjZW5kaWYKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpAQCAtMzU4LDcg
KzM1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
ICAgICBPd25QdHI8SW5zcGVjdG9yQ29udHJvbGxlcj4gbV9pbnNwZWN0b3JDb250cm9sbGVyOwog
I2VuZGlmCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgICAgIE93blB0cjxHZW9sb2NhdGlvbkNvbnRyb2xsZXI+IG1fZ2Vv
bG9jYXRpb25Db250cm9sbGVyOwogI2VuZGlmCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODc5M2ExLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgotCi0j
aW5jbHVkZSAiR2VvbG9jYXRpb25TZXJ2aWNlTW9jay5oIgotI2luY2x1ZGUgIkdlb3Bvc2l0aW9u
LmgiCi0jaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgotCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi0jaWYgIUVOQUJMRShHRU9MT0NBVElPTikgfHwgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKLXN0YXRpYyBQYXNzT3duUHRyPEdlb2xvY2F0aW9uU2VydmljZT4gY3JlYXRlR2Vv
bG9jYXRpb25TZXJ2aWNlTnVsbChHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKQotewotICAgIHJl
dHVybiBudWxscHRyOwotfQotCi1HZW9sb2NhdGlvblNlcnZpY2U6OkZhY3RvcnlGdW5jdGlvbiog
R2VvbG9jYXRpb25TZXJ2aWNlOjpzX2ZhY3RvcnlGdW5jdGlvbiA9ICZjcmVhdGVHZW9sb2NhdGlv
blNlcnZpY2VOdWxsOwotR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24qIEdlb2xv
Y2F0aW9uU2VydmljZTo6c19tb2NrRmFjdG9yeUZ1bmN0aW9uID0gJmNyZWF0ZUdlb2xvY2F0aW9u
U2VydmljZU51bGw7Ci0jZWxzZQotR2VvbG9jYXRpb25TZXJ2aWNlOjpGYWN0b3J5RnVuY3Rpb24q
IEdlb2xvY2F0aW9uU2VydmljZTo6c19tb2NrRmFjdG9yeUZ1bmN0aW9uID0gJkdlb2xvY2F0aW9u
U2VydmljZU1vY2s6OmNyZWF0ZTsKLSNlbmRpZgotCi1QYXNzT3duUHRyPEdlb2xvY2F0aW9uU2Vy
dmljZT4gR2VvbG9jYXRpb25TZXJ2aWNlOjpjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50
KiBjbGllbnQpCi17Ci0gICAgcmV0dXJuICgqc19mYWN0b3J5RnVuY3Rpb24pKGNsaWVudCk7Ci19
Ci0KLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZTo6dXNl
TW9jaygpCi17Ci0gICAgc19mYWN0b3J5RnVuY3Rpb24gPSBzX21vY2tGYWN0b3J5RnVuY3Rpb247
Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlOjpzZXRDdXN0b21Nb2NrRmFjdG9yeShGYWN0
b3J5RnVuY3Rpb24gZikKLXsKLSAgICBzX21vY2tGYWN0b3J5RnVuY3Rpb24gPSBmOwotfQotCi1H
ZW9sb2NhdGlvblNlcnZpY2U6Okdlb2xvY2F0aW9uU2VydmljZShHZW9sb2NhdGlvblNlcnZpY2VD
bGllbnQqIGNsaWVudCkKLSAgICA6IG1fZ2VvbG9jYXRpb25TZXJ2aWNlQ2xpZW50KGNsaWVudCkK
LXsKLSAgICBBU1NFUlQobV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQpOwotfQotCi12b2lkIEdl
b2xvY2F0aW9uU2VydmljZTo6cG9zaXRpb25DaGFuZ2VkKCkKLXsKLSAgICBtX2dlb2xvY2F0aW9u
U2VydmljZUNsaWVudC0+Z2VvbG9jYXRpb25TZXJ2aWNlUG9zaXRpb25DaGFuZ2VkKHRoaXMpOwot
fQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZTo6ZXJyb3JPY2N1cnJlZCgpCi17Ci0gICAgbV9n
ZW9sb2NhdGlvblNlcnZpY2VDbGllbnQtPmdlb2xvY2F0aW9uU2VydmljZUVycm9yT2NjdXJyZWQo
dGhpcyk7Ci19Ci0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1YmE5ZmQ3Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0dlb2xvY2F0aW9uU2VydmljZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgR2VvbG9j
YXRpb25TZXJ2aWNlX2gKLSNkZWZpbmUgR2VvbG9jYXRpb25TZXJ2aWNlX2gKLQotI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlOwotY2xhc3MgR2VvcG9z
aXRpb247Ci1jbGFzcyBQb3NpdGlvbkVycm9yOwotY2xhc3MgUG9zaXRpb25PcHRpb25zOwotCi1j
bGFzcyBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQgewotcHVibGljOgotICAgIHZpcnR1YWwgfkdl
b2xvY2F0aW9uU2VydmljZUNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBnZW9sb2NhdGlv
blNlcnZpY2VQb3NpdGlvbkNoYW5nZWQoR2VvbG9jYXRpb25TZXJ2aWNlKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBnZW9sb2NhdGlvblNlcnZpY2VFcnJvck9jY3VycmVkKEdlb2xvY2F0aW9uU2Vy
dmljZSopID0gMDsKLX07Ci0KLWNsYXNzIEdlb2xvY2F0aW9uU2VydmljZSB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoR2VvbG9jYXRpb25TZXJ2aWNlKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxHZW9sb2NhdGlvblNlcnZpY2U+IGNyZWF0ZShHZW9sb2NhdGlvblNlcnZpY2VD
bGllbnQqKTsKLSAgICB2aXJ0dWFsIH5HZW9sb2NhdGlvblNlcnZpY2UoKSB7IH0KLQotICAgIHZp
cnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyopIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZygpIHsgfQotCi0gICAgdmlydHVhbCBH
ZW9wb3NpdGlvbiogbGFzdFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1
YWwgUG9zaXRpb25FcnJvciogbGFzdEVycm9yKCkgY29uc3QgeyByZXR1cm4gMDsgfQotCi0gICAg
dm9pZCBwb3NpdGlvbkNoYW5nZWQoKTsKLSAgICB2b2lkIGVycm9yT2NjdXJyZWQoKTsKLQotICAg
IHN0YXRpYyB2b2lkIHVzZU1vY2soKTsKLSAgICB0eXBlZGVmIFBhc3NPd25QdHI8R2VvbG9jYXRp
b25TZXJ2aWNlPiAoRmFjdG9yeUZ1bmN0aW9uKShHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqKTsK
LSAgICBzdGF0aWMgdm9pZCBzZXRDdXN0b21Nb2NrRmFjdG9yeShGYWN0b3J5RnVuY3Rpb24pOwot
Ci1wcm90ZWN0ZWQ6Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlKEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCopOwotICAgIEdlb2xvY2F0aW9uU2VydmljZUNsaWVudCogZ2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9nZW9sb2NhdGlvblNlcnZpY2VDbGllbnQ7IH0KLQot
cHJpdmF0ZToKLSAgICBHZW9sb2NhdGlvblNlcnZpY2VDbGllbnQqIG1fZ2VvbG9jYXRpb25TZXJ2
aWNlQ2xpZW50OwotCi0gICAgc3RhdGljIEZhY3RvcnlGdW5jdGlvbiogc19mYWN0b3J5RnVuY3Rp
b247Ci0gICAgc3RhdGljIEZhY3RvcnlGdW5jdGlvbiogc19tb2NrRmFjdG9yeUZ1bmN0aW9uOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gR2VvbG9jYXRpb25TZXJ2
aWNlX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvbkNsaWVudE1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2Nh
dGlvbkNsaWVudE1vY2suY3BwCmluZGV4IGQwNjdjOGEuLjI3NmI0YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5jcHAK
QEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHZW9sb2Nh
dGlvbkNsaWVudE1vY2suaCIKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25FcnJvci5oIgpAQCAtMTc5LDQgKzE3OSw0IEBA
IHZvaWQgR2VvbG9jYXRpb25DbGllbnRNb2NrOjpjb250cm9sbGVyVGltZXJGaXJlZChUaW1lcjxH
ZW9sb2NhdGlvbkNsaWVudE1vY2s+KiB0CiAKIH0gLy8gV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJ
T04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvbkNs
aWVudE1vY2suaAppbmRleCBiNDAwMTY2Li40YzIzOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svR2VvbG9jYXRpb25DbGllbnRNb2NrLmgKQEAgLTMxLDggKzMx
LDYgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25DbGllbnRNb2NrX2gKICNkZWZpbmUgR2VvbG9jYXRp
b25DbGllbnRNb2NrX2gKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCi0K
ICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTk1LDYgKzkzLDQgQEAgcHJpdmF0ZToKIAogfQog
Ci0jZW5kaWYgLy8gRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2Vydmlj
ZU1vY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZp
Y2VNb2NrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmY1MzRkZC4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1v
Y2suY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkdlb2xvY2F0aW9uU2VydmljZU1vY2suaCIKLQotI2lmIEVOQUJMRShHRU9MT0NBVElPTikK
LQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1
ZGUgIkdlb3Bvc2l0aW9uLmgiCi0jaW5jbHVkZSAiUG9zaXRpb25FcnJvci5oIgotI2luY2x1ZGUg
IlBvc2l0aW9uT3B0aW9ucy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUdlb2xvY2F0aW9u
U2VydmljZU1vY2s6Okdlb2xvY2F0aW9uU2VydmljZVNldCogR2VvbG9jYXRpb25TZXJ2aWNlTW9j
azo6c19pbnN0YW5jZXMgPSAwOwotUmVmUHRyPEdlb3Bvc2l0aW9uPiogR2VvbG9jYXRpb25TZXJ2
aWNlTW9jazo6c19sYXN0UG9zaXRpb247Ci1SZWZQdHI8UG9zaXRpb25FcnJvcj4qIEdlb2xvY2F0
aW9uU2VydmljZU1vY2s6OnNfbGFzdEVycm9yOwotCi1QYXNzT3duUHRyPEdlb2xvY2F0aW9uU2Vy
dmljZT4gR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6Y3JlYXRlKEdlb2xvY2F0aW9uU2VydmljZUNs
aWVudCogY2xpZW50KQotewotICAgIGluaXRTdGF0aWNzKCk7Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBHZW9sb2NhdGlvblNlcnZpY2VNb2NrKGNsaWVudCkpOwotfQotCi1HZW9sb2NhdGlvblNl
cnZpY2VNb2NrOjpHZW9sb2NhdGlvblNlcnZpY2VNb2NrKEdlb2xvY2F0aW9uU2VydmljZUNsaWVu
dCogY2xpZW50KQotICAgIDogR2VvbG9jYXRpb25TZXJ2aWNlKGNsaWVudCkKLSAgICAsIG1fdGlt
ZXIodGhpcywgJkdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQpCi0gICAgLCBtX2lz
QWN0aXZlKGZhbHNlKQotewotICAgIHNfaW5zdGFuY2VzLT5hZGQodGhpcyk7Ci19Ci0KLUdlb2xv
Y2F0aW9uU2VydmljZU1vY2s6On5HZW9sb2NhdGlvblNlcnZpY2VNb2NrKCkKLXsKLSAgICBHZW9s
b2NhdGlvblNlcnZpY2VTZXQ6Oml0ZXJhdG9yIGl0ZXIgPSBzX2luc3RhbmNlcy0+ZmluZCh0aGlz
KTsKLSAgICBBU1NFUlQoaXRlciAhPSBzX2luc3RhbmNlcy0+ZW5kKCkpOwotICAgIHNfaW5zdGFu
Y2VzLT5yZW1vdmUoaXRlcik7Ci0gICAgY2xlYW5VcFN0YXRpY3MoKTsKLX0KLQotdm9pZCBHZW9s
b2NhdGlvblNlcnZpY2VNb2NrOjpzZXRQb3NpdGlvbihQYXNzUmVmUHRyPEdlb3Bvc2l0aW9uPiBw
b3NpdGlvbikKLXsKLSAgICBpbml0U3RhdGljcygpOwotICAgIEdlb2xvY2F0aW9uU2VydmljZTo6
dXNlTW9jaygpOwotICAgICpzX2xhc3RQb3NpdGlvbiA9IHBvc2l0aW9uOwotICAgICpzX2xhc3RF
cnJvciA9IDA7Ci0gICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5zdGFuY2VzKCk7
Ci19Ci0KLXZvaWQgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c2V0RXJyb3IoUGFzc1JlZlB0cjxQ
b3NpdGlvbkVycm9yPiBlcnJvcikKLXsKLSAgICBpbml0U3RhdGljcygpOwotICAgIEdlb2xvY2F0
aW9uU2VydmljZTo6dXNlTW9jaygpOwotICAgICpzX2xhc3RFcnJvciA9IGVycm9yOwotICAgICpz
X2xhc3RQb3NpdGlvbiA9IDA7Ci0gICAgbWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2tGcm9tQWxsSW5z
dGFuY2VzKCk7Ci19Ci0KLWJvb2wgR2VvbG9jYXRpb25TZXJ2aWNlTW9jazo6c3RhcnRVcGRhdGlu
ZyhQb3NpdGlvbk9wdGlvbnMqKQotewotICAgIG1faXNBY3RpdmUgPSB0cnVlOwotICAgIG1fdGlt
ZXIuc3RhcnRPbmVTaG90KDApOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEdlb2xvY2F0
aW9uU2VydmljZU1vY2s6OnN0b3BVcGRhdGluZygpCi17Ci0gICAgbV9pc0FjdGl2ZSA9IGZhbHNl
OwotfQotCi12b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6OnRpbWVyRmlyZWQoVGltZXI8R2Vv
bG9jYXRpb25TZXJ2aWNlTW9jaz4qIHRpbWVyKQotewotICAgIEFTU0VSVF9VTlVTRUQodGltZXIs
IHRpbWVyID09ICZtX3RpbWVyKTsKLSAgICBtYWtlR2VvbG9jYXRpb25DYWxsYmFjaygpOwotfQot
Ci12b2lkIEdlb2xvY2F0aW9uU2VydmljZU1vY2s6Om1ha2VHZW9sb2NhdGlvbkNhbGxiYWNrRnJv
bUFsbEluc3RhbmNlcygpCi17Ci0gICAgR2VvbG9jYXRpb25TZXJ2aWNlU2V0Ojpjb25zdF9pdGVy
YXRvciBlbmQgPSBzX2luc3RhbmNlcy0+ZW5kKCk7Ci0gICAgZm9yIChHZW9sb2NhdGlvblNlcnZp
Y2VTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzX2luc3RhbmNlcy0+YmVnaW4oKTsgaXRlciAh
PSBlbmQ7ICsraXRlcikKLSAgICAgICAgKCppdGVyKS0+bWFrZUdlb2xvY2F0aW9uQ2FsbGJhY2so
KTsKLX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjptYWtlR2VvbG9jYXRpb25DYWxs
YmFjaygpCi17Ci0gICAgaWYgKCFtX2lzQWN0aXZlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoKnNfbGFzdFBvc2l0aW9uKQotICAgICAgICBwb3NpdGlvbkNoYW5nZWQoKTsKLSAgICBlbHNl
IGlmICgqc19sYXN0RXJyb3IpCi0gICAgICAgIGVycm9yT2NjdXJyZWQoKTsKLX0KLQotdm9pZCBH
ZW9sb2NhdGlvblNlcnZpY2VNb2NrOjppbml0U3RhdGljcygpCi17Ci0gICAgaWYgKHNfaW5zdGFu
Y2VzID09IDApIHsgCi0gICAgICAgIHNfaW5zdGFuY2VzID0gbmV3IEdlb2xvY2F0aW9uU2Vydmlj
ZVNldDsKLSAgICAgICAgc19sYXN0UG9zaXRpb24gPSBuZXcgUmVmUHRyPEdlb3Bvc2l0aW9uPjsK
LSAgICAgICAgc19sYXN0RXJyb3IgPSBuZXcgUmVmUHRyPFBvc2l0aW9uRXJyb3I+OwotICAgIH0K
LX0KLQotdm9pZCBHZW9sb2NhdGlvblNlcnZpY2VNb2NrOjpjbGVhblVwU3RhdGljcygpCi17Ci0g
ICAgaWYgKHNfaW5zdGFuY2VzLT5zaXplKCkgPT0gMCkgewotICAgICAgICBkZWxldGUgc19pbnN0
YW5jZXM7Ci0gICAgICAgIHNfaW5zdGFuY2VzID0gMDsKLSAgICAgICAgZGVsZXRlIHNfbGFzdFBv
c2l0aW9uOwotICAgICAgICBkZWxldGUgc19sYXN0RXJyb3I7Ci0gICAgfQotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9HZW9sb2NhdGlvblNlcnZpY2VNb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzM5NzhmZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL0dlb2xvY2F0aW9uU2VydmljZU1vY2suaAorKysgL2Rldi9udWxsCkBAIC0xLDgwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IEdlb2xvY2F0aW9uU2VydmljZU1vY2tfaAotI2RlZmluZSBHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
X2gKLQotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgotI2luY2x1ZGUgIlRpbWVyLmgi
Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBUaGlz
IGNsYXNzIHByb3ZpZGVzIGEgbW9jayBpbXBsZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uU2Vy
dmljZSBmb3IgdGVzdGluZwotLy8gcHVycG9zZXMuIEl0IGFsbG93cyB0aGUgcG9zaXRpb24gb3Ig
ZXJyb3IgdGhhdCB3aWxsIGJlIHJlcG9ydGVkIGJ5IHRoaXMgY2xhc3MKLS8vIHRvIGJlIHNldCBt
YW51YWxseSB1c2luZyB0aGUgc2V0UG9zaXRpb24gYW5kIHNldEVycm9yIG1ldGhvZHMuIE9iamVj
dHMgb2YKLS8vIHRoaXMgY2xhc3MgY2FsbCBiYWNrIHRvIHRoZWlyIHJlc3BlY3RpdmUgR2VvbG9j
YXRpb25TZXJ2aWNlQ2xpZW50IHdpdGggdGhlCi0vLyBwb3NpdGlvbiBvciBlcnJvciBldmVyeSB0
aW1lIGVpdGhlciBvZiB0aGVzZSBpcyB1cGRhdGVkLgotY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNl
TW9jayA6IHB1YmxpYyBHZW9sb2NhdGlvblNlcnZpY2UgewotICBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8R2VvbG9jYXRpb25TZXJ2aWNlPiBjcmVhdGUoR2VvbG9jYXRpb25TZXJ2aWNl
Q2xpZW50Kik7Ci0KLSAgICBHZW9sb2NhdGlvblNlcnZpY2VNb2NrKEdlb2xvY2F0aW9uU2Vydmlj
ZUNsaWVudCopOwotICAgIHZpcnR1YWwgfkdlb2xvY2F0aW9uU2VydmljZU1vY2soKTsKLQotICAg
IHZpcnR1YWwgYm9vbCBzdGFydFVwZGF0aW5nKFBvc2l0aW9uT3B0aW9ucyopOwotICAgIHZpcnR1
YWwgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLQotICAgIHN0YXRpYyB2b2lkIHNldFBvc2l0aW9uKFBh
c3NSZWZQdHI8R2VvcG9zaXRpb24+IHBvc2l0aW9uKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRFcnJv
cihQYXNzUmVmUHRyPFBvc2l0aW9uRXJyb3I+IHBvc2l0aW9uKTsKLQotICAgIHZpcnR1YWwgR2Vv
cG9zaXRpb24qIGxhc3RQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIHNfbGFzdFBvc2l0aW9uLT5n
ZXQoKTsgfQotICAgIHZpcnR1YWwgUG9zaXRpb25FcnJvciogbGFzdEVycm9yKCkgY29uc3QgeyBy
ZXR1cm4gc19sYXN0RXJyb3ItPmdldCgpOyB9Ci0KLSAgcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9p
ZCBtYWtlR2VvbG9jYXRpb25DYWxsYmFja0Zyb21BbGxJbnN0YW5jZXMoKTsKLSAgICB2b2lkIG1h
a2VHZW9sb2NhdGlvbkNhbGxiYWNrKCk7Ci0KLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8R2Vv
bG9jYXRpb25TZXJ2aWNlTW9jaz4qKTsKLQotICAgIHN0YXRpYyB2b2lkIGluaXRTdGF0aWNzKCk7
Ci0gICAgc3RhdGljIHZvaWQgY2xlYW5VcFN0YXRpY3MoKTsKLQotICAgIHR5cGVkZWYgSGFzaFNl
dDxHZW9sb2NhdGlvblNlcnZpY2VNb2NrKj4gR2VvbG9jYXRpb25TZXJ2aWNlU2V0OwotICAgIHN0
YXRpYyBHZW9sb2NhdGlvblNlcnZpY2VTZXQqIHNfaW5zdGFuY2VzOwotCi0gICAgc3RhdGljIFJl
ZlB0cjxHZW9wb3NpdGlvbj4qIHNfbGFzdFBvc2l0aW9uOwotICAgIHN0YXRpYyBSZWZQdHI8UG9z
aXRpb25FcnJvcj4qIHNfbGFzdEVycm9yOwotCi0gICAgVGltZXI8R2VvbG9jYXRpb25TZXJ2aWNl
TW9jaz4gbV90aW1lcjsKLQotICAgIGJvb2wgbV9pc0FjdGl2ZTsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdlb2xvY2F0aW9uU2VydmljZU1vY2tfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggYWQ0MzM2MC4uYWNjZTcyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC00NiwxMiArNDYs
MTAgQEAKICNpbmNsdWRlICJFZGl0b3JDbGllbnRCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Lmgi
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICNpZiBFTkFCTEVfRFJUCiAj
aW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjZW5kaWYKICNpbmNsdWRlICJHZW9s
b2NhdGlvbkNvbnRyb2xsZXJDbGllbnRCbGFja0JlcnJ5LmgiCi0jZW5kaWYKICNpbmNsdWRlICJH
cm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiSFRNTEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCkBAIC00MTUsNyArNDEzLDYgQEAgdm9pZCBXZWJQYWdl
UHJpdmF0ZTo6aW5pdChjb25zdCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUpCiAgICAgcGFnZUNs
aWVudHMuZHJhZ0NsaWVudCA9IGRyYWdDbGllbnQ7CiAgICAgcGFnZUNsaWVudHMuaW5zcGVjdG9y
Q2xpZW50ID0gaW5zcGVjdG9yQ2xpZW50OwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKICAgICAvLyBOb3RlIHRoZSBvYmplY3Qgd2lsbCBiZSBkZXN0cm95ZWQgd2hlbiB0
aGUgcGFnZSBpcyBkZXN0cm95ZWQuCiAjaWYgRU5BQkxFX0RSVAogICAgIGlmIChnZXRlbnYoImRy
dFJ1biIpKQpAQCAtNDI1LDcgKzQyMiw2IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6OmluaXQoY29u
c3QgV2ViU3RyaW5nJiBwYWdlR3JvdXBOYW1lKQogICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2Nh
dGlvbkNsaWVudCA9IG1fZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgR2VvbG9jYXRpb25Db250cm9s
bGVyQ2xpZW50QmxhY2tCZXJyeSh0aGlzKTsKICNlbHNlCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9j
YXRpb25DbGllbnQgPSBtX2dlb2xvY2F0aW9uQ2xpZW50OwotI2VuZGlmCiAKICAgICBwYWdlQ2xp
ZW50cy5kZXZpY2VNb3Rpb25DbGllbnQgPSBuZXcgRGV2aWNlTW90aW9uQ2xpZW50QmxhY2tCZXJy
eSh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5kZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudEJsYWNrQmVycnkodGhpcyk7CkBAIC00MzUsNyArNDMxLDcg
QEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5pdChjb25zdCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5h
bWUpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5vdGlmaWNhdGlvbihtX3BhZ2UsIE5vdGlmaWNhdGlv
blByZXNlbnRlckltcGw6Omluc3RhbmNlKCkpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKSAmJiBFTkFCTEVfRFJUCisjaWYgRU5BQkxFX0RSVAogICAgIC8v
IEluIGNhc2UgcnVubmluZyBpbiBEdW1wUmVuZGVyVHJlZSBtb2RlIHNldCB0aGUgY29udHJvbGxl
ciB0byBtb2NrIHByb3ZpZGVyLgogICAgIGlmIChnZXRlbnYoImRydFJ1biIpKQogICAgICAgICBz
dGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihwYWdlQ2xpZW50cy5nZW9sb2NhdGlv
bkNsaWVudCktPnNldENvbnRyb2xsZXIobV9wYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCBlMmQzMmExLi44NmEyOTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0wMy0xMiAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlOjppbml0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9BYm91dERh
dGFFbmFibGVGZWF0dXJlcy5pbjoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRC
bGFja0JlcnJ5Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnRCbGFja0JlcnJ5KToKKyAgICAgICAg
KiBXZWJLaXRTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHA6CisgICAgICAgICh0b0dl
b2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6Om51
bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydDo6cmVzZXRHZW9sb2NhdGlvbk1vY2spOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcik6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Npb24pOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6
CisKIDIwMTItMDMtMTIgIEFuZHkgQ2hlbiAgPGFuZGNoZW5AcmltLmNvbT4KIAogICAgICAgICBb
QmxhY2tiZXJyeV0gTWFrZSB0aGUgcHJvY2VzcyBvZiBtYXJraW5nIGFsbCBtYXRjaGVzIGludGVy
cnVwdGlibGUgYW5kIGFzeW5jaHJvbm91cyBmb3IgZmluZC1pbi1wYWdlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRhRW5hYmxlRmVh
dHVyZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJvdXRE
YXRhRW5hYmxlRmVhdHVyZXMuaW4KaW5kZXggNDQ1NjVkYi4uOTMyNmQ4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZl
YXR1cmVzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9B
Ym91dERhdGFFbmFibGVGZWF0dXJlcy5pbgpAQCAtNyw3ICs3LDYgQEAgQkxBQ0tCRVJSWV9DUkVE
RU5USUFMX1BFUlNJU1QKIEJMT0IKIEJSQU5DSF9DT01QQUNUSU9OCiBDSEFOTkVMX01FU1NBR0lO
RwotQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OCiBDT0RFQkxPQ0tfU0FNUExJTkcKIENPTVBBUkVf
QU5EX1NXQVAKIENPTVBVVEVEX0dPVE9fSU5URVJQUkVURVIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRC
bGFja0JlcnJ5LmNwcAppbmRleCAzZmM0YWZiLi41Yjk3NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEJsYWNrQmVycnkuY3BwCkBAIC00NTgsMjYgKzQ1OCw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50
QmxhY2tCZXJyeTo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBuCiAjZW5kaWYKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpyZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqIGZyYW1lLCBHZW9sb2NhdGlvbiog
Z2VvbG9jYXRpb24pCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2VQcml2YXRlLT5tX3dlYlNldHRpbmdz
LT5pc0dlb2xvY2F0aW9uRW5hYmxlZCgpKSB7Ci0gICAgICAgIGdlb2xvY2F0aW9uLT5zZXRJc0Fs
bG93ZWQoZmFsc2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIERPTVdpbmRvdyogd2lu
ZG93ID0gZnJhbWUtPmRvbVdpbmRvdygpOwotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1
cm47Ci0KLSAgICBDU3RyaW5nIGxhdGluT3JpZ2luID0gZnJhbWVPcmlnaW4oZnJhbWUpOwotCi0g
ICAgbV93ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b24obV93ZWJQYWdlUHJpdmF0ZS0+bV9nZW9sb2NhdGlvbkNsaWVudCwgZ2VvbG9jYXRpb24sIGxh
dGluT3JpZ2luLmRhdGEoKSwgbGF0aW5PcmlnaW4ubGVuZ3RoKCkpOwotfQotCi12b2lkIENocm9t
ZUNsaWVudEJsYWNrQmVycnk6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JG
cmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikKLXsKLSAgICBtX3dlYlBhZ2VQ
cml2YXRlLT5tX2NsaWVudC0+Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uKG1fd2ViUGFnZVBy
aXZhdGUtPm1fZ2VvbG9jYXRpb25DbGllbnQsIGdlb2xvY2F0aW9uKTsKLX0KLQogdm9pZCBDaHJv
bWVDbGllbnRCbGFja0JlcnJ5OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVD
aG9vc2VyPiBjaG9vc2VyKQogewogICAgIFNoYXJlZEFycmF5PFdlYlN0cmluZz4gaW5pdGlhbEZp
bGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmgKaW5kZXggYjI0ZDM5Yy4uZjQ3MGY3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEJsYWNrQmVycnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC05MCw4ICs5MCw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNp
Z25lZCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKik7CiAgICAgdmlydHVhbCB2
b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYpOwotICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBH
ZW9sb2NhdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9p
ZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7CiAgICAgdmly
dHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNv
bkxvYWRlciopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnQuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmNwcAppbmRleCBjOGVkZTZlLi4zMWYxZGNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5jcHAKQEAgLTQwLDEzICs0MCwxMSBAQCB1c2luZyBu
YW1lc3BhY2UgSlNDOwogCiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c19saW5rc0luY2x1
ZGVkSW5UYWJDaGFpbiA9IHRydWU7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKQogR2VvbG9jYXRpb25DbGllbnRNb2NrKiB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhHZW9s
b2NhdGlvbkNsaWVudCogY2xpZW50KQogewogICAgICBBU1NFUlQoZ2V0ZW52KCJkcnRSdW4iKSk7
CiAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjbGllbnQp
OwogfQotI2VuZGlmCiAKIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6RHVtcFJlbmRlclRyZWVTdXBw
b3J0KCkKIHsKQEAgLTk4LDI2ICs5NiwxOCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6
ZHVtcENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChGcmFtZSogbWFpbkZyYW1lLCBpbnQgZAogCiBp
bnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0OjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0cyhXZWJQYWdlKiB3ZWJQYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0g
dG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Uod2ViUGFnZSktPmdlb2xvY2F0aW9uQ29u
dHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgcmV0dXJuIG1vY2tDbGllbnQtPm51bWJlck9mUGVu
ZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0od2ViUGFn
ZSk7Ci0gICAgcmV0dXJuIC0xOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0OjpyZXNldEdlb2xvY2F0aW9uTW9jayhXZWJQYWdlKiB3ZWJQYWdlKQogewotI2lmIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBt
b2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Uod2ViUGFnZSktPmdl
b2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+cmVzZXQo
KTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0TW9ja0dlb2xv
Y2F0aW9uRXJyb3IoV2ViUGFnZSogd2ViUGFnZSwgaW50IGVycm9yQ29kZSwgY29uc3QgU3RyaW5n
IG1lc3NhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBH
ZW9sb2NhdGlvbkVycm9yOjpFcnJvckNvZGUgY29kZSA9IEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0
aW9uVW5hdmFpbGFibGU7CiAgICAgc3dpdGNoIChlcnJvckNvZGUpIHsKICAgICBjYXNlIFBvc2l0
aW9uRXJyb3I6OlBFUk1JU1NJT05fREVOSUVEOgpAQCAtMTMwLDIzICsxMjAsMTggQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFdlYlBhZ2UqIHdl
YlBhZ2UsIGludCBlcnJvckMKIAogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9ja0NsaWVu
dCA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9jayo+KGNvcmVQYWdlKHdlYlBhZ2Up
LT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNl
dEVycm9yKEdlb2xvY2F0aW9uRXJyb3I6OmNyZWF0ZShjb2RlLCBtZXNzYWdlKSk7Ci0jZW5kaWYK
IH0KIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1p
c3Npb24oV2ViUGFnZSogd2ViUGFnZSwgYm9vbCBhbGxvd2VkKQogewotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xp
ZW50ID0gdG9HZW9sb2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2Uod2ViUGFnZSktPmdlb2xvY2F0
aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0UGVybWlzc2lv
bihhbGxvd2VkKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydDo6c2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oV2ViUGFnZSogd2ViUGFnZSwgZG91YmxlIGxhdGl0dWRl
LCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGll
bnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhjb3JlUGFnZSh3ZWJQYWdlKS0+Z2VvbG9jYXRp
b25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xpZW50LT5zZXRQb3NpdGlvbihH
ZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdp
dHVkZSwgYWNjdXJhY3kpKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dDo6c2NhbGVQYWdlQnkoV2ViUGFnZSogd2ViUGFnZSwgZmxvYXQgc2NhbGVGYWN0b3IsIGZsb2F0
IHgsIGZsb2F0IHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDIyODJmMDguLjUxM2Ez
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDMt
MTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmVhdHVyZXMuZ3lwaToKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHA6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAgICAgKENo
cm9tZUNsaWVudEltcGwpOgorCiAyMDEyLTAzLTEyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZp
ZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTEw
NTI5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IDVhMDMzYzguLjFhNDEy
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKQEAgLTM2LDcgKzM2LDYgQEAK
ICAgICAgICdFTkFCTEVfQkxPQj0xJywKICAgICAgICdFTkFCTEVfQkxPQl9TTElDRT0xJywKICAg
ICAgICdFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkc9MScsCi0gICAgICAnRU5BQkxFX0NMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTj0xJywKICAgICAgICdFTkFCTEVfQ1NTX0ZJTFRFUlM9MScsCiAgICAg
ICAnRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUPTAnLAogICAgICAgJ0VOQUJMRV9EQVRBX1RSQU5T
RkVSX0lURU1TPTEnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcAppbmRleCBhZDM1MzgyLi40ZDM4MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNTEsNyArNTEsNiBAQAogI2lu
Y2x1ZGUgIkZyYW1lTG9hZFJlcXVlc3QuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJHZW9sb2NhdGlvbi5oIgotI2luY2x1ZGUgIkdlb2xvY2F0aW9uU2VydmljZS5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJIaXRUZXN0UmVzdWx0LmgiCkBAIC04ODgsMjAgKzg4Nyw2IEBAIGJvb2wgQ2hyb21lQ2xpZW50
SW1wbDo6cGFpbnRDdXN0b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0vLyBGSVhNRTogUmVtb3ZlIENocm9tZUNs
aWVudEltcGw6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZSBhbmQgQ2hyb21l
Q2xpZW50SW1wbDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lCi0v
LyBvbmNlIGFsbCBwb3J0cyBoYXZlIG1vdmVkIHRvIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbiAo
c2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MyApLgotLy8g
Rm9yIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbiwgdGhlc2UgbWV0aG9kcyBhcmUgbm93IGltcGxl
bWVudGVkIGFzIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbiBhbmQgV2Vi
R2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0LgotLy8gKHNlZSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAwNjEgKS4KLXZvaWQgQ2hyb21l
Q2xpZW50SW1wbDo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBm
cmFtZSwgR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotfQotCi12b2lkIENocm9tZUNsaWVudEltcGw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSogZnJhbWUsIEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlv
bikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6YXR0YWNoUm9vdEdyYXBoaWNz
TGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5oCmluZGV4IGMzNDk0
NTQuLjM0YTBiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKQEAgLTEzNyw4ICsxMzcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJl
YWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAgdmlydHVhbCB2
b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgYm9vbCBwYWlu
dEN1c3RvbU92ZXJoYW5nQXJlYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKLSAgICB2aXJ0
dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lKiwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKTsKICNpZiBFTkFCTEUoSU5QVVRfQ09M
T1IpCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRl
Q29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6
OkNvbG9yJikgT1ZFUlJJREU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwOWQwZTc3Li5k
MjY2OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDMtMTIgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3Vs
YWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcDoKKwogMjAxMi0wMy0w
OSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlmaWNh
dGlvblByZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCmluZGV4IGE1OGExMWIu
LjBiMDAzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNDY0LDE3ICs0NjQsNiBAQCB2b2lkIENocm9tZUNsaWVu
dEVmbDo6c2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlcXVlc3RHZW9sb2NhdGlvblBl
cm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICAvLyBTZWUgdGhl
IGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCi0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLX0KLQotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCiB2b2lkIENocm9tZUNsaWVudEVmbDo6Y2FuY2VsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50RWZsLmgKaW5kZXggMTUyNjI0NS4uMjVkZDM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTE0Nyw4ICsxNDcs
NiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0
IEludFJlY3QmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwotICAgIHZpcnR1YWwg
dm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBH
ZW9sb2NhdGlvbiopOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRl
eCA3OTQwY2EzLi5mNDE5NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZXNldEdlb2xvY2F0aW9uQ2xpZW50TW9jayk6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Np
b24pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tH
ZW9sb2NhdGlvbkVycm9yKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVt
YmVyT2ZQZW5kaW5nR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6
R2VvbG9jYXRpb25DbGllbnQ6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oOgorICAgICAgICAqIHdlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pbml0KToKKwogMjAx
Mi0wMy0wNyAgS2FuZ2lsIEhhbiAgPGthbmdpbC5oYW5Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
W0RSVF0gUmVtb3ZlIFBsYWluVGV4dENvbnRyb2xsZXIgaW1wbGVtZW50YXRpb25zLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAK
aW5kZXggZDI4MmYyOS4uNDhlYTBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCkBAIC04NjIsMjIgKzg2Miw2IEBAIHZv
aWQgQ2hyb21lQ2xpZW50OjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudDo6cmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiBmcmFtZSwgR2VvbG9jYXRpb24qIGdlb2xv
Y2F0aW9uKQotewotICAgIFdlYktpdFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdChmcmFtZSk7Ci0g
ICAgR1JlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uPiBwb2xpY3lEZWNpc2lv
bihhZG9wdEdSZWYod2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcod2ViRnJh
bWUsIGdlb2xvY2F0aW9uKSkpOwotCi0gICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gRkFMU0U7Ci0g
ICAgZ19zaWduYWxfZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1k
ZWNpc2lvbi1yZXF1ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9saWN5RGVjaXNpb24uZ2V0KCksICZpc0hh
bmRsZWQpOwotICAgIGlmICghaXNIYW5kbGVkKQotICAgICAgICB3ZWJraXRfZ2VvbG9jYXRpb25f
cG9saWN5X2RlbnkocG9saWN5RGVjaXNpb24uZ2V0KCkpOwotfQotCi12b2lkIENocm9tZUNsaWVu
dDo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKFdlYkNvcmU6OkZy
YW1lKiBmcmFtZSwgV2ViQ29yZTo6R2VvbG9jYXRpb24qKQotewotICAgIGdfc2lnbmFsX2VtaXRf
YnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlvbi1wb2xpY3ktZGVjaXNpb24tY2FuY2VsbGVk
Iiwga2l0KGZyYW1lKSk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAppbmRleCBkY2Vh
MmYwLi4yMmI1NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaApAQCAtMTM0LDggKzEzNCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJv
b2wpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50
UmVjdCYpIGNvbnN0IHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKik7CiAKICAgICAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCA4MDQzN2ZmLi43NjE2YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
QEAgLTgxNCw3ICs4MTQsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2NhbGVQ
YWdlQnkoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZmxvYXQgc2NhbGVGYQogCiB2b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQor
I2lmIEVOQUJMRShHRU9MT0NBVElPTikKICAgICBHZW9sb2NhdGlvbkNsaWVudE1vY2sqIG1vY2sg
PSBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sqPihjb3JlKHdlYlZpZXcpLT5nZW9s
b2NhdGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2stPnJlc2V0KCk7CiAjZW5k
aWYKQEAgLTgyMiw3ICs4MjIsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVz
ZXRHZW9sb2NhdGlvbkNsaWVudE1vY2soV2ViS2l0V2ViVmlldyogd2ViVmlldwogCiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TW9ja0dlb2xvY2F0aW9uUGVybWlzc2lvbihXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGFsbG93ZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9C
QVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRp
b25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4o
Y29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBt
b2NrLT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQpOwogI2VuZGlmCkBAIC04MzAsNyArODMwLDcgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvblBlcm1pc3Np
b24oV2ViS2l0V2ViVmlldyogd2ViVmkKIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGRvdWJs
ZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5KQogewotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQog
ICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9u
Q2xpZW50TW9jayo+KGNvcmUod2ViVmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGll
bnQoKSk7CiAKICAgICBkb3VibGUgdGltZXN0YW1wID0gZ19nZXRfcmVhbF90aW1lKCkgLyAxMDAw
MDAwLjA7CkBAIC04NDAsNyArODQwLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcKIAogdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGludCBlcnJvckNvZGUsIGNvbnN0IGdjaGFyKiBlcnJvck1lc3Nh
Z2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrID0gc3RhdGljX2Nh
c3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY29yZSh3ZWJWaWV3KS0+Z2VvbG9jYXRpb25Db250
cm9sbGVyKCktPmNsaWVudCgpKTsKIAogICAgIEdlb2xvY2F0aW9uRXJyb3I6OkVycm9yQ29kZSBj
b2RlOwpAQCAtODYwLDExICs4NjAsOSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IoV2ViS2l0V2ViVmlldyogd2ViVmlldywgaQogCiBpbnQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0cyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewotI2lmIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIEdlb2xv
Y2F0aW9uQ2xpZW50TW9jayogbW9jayA9IHN0YXRpY19jYXN0PEdlb2xvY2F0aW9uQ2xpZW50TW9j
ayo+KGNvcmUod2ViVmlldyktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAg
ICAgcmV0dXJuIG1vY2stPm51bWJlck9mUGVuZGluZ1Blcm1pc3Npb25SZXF1ZXN0cygpOwotI2Vs
c2UKLSAgICByZXR1cm4gMDsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5jcHAKaW5kZXggMDZl
OWZiZC4uMmI5MDYxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvR2VvbG9jYXRpb25DbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3RrLmNwcApAQCAtMjEsNyArMjEsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ2xpZW50R3RrLmgiCiAKLSNp
ZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElP
TikKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgpAQCAt
MjksNiArMjksOCBAQAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uQ29udHJvbGxlci5oIgogI2luY2x1
ZGUgIkdlb2xvY2F0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBvc2l0aW9uLmgi
CisjaW5jbHVkZSAid2Via2l0Z2VvbG9jYXRpb25wb2xpY3lkZWNpc2lvbnByaXZhdGUuaCIKKyNp
bmNsdWRlICJ3ZWJraXR3ZWJmcmFtZXByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXR3ZWJ2aWV3
cHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CiAKQEAgLTEzOCwxMiArMTQw
LDE4IEBAIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIEdlb2xvY2F0aW9uQ2xpZW50Ojps
YXN0UG9zaXRpb24oKQogCiB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bihXZWJDb3JlOjpHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCiB7Ci0gICAgY29yZShtX3dlYlZp
ZXcpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZShnZW9sb2NhdGlvbi0+ZnJhbWUoKSwgZ2VvbG9jYXRpb24pOworICAgIFdlYktpdFdlYkZy
YW1lKiB3ZWJGcmFtZSA9IGtpdChnZW9sb2NhdGlvbi0+ZnJhbWUoKSk7CisgICAgR1JlZlB0cjxX
ZWJLaXRHZW9sb2NhdGlvblBvbGljeURlY2lzaW9uPiBwb2xpY3lEZWNpc2lvbihhZG9wdEdSZWYo
d2Via2l0X2dlb2xvY2F0aW9uX3BvbGljeV9kZWNpc2lvbl9uZXcod2ViRnJhbWUsIGdlb2xvY2F0
aW9uKSkpOworCisgICAgZ2Jvb2xlYW4gaXNIYW5kbGVkID0gRkFMU0U7CisgICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKG1fd2ViVmlldywgImdlb2xvY2F0aW9uLXBvbGljeS1kZWNpc2lvbi1yZXF1
ZXN0ZWQiLCB3ZWJGcmFtZSwgcG9saWN5RGVjaXNpb24uZ2V0KCksICZpc0hhbmRsZWQpOworICAg
IGlmICghaXNIYW5kbGVkKQorICAgICAgICB3ZWJraXRfZ2VvbG9jYXRpb25fcG9saWN5X2Rlbnko
cG9saWN5RGVjaXNpb24uZ2V0KCkpOwogfQogCiB2b2lkIEdlb2xvY2F0aW9uQ2xpZW50OjpjYW5j
ZWxQZXJtaXNzaW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCiB7
Ci0gICAgY29yZShtX3dlYlZpZXcpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmNhbmNlbEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShnZW9sb2NhdGlvbi0+ZnJhbWUoKSwgZ2VvbG9j
YXRpb24pOworICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJnZW9sb2NhdGlv
bi1wb2xpY3ktZGVjaXNpb24tY2FuY2VsbGVkIiwga2l0KGdlb2xvY2F0aW9uLT5mcmFtZSgpKSk7
CiB9CiAKIHZvaWQgR2VvbG9jYXRpb25DbGllbnQ6OnBvc2l0aW9uQ2hhbmdlZChHZW9jbHVlUG9z
aXRpb24qLCBHZW9jbHVlUG9zaXRpb25GaWVsZHMgZmllbGRzLCBpbnQgdGltZXN0YW1wLCBkb3Vi
bGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgR2VvY2x1ZUFj
Y3VyYWN5KiBhY2N1cmFjeSkKQEAgLTE3OCw0ICsxODYsNCBAQCB2b2lkIEdlb2xvY2F0aW9uQ2xp
ZW50OjplcnJvck9jY3VyZWQoY29uc3QgY2hhciogbWVzc2FnZSkKIAogfQogCi0jZW5kaWYgLy8g
RU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9D
QVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9s
b2NhdGlvbkNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvR2Vv
bG9jYXRpb25DbGllbnRHdGsuaAppbmRleCBiZjE3YzcxLi44MzllNWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNsaWVudEd0ay5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0dlb2xvY2F0aW9uQ2xpZW50R3Rr
LmgKQEAgLTIxLDcgKzIxLDcgQEAKICNpZm5kZWYgR2VvbG9jYXRpb25DbGllbnRHdGtfaAogI2Rl
ZmluZSBHZW9sb2NhdGlvbkNsaWVudEd0a19oCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKIAogI2luY2x1ZGUgIkdSZWZQdHIu
aCIKICNpbmNsdWRlICJHZW9sb2NhdGlvbkNsaWVudC5oIgpAQCAtNzUsOCArNzUsOSBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9lbmFibGVIaWdoQWNjdXJhY3k7CiAgICAgYm9vbCBtX2lzVXBkYXRp
bmc7CiB9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShDTElF
TlRfQkFTRURfR0VPTE9DQVRJT04pCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQogCiAj
ZW5kaWYgLy8gR2VvbG9jYXRpb25DbGllbnRHdGtfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDg4MGYyNDQuLmQyOTkzNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTM1MDUsOCArMzUwNSw3IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19pbml0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAg
ICAgcGFnZUNsaWVudHMuZWRpdG9yQ2xpZW50ID0gbmV3IFdlYktpdDo6RWRpdG9yQ2xpZW50KHdl
YlZpZXcpOwogICAgIHBhZ2VDbGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViS2l0OjpEcmFnQ2xp
ZW50KHdlYlZpZXcpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJL
aXQ6Okluc3BlY3RvckNsaWVudCh3ZWJWaWV3KTsKLQotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQogICAgIGlmIChEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKICAgICAgICAgcGFn
ZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgR2VvbG9jYXRpb25DbGllbnRNb2NrOwog
ICAgIGVsc2UKQEAgLTM1MjAsMTAgKzM1MTksOCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfaW5pdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZp
Y2VPcmllbnRhdGlvblRvKHByaXYtPmNvcmVQYWdlLCBuZXcgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRHdGspOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgIGlmIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJs
ZWQoKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4ocGFnZUNs
aWVudHMuZ2VvbG9jYXRpb25DbGllbnQpLT5zZXRDb250cm9sbGVyKHByaXYtPmNvcmVQYWdlLT5n
ZW9sb2NhdGlvbkNvbnRyb2xsZXIoKSk7Ci0jZW5kaWYKIAogICAgIC8vIFBhZ2VzIHdpdGhpbiBh
IHNhbWUgc2Vzc2lvbiBuZWVkIHRvIGJlIGxpbmtlZCB0b2dldGhlciBvdGhlcndpc2Ugc29tZSBm
dW5jdGlvbmFsaXRpZXMgc3VjaAogICAgIC8vIGFzIHZpc2l0ZWQgbGluayBjb2xvcmF0aW9uIChh
Y3Jvc3MgcGFnZXMpIGFuZCBjaGFuZ2luZyBwb3B1cCB3aW5kb3cgbG9jYXRpb24gd2lsbCBub3Qg
d29yay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjZGVmOGY5Li5lMDQwN2JkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAg
ICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoV2ViR2VvbG9j
YXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbik6CisgICAgICAgICogV2ViVmlldy9XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJu
YWwgaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjpdKToKKyAgICAgICAgKGNvcmUpOgor
ICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGluaXRXaXRoVGltZXN0YW1wOmxhdGl0
dWRlOmxvbmdpdHVkZTphY2N1cmFjeTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkdlb2xvY2F0
aW9uUG9zaXRpb25JbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViVmlldyBfY29tbW9uSW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3Vw
TmFtZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlv
bjpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZ2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yOl0p
OgorCiAyMDEyLTAzLTExICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgaG93IHRoZSBXZWIgSW5zcGVjdG9yIHJlc291cmNlcyBhcmUgbG9hZGVk
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA1OGEwMmY1Li5kZDdjZGQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQoUkVBTF9Q
TEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxPQjsKIAotRU5B
QkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwotCiBFTkFC
TEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8kKFJFQUxf
UExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9IEVOQUJM
RV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9XRUJfVElN
SU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJMRV9YU0xUID0g
RU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAk
KEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0dS
SURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBP
UlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVO
QUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVD
VE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVO
QUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJ
T04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChF
TkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lO
UFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NS
SVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTElO
S19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTUlDUk9E
QVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMp
ICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5B
QkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUUxfREFU
QUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdf
RE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVYVF9OT1RJ
RklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVf
V09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9S
RU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFU
SU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5B
QkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxFX0NTU19T
SEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1QpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNF
KSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFC
TEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFC
TEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xF
R0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRI
TUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChF
TkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09C
U0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZ
X0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVH
SVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUp
ICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVf
U0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NP
UEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFC
TEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChFTkFCTEVf
VE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0sp
ICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRT
KSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggNDZkMTIwMS4uMDU3NmFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE3MywxMSArMTczLDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBmdWxsU2NyZWVuUmVuZGVyZXJDaGFuZ2VkKFdlYkNvcmU6
OlJlbmRlckJveCopIE9WRVJSSURFOwogI2VuZGlmCiAKLSAgICAvLyBGSVhNRTogUmVtb3ZlIG9u
Y2UgYWxsIHBvcnRzIGFyZSB1c2luZyBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24uIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3MwotICAgIC8vIEZvciBjbGllbnQt
YmFzZWQgZ2VvbG9jYXRpb24sIHRoZXNlIHR3byBtZXRob2RzIGhhdmUgbW92ZWQgdG8gV2ViR2Vv
bG9jYXRpb25DbGllbnQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDA2MQotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJh
bWUoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfQot
CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVk
UG9wdXAoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0KaW5kZXggNTQxZjQwYy4uZWQw
ZjllOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViR2VvbG9jYXRpb25DbGllbnQubW0KQEAgLTI1LDYgKzI1LDggQEAKIAogI2ltcG9ydCAiV2Vi
R2VvbG9jYXRpb25DbGllbnQuaCIKIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKwogI2ltcG9y
dCAiV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hpbmcuaCIKICNpbXBvcnQgIldlYkZyYW1l
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uUG9zaXRpb25JbnRlcm5hbC5oIgpA
QCAtODgsMTEgKzkwLDcgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1p
c3Npb24oR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQogCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBX
ZWJHZW9sb2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIHJldHVybiBjb3JlKFtbbV93ZWJWaWV3IF9nZW9sb2Nh
dGlvblByb3ZpZGVyXSBsYXN0UG9zaXRpb25dKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5k
aWYKIH0KIAogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIKQEAg
LTExNywzICsxMTUsNCBAQCBHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVu
dDo6bGFzdFBvc2l0aW9uKCkKIAogQGVuZAogCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9O
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBv
c2l0aW9uLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0
aW9uLm1tCmluZGV4IGM5MmI3ZjEuLjY0NjdjYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9zaXRpb24ubW0KQEAgLTI5LDI2ICsyOSwyMSBA
QAogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaW1wb3J0IDxXZWJDb3JlL0dl
b2xvY2F0aW9uUG9zaXRpb24uaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0jZW5kaWYK
IAogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50ZXJuYWwgOiBOU09iamVjdAot
I2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiB7CiBAcHVibGljCiAgICAgUmVm
UHRyPEdlb2xvY2F0aW9uUG9zaXRpb24+IF9wb3NpdGlvbjsKIH0KIAogLSAoaWQpaW5pdFdpdGhD
b3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUGFzc1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPilj
b3JlR2VvbG9jYXRpb25Qb3NpdGlvbjsKLSNlbmRpZgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbkludGVybmFsCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OKQogLSAoaWQpaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3NpdGlvbjooUGFz
c1JlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiljb3JlR2VvbG9jYXRpb25Qb3NpdGlvbgogewog
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CkBAIC01NywyOSArNTIsMjIgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAgICAgX3Bvc2l0aW9uID0gY29yZUdlb2xvY2F0aW9uUG9zaXRpb247CiAg
ICAgcmV0dXJuIHNlbGY7CiB9Ci0jZW5kaWYKIAogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKIEdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9z
aXRpb24pCiB7CiAgICAgcmV0dXJuIHBvc2l0aW9uID8gcG9zaXRpb24tPl9pbnRlcm5hbC0+X3Bv
c2l0aW9uLmdldCgpIDogMDsKIH0KLSNlbmRpZgogCiAtIChpZClpbml0V2l0aFRpbWVzdGFtcDoo
ZG91YmxlKXRpbWVzdGFtcCBsYXRpdHVkZTooZG91YmxlKWxhdGl0dWRlIGxvbmdpdHVkZTooZG91
YmxlKWxvbmdpdHVkZSBhY2N1cmFjeTooZG91YmxlKWFjY3VyYWN5CiB7CiAgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7Ci0jaWYgRU5B
QkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBfaW50ZXJuYWwgPSBbW1dlYkdlb2xv
Y2F0aW9uUG9zaXRpb25JbnRlcm5hbCBhbGxvY10gaW5pdFdpdGhDb3JlR2VvbG9jYXRpb25Qb3Np
dGlvbjpHZW9sb2NhdGlvblBvc2l0aW9uOjpjcmVhdGUodGltZXN0YW1wLCBsYXRpdHVkZSwgbG9u
Z2l0dWRlLCBhY2N1cmFjeSldOwotI2Vsc2UKLSAgICBfaW50ZXJuYWwgPSBbW1dlYkdlb2xvY2F0
aW9uUG9zaXRpb25JbnRlcm5hbCBhbGxvY10gaW5pdF07Ci0jZW5kaWYKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2Nh
dGlvblBvc2l0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViR2Vv
bG9jYXRpb25Qb3NpdGlvbkludGVybmFsLmgKaW5kZXggMjdmOGEzOS4uZjU0ZTY2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uSW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkdlb2xvY2F0aW9uUG9z
aXRpb25JbnRlcm5hbC5oCkBAIC0yNSwxMiArMjUsOSBAQAogCiAjaW1wb3J0ICJXZWJHZW9sb2Nh
dGlvblBvc2l0aW9uLmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR2VvbG9jYXRpb25Qb3NpdGlvbjsKIH0K
IAogV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShXZWJHZW9sb2NhdGlvblBvc2l0
aW9uICopOwogCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA5
Y2ZlOGIzLi43OTAxYmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0x
MjksNiArMTI5LDggQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVUcmVlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0dlb2xvY2F0aW9uRXJyb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9y
eUl0ZW0uaD4KQEAgLTE4OCwxMSArMTkwLDYgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJEYXNoYm9h
cmRSZWdpb24uaD4KICNlbmRpZgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKLSNpbXBvcnQgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVyLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdMSUJfU1VQ
UE9SVCkKICNpbXBvcnQgPGdsaWIuaD4KICNlbmRpZgpAQCAtNzM5LDcgKzczNiw3IEBAIHN0YXRp
YyBOU1N0cmluZyAqbGVha091dGxvb2tRdWlya3NVc2VyU2NyaXB0Q29udGVudHMoKQogICAgIHBh
Z2VDbGllbnRzLmVkaXRvckNsaWVudCA9IG5ldyBXZWJFZGl0b3JDbGllbnQoc2VsZik7CiAgICAg
cGFnZUNsaWVudHMuZHJhZ0NsaWVudCA9IG5ldyBXZWJEcmFnQ2xpZW50KHNlbGYpOwogICAgIHBh
Z2VDbGllbnRzLmluc3BlY3RvckNsaWVudCA9IG5ldyBXZWJJbnNwZWN0b3JDbGllbnQoc2VsZik7
Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9D
QVRJT04pCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgV2ViR2VvbG9j
YXRpb25DbGllbnQoc2VsZik7CiAjZW5kaWYKICAgICBfcHJpdmF0ZS0+cGFnZSA9IG5ldyBQYWdl
KHBhZ2VDbGllbnRzKTsKQEAgLTYzODcsMjAgKzYzODQsMjAgQEAgc3RhdGljIHZvaWQgZ2xpYkNv
bnRleHRJdGVyYXRpb25DYWxsYmFjayhDRlJ1bkxvb3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0
aXZpdHkKIAogLSAodm9pZClfZ2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbjooV2ViR2VvbG9j
YXRpb25Qb3NpdGlvbiAqKXBvc2l0aW9uCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgaWYgKF9wcml2YXRlICYmIF9w
cml2YXRlLT5wYWdlKQogICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+Z2VvbG9jYXRpb25Db250cm9s
bGVyKCktPnBvc2l0aW9uQ2hhbmdlZChjb3JlKHBvc2l0aW9uKSk7Ci0jZW5kaWYKKyNlbmRpZiAv
LyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAKIC0gKHZvaWQpX2dlb2xvY2F0aW9uRGlkRmFpbFdp
dGhFcnJvcjooTlNFcnJvciAqKWVycm9yCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgaWYgKF9wcml2YXRlICYmIF9w
cml2YXRlLT5wYWdlKSB7CiAgICAgICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBnZW9sb2Nh
dGlvRXJyb3IgPSBHZW9sb2NhdGlvbkVycm9yOjpjcmVhdGUoR2VvbG9jYXRpb25FcnJvcjo6UG9z
aXRpb25VbmF2YWlsYWJsZSwgW2Vycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSk7CiAgICAgICAg
IF9wcml2YXRlLT5wYWdlLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+ZXJyb3JPY2N1cnJlZChn
ZW9sb2NhdGlvRXJyb3IuZ2V0KCkpOwogICAgIH0KLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShH
RU9MT0NBVElPTikKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDQ5
MjgzMTguLjdmZTFlNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTY0LDEwICs2
NCw4IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVk
ZSAiR2VvbG9jYXRpb25DbGllbnRRdC5oIgotI2VuZGlmIC8vIENMSUVOVF9CQVNFRF9HRU9MT0NB
VElPTgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lvbkNsaWVudFF0LmgiCiAjaW5jbHVk
ZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50Lmgi
CkBAIC0zMTQsOSArMzEyLDcgQEAgUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUoUVdl
YlBhZ2UgKnFxKQogICAgICwgaW5zcGVjdG9ySXNJbnRlcm5hbE9ubHkoZmFsc2UpCiAgICAgLCBt
X2xhc3REcm9wQWN0aW9uKFF0OjpJZ25vcmVBY3Rpb24pCiB7Ci0jaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikgfHwgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBib29s
IHVzZU1vY2sgPSBRV2ViUGFnZVByaXZhdGU6OmRydFJ1bjsKLSNlbmRpZgogCiAgICAgV2ViQ29y
ZTo6aW5pdGlhbGl6ZVdlYkNvcmVRdCgpOwogCkBAIC0zMjYsMTIgKzMyMiwxMCBAQCBRV2ViUGFn
ZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEpCiAgICAgcGFnZUNsaWVudHMu
ZWRpdG9yQ2xpZW50ID0gbmV3IEVkaXRvckNsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmRy
YWdDbGllbnQgPSBuZXcgRHJhZ0NsaWVudFF0KHEpOwogICAgIHBhZ2VDbGllbnRzLmluc3BlY3Rv
ckNsaWVudCA9IG5ldyBJbnNwZWN0b3JDbGllbnRRdChxKTsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICh1c2VNb2NrKQogICAgICAgICBwYWdlQ2xpZW50cy5n
ZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNsaWVudE1vY2s7CiAgICAgZWxzZQog
ICAgICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBHZW9sb2NhdGlvbkNs
aWVudFF0KHEpOwotI2VuZGlmCiAgICAgcGFnZSA9IG5ldyBQYWdlKHBhZ2VDbGllbnRzKTsKICNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgIGlmICh1c2VNb2NrKQpAQCAtMzUxLDEx
ICszNDUsOSBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0ZShRV2ViUGFnZSAqcXEp
CiAgICAgLy8gYXMgZXhwZWN0ZWQgb3V0IG9mIHRoZSBib3gsIHdlIHVzZSBhIGRlZmF1bHQgZ3Jv
dXAgc2ltaWxhciB0byB3aGF0IG90aGVyIHBvcnRzIGFyZSBkb2luZy4KICAgICBwYWdlLT5zZXRH
cm91cE5hbWUoIkRlZmF1bHQgR3JvdXAiKTsKIAotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCiAgICAgLy8gSW4gY2FzZSBydW5uaW5nIGluIER1bXBSZW5kZXJUcmVlIG1vZGUg
c2V0IHRoZSBjb250cm9sbGVyIHRvIG1vY2sgcHJvdmlkZXIuCiAgICAgaWYgKFFXZWJQYWdlUHJp
dmF0ZTo6ZHJ0UnVuKQogICAgICAgICBzdGF0aWNfY2FzdDxHZW9sb2NhdGlvbkNsaWVudE1vY2sq
PihwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCktPnNldENvbnRyb2xsZXIocGFnZS0+Z2Vv
bG9jYXRpb25Db250cm9sbGVyKCkpOwotI2VuZGlmCiAgICAgc2V0dGluZ3MgPSBuZXcgUVdlYlNl
dHRpbmdzKHBhZ2UtPnNldHRpbmdzKCkpOwogCiAgICAgaGlzdG9yeS5kID0gbmV3IFFXZWJIaXN0
b3J5UHJpdmF0ZShzdGF0aWNfY2FzdDxXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3RJbXBsKj4ocGFn
ZS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggZDljNGVlOS4uYTRmMWZh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wMy0xMiAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBw
bGUuY29tPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc4ODUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpRV2ViUGFnZVBy
aXZhdGUpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0Lmg6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAg
ICAodG9HZW9sb2NhdGlvbkNsaWVudE1vY2spOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnJlc2V0R2VvbG9jYXRpb25Nb2NrKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TW9ja0dlb2xvY2F0aW9uRXJyb3IpOgorICAgICAg
ICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9HZW9sb2NhdGlvbkNs
aWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMy0wOSAgSm9uIExlZSAgPGpv
bmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlmaWNhdGlvblByZXNlbnRlciB0
byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaAppbmRleCAzODZiOTg2Li4yMzA2Njc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCkBAIC0xNzMsOSAr
MTczLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhj
b25zdCBJbnRSZWN0JikgY29uc3QgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZyYW1lKEZy
YW1lKiwgR2VvbG9jYXRpb24qKSB7IH0KLQogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgdmlydHVhbCBib29sIGhh
c09wZW5lZFBvcHVwKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDQ1N2I0OWUu
LjA5MjhiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0xMDUsMTMgKzEwNSwxMSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUU1hcDxpbnQsIFFXZWJTY3JpcHRXb3JsZCo+IG1f
d29ybGRNYXA7CiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogR2VvbG9j
YXRpb25DbGllbnRNb2NrKiB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhHZW9sb2NhdGlvbkNsaWVu
dCogY2xpZW50KQogewogICAgICBBU1NFUlQoUVdlYlBhZ2VQcml2YXRlOjpkcnRSdW4pOwogICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY2xpZW50KTsKIH0K
LSNlbmRpZgogCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIERldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jayogdG9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2soRGV2aWNlT3JpZW50
YXRpb25DbGllbnQqIGNsaWVudCkKQEAgLTgzOCwzNCArODM2LDI3IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihRV2ViUGFnZSogcGFnZSwg
Ym9vbCBjYW5QCiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0R2VvbG9jYXRp
b25Nb2NrKFFXZWJQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7
CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9sb2NhdGlvbkNs
aWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAg
ICAgbW9ja0NsaWVudC0+cmVzZXQoKTsKLSNlbmRpZgogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25QZXJtaXNzaW9uKFFXZWJQYWdlKiBwYWdlLCBi
b29sIGFsbG93ZWQpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAg
ICBQYWdlKiBjb3JlUGFnZSA9IFFXZWJQYWdlUHJpdmF0ZTo6Y29yZShwYWdlKTsKICAgICBHZW9s
b2NhdGlvbkNsaWVudE1vY2sqIG1vY2tDbGllbnQgPSB0b0dlb2xvY2F0aW9uQ2xpZW50TW9jayhj
b3JlUGFnZS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKTsKICAgICBtb2NrQ2xp
ZW50LT5zZXRQZXJtaXNzaW9uKGFsbG93ZWQpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKFFXZWJQYWdlKiBwYWdl
LCBkb3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSkKIHsK
LSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIFBhZ2UqIGNvcmVQYWdl
ID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwogICAgIEdlb2xvY2F0aW9uQ2xpZW50TW9j
ayogbW9ja0NsaWVudCA9IHRvR2VvbG9jYXRpb25DbGllbnRNb2NrKGNvcmVQYWdlLT5nZW9sb2Nh
dGlvbkNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogICAgIG1vY2tDbGllbnQtPnNldFBvc2l0aW9u
KEdlb2xvY2F0aW9uUG9zaXRpb246OmNyZWF0ZShjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwgbG9u
Z2l0dWRlLCBhY2N1cmFjeSkpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldE1vY2tHZW9sb2NhdGlvbkVycm9yKFFXZWJQYWdlKiBwYWdlLCBpbnQgZXJyb3JD
b2RlLCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFTRURf
R0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUo
cGFnZSk7CiAKICAgICBHZW9sb2NhdGlvbkVycm9yOjpFcnJvckNvZGUgY29kZSA9IEdlb2xvY2F0
aW9uRXJyb3I6OlBvc2l0aW9uVW5hdmFpbGFibGU7CkBAIC04ODAsMTggKzg3MSwxMyBAQCB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRNb2NrR2VvbG9jYXRpb25FcnJvcihRV2ViUGFn
ZSogcGFnZSwgaW50IGVycm9yQwogCiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xp
ZW50ID0gc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRNb2NrKj4oY29yZVBhZ2UtPmdlb2xv
Y2F0aW9uQ29udHJvbGxlcigpLT5jbGllbnQoKSk7CiAgICAgbW9ja0NsaWVudC0+c2V0RXJyb3Io
R2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKGNvZGUsIG1lc3NhZ2UpKTsKLSNlbmRpZgogfQogCiBp
bnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9mUGVuZGluZ0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RzKFFXZWJQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShDTElFTlRfQkFT
RURfR0VPTE9DQVRJT04pCiAgICAgUGFnZSogY29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNv
cmUocGFnZSk7CiAgICAgR2VvbG9jYXRpb25DbGllbnRNb2NrKiBtb2NrQ2xpZW50ID0gdG9HZW9s
b2NhdGlvbkNsaWVudE1vY2soY29yZVBhZ2UtPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5jbGll
bnQoKSk7CiAgICAgcmV0dXJuIG1vY2tDbGllbnQtPm51bWJlck9mUGVuZGluZ1Blcm1pc3Npb25S
ZXF1ZXN0cygpOwotI2Vsc2UKLSAgICByZXR1cm4gLTE7Ci0jZW5kaWYKIH0KIAogYm9vbCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6aXNUYXJnZXRJdGVtKGNvbnN0IFFXZWJIaXN0b3J5SXRlbSYg
aGlzdG9yeUl0ZW0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0dlb2xvY2F0aW9uQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
R2VvbG9jYXRpb25DbGllbnRRdC5oCmluZGV4IDlhMjgyNWQuLjlkMDdhOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRRdC5o
CkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFFXZWJQYWdlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLS8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBHZW9sb2Nh
dGlvblNlcnZpY2UgZm9yIFF0V2Via2l0LgorLy8gVGhpcyBjbGFzcyBwcm92aWRlcyBhbiBpbXBs
ZW1lbnRhdGlvbiBvZiBhIEdlb2xvY2F0aW9uQ2xpZW50IGZvciBRdFdlYmtpdC4KIGNsYXNzIEdl
b2xvY2F0aW9uQ2xpZW50UXQgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIEdlb2xvY2F0aW9uQ2xp
ZW50IHsKICAgICBRX09CSkVDVAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYWIxYmZjYS4uNGIyYzhh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTEyICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkdlb2xvY2F0aW9u
Q2xpZW50OjpsYXN0UG9zaXRpb24pOgorICAgICAgICAqIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24u
Y3BwOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6aW5pdFdpdGhUaW1lc3RhbXAp
OgorICAgICAgICAoY29yZSk6CisgICAgICAgICogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oOgor
ICAgICAgICAoV2ViR2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgICogV2ViVmlldy5jcHA6
CisgICAgICAgIChXZWJWaWV3Ojppbml0V2l0aEZyYW1lKToKKyAgICAgICAgKFdlYlZpZXc6Omdl
b2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRpb24pOgorICAgICAgICAoV2ViVmlldzo6Z2VvbG9jYXRp
b25EaWRGYWlsV2l0aEVycm9yKToKKwogMjAxMi0wMy0xMiAgSmVzc2llIEJlcmxpbiAgPGpiZXJs
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vcmUgV2luZG93cyBidWlsZCBmaXhpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IDQ3OGY1ZDUuLjYzYmY1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xNDQsMTEgKzE0NCw2IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpIGNvbnN0IHsgfQogCi0gICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIGFsbCBwb3J0cyBh
cmUgdXNpbmcgY2xpZW50LWJhc2VkIGdlb2xvY2F0aW9uLiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDAzNzMKLSAgICAvLyBGb3IgY2xpZW50LWJhc2VkIGdlb2xvY2F0
aW9uLCB0aGVzZSB0d28gbWV0aG9kcyBoYXZlIGJlZW4gbW92ZWQgdG8gV2ViR2VvbG9jYXRpb25D
bGllbnQuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDA2MQotICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWUq
LCBXZWJDb3JlOjpHZW9sb2NhdGlvbiopIHsgfQotCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2Rl
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJHZW9s
b2NhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNsaWVudC5jcHAKaW5kZXggYjFkODNmYi4uNDFiY2I0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xp
ZW50LmNwcApAQCAtNjYsNyArNjYsNiBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpzdG9w
VXBkYXRpbmcoKQogCiBHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9sb2NhdGlvbkNsaWVudDo6
bGFzdFBvc2l0aW9uKCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQog
ICAgIENPTVB0cjxJV2ViR2VvbG9jYXRpb25Qcm92aWRlcj4gcHJvdmlkZXI7CiAgICAgaWYgKEZB
SUxFRChtX3dlYlZpZXctPmdlb2xvY2F0aW9uUHJvdmlkZXIoJnByb3ZpZGVyKSkpCiAgICAgICAg
IHJldHVybiAwOwpAQCAtNzQsOSArNzMsNiBAQCBHZW9sb2NhdGlvblBvc2l0aW9uKiBXZWJHZW9s
b2NhdGlvbkNsaWVudDo6bGFzdFBvc2l0aW9uKCkKICAgICBpZiAoRkFJTEVEKHByb3ZpZGVyLT5s
YXN0UG9zaXRpb24oJnBvc2l0aW9uKSkpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBj
b3JlKHBvc2l0aW9uLmdldCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAog
dm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oR2VvbG9jYXRpb24q
IGdlb2xvY2F0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJHZW9sb2NhdGlvblBvc2l0aW9u
LmNwcAppbmRleCAyNjU1NGRkLi5mYjJhYzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJH
ZW9sb2NhdGlvblBvc2l0aW9uLmNwcApAQCAtMjcsMTEgKzI3LDkgQEAKICNpbmNsdWRlICJXZWJH
ZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KIAotI2lm
IEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9s
b2NhdGlvblBvc2l0aW9uLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotI2VuZGlmCiAK
IENPTVB0cjxXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpj
cmVhdGVJbnN0YW5jZSgpCiB7CkBAIC04MywxNSArODEsMTAgQEAgVUxPTkcgV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbjo6UmVsZWFzZSgpCiAKIEhSRVNVTFQgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbjo6
aW5pdFdpdGhUaW1lc3RhbXAoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0dWRlLCBkb3Vi
bGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBtX3Bvc2l0aW9uID0gR2VvbG9jYXRpb25Qb3NpdGlvbjo6Y3Jl
YXRlKHRpbWVzdGFtcCwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kpOwogICAgIHJldHVy
biBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9GQUlMOwotI2VuZGlmCiB9CiAKLSNpZiBFTkFC
TEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogR2VvbG9jYXRpb25Qb3NpdGlvbiogY29yZShJ
V2ViR2VvbG9jYXRpb25Qb3NpdGlvbiogcG9zaXRpb24pCiB7CiAgICAgaWYgKCFwb3NpdGlvbikK
QEAgLTEwMyw0ICs5NiwzIEBAIEdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0
aW9uUG9zaXRpb24qIHBvc2l0aW9uKQogCiAgICAgcmV0dXJuIHdlYkdlb2xvY2F0aW9uUG9zaXRp
b24tPmltcGwoKTsKIH0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbi5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViR2VvbG9jYXRpb25Q
b3NpdGlvbi5oCmluZGV4IDgxNjAyNzAuLjNlMTFkY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkdlb2xvY2F0aW9uUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgKQEAgLTQ4LDE5ICs0OCwxMyBAQCBwdWJsaWM6CiAgICAg
Ly8gSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgaW5pdFdpdGhUaW1lc3RhbXAoZG91YmxlIHRpbWVzdGFtcCwgZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3kpOwogCi0jaWYgRU5BQkxFKENM
SUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbi5nZXQoKTsgfQotI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgVUxPTkcgbV9yZWZDb3VudDsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQogICAgIFJlZlB0cjxXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uPiBtX3Bv
c2l0aW9uOwotI2VuZGlmCiB9OwogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElP
TikKIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRpb24qIGNvcmUoSVdlYkdlb2xvY2F0aW9uUG9z
aXRpb24qKTsKLSNlbmRpZgogCiAjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25Qb3NpdGlvbl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCmluZGV4IDE0MWQzNmMuLmYzNDJlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCkBAIC05Miw2ICs5Miw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lV2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HRElPYmplY3RD
b3VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0dlb2xvY2F0aW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CkBAIC0xMzksMTEgKzE0MSw2IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogCi0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKLSNpbmNsdWRlIDxXZWJD
b3JlL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRp
b25FcnJvci5oPgotI2VuZGlmCi0KICNpZiBVU0UoQ0cpCiAjaW5jbHVkZSA8Q29yZUdyYXBoaWNz
L0NHQ29udGV4dC5oPgogI2VuZGlmCkBAIC0yNjY5LDkgKzI2NjYsNyBAQCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIFdlYlZpZXc6OmluaXRXaXRoRnJhbWUoCiAgICAgcGFnZUNsaWVudHMuZWRp
dG9yQ2xpZW50ID0gbmV3IFdlYkVkaXRvckNsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xpZW50cy5k
cmFnQ2xpZW50ID0gbmV3IFdlYkRyYWdDbGllbnQodGhpcyk7CiAgICAgcGFnZUNsaWVudHMuaW5z
cGVjdG9yQ2xpZW50ID0gbV9pbnNwZWN0b3JDbGllbnQ7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBwYWdlQ2xpZW50cy5nZW9sb2NhdGlvbkNsaWVudCA9IG5ldyBX
ZWJHZW9sb2NhdGlvbkNsaWVudCh0aGlzKTsKLSNlbmRpZgogICAgIG1fcGFnZSA9IG5ldyBQYWdl
KHBhZ2VDbGllbnRzKTsKIAogICAgIEJTVFIgbG9jYWxTdG9yYWdlUGF0aDsKQEAgLTY1NjksMTkg
KzY1NjQsMTQgQEAgSFJFU1VMVCBXZWJWaWV3OjpnZW9sb2NhdGlvblByb3ZpZGVyKElXZWJHZW9s
b2NhdGlvblByb3ZpZGVyKiogbG9jYXRpb25Qcm92aWRlcikKIAogSFJFU1VMVCBXZWJWaWV3Ojpn
ZW9sb2NhdGlvbkRpZENoYW5nZVBvc2l0aW9uKElXZWJHZW9sb2NhdGlvblBvc2l0aW9uKiBwb3Np
dGlvbikKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICgh
bV9wYWdlKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogICAgIG1fcGFnZS0+Z2VvbG9jYXRpb25D
b250cm9sbGVyKCktPnBvc2l0aW9uQ2hhbmdlZChjb3JlKHBvc2l0aW9uKSk7CiAgICAgcmV0dXJu
IFNfT0s7Ci0jZWxzZQotICAgIHJldHVybiBFX05PVElNUEw7Ci0jZW5kaWYKIH0KIAogSFJFU1VM
VCBXZWJWaWV3OjpnZW9sb2NhdGlvbkRpZEZhaWxXaXRoRXJyb3IoSVdlYkVycm9yKiBlcnJvcikK
IHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQogICAgIGlmICghbV9wYWdl
KQogICAgICAgICByZXR1cm4gRV9GQUlMOwogICAgIGlmICghZXJyb3IpCkBAIC02NTk2LDkgKzY1
ODYsNiBAQCBIUkVTVUxUIFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcihJV2Vi
RXJyb3IqIGVycm9yKQogICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBnZW9sb2NhdGlvbkVy
cm9yID0gR2VvbG9jYXRpb25FcnJvcjo6Y3JlYXRlKEdlb2xvY2F0aW9uRXJyb3I6OlBvc2l0aW9u
VW5hdmFpbGFibGUsIGRlc2NyaXB0aW9uU3RyaW5nKTsKICAgICBtX3BhZ2UtPmdlb2xvY2F0aW9u
Q29udHJvbGxlcigpLT5lcnJvck9jY3VycmVkKGdlb2xvY2F0aW9uRXJyb3IuZ2V0KCkpOwogICAg
IHJldHVybiBTX09LOwotI2Vsc2UKLSAgICByZXR1cm4gRV9OT1RJTVBMOwotI2VuZGlmCiB9CiAK
IEhSRVNVTFQgV2ViVmlldzo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVt
ZShCT09MIGZvcmJpZGRlbiwgQlNUUiBzY2hlbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDVj
YTZkOTEuLjg5ODc0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91
bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJM
RShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisgICAgICAg
IChDaHJvbWVDbGllbnRXaW5DRSk6CisKIDIwMTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBOb3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90aWZp
Y2F0aW9uQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCmluZGV4IDZhMGUyNWEuLmFjMGIyNmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2lu
Q0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50V2luQ0UuY3BwCkBAIC0zNjksMTYgKzM2OSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6
OmZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBOb2RlKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIENocm9tZUNsaWVudFdpbkNFOjpyZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9u
Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LX0KLQotdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6Y2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdEZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KIGJvb2wgQ2hyb21lQ2xpZW50V2luQ0U6OnNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggYi9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKaW5kZXgg
NDE3OTIwMi4uZGI4NjQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaApAQCAtMTM1LDExICsxMzUsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlv
blByZXNlbnRlcigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICAvLyBUaGlzIGNhbiBiZSBlaXRoZXIg
YSBzeW5jaHJvbm91cyBvciBhc3luY2hyb25vdXMgY2FsbC4gVGhlIENocm9tZUNsaWVudCBjYW4g
ZGlzcGxheSBVSSBhc2tpbmcgdGhlIHVzZXIgZm9yIHBlcm1pc3Npb24KLSAgICAvLyB0byB1c2Ug
R2VvbG9jYXRpb24uCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0gICAg
dmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKik7Ci0KICAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxl
Q2hvb3Nlcj4pOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBm
b3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
eC9DaGFuZ2VMb2cKaW5kZXggZGU1YWVmOS4uNTdkNmJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMi0wMy0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPiAm
JiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsd2F5
cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmNwcDoKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisK
IDIwMTItMDItMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTW92ZSBDaHJvbWVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpIHRvIENvbnRleHRNZW51
Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21l
Q2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVu
dFd4LmNwcAppbmRleCBiYzk4NzI0Li5kMTcxYzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
d3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKQEAgLTQ2NSwxMiArNDY1LDYgQEAg
dm9pZCBDaHJvbWVDbGllbnRXeDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vyc29yKQogICAg
ICAgICBtX3dlYlZpZXctPlNldEN1cnNvcigqY3Vyc29yLmltcGwoKSk7CiB9CiAKLXZvaWQgQ2hy
b21lQ2xpZW50V3g6OnJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKikKLXsKLSAgICAvLyBTZWUgdGhlIGNvbW1lbnQgaW4gV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9vbCBDaHJvbWVD
bGllbnRXeDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQogewogICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9D
aHJvbWVDbGllbnRXeC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNs
aWVudFd4LmgKaW5kZXggZjk1ODcxYi4uYTU5NDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKQEAgLTEzNiw5ICsxMzYsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3Qm
KSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNz
aW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopOwotICAgIHZpcnR1YWwgdm9pZCBjYW5j
ZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlv
biopIHsgfQotCiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDgy
OTRjZi4uYWY5YTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAzLTEyICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+ICYmIEJlbmphbWluIFBvdWxhaW4gIDxicG91
bGFpbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoQ0xJRU5UX0JB
U0VEX0dFT0xPQ0FUSU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Nzg4NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3Np
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRv
RGV0ZXJtaW5lUG9zaXRpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0
R2VvTG9jYXRpb25QZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgICogbWFjL1dlYktpdDIub3JkZXI6
CisKIDIwMTItMDMtMTIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBG
aXggdHlwbyBpbiBQYWdlQ2xpZW50SW1wbCB3aGVyZSB3ZSB3ZXJlIG92ZXJyaWRpbmcgdmlld0xh
eWVySG9zdGluZ01vZGUgd2l0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA1OGEwMmY1Li5kZDdjZGQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwpAQCAtMzQsOSArMzQsNiBAQAogRU5BQkxFX0JMT0IgPSAkKEVOQUJMRV9CTE9CXyQo
UkVBTF9QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfQkxPQl9tYWNvc3ggPSBFTkFCTEVfQkxPQjsK
IAotRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTiA9ICQoRU5BQkxFX0NMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTl8kKFJFQUxfUExBVEZPUk1fTkFNRSkpOwotRU5BQkxFX0NMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTl9tYWNvc3ggPSBFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OOwot
CiBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQgPSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVF8k
KFJFQUxfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUX21hY29zeCA9
IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVDsKIApAQCAtMTMyLDQgKzEyOSw0IEBAIEVOQUJMRV9X
RUJfVElNSU5HID0gOwogRU5BQkxFX1dPUktFUlMgPSBFTkFCTEVfV09SS0VSUzsKIEVOQUJMRV9Y
U0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRF
UklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05f
QVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVf
Q0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVf
Q1NTX0dSSURfTEFZT1VUKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfREFTSEJPQVJE
X1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1T
KSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJT
KSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VP
TE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FKSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5B
QkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFC
TEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0Up
ICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVf
TUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNB
VElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RB
RykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQo
RU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gp
ICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
UUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVY
VF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVf
V0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChF
TkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJM
RV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVf
QU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
ICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpICQoRU5BQkxF
X0NTU19TSEFERVJTKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJ
U1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFC
TEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJ
KSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRB
VEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikg
JChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkg
JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5B
QkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFC
TEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChF
TkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZ
TEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykg
JChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX05PVElGSUNBVElPTlNfT05MWSkgJChF
TkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9f
VFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9T
T0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9Y
U0xUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24v
V2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvR2Vv
bG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcAppbmRleCBjZWU4ZTBiLi42MGI4MWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdl
b2xvY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9HZW9s
b2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuY3BwCkBAIC0yOSwxNCArMjksMTEgQEAKICNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLQotI2lmIEVOQUJMRShDTElFTlRf
QkFTRURfR0VPTE9DQVRJT04pCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvR2VvbG9jYXRpb25Db250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9HZW9sb2NhdGlvbkVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0
aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+Ci0jZW5kaWYKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKQEAgLTU4LDI5ICs1NSwyNSBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFu
YWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwg
QwogCiB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2Uq
IHBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKICAgICBib29s
IHdhc0VtcHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKIAogICAgIG1fcGFnZVNldC5hZGQocGFn
ZSk7CiAgICAgCiAgICAgaWYgKHdhc0VtcHR5KQogICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHk6OlN0YXJ0VXBk
YXRpbmcoKSwgMCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJHZW9sb2NhdGlvbk1hbmFnZXI6OnVu
cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTikKICAgICBtX3BhZ2VTZXQucmVtb3ZlKHBhZ2UpOwogCiAgICAgaWYgKG1f
cGFnZVNldC5pc0VtcHR5KCkpCiAgICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eTo6U3RvcFVwZGF0aW5nKCksIDAp
OwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRDaGFuZ2VQb3Np
dGlvbihjb25zdCBXZWJHZW9sb2NhdGlvblBvc2l0aW9uOjpEYXRhJiBkYXRhKQogewotI2lmIEVO
QUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04pCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQog
ICAgIFJlZlB0cjxHZW9sb2NhdGlvblBvc2l0aW9uPiBwb3NpdGlvbiA9IEdlb2xvY2F0aW9uUG9z
aXRpb246OmNyZWF0ZShkYXRhLnRpbWVzdGFtcCwgZGF0YS5sYXRpdHVkZSwgZGF0YS5sb25naXR1
ZGUsIGRhdGEuYWNjdXJhY3kpOwogCiAgICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7CkBAIC05MCwxMiArODMsMTIgQEAgdm9pZCBXZWJH
ZW9sb2NhdGlvbk1hbmFnZXI6OmRpZENoYW5nZVBvc2l0aW9uKGNvbnN0IFdlYkdlb2xvY2F0aW9u
UG9zaXRpb246OkRhdGEKICAgICAgICAgaWYgKHBhZ2UtPmNvcmVQYWdlKCkpCiAgICAgICAgICAg
ICBwYWdlLT5jb3JlUGFnZSgpLT5nZW9sb2NhdGlvbkNvbnRyb2xsZXIoKS0+cG9zaXRpb25DaGFu
Z2VkKHBvc2l0aW9uLmdldCgpKTsKICAgICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoR0VP
TE9DQVRJT04pCiB9CiAKIHZvaWQgV2ViR2VvbG9jYXRpb25NYW5hZ2VyOjpkaWRGYWlsVG9EZXRl
cm1pbmVQb3NpdGlvbigpCiB7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
KyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCiAgICAgLy8gRklYTUU6IEFkZCBsb2NhbGl6ZWQgZXJy
b3Igc3RyaW5nLgogICAgIFJlZlB0cjxHZW9sb2NhdGlvbkVycm9yPiBlcnJvciA9IEdlb2xvY2F0
aW9uRXJyb3I6OmNyZWF0ZShHZW9sb2NhdGlvbkVycm9yOjpQb3NpdGlvblVuYXZhaWxhYmxlLCAv
KiBMb2NhbGl6ZWQgZXJyb3Igc3RyaW5nICovIFN0cmluZygiIikpOwogCkBAIC0xMDYsNyArOTks
NyBAQCB2b2lkIFdlYkdlb2xvY2F0aW9uTWFuYWdlcjo6ZGlkRmFpbFRvRGV0ZXJtaW5lUG9zaXRp
b24oKQogICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UtPmNv
cmVQYWdlKCktPmdlb2xvY2F0aW9uQ29udHJvbGxlcigpLT5lcnJvck9jY3VycmVkKGVycm9yLmdl
dCgpKTsKICAgICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoR0VPTE9DQVRJT04pCiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAyMjY3ZDY2
Li40MmY4Njc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMTk1LDExICsxOTUsMTEgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXZWJQYWdlR3Jv
dXBQcm94eSogcGFnZUdyb3VwLCBib28KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0R2VvTG9j
YXRpb25QZXJtaXNzaW9uKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxl
ZCkKIHsKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKICAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQYWdlR3JvdXA6
OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7CiAgICAgZm9yIChI
YXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gcGFn
ZXMuZW5kKCk7ICsraXRlcikKICAgICAgICAgc3RhdGljX2Nhc3Q8R2VvbG9jYXRpb25DbGllbnRN
b2NrKj4oKCppdGVyKS0+Z2VvbG9jYXRpb25Db250cm9sbGVyKCktPmNsaWVudCgpKS0+c2V0UGVy
bWlzc2lvbihlbmFibGVkKTsKLSNlbmRpZgorI2VuZGlmIC8vIEVOQUJMRShHRU9MT0NBVElPTikK
IH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggMTZjYjIyYS4uNTRlNzUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtNTg1LDE2ICs1ODUsNiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cGFpbnRDdXN0
b21PdmVyaGFuZ0FyZWEoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbgogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjYW5jZWxHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChG
cmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IHBycEZpbGVDaG9vc2VyKQogewog
ICAgIGlmIChtX3BhZ2UtPmFjdGl2ZU9wZW5QYW5lbFJlc3VsdExpc3RlbmVyKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCBiNjhkOGQ0Li45NjkwNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTE1MywxMSArMTUzLDYgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRDdXN0b21PdmVyaGFuZ0FyZWEoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgT1ZFUlJJREU7CiAKLSAgICAvLyBUaGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjYWxs
LiBUaGUgQ2hyb21lQ2xpZW50IGNhbiBkaXNwbGF5IFVJIGFza2luZyB0aGUgdXNlciBmb3IgcGVy
bWlzc2lvbgotICAgIC8vIHRvIHVzZSBHZW9sb2NvY2F0aW9uLiBUaGUgQ2hyb21lQ2xpZW50IG11
c3QgY2FsbCBHZW9sb2NhdGlvbjo6c2V0U2hvdWxkQ2xlYXJDYWNoZSgpIGFwcHJvcHJpYXRlbHku
Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZFUlJJREU7Ci0KICAgICB2aXJ0
dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpGaWxlQ2hvb3Nlcj4pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIqKSBPVkVS
UklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAppbmRleCAxZjkyMGExLi45
OTNmOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50
LmgiCiAKLSNpZiBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKQorI2lmIEVOQUJMRShH
RU9MT0NBVElPTikKIAogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgogI2luY2x1
ZGUgIldlYlBhZ2UuaCIKQEAgLTgwLDQgKzgwLDQgQEAgdm9pZCBXZWJHZW9sb2NhdGlvbkNsaWVu
dDo6Y2FuY2VsUGVybWlzc2lvblJlcXVlc3QoR2VvbG9jYXRpb24qIGdlb2xvY2F0aW9uKQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIEVOQUJMRShDTElFTlRfQkFTRURfR0VP
TE9DQVRJT04pCisjZW5kaWYgLy8gRU5BQkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5oCmluZGV4IDIxZmM0MzguLjllNTcxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmgKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYgV2ViR2VvbG9jYXRpb25DbGll
bnRfaAogI2RlZmluZSBXZWJHZW9sb2NhdGlvbkNsaWVudF9oCiAKLSNpZiBFTkFCTEUoQ0xJRU5U
X0JBU0VEX0dFT0xPQ0FUSU9OKQotCiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvbkNsaWVu
dC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYxLDYgKzU5LDQgQEAgcHJpdmF0ZToKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBFTkFCTEUoQ0xJRU5UX0JBU0VEX0dF
T0xPQ0FUSU9OKQotCiAjZW5kaWYgLy8gV2ViR2VvbG9jYXRpb25DbGllbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDlmOGI0MTcuLjM4
ZjQ1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTIyOCw3ICsyMjgsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICBwYWdlQ2xp
ZW50cy5lZGl0b3JDbGllbnQgPSBuZXcgV2ViRWRpdG9yQ2xpZW50KHRoaXMpOwogICAgIHBhZ2VD
bGllbnRzLmRyYWdDbGllbnQgPSBuZXcgV2ViRHJhZ0NsaWVudCh0aGlzKTsKICAgICBwYWdlQ2xp
ZW50cy5iYWNrRm9yd2FyZENsaWVudCA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpjcmVhdGUo
dGhpcyk7Ci0jaWYgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikKKyNpZiBFTkFCTEUo
R0VPTE9DQVRJT04pCiAgICAgcGFnZUNsaWVudHMuZ2VvbG9jYXRpb25DbGllbnQgPSBuZXcgV2Vi
R2VvbG9jYXRpb25DbGllbnQodGhpcyk7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvbWFjL1dlYktpdDIub3JkZXIgYi9Tb3VyY2UvV2Vi
S2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgppbmRleCA0NTdhMDYzLi4wNDFmODllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0Mi5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9t
YWMvV2ViS2l0Mi5vcmRlcgpAQCAtMjQ1MCw3ICsyNDUwLDYgQEAgX19aTjZXZWJLaXQxMldlYlBh
Z2VQcm94eTI4ZGlkUmVzdG9yZUZyYW1lRnJvbVBhZ2VDYWNoZUV5eQogX19aTjdDb3JlSVBDMTNo
YW5kbGVNZXNzYWdlSU44TWVzc2FnZXMxMldlYlBhZ2VQcm94eTM2UmVxdWVzdEdlb2xvY2F0aW9u
UGVybWlzc2lvbkZvckZyYW1lRU42V2ViS2l0MTJXZWJQYWdlUHJveHlFTVM1X0Z2eXlOM1dURjZT
dHJpbmdFRUVFdlBOU18xNUFyZ3VtZW50RGVjb2RlckVQVDBfVDFfCiBfX1pON0NvcmVJUEMxMEFy
Z3VtZW50czNJeXlOM1dURjZTdHJpbmdFRTZkZWNvZGVFUE5TXzE1QXJndW1lbnREZWNvZGVyRVJT
M18KIF9fWk43Q29yZUlQQzE4Y2FsbE1lbWJlckZ1bmN0aW9uSU42V2ViS2l0MTJXZWJQYWdlUHJv
eHlFTVMyX0Z2eXlOM1dURjZTdHJpbmdFRXl5UzRfRUV2UktOU18xMEFyZ3VtZW50czNJVDFfVDJf
VDNfRUVQVF9UMF8KLV9fWk42V2ViS2l0MTJXZWJQYWdlUHJveHkzNnJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZUV5eU4zV1RGNlN0cmluZ0UKIF9fWk42V2ViS2l0MTdXZWJTZWN1
cml0eU9yaWdpbjZjcmVhdGVFUktOM1dURjZTdHJpbmdFCiBfX1pONldlYktpdDQwR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTEzY3JlYXRlUmVxdWVzdEV5CiBfX1pONldl
YktpdDMzR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5QzFFUE5TXzQwR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eUV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21h
a2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVy
cnkuY21ha2UKaW5kZXggYTkwYzg1MC4uMTIyODUxYiAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtl
L09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tC
ZXJyeS5jbWFrZQpAQCAtMTMzLDcgKzEzMyw2IEBAIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9BU1NF
TUJMRVJfV1hfRVhDTFVTSVZFICJBc3NlbWJsZXIgV1ggRXhjbHVzaXZlIiBERUZBVUxUIE9OCiBX
RUJLSVRfRkVBVFVSRShFTkFCTEVfQkxBQ0tCRVJSWV9DQVJFVF9BUFBFQVJBTkNFICJCbGFja2Jl
cnJ5IENhcmV0IEFwcGVhcmFuY2UiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxF
X0JMT0IgIkVuYWJsZSBibG9iIHNsaWNlIiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRVUkUoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HICJFbmFibGUgY2hhbm5lbCBtZXNzYWdpbmciIERFRkFVTFQg
T04pCi1XRUJLSVRfRkVBVFVSRShFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OICJDbGll
bnQgYmFzZWQgR2VvbG9jYXRpb24iIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVf
REFUQUJBU0UgIkVuYWJsZSBkYXRhYmFzZSIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVO
QUJMRV9EQVRBTElTVCAiRW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9OKQogV0VCS0lUX0ZFQVRV
UkUoRU5BQkxFX0RFVEFJTFMgIkVuYWJsZSBkZXRhaWxzIGVsZW1lbnQiIERFRkFVTFQgT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCmluZGV4IDkyNmJlOTEuLjIxMDZlMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCkBAIC02NSw3ICs2NSw2IEBAIFNFVChWRVJTSU9OX1NDUklQVCAiLVdsLC0tdmVyc2lvbi1z
Y3JpcHQsJHtDTUFLRV9NT0RVTEVfUEFUSH0vZWZsc3ltYm9scy5maWx0ZXIiCiAKIFdFQktJVF9G
RUFUVVJFKEVOQUJMRV9CTE9CICJFbmFibGUgYmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCiBXRUJL
SVRfRkVBVFVSRShFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3Nh
Z2luZyIgREVGQVVMVCBPTikKLVdFQktJVF9GRUFUVVJFKEVOQUJMRV9DTElFTlRfQkFTRURfR0VP
TE9DQVRJT04gIkVuYWJsZSBjbGllbnQgYmFzZWQgZ2VvbG9jYXRpb24iIERFRkFVTFQgT0ZGKQog
V0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RBVEFMSVNUICJFbmFibGUgZGF0YWxpc3QiIERFRkFVTFQg
T04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyAiRW5hYmxlIGRh
dGEgdHJhbnNmZXIgaXRlbXMiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTiAiRW5hYmxlIGRldmljZSBvcmllbnRhdGlvbiIgREVGQVVMVCBPRkYp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlIGIvU291cmNlL2Nt
YWtlL09wdGlvbnNXaW5DRS5jbWFrZQppbmRleCA2MTQ3ODM4Li41ZjA0ZjVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zV2luQ0UuY21ha2UKQEAgLTIxLDcgKzIxLDYgQEAgQUREX1NVQkRJUkVDVE9SWSgkezNSRFBB
UlRZX0RJUn0gIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS8zcmRwYXJ0eSIpCiAKIFdFQktJ
VF9GRUFUVVJFKEVOQUJMRV9CTE9CICJFbmFibGUgYmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCiBX
RUJLSVRfRkVBVFVSRShFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1l
c3NhZ2luZyIgREVGQVVMVCBPRkYpCi1XRUJLSVRfRkVBVFVSRShFTkFCTEVfQ0xJRU5UX0JBU0VE
X0dFT0xPQ0FUSU9OICJFbmFibGUgY2xpZW50IGJhc2VkIGdlb2xvY2F0aW9uIiBERUZBVUxUIE9G
RikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBTElTVCAiRW5hYmxlIGRhdGFsaXN0IiBERUZB
VUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TICJFbmFi
bGUgZGF0YSB0cmFuc2ZlciBpdGVtcyIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFC
TEVfRkFTVF9NT0JJTEVfU0NST0xMSU5HICJFbmFibGUgZmFzdCBtb2JpbGUgc2Nyb2xsaW5nIiBE
RUZBVUxUIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UgYi9Tb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCA5OGRiMGI2Li5iMTYzYWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5j
bWFrZQpAQCAtOCw3ICs4LDYgQEAKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9BU19JTUFHRQogI2Nt
YWtlZGVmaW5lMDEgRU5BQkxFX0JMT0IKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORwotI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTgog
I2NtYWtlZGVmaW5lMDEgRU5BQkxFX0RBVEFMSVNUCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJm
ZWY2MzAuLmRhNTcwYTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPiAmJiBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgor
CisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKENMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODUzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L2J1aWxkLXdlYmtpdDoKKyAgICAgICAgKiBxbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVz
LnByZjoKKwogMjAxMi0wMy0xMiAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIHdlYmtpdC1wYXRjaCBvcHRpbWl6ZS1iYXNlbGluZXMgc29tZXRpbWVzIGNyZWF0ZXMg
YSBtYWMtZnV0dXJlIHJlc3VsdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXQgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAppbmRleCA5ZDE0ZjNjLi5jMjc2Zjc1IDEw
MDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdApAQCAtNzIsNyArNzIsNiBAQCBteSAoCiAgICAgJGFuaW1hdGlvbkFQSVN1
cHBvcnQsCiAgICAgJGJsb2JTdXBwb3J0LAogICAgICRjaGFubmVsTWVzc2FnaW5nU3VwcG9ydCwK
LSAgICAkY2xpZW50QmFzZWRHZW9sb2NhdGlvblN1cHBvcnQsCiAgICAgJGNvdmVyYWdlU3VwcG9y
dCwKICAgICAkY3NzRmlsdGVyc1N1cHBvcnQsCiAgICAgJGNzc0dyaWRMYXlvdXRTdXBwb3J0LApA
QCAtMTY3LDkgKzE2Niw2IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAiY2hh
bm5lbC1tZXNzYWdpbmciLCBkZXNjID0+ICJUb2dnbGUgTWVzc2FnZUNoYW5uZWwgYW5kIE1lc3Nh
Z2VQb3J0IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkciLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkY2hhbm5lbE1lc3NhZ2luZ1N1cHBvcnQgfSwK
IAotICAgIHsgb3B0aW9uID0+ICJjbGllbnQtYmFzZWQtZ2VvbG9jYXRpb24iLCBkZXNjID0+ICJU
b2dnbGUgY2xpZW50LWJhc2VkIEdlb2xvY2F0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdl
YktpdCgpIHx8IGlzR3RrKCkgfHwgaXNCbGFja0JlcnJ5KCkpLCB2YWx1ZSA9PiBcJGNsaWVudEJh
c2VkR2VvbG9jYXRpb25TdXBwb3J0IH0sCi0KICAgICB7IG9wdGlvbiA9PiAiY3NzLWZpbHRlcnMi
LCBkZXNjID0+ICJUb2dnbGUgQ1NTIEZpbHRlcnMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9DU1NfRklMVEVSUyIsIGRlZmF1bHQgPT4gaXNBcHBsZVdlYktpdCgpLCB2YWx1ZSA9
PiBcJGNzc0ZpbHRlcnNTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL3FtYWtlL21rc3Bl
Y3MvZmVhdHVyZXMvZmVhdHVyZXMucHJmIGIvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9m
ZWF0dXJlcy5wcmYKaW5kZXggNTlhMGJkNC4uMDZkYTFhZiAxMDA2NDQKLS0tIGEvVG9vbHMvcW1h
a2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmYKKysrIGIvVG9vbHMvcW1ha2UvbWtzcGVj
cy9mZWF0dXJlcy9mZWF0dXJlcy5wcmYKQEAgLTE3MCw3ICsxNzAsNiBAQCBjb250YWlucyhERUZJ
TkVTLCBXVEZfVVNFX0xJQlhNTDI9MSkgewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9HRU9M
T0NBVElPTj0uKSB7CiAgICAgY29udGFpbnMoTU9CSUxJVFlfQ09ORklHLCBsb2NhdGlvbil8Y29u
dGFpbnMoUVRfQ09ORklHLCBsb2NhdGlvbikgewogICAgICAgIERFRklORVMgKz0gRU5BQkxFX0dF
T0xPQ0FUSU9OPTEKLSAgICAgICBERUZJTkVTICs9IEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT049MQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxv
ZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggYmVlYWY2Ni4uMjJhZTc5MiAxMDA2
NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMTIgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4gJiYgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
KworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShDTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODg1Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL3Rv
b2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wczoKKyAgICAgICAgKiB3aW4vdG9vbHMv
dnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHM6CisKIDIwMTItMDMtMTIgIEVucmlj
YSBDYXN1Y2NpICA8ZW5yaWNhQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJLaXQyOiByZW1vdmUg
TlNQYXN0ZWJvYXJkIGFjY2VzcyBmb3IgcHJvbWlzZWQgZGF0YSBmcm9tIHRoZSBXZWJQcm9jZXNz
CmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURl
ZmluZXMudnNwcm9wcyBiL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJl
RGVmaW5lcy52c3Byb3BzCmluZGV4IGMyNWZiNjAuLjE4ZTUxM2QgMTAwNjQ0Ci0tLSBhL1dlYktp
dExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3BzCisrKyBi
L1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lcy52c3Byb3Bz
CkBAIC05LDcgKzksNyBAQAogCT4KICAgPFRvb2wKIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FKTskKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9DU1Nf
RklMVEVSUyk7JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7
JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9T
UUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJT
KTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxF
X0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZ
X05PVElGSUNBVElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7
JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVO
QUJMRV9TSEFET1dfRE9NKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1RZTEVf
U0NPUEVEKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChF
TkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTsk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVf
V0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nl
c3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSk7JChFTkFC
TEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQo
RU5BQkxFX0NTU19GSUxURVJTKTskKEVOQUJMRV9DU1NfR1JJRF9MQVlPVVQpOyQoRU5BQkxFX0NT
U19TSEFERVJTKTskKEVOQUJMRV9DU1NfUkVHSU9OUyk7JChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMp
OyQoRU5BQkxFX1NRTF9EQVRBQkFTRSk7JChFTkFCTEVfREFUQUdSSUQpOyQoRU5BQkxFX0RBVEFM
SVNUKTskKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKTskKEVOQUJMRV9ERVRBSUxTKTskKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pOyQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpOyQoRU5B
QkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSk7JChFTkFCTEVfR0FNRVBBRCk7JChFTkFCTEVfR0VPTE9DQVRJT04pOyQoRU5BQkxFX0lDT05E
QVRBQkFTRSk7JChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSk7JChFTkFCTEVfSU5QVVRfQ09MT1Ip
OyQoRU5BQkxFX0lOUFVUX1NQRUVDSCk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKTskKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwp
OyQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpOyQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSk7JChF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVO
QUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfTElOS19QUkVGRVRDSCk7JChFTkFC
TEVfTUFUSE1MKTskKEVOQUJMRV9NRVRFUl9UQUcpOyQoRU5BQkxFX01JQ1JPREFUQSk7JChFTkFC
TEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9Q
QUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RB
KTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TQ1JJUFRFRF9T
UEVFQ0gpOyQoRU5BQkxFX1NIQURPV19ET00pOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVO
QUJMRV9TVFlMRV9TQ09QRUQpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJ
TkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJ
QV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRT
KTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YU0xUKSIK
IAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFN
RSIKQEAgLTQyLDExICs0Miw2IEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKIAkv
PgogICA8VXNlck1hY3JvCi0JCU5hbWU9IkVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04i
Ci0JCVZhbHVlPSJFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIgotCQlQZXJmb3JtRW52
aXJvbm1lbnRTZXQ9InRydWUiCi0JLz4KLSAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfQ1NT
X0ZJTFRFUlMiCiAJCVZhbHVlPSJFTkFCTEVfQ1NTX0ZJTFRFUlMiCiAJCVBlcmZvcm1FbnZpcm9u
bWVudFNldD0idHJ1ZSIKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNw
cm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMgYi9XZWJLaXRMaWJyYXJpZXMvd2luL3Rv
b2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCmluZGV4IDNjZWFjMTguLjg2
ZGMwNGQgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0
dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMKKysrIGIvV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92
c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwpAQCAtOSw3ICs5LDcgQEAKIAk+CiAg
IDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCVByZXByb2Nlc3NvckRlZmluaXRp
b25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVf
QUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9DU1Nf
RklMVEVSUyk7JChFTkFCTEVfQ1NTX0dSSURfTEFZT1VUKTskKEVOQUJMRV9DU1NfU0hBREVSUyk7
JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9T
UUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFC
TEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNF
X09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9GSUxURVJT
KTskKEVOQUJMRV9GSUxFX1NZU1RFTSk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxF
X0dBTUVQQUQpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSk7JChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRSk7JChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKTskKEVOQUJMRV9J
TlBVVF9UWVBFX01PTlRIKTskKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpOyQoRU5BQkxFX0lOUFVU
X1RZUEVfV0VFSyk7JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUik7JChFTkFCTEVfTEVHQUNZ
X05PVElGSUNBVElPTlMpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7
JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NSUNST0RBVEEpOyQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUyk7JChFTkFCTEVfTk9USUZJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklM
SVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVf
UkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0NSSVBURURfU1BFRUNIKTskKEVO
QUJMRV9TSEFET1dfRE9NKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1RZTEVf
U0NPUEVEKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChF
TkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTsk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVf
V0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nl
c3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklO
Ryk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJM
RV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19H
UklEX0xBWU9VVCk7JChFTkFCTEVfQ1NTX1NIQURFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTsk
KEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9E
QVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMp
OyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0p
OyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HQU1FUEFEKTskKEVOQUJMRV9HRU9M
T0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUpOyQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpOyQoRU5BQkxFX0lO
UFVUX1RZUEVfREFURVRJTUVMT0NBTCk7JChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCk7JChFTkFC
TEVfSU5QVVRfVFlQRV9USU1FKTskKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspOyQoRU5BQkxFX0pB
VkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKTskKEVOQUJM
RV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChF
TkFCTEVfTUlDUk9EQVRBKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05P
VElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dS
RVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRM
RVIpOyQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCk7JChFTkFCTEVfU0hBRE9XX0RPTSk7JChFTkFC
TEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NUWUxFX1NDT1BFRCk7JChFTkFCTEVfU1ZHKTsk
KEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFC
TEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElD
Uyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dP
UktFUlMpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxF
XzNEX0NBTlZBUyIKQEAgLTM3LDExICszNyw2IEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0i
dHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCi0JCU5hbWU9IkVOQUJMRV9DTElFTlRfQkFTRURfR0VP
TE9DQVRJT04iCi0JCVZhbHVlPSJFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OIgotCQlQ
ZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCi0JLz4KLSAgPFVzZXJNYWNybwogCQlOYW1lPSJF
TkFCTEVfQ1NTX0ZJTFRFUlMiCiAJCVZhbHVlPSIiCiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0i
dHJ1ZSIK
</data>
<flag name="review"
          id="134913"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>