<?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>108832</bug_id>
          
          <creation_ts>2013-02-04 08:53:01 -0800</creation_ts>
          <short_desc>[Meta][WK2][Soup] Set up NetworkProcess</short_desc>
          <delta_ts>2026-03-03 16:00:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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>118520</dependson>
    
    <dependson>108615</dependson>
    
    <dependson>109032</dependson>
    
    <dependson>110093</dependson>
    
    <dependson>110097</dependson>
    
    <dependson>110115</dependson>
    
    <dependson>110136</dependson>
    
    <dependson>110139</dependson>
    
    <dependson>110141</dependson>
    
    <dependson>110978</dependson>
    
    <dependson>118228</dependson>
    
    <dependson>118231</dependson>
    
    <dependson>118343</dependson>
    
    <dependson>118388</dependson>
    
    <dependson>118448</dependson>
    
    <dependson>118598</dependson>
    
    <dependson>120294</dependson>
    
    <dependson>120351</dependson>
    
    <dependson>120353</dependson>
    
    <dependson>120532</dependson>
    
    <dependson>120533</dependson>
    
    <dependson>125422</dependson>
    
    <dependson>125490</dependson>
    
    <dependson>125494</dependson>
    
    <dependson>125505</dependson>
    
    <dependson>125507</dependson>
    
    <dependson>125515</dependson>
    
    <dependson>125557</dependson>
    
    <dependson>125564</dependson>
    
    <dependson>125576</dependson>
    
    <dependson>125582</dependson>
    
    <dependson>125583</dependson>
    
    <dependson>125586</dependson>
    
    <dependson>126006</dependson>
    
    <dependson>126127</dependson>
    
    <dependson>126129</dependson>
    
    <dependson>126130</dependson>
    
    <dependson>126131</dependson>
    
    <dependson>127651</dependson>
          <blocked>125463</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>ap</cc>
    
    <cc>berto</cc>
    
    <cc>bfulgham</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>danw</cc>
    
    <cc>d-r</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jesus</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>nick.diego</cc>
    
    <cc>noraesae</cc>
    
    <cc>ossy</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>skyul</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>824407</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-04 08:53:01 -0800</bug_when>
    <thetext>Set up NetworkProcess for EFL, including the soup backend, general unix, and cmake related stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824471</commentid>
    <comment_count>1</comment_count>
      <attachid>186403</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-04 09:52:49 -0800</bug_when>
    <thetext>Created attachment 186403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824489</commentid>
    <comment_count>2</comment_count>
      <attachid>186403</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 10:02:11 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

Attachment 186403 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16374252</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824498</commentid>
    <comment_count>3</comment_count>
      <attachid>186403</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 10:12:43 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

Attachment 186403 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16369303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824526</commentid>
    <comment_count>4</comment_count>
      <attachid>186403</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-04 10:27:24 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

Attachment 186403 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16369308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824841</commentid>
    <comment_count>5</comment_count>
      <attachid>186403</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-02-04 15:44:59 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

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

Personally, it looks this patch is a little huge to review.

&gt; Source/WebKit2/ChangeLog:10
&gt; +        basically. Advenced features like private browsing or credential storage

Typo: s/Advenced/Advanced/g ?

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:76
&gt; +#else    

Nit: Unneeded spaces.

&gt; Source/WebKit2/NetworkProcess/efl/NetworkProcessEfl.cpp:1
&gt; +#include &quot;config.h&quot;

Missing license.

&gt; Source/WebKit2/NetworkProcess/efl/NetworkProcessEfl.cpp:21
&gt; +void NetworkProcess::allowSpecificHTTPSCertificateForHost(const PlatformCertificateInfo&amp;, const String&amp; host)

Remove *host*

&gt; Source/WebKit2/NetworkProcess/soup/NetworkProcessProxySoup.cpp:1
&gt; +#include &quot;config.h&quot;

ditto.

&gt; Source/WebKit2/NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp:1
&gt; +#include &quot;config.h&quot;

ditto.

&gt; Source/WebKit2/NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:1
&gt; +#include &quot;config.h&quot;

Missing license.

&gt; Source/WebKit2/PlatformEfl.cmake:3
&gt; +    NetworkProcess/unix/NetworkProcessMainUnix.cpp

Wrong alphabet order.

&gt; Source/WebKit2/UIProcess/Network/soup/NetworkProcessProxySoup.cpp:26
&gt; +#include &quot;config.h&quot;

Add a new line.

&gt; Source/WebKit2/UIProcess/soup/WebContextSoup.cpp:1
&gt; +#include &quot;config.h&quot;

Missing license.

&gt; Source/WebKit2/unix/NetworkMainUnix.cpp:1
&gt; +#include &quot;config.h&quot;

Missing license.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825438</commentid>
    <comment_count>6</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-05 06:20:43 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 186403 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186403&amp;action=review
&gt; 
&gt; Personally, it looks this patch is a little huge to review.

Yes, it is, but I&apos;m not sure it&apos;s better to split up into parts that cannot be tested on their own. Furthermore there is very little or no logic in it, mostly build stuff and a bit of refactoring. However I can split it if you think it is necessary.

Going to fix the other issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825439</commentid>
    <comment_count>7</comment_count>
      <attachid>186403</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-05 06:26:19 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

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

&gt; Source/WebKit2/NetworkProcess/NetworkProcess.cpp:64
&gt; +#if PLATFORM(GTK)
&gt; +#define SOCKET_TYPE SOCK_STREAM
&gt; +#else
&gt; +#define SOCKET_TYPE SOCK_DGRAM
&gt; +#endif

Guess a GTK guy should review this. But why the difference? comment?

&gt; Source/WebKit2/NetworkProcess/RemoteNetworkingContext.h:27
&gt; +
&gt; +#ifndef RemoteNetworkingContext_h
&gt; +#define RemoteNetworkingContext_h

if you move things around, maybe that should be a separate patch with good reasoning for doing so

&gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp:65
&gt; +#if PLATFORM(EFL)
&gt; +    if (!eina_init())
&gt; +        return 1;
&gt; +    if (!ecore_init()) {
&gt; +        // Could not init ecore.
&gt; +        eina_shutdown();
&gt; +        return 1;
&gt; +    }
&gt; +#endif

So why does the networking process need EFL stuff, when we basically just use libsoup for networking? Why not just use glib+libsoup and share this with GTK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825499</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-05 08:31:44 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 186403 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186403&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/NetworkProcess.cpp:64
&gt; &gt; +#if PLATFORM(GTK)
&gt; &gt; +#define SOCKET_TYPE SOCK_STREAM
&gt; &gt; +#else
&gt; &gt; +#define SOCKET_TYPE SOCK_DGRAM
&gt; &gt; +#endif
&gt; 
&gt; Guess a GTK guy should review this. But why the difference? comment?

Old story, and I don&apos;t remember exactly.  This is copied in a lot of places, so are the fnctl calls. Maybe it&apos;s better to move it into a helper anyway.

&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/RemoteNetworkingContext.h:27
&gt; &gt; +
&gt; &gt; +#ifndef RemoteNetworkingContext_h
&gt; &gt; +#define RemoteNetworkingContext_h
&gt; 
&gt; if you move things around, maybe that should be a separate patch with good reasoning for doing so

Hm, it is somewhat trivial that this file should be there for every port.

&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp:65
&gt; &gt; +#if PLATFORM(EFL)
&gt; &gt; +    if (!eina_init())
&gt; &gt; +        return 1;
&gt; &gt; +    if (!ecore_init()) {
&gt; &gt; +        // Could not init ecore.
&gt; &gt; +        eina_shutdown();
&gt; &gt; +        return 1;
&gt; &gt; +    }
&gt; &gt; +#endif
&gt; 
&gt; So why does the networking process need EFL stuff, when we basically just use libsoup for networking? Why not just use glib+libsoup and share this with GTK?

RunLoop is different on EFL, it uses ecore, I don&apos;t think we can get rid of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825501</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-05 08:34:17 -0800</bug_when>
    <thetext>
&gt; &gt; So why does the networking process need EFL stuff, when we basically just use libsoup for networking? Why not just use glib+libsoup and share this with GTK?
&gt; 
&gt; RunLoop is different on EFL, it uses ecore, I don&apos;t think we can get rid of that.

Not even if it is a separate process/build project... can&apos;t you not just use the glib based one from gtk? It will probably perform better than the currently integration between ecore and glib used by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825514</commentid>
    <comment_count>10</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2013-02-05 08:59:35 -0800</bug_when>
    <thetext>yeah, what he said. If you use RunLoopGtk rather than RunLoopEfl, you shouldn&apos;t need to initialize any efl stuff. (And RunLoopGtk, despite the name, does not actually use gtk, just glib. Though maybe you&apos;ll need to copy it to a new file to avoid pulling in other webkitgtk stuff...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825522</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-05 09:07:47 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; yeah, what he said. If you use RunLoopGtk rather than RunLoopEfl, you shouldn&apos;t need to initialize any efl stuff. (And RunLoopGtk, despite the name, does not actually use gtk, just glib. Though maybe you&apos;ll need to copy it to a new file to avoid pulling in other webkitgtk stuff...)

Then why the hell we have RunLoopEFL? And how should I manage to get a copy of the lib that contains the gtk implementation, while the one that the ui and the web processes links to contains the efl one? Note that every of our processes (ui, web, plugin, network) are just contains a simple main function that calls in to the same library.

I&apos;m not saying that it&apos;s not possible or not a good idea but it&apos;s out of my scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825587</commentid>
    <comment_count>12</comment_count>
      <attachid>186403</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2013-02-05 10:17:39 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

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

&gt;&gt;&gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp:65
&gt;&gt;&gt; +#endif
&gt;&gt; 
&gt;&gt; So why does the networking process need EFL stuff, when we basically just use libsoup for networking? Why not just use glib+libsoup and share this with GTK?
&gt; 
&gt; RunLoop is different on EFL, it uses ecore, I don&apos;t think we can get rid of that.

I don&apos;t see the need ecore stuff here. In theory, our NetworkProcess should be identical to the GTK one. IMO we should call this one NetworkProcessMainSoup.cpp and use glib directly instead the WebCore mainloop abstraction.

&gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.h:2
&gt; +#ifndef NetworkProcessMainUnix_h
&gt; +#define NetworkProcessMainUnix_h

Again, I think this is not Unix, but Soup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825594</commentid>
    <comment_count>13</comment_count>
      <attachid>186403</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-05 10:22:55 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

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

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:80
&gt; +    bool m_isPrivate;

I&apos;m concerned that this change will break the build for other ports when using newer clang (which can detach unused member variables).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825683</commentid>
    <comment_count>14</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2013-02-05 11:51:38 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; &gt; So why does the networking process need EFL stuff, when we basically just use libsoup for networking? Why not just use glib+libsoup and share this with GTK?
&gt; &gt; 
&gt; &gt; RunLoop is different on EFL, it uses ecore, I don&apos;t think we can get rid of that.
&gt; 
&gt; Not even if it is a separate process/build project... can&apos;t you not just use the glib based one from gtk? It will probably perform better than the currently integration between ecore and glib used by default.

I agree. At some point I looked into doing this but never get around implementing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826177</commentid>
    <comment_count>15</comment_count>
      <attachid>186403</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-02-06 00:37:01 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

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

&gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp:71
&gt; +    if (!ecore_main_loop_glib_integrate())

I also agree with Kenneth and Thiago. EFL port has used ecore_main_loop_glib_integrate() to support glib based library as libsoup. But, in this case, we can share this with GTK port. I don&apos;t use GMainLoop for EFL port yet directly, it looks there is no critical problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826220</commentid>
    <comment_count>16</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-06 01:36:16 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 186403 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186403&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp:71
&gt; &gt; +    if (!ecore_main_loop_glib_integrate())
&gt; 
&gt; I also agree with Kenneth and Thiago. EFL port has used ecore_main_loop_glib_integrate() to support glib based library as libsoup. But, in this case, we can share this with GTK port. I don&apos;t use GMainLoop for EFL port yet directly, it looks there is no critical problem.

We can either share the generic RunLoop implementation everywhere, or not share at all. It is not practical to set up a special duplicate of the webkit2 dynamic library just to avoid the efl dependency here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826262</commentid>
    <comment_count>17</comment_count>
      <attachid>186403</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2013-02-06 02:38:35 -0800</bug_when>
    <thetext>Comment on attachment 186403
Patch

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

&gt;&gt;&gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp:71
&gt;&gt;&gt; +    if (!ecore_main_loop_glib_integrate())
&gt;&gt; 
&gt;&gt; I also agree with Kenneth and Thiago. EFL port has used ecore_main_loop_glib_integrate() to support glib based library as libsoup. But, in this case, we can share this with GTK port. I don&apos;t use GMainLoop for EFL port yet directly, it looks there is no critical problem.
&gt; 
&gt; We can either share the generic RunLoop implementation everywhere, or not share at all. It is not practical to set up a special duplicate of the webkit2 dynamic library just to avoid the efl dependency here.

We could try a CMake trickery and build the RunLoop twice (the GTK and the EFL version) as a static library. The GTK version will only to be used here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826385</commentid>
    <comment_count>18</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-06 06:11:26 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 186403 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186403&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/NetworkProcess/unix/NetworkProcessMainUnix.cpp:65
&gt; &gt;&gt;&gt; +#endif
&gt; &gt;&gt; 
&gt; &gt;&gt; So why does the networking process need EFL stuff, when we basically just use libsoup for networking? Why not just use glib+libsoup and share this with GTK?
&gt; &gt; 
&gt; &gt; RunLoop is different on EFL, it uses ecore, I don&apos;t think we can get rid of that.
&gt; 
&gt; I don&apos;t see the need ecore stuff here. In theory, our NetworkProcess should be identical to the GTK one. IMO we should call this one NetworkProcessMainSoup.cpp and use glib directly instead the WebCore mainloop abstraction.

The core does use the RunLoop abstraction so you will not get more from the network process than a beautiful crash if you don&apos;t set it up properly.

Ok, I accept that you want to get rid of the glib-efl integration, but does not feel like it should be my task. I am supposing to remove the efl parts from here. This will in fact leave you with a broken network process, but since it is not used by default, it won&apos;t hurt anybody now. From this point you can chose how to solve the runloop issue, for example by making the gtk runloop built into the network process with some build system tricks.

Also I don&apos;t think we need NetworkProcessMainSoup.cpp, I think Qt can also use this file with a bit of ifdefs which is IMHO better than duplicating stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826614</commentid>
    <comment_count>19</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-06 11:49:10 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 186403 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186403&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/NetworkProcess/NetworkProcess.cpp:64
&gt; &gt; &gt; +#if PLATFORM(GTK)
&gt; &gt; &gt; +#define SOCKET_TYPE SOCK_STREAM
&gt; &gt; &gt; +#else
&gt; &gt; &gt; +#define SOCKET_TYPE SOCK_DGRAM
&gt; &gt; &gt; +#endif
&gt; &gt; 
&gt; &gt; Guess a GTK guy should review this. But why the difference? comment?
&gt; 
&gt; Old story, and I don&apos;t remember exactly.  This is copied in a lot of places, so are the fnctl calls. Maybe it&apos;s better to move it into a helper anyway.

This is handled in bug 109032.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827528</commentid>
    <comment_count>20</comment_count>
      <attachid>187112</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-07 08:08:52 -0800</bug_when>
    <thetext>Created attachment 187112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827656</commentid>
    <comment_count>21</comment_count>
      <attachid>187112</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-07 10:14:35 -0800</bug_when>
    <thetext>Comment on attachment 187112
Patch

Attachment 187112 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16430248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827662</commentid>
    <comment_count>22</comment_count>
      <attachid>187112</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-07 10:19:31 -0800</bug_when>
    <thetext>Comment on attachment 187112
Patch

Attachment 187112 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16445273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828607</commentid>
    <comment_count>23</comment_count>
      <attachid>187327</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-08 08:50:44 -0800</bug_when>
    <thetext>Created attachment 187327
Patch

Trying to fix the mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828633</commentid>
    <comment_count>24</comment_count>
      <attachid>187327</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-08 09:30:58 -0800</bug_when>
    <thetext>Comment on attachment 187327
Patch

Attachment 187327 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16432726</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828642</commentid>
    <comment_count>25</comment_count>
      <attachid>187327</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-08 09:46:54 -0800</bug_when>
    <thetext>Comment on attachment 187327
Patch

Attachment 187327 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16408818</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829100</commentid>
    <comment_count>26</comment_count>
      <attachid>187439</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-09 12:20:09 -0800</bug_when>
    <thetext>Created attachment 187439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829103</commentid>
    <comment_count>27</comment_count>
      <attachid>187439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-09 12:45:55 -0800</bug_when>
    <thetext>Comment on attachment 187439
Patch

Attachment 187439 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16466558</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829109</commentid>
    <comment_count>28</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-09 13:04:10 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 187439 [details])
&gt; Attachment 187439 [details] did not pass mac-wk2-ews (mac-wk2):
&gt; Output: http://queues.webkit.org/results/16466558

D&apos;oh! This time I was doing it in Xcode. Do you know how should I do it in a way Xcode accepts? Now I was &apos;duplicated&apos; the file in Xcode, then removed the original, but it did no actually created the file at the new place on the file system just hacked the projcet file, so I actually made the move with git mv, than patched the file (at the new place). I did not find any option to actually move a file in Xcode. Or is a clean build necessary for Mac in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829111</commentid>
    <comment_count>29</comment_count>
      <attachid>187439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-09 13:13:56 -0800</bug_when>
    <thetext>Comment on attachment 187439
Patch

Attachment 187439 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16479441</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829118</commentid>
    <comment_count>30</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-09 13:42:47 -0800</bug_when>
    <thetext>Clean build on Mac is successful to me with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829126</commentid>
    <comment_count>31</comment_count>
      <attachid>187439</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-09 14:31:30 -0800</bug_when>
    <thetext>Comment on attachment 187439
Patch

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

&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:574
&gt; +		98BA122516C57C2100888895 /* RemoteNetworkingContext.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 98BA122416C57C2100888895 /* RemoteNetworkingContext.h */; };

This doesn&apos;t look right. Where is it copying the file to, and why?

&gt; Source/WebKit2/WebKit2.xcodeproj/project.pbxproj:1262
&gt; +				98BA122516C57C2100888895 /* RemoteNetworkingContext.h in CopyFiles */,

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829590</commentid>
    <comment_count>32</comment_count>
      <attachid>187548</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-11 05:01:17 -0800</bug_when>
    <thetext>Created attachment 187548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829596</commentid>
    <comment_count>33</comment_count>
      <attachid>187548</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-11 05:21:48 -0800</bug_when>
    <thetext>Comment on attachment 187548
Patch

Attachment 187548 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16496176</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829612</commentid>
    <comment_count>34</comment_count>
      <attachid>187548</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-11 06:03:51 -0800</bug_when>
    <thetext>Comment on attachment 187548
Patch

Attachment 187548 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16485366</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829625</commentid>
    <comment_count>35</comment_count>
      <attachid>187548</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-11 06:30:43 -0800</bug_when>
    <thetext>Comment on attachment 187548
Patch

Forgot to patch the header (after xcode hacking, git mv, xcode hacking)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829654</commentid>
    <comment_count>36</comment_count>
      <attachid>187565</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-11 07:12:08 -0800</bug_when>
    <thetext>Created attachment 187565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831065</commentid>
    <comment_count>37</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-12 10:39:54 -0800</bug_when>
    <thetext>Seems like it is ready now (builds on mac) as well as bug 108613. Can I get a review? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834040</commentid>
    <comment_count>38</comment_count>
      <attachid>187565</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-15 08:09:51 -0800</bug_when>
    <thetext>Comment on attachment 187565
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Define NetworkStorageSession::isPrivateBrowsingSession for soup as well.
&gt; +

This patch is big, could this be a separate patch?

&gt; Source/WebKit2/ChangeLog:170
&gt; +        (WebKit::WebProcess::ensureNetworkProcessConnection):
&gt; +        * unix/NetworkMainUnix.cpp: Copied from Source/WebKit2/Shared/WebResourceBuffer.h.
&gt; +        (main):

really?

&gt; Source/WebCore/platform/network/NetworkStorageSession.h:64
&gt;      SoupSession* soupSession() const { return m_session; }
&gt; +    bool isPrivateBrowsingSession() const { return m_isPrivate; }
&gt;  #else
&gt;      NetworkStorageSession(NetworkingContext*);
&gt;      ~NetworkStorageSession();

Why is there no setter? if it won&apos;t ever be set to true yet, why not just return false; for now?

&gt; Source/WebKit2/NetworkProcess/NetworkProcess.cpp:189
&gt; +    CoreIPC::Connection::Identifier serverIdentifier, clientIdentifier;
&gt; +    bool success = CoreIPC::Connection::createServerAndClientIdentifiers(serverIdentifier, clientIdentifier);
&gt; +    ASSERT_UNUSED(success, success);

Why store the return value if not used?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834046</commentid>
    <comment_count>39</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-15 08:20:18 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (From update of attachment 187565 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=187565&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        Define NetworkStorageSession::isPrivateBrowsingSession for soup as well.
&gt; &gt; +
&gt; 
&gt; This patch is big, could this be a separate patch?

Ok, I will think how to slice it up further.

&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:170
&gt; &gt; +        (WebKit::WebProcess::ensureNetworkProcessConnection):
&gt; &gt; +        * unix/NetworkMainUnix.cpp: Copied from Source/WebKit2/Shared/WebResourceBuffer.h.
&gt; &gt; +        (main):
&gt; 
&gt; really?

Not really, those silly messages are added by the commit-log-editor, but I can remove them if it makes reviewing easier.

&gt; 
&gt; &gt; Source/WebCore/platform/network/NetworkStorageSession.h:64
&gt; &gt;      SoupSession* soupSession() const { return m_session; }
&gt; &gt; +    bool isPrivateBrowsingSession() const { return m_isPrivate; }
&gt; &gt;  #else
&gt; &gt;      NetworkStorageSession(NetworkingContext*);
&gt; &gt;      ~NetworkStorageSession();
&gt; 
&gt; Why is there no setter? if it won&apos;t ever be set to true yet, why not just return false; for now?

Should I really leave there something that should be changed sooner or later anyway? Returning with the member here is harmless. I would rather keep it.

&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/NetworkProcess.cpp:189
&gt; &gt; +    CoreIPC::Connection::Identifier serverIdentifier, clientIdentifier;
&gt; &gt; +    bool success = CoreIPC::Connection::createServerAndClientIdentifiers(serverIdentifier, clientIdentifier);
&gt; &gt; +    ASSERT_UNUSED(success, success);
&gt; 
&gt; Why store the return value if not used?

How would you do a debug-only check otherwise? That is what ASSERT_UNUSED has been introduced for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835449</commentid>
    <comment_count>40</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-02-18 06:55:44 -0800</bug_when>
    <thetext>Let&apos;s do this in smaller steps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904844</commentid>
    <comment_count>41</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-06-29 00:37:03 -0700</bug_when>
    <thetext>I took over this work from Balazs because he is busy doing other works.

I&apos;ve just managed to load a web page with NetworkProcess enabled in GTK port. I will upload patches soon after cleaning up the code.

I will work on Gtk port first and then move on to Efl. It would be trivial to support Efl because both ports share the same soup backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>904915</commentid>
    <comment_count>42</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2013-06-30 19:36:56 -0700</bug_when>
    <thetext>Remvoed [EFL] from the subject because I am working on both Gtk and Efl ports.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186403</attachid>
            <date>2013-02-04 09:52:49 -0800</date>
            <delta_ts>2013-02-07 08:08:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108832-20130204184922.patch</filename>
            <type>text/plain</type>
            <size>54450</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU2NTQ4YzY4YjkwYTFl
Y2Y3NDgzMTIwNTAxMzY0NTFhZDI0OTc1MS4uMzFjMzUzM2Y4MmFiMzAxM2U3NTUxNzAyOGQxNDAw
Zjc0MWNmMzJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDEzLTAyLTA0ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAorICAgICAgICBbV0syXVtFRkxdIFNl
dCB1cCBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRG9uJ3QgZ3VhcmQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjppc1ByaXZhdGVC
cm93c2luZ1Nlc3Npb24gd2l0aCBQTEFURk9STShNQUMpLAorICAgICAgICBpdCBzaG91bGQgYmUg
dGhlcmUgZm9yIGV2ZXJ5IHBsYXRmb3JtLgorCisgICAgICAgIE9ubHkgcmVmYWN0b3JpbmcsIHNv
IG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246Omlz
UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChOZXR3b3JrU3RvcmFnZVNlc3Npb24p
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29y
a1N0b3JhZ2VTZXNzaW9uKToKKworMjAxMy0wMi0wNCAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpz
QHdlYmtpdC5vcmc+CisKICAgICAgICAgW1NvdXBdIFdyYXAgU291cFNlc3Npb24gYnkgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDg2MTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVlM2E5YThmOTYyZjk1ODE5YTZhYzRhZmY5
Y2MyNjc1MTFjYmZlY2EuLjYwMWJmYTExZDk4NzZmMDAwOTI0ZDNjYmQ0NDQ5ODgzMzU3NDk0NjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOTEgQEAKIDIwMTMtMDItMDQgIEJhbGF6cyBLZWxlbWVu
ICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCisgICAgICAgIFtXSzJdW0VGTF0gU2V0IHVwIE5ldHdv
cmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDg4MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlcyBORVRXT1JLX1BST0NFU1MgYXZhaWxhYmxlIG9uIEVGTC4gSXQgY2FuIGJlIGVuYWJs
ZWQgaW4gcnVudGltZSwKKyAgICAgICAgYWx0aG91Z2ggaXQgaXMgbmV2ZXIgZW5hYmxlZCB5ZXQu
IFRlc3Rpbmcgc2hvd2VkIHRoYXQgaXQgaXMgd29ya2luZworICAgICAgICBiYXNpY2FsbHkuIEFk
dmVuY2VkIGZlYXR1cmVzIGxpa2UgcHJpdmF0ZSBicm93c2luZyBvciBjcmVkZW50aWFsIHN0b3Jh
Z2UKKyAgICAgICAgaGF2ZSBiZWVuIHN0dWJiZWQgZm9yIHRoZSB0aW1lIGJlaW5nLiBUaGUgcGF0
Y2ggYWRkcyB0aGUgbmVjZXNzYXJ5IHBsYXRmb3JtCisgICAgICAgIHNwZWNpZmljIGJpdHMgZm9y
IFVOSVhfRE9NQUlOX1NPQ0tFVFMsIHRoZSBTT1VQIG5ldHdvcmsgYmFja2VuZCBhbmQgRUZMLgor
ICAgICAgICBJdCBhZGRzIHJlbGF0ZWQgZmlsZXMgdG8gdGhlIENtYWtlIGJ1aWxkIHN5c3RlbSwg
c3BlY2lmaWNhbGx5IHBsYXRmb3JtIHNwZWNpZmljCisgICAgICAgIHBhcnRzIGhhdmUgYmVlbiBh
ZGRlZCB0byB0aGUgRUZMIGZpbGVzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAg
ICBBZGQgcGxhdGZvcm0gc3BlY2lmaWMgSVBDIGNvZGUgZm9yIFVOSVhfRE9NQUlOX1NPQ0tFVFMu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcDogRml4IG1pc3R5cGluZyBmb3IgY2FzZQorICAgICAgICBzZW5zaXRpdmUgc3lzdGVtcy4K
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmgu
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldE5lZWRzU2l0ZVNwZWNpZmlj
UXVpcmtzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldExv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpOgorICAgICAgICBSZWZhY3RvcmluZzogcmVt
b3ZlIG1hYyBzcGVjaWZpYyBhcmd1bWVudHMgZnJvbSBjb25zdHJ1Y3RvciwgYWRkZWQgc2V0dGVy
cyBpbnN0ZWFkLgorICAgICAgICBBZGRlZCBTb3VwIHNwZWNpZmljIG1lbWJlcnMuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAgICAgT25s
eSBzdHVicyBmb3Igbm93LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlh
bGl6ZU5ldHdvcmtQcm9jZXNzKTogRW1wdHkgc3R1YiBmb3Igbm93LgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyU291cC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291
bnRQZXJIb3N0KToKKyAgICAgICAgQ29waWVkIGhhcmQtY29kZWQgY29uc3RhbnQgZnJvbSBSZXNv
dXJjZVJlcXVlc3RTb3VwLmNwcC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6flJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OmlzVmFsaWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6aW5pdGlhdGluZ1BhZ2VJRCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0OjpzZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmVuc3VyZVByaXZh
dGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6cHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IGZvciBzb3VwLCB3aXRob3V0IHByaXZhdGUgYnJv
d3Npbmcgc3VwcG9ydCB5ZXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdv
cmtQcm9jZXNzTWFpblVuaXguY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzTWFpbik6CisgICAgICAgIENvbW1vbiBlbnRyeSBwb2lu
dCBmb3IgVW5peCBwb3J0cy4gU291cCBwcm94eSBhbmQgY2FjaGUgaW5pdGlhbGl6YXRpb24gaGFz
IGJlZW4gdGFrZW4KKyAgICAgICAgZnJvbSBXZWJQcm9jZXNzTWFpbkVmbC5jcHAuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAg
ICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgICogU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmg6IENoYW5nZWQgZm9yd2FyZCBkZWNs
YXJhdGlvbiBvZiBTaGFyZWFibGVSZXNvdXJjZSB0byBhY3R1YWwKKyAgICAgICAgaW5jbHVkZSBi
ZWNhdXNlIEdDQyByZXF1aXJlcyBhIGRlZmluaXRpb24gb2YgdGhlIHR5cGUgZm9yIHBhc3Npbmcg
aXQgaW4gYSBQYXNzT3duUHRyLgorICAgICAgICAqIFNoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OmV4ZWN1
dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1
bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyk6CisgICAgICAgIEd1YXJkcyBhbmQgaGFuZGxlIFVOSVhfRE9NQUlOX1NPQ0tFVFMg
Y2FzZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQ
cm94eVNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3Vy
Y2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cGxhdGZv
cm1HZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0
U291cC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUlu
Zm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZGVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW46CisgICAg
ICAgIEFkZCBndWFyZHMgd2hlcmUgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwOgorICAgICAgICAoV2ViS2l0Ojpp
bnRlcm5hbEVycm9yKToKKyAgICAgICAgKFdlYktpdCk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICBIYW5kbGUgVU5JWF9ET01BSU5fU09DS0VU
UyBjYXNlLgorICAgICAgICAqIHVuaXgvTmV0d29ya01haW5Vbml4LmNwcDogQWRkZWQuCisgICAg
ICAgIChtYWluKToKKyAgICAgICAgQ29tbW9uIHN0dWIgZm9yIHRoZSBleGVjdXRhYmxlIGZvciB1
bml4IHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChSZW1vdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpzZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpzZXRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291
cC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVj
dGlvbkNvdW50UGVySG9zdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
Ojppbml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzTWFpbik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4Lmg6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToK
KyAgICAgICAgKiBTaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmg6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAqIFNoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIFNo
YXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OmV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRv
TGF1bmNoKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBV
SVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVz
cG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmg6CisgICAgICAgIChXZWJSZXNv
dXJjZUxvYWRlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZs
L1dlYkVycm9yc0VmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmludGVybmFsRXJyb3IpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24p
OgorICAgICAgICAqIHVuaXgvTmV0d29ya01haW5Vbml4LmNwcDogQWRkZWQuCisgICAgICAgICht
YWluKToKKworMjAxMy0wMi0wNCAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+
CisKICAgICAgICAgW1NvdXBdIFdyYXAgU291cFNlc3Npb24gYnkgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg2
MTUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggN2IxNjFhMDBjOTc2MGI1Y2MxMjcwOGE2NzUyZjlhMWYz
ZjZlOGI4Zi4uOGE5ZjRlNmQ5YjkzZDBhZjg3ZmM3MzAyMjRhYmE5YzIzZThhYjlhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oCkBAIC00OCwxMyArNDgsMTQgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3du
UHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4gY3JlYXRlRGVmYXVsdFNlc3Npb24oY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyQmFzZSA9IFN0cmluZygpKTsKICAgICBzdGF0aWMgUGFzc093blB0cjxO
ZXR3b3JrU3RvcmFnZVNlc3Npb24+IGNyZWF0ZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oY29uc3Qg
U3RyaW5nJiBpZGVudGlmaWVyQmFzZSk7CiAKKyAgICBib29sIGlzUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNQcml2YXRlOyB9CisKICAgICBzdGF0aWMgdm9pZCBz
d2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9uKCk7CiAKICNpZiBQTEFURk9STShNQUMpIHx8IFVTRShD
Rk5FVFdPUkspCiAgICAgLy8gTWF5IGJlIG51bGwsIGluIHdoaWNoIGNhc2UgYSBGb3VuZGF0aW9u
IGRlZmF1bHQgc2hvdWxkIGJlIHVzZWQuCiAgICAgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBwbGF0
Zm9ybVNlc3Npb24oKSB7IHJldHVybiBtX3BsYXRmb3JtU2Vzc2lvbi5nZXQoKTsgfQogICAgIFJl
dGFpblB0cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVTdG9yYWdlKCkgY29uc3Q7Ci0g
ICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2lzUHJp
dmF0ZTsgfQogI2VsaWYgVVNFKFNPVVApCiAgICAgdm9pZCBzZXRTb3VwU2Vzc2lvbihTb3VwU2Vz
c2lvbiogc2Vzc2lvbikgeyBtX3Nlc3Npb24gPSBzZXNzaW9uOyB9CiAgICAgU291cFNlc3Npb24q
IHNvdXBTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uOyB9CkBAIC02OSwxMyArNzAs
MTQgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oQ0ZVUkxTdG9yYWdlU2Vz
c2lvblJlZiBwbGF0Zm9ybVNlc3Npb24pOwogICAgIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpOwog
ICAgIFJldGFpblB0cjxDRlVSTFN0b3JhZ2VTZXNzaW9uUmVmPiBtX3BsYXRmb3JtU2Vzc2lvbjsK
LSAgICBib29sIG1faXNQcml2YXRlOwogI2VsaWYgVVNFKFNPVVApCiAgICAgTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uKFNvdXBTZXNzaW9uKik7CiAgICAgU291cFNlc3Npb24qIG1fc2Vzc2lvbjsKLSNl
bHNlCisjZWxzZSAgICAKICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsK
ICNlbmRpZgorCisgICAgYm9vbCBtX2lzUHJpdmF0ZTsKIH07CiAKICNpZiBQTEFURk9STShXSU4p
ICYmIFVTRShDRk5FVFdPUkspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggZGQ1NmUyYjg5ZjUxY2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFkMC4uYzI5YTRjMDY0Njcy
ZGFhMWVmZWUxMWRhN2U0YzlkNjFjNTVkY2RjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNvdXBTZXNzaW9uKiBzZXNz
aW9uKQogICAgIDogbV9zZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX2lzUHJpdmF0ZShmYWxzZSkK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBhZjZiMTQxYmUwMmE0MzIzNTllZTQ2MjUz
MGQyMDI2YmIwNWI2N2UxLi5kZWQ5YWNjODNjNjQxMDgzMDIwZGU4MGYyMzQwNjViODk3ODEzODZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMSw1ICsxLDYgQEAKIHNldChXZWJLaXQyX0lOQ0xV
REVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0iCisgICAgIiR7V0VCS0lUMl9ESVJ9
L05ldHdvcmtQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybSIKICAgICAiJHtX
RUJLSVQyX0RJUn0vUGxhdGZvcm0vQ29yZUlQQyIKICAgICAiJHtXRUJLSVQyX0RJUn0vUGx1Z2lu
UHJvY2VzcyIKQEAgLTExLDYgKzEyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9O
ZXR3b3JrIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2Nv
bHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zIgogICAgICIke1dFQktJVDJf
RElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUveDExIgpAQCAtMjMsNiArMjUsNyBAQCBzZXQoV2ViS2l0Ml9JTkNM
VURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Eb3dubG9hZHMi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIiCiAgICAgIiR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9MYXVuY2hlciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQ
cm9jZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIgogICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL1N0b3JhZ2UiCkBAIC00MCw2ICs0Myw3IEBAIHNldChXZWJLaXQy
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTGF1bmNoaW5n
IgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdp
bnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKQEAg
LTExOCw2ICsxMjIsMTMgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBz
ZXQoV2ViS2l0Ml9TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHAKKyAg
ICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKyAgICBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5j
cHAKKwogICAgIFBsYXRmb3JtL0xvZ2dpbmcuY3BwCiAgICAgUGxhdGZvcm0vTW9kdWxlLmNwcAog
ICAgIFBsYXRmb3JtL1dvcmtRdWV1ZS5jcHAKQEAgLTE1OCw2ICsxNjksNyBAQCBzZXQoV2ViS2l0
Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKICAgICBTaGFyZWQv
U2Vzc2lvblN0YXRlLmNwcAogICAgIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuY3BwCisgICAgU2hh
cmVkL1NoYXJlYWJsZVJlc291cmNlLmNwcAogICAgIFNoYXJlZC9TdGF0aXN0aWNzRGF0YS5jcHAK
ICAgICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5j
cHAKQEAgLTE5MCw2ICsyMDIsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCiAgICAgU2hhcmVkL1dlYlJlbmRlckxheWVy
LmNwcAogICAgIFNoYXJlZC9XZWJSZW5kZXJPYmplY3QuY3BwCisgICAgU2hhcmVkL1dlYlJlc291
cmNlQnVmZmVyLmNwcAogICAgIFNoYXJlZC9XZWJUb3VjaEV2ZW50LmNwcAogICAgIFNoYXJlZC9X
ZWJVUkxSZXF1ZXN0LmNwcAogICAgIFNoYXJlZC9XZWJVUkxSZXNwb25zZS5jcHAKQEAgLTIyMyw2
ICsyMzYsOSBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvV2ViQ29vcmRpbmF0ZWRTdXJmYWNlLmNwcAogICAgIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL1dlYkN1c3RvbUZpbHRlclByb2dyYW1Qcm94eS5jcHAKIAorICAgIFNoYXJlZC9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorICAgIFNoYXJlZC9OZXR3
b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorCiAgICAgU2hhcmVkL1BsdWdp
bnMvTlBJZGVudGlmaWVyRGF0YS5jcHAKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlci5jcHAKICAgICBTaGFyZWQvUGx1Z2lucy9OUE9iamVjdFByb3h5LmNwcApAQCAt
MzU1LDYgKzM3MSw4IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwCiAKKyAgICBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAorCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uLmNwcApAQCAtMzY3LDYgKzM4NSw4IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmNw
cAogCisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCisKICAgICBXZWJQcm9j
ZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKICAgICBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCiAKQEAgLTQyOSw2ICs0NDksMTAgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAg
V2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIuY3BwCiAKKyAgICBX
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorICAgIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisgICAgV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorCiAgICAgV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKICAgICBXZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKIApAQCAtNDk1
LDYgKzUxOSw5IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICkKIAogc2V0KFdlYktpdDJfTUVTU0FH
RVNfSU5fRklMRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCisKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBs
dWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTUyNyw2ICs1
NTQsOCBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwogCiAgICAgVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluCiAKKyAgICBVSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisKICAgICBVSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFVJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTQ5LDYg
KzU3OCw5IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQcm9jZXNz
L01lZGlhQ2FjaGUvV2ViTWVkaWFDYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4KIAorICAgIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKyAgICBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KKwogICAgIFdl
YlByb2Nlc3MvTmV0d29ya0luZm8vV2ViTmV0d29ya0luZm9NYW5hZ2VyLm1lc3NhZ2VzLmluCiAK
ICAgICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCmluZGV4IDBkNTJiOGYzZTc0NWI1YzAyNTYwMzhjMmIxYWFjZThmZmZlYTJjZTMuLjQ0
YTgxMDJlMGI5OGM2YTgzNGU4YzlkZmYyMGNlYWMwNjUzMWYyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ3LDYgKzQ3LDI0
IEBACiAjaW5jbHVkZSAiU2VjSXRlbVNoaW0uaCIKICNlbmRpZgogCisjaWYgVVNFKFVOSVhfRE9N
QUlOX1NPQ0tFVFMpCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2lu
Y2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRl
IDx1bmlzdGQuaD4KKworI2lmZGVmIFNPQ0tfU0VRUEFDS0VUCisjZGVmaW5lIFNPQ0tFVF9UWVBF
IFNPQ0tfU0VRUEFDS0VUCisjZWxzZQorI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgU09DS0VU
X1RZUEUgU09DS19TVFJFQU0KKyNlbHNlCisjZGVmaW5lIFNPQ0tFVF9UWVBFIFNPQ0tfREdSQU0K
KyNlbmRpZgorI2VuZGlmIC8vIFNPQ0tfU0VRUEFDS0VUCisjZW5kaWYgLy8gVVNFKFVOSVhfRE9N
QUlOX1NPQ0tFVFMpCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTYzLDcgKzgxLDkgQEAgTmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKCkK
IHsKICAgICBhZGRTdXBwbGVtZW50PEF1dGhlbnRpY2F0aW9uTWFuYWdlcj4oKTsKICAgICBhZGRT
dXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCk7CisjaWYgRU5BQkxFKENVU1RPTV9QUk9UT0NP
TFMpCiAgICAgYWRkU3VwcGxlbWVudDxDdXN0b21Qcm90b2NvbE1hbmFnZXI+KCk7CisjZW5kaWYK
IH0KIAogTmV0d29ya1Byb2Nlc3M6On5OZXR3b3JrUHJvY2VzcygpCkBAIC0xODAsOCArMjAwLDI5
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKCkKIAogICAgIENvcmVJUEM6OkF0dGFjaG1lbnQgY2xpZW50UG9ydChsaXN0ZW5pbmdQb3J0
LCBNQUNIX01TR19UWVBFX01BS0VfU0VORCk7CiAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkQ3JlYXRlTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoY2xpZW50UG9ydCksIDApOwotI2Vsc2UKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOworI2VsaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgaW50IHNvY2tl
dHNbMl07CisgICAgaW50IHJlc3VsdCA9IHNvY2tldHBhaXIoQUZfVU5JWCwgU09DS0VUX1RZUEUs
IDAsIHNvY2tldHMpOworICAgIEFTU0VSVChyZXN1bHQgIT0gLTEpOworICAgIGlmIChyZXN1bHQg
PT0gLTEpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjsgKytp
KSB7CisgICAgICAgIHdoaWxlIChmY250bChzb2NrZXRzW2ldLCBGX1NFVEZELCBGRF9DTE9FWEVD
KSA9PSAtMSkgeworICAgICAgICAgICAgQVNTRVJUKGVycm5vID09IEVJTlRSKTsKKyAgICAgICAg
ICAgIGlmIChlcnJubyAhPSBFSU5UUikgeworICAgICAgICAgICAgICAgIHdoaWxlIChjbG9zZShz
b2NrZXRzWzBdKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikgeyB9CisgICAgICAgICAgICAgICAg
d2hpbGUgKGNsb3NlKHNvY2tldHNbMV0pID09IC0xICYmIGVycm5vID09IEVJTlRSKSB7IH0KKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IGNvbm5lY3Rpb24gPSBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlKHNvY2tldHNbMV0pOworICAgIG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uLnJlbGVhc2UoKSk7CisKKyAg
ICBDb3JlSVBDOjpBdHRhY2htZW50IGNsaWVudFNvY2tldChzb2NrZXRzWzBdKTsKKyAgICBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpEaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhjbGllbnRTb2NrZXQpLCAw
KTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IDhjMzMzMmI1
ODEzNzIzZjM4YTZhN2ZkODgyNzdkZmE1MmZhMDY0OWEuLmFlYTU2NGZlMGJiM2I2NDU5ZmYzNWFj
ZGM5ZGQ4ODAxM2ZiNjFmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC00LDcg
KzQsNyBAQAogI2luY2x1ZGUgIkhvc3RSZWNvcmQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKLSNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc2Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJT
eW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAyY2JkOTg5MjEx
NzllNjY3OWJlOTQ4OTdkMjY0Y2RjMjhlNDgzYjEzLi5hZDAwOWU4ZjZmMTc3NDNlNjJmZDVhZDIw
YTFjNTMxYTQyODQyNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICByZWYoKTsKICAgICAKICAgICAvLyBG
SVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgd2l0
aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93c2luZ01vZGUo
KSk7CisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpj
cmVhdGUoaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCkpOwogCiAgICAgY29uc3VtZVNhbmRib3hFeHRl
bnNpb25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhMWE2Y2QzNGU5NDgxNzM0ZWEz
MDhlYTY0OTY3MWQ3YmFjZmYwY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0wLDAgKzEsNzcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0X2gKKyNkZWZpbmUg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5n
Q29udGV4dC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoYm9v
bCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChwcml2YXRlQnJvd3NpbmdFbmFibGVkKSk7Cisg
ICAgfQorICAgIHZpcnR1YWwgflJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisKKyAgICBzdGF0
aWMgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKGNv
bnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Np
b24oKTsKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwor
CisgICAgc3RhdGljIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgcHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbigpOyAvLyBDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgc2Vzc2lvbiBleGlz
dHMuCisKK3ByaXZhdGU6CisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9vbCBwcml2YXRl
QnJvd3NpbmdFbmFibGVkKTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCBpc1ZhbGlkKCkgY29uc3QgT1ZFUlJJREU7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgdm9p
ZCBzZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhib29sIHZhbHVlKSB7IG1fbmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0TG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZChib29sIHZhbHVlKSB7IG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCA9IHZhbHVlOyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTlNPcGVyYXRpb25RdWV1
ZSAqc2NoZWR1bGVkT3BlcmF0aW9uUXVldWUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIGNvbnN0IE9WRVJSSURFOworI2VuZGlmCisKKyNpZiBVU0UoU09VUCkKKyAg
ICB2aXJ0dWFsIHVpbnQ2NF90IGluaXRpYXRpbmdQYWdlSUQoKSBjb25zdDsKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrczsKKyAg
ICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsKKyNlbmRpZgorCisgICAg
Ym9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7Cit9OworCit9CisKKyNlbmRpZiAvLyBSZW1v
dGVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2RkOTQyZDY5
NDE1MzFhMTE2YjE5NmZkZTBkNzVmZmRkNzhjYTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcApAQCAtMCww
ICsxLDI4IEBACisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoY29u
c3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKQoreworfQorCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphbGxvd1NwZWNpZmljSFRU
UFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8mLCBjb25z
dCBTdHJpbmcmIGhvc3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNWM1ZjE2M2IzZTZlMDgwZGUzODUwMGU5M2QzZjc5NjU3YzU5OWY2
Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaAorKysg
L2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0X2gKLSNkZWZpbmUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAotCi0j
aW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6TmV0
d29ya2luZ0NvbnRleHQgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9v
bCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKSk7Ci0gICAgfQotICAgIHZpcnR1YWwg
flJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7Ci0KLSAgICBzdGF0aWMgdm9pZCBzZXRQcml2YXRl
QnJvd3NpbmdTdG9yYWdlU2Vzc2lvbklkZW50aWZpZXJCYXNlKGNvbnN0IFN0cmluZyYpOwotICAg
IHN0YXRpYyB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKLSAgICBzdGF0aWMg
dm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOwotCi0gICAgc3RhdGljIFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOyAvLyBD
YW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgc2Vzc2lvbiBleGlzdHMuCi0KLXByaXZhdGU6Ci0g
ICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywg
Ym9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIHByaXZhdGVCcm93c2lu
Z0VuYWJsZWQpOwotCi0gICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBPVkVSUklERTsK
LQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBOU09wZXJh
dGlvblF1ZXVlICpzY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICBib29sIG1fbmVlZHNT
aXRlU3BlY2lmaWNRdWlya3M7Ci0gICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQ7Ci0gICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7Ci19OwotCi19Ci0KLSNl
bmRpZiAvLyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0K
aW5kZXggZGU3ZTBmYzRmZGVkZDM3ZTg4MTI3ODg2OWRkNWQwZjg5MzFlNmNkMi4uZmYxZWM0NzAw
N2VhZTMyOTQyMTExOWZiODgwNGRjOWYwMDQxZGYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5t
bQpAQCAtNDIsMTAgKzQyLDggQEAgc3RhdGljIE93blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
JiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpCiAgICAgcmV0dXJuIHNlc3Npb247CiB9
CiAKLVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29s
IG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKLSAgICA6IG1fbmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpCi0gICAgLCBtX2xvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQobG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkKLSAg
ICAsIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRlQnJvd3NpbmdFbmFibGVkKQorUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgcHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICA6IG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChwcml2YXRl
QnJvd3NpbmdFbmFibGVkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzUHJveHlTb3VwLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg4ZTZhZDc1ODg5YTczZDg0ZjVmNWE2YTNmMTE4YmJiZDNlYThmZDgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9j
ZXNzUHJveHlTb3VwLmNwcApAQCAtMCwwICsxLDE3IEBACisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RydWN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOworCit2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyU291
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJj
ZUxvYWRTY2hlZHVsZXJTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmM3MTIwMjYxNGM3MGE1N2U0MGQz
ZmViNzdjOTlkOGRjNzc2MzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyU291cC5jcHAKQEAg
LTAsMCArMSwxNSBAQAorI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCisjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKwordW5zaWduZWQgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6
cGxhdGZvcm1Jbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KCkKK3sK
KyAgICAvLyBTZWU6IFJlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcmV0dXJuIDEwMDAwOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0U291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmZmN2Q1ZjdhMTE2OTlkYTIwOTNlMzljODNjZjdh
Y2JjNzhlZjJiMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApAQCAtMCwwICsxLDYxIEBA
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNs
dWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisg
ICAgOiBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKK3sK
K30KKworUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6On5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgp
Cit7Cit9CisKK2Jvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmlzVmFsaWQoKSBjb25zdAor
eworICAgIHJldHVybiB0cnVlOworfQorCit1aW50NjRfdCBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6aW5pdGlhdGluZ1BhZ2VJRCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKwordm9pZCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0UHJpdmF0
ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6
OmVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitOZXR3b3JrU3RvcmFn
ZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNz
aW9uKCk7Cit9CisKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnByaXZhdGVCcm93c2luZ1Nlc3Npb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKCk7
Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVu
aXguY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vz
c01haW5Vbml4LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWQ2ZjVkMGY2ZjVjZmJhZDI4MzZhYmZkMTJjNzhl
YzcwNzkxZTI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgiCisKKyNkZWZpbmUgTElCU09VUF9V
U0VfVU5TVEFCTEVfUkVRVUVTVF9BUEkKKworI2luY2x1ZGUgIlByb3h5UmVzb2x2ZXJTb3VwLmgi
CisjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5jbHVkZSA8RWNvcmUuaD4KKyNpbmNsdWRlIDxFZnJl
ZXQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9OZXR3b3JraW5nQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQyL05ldHdvcmtQcm9jZXNzLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLWNhY2hlLmg+
CisjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8dW5p
c3RkLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworV0tfRVhQT1JUIGludCBOZXR3b3JrUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqIGFy
Z3ZbXSkKK3sKKyAgICBpZiAoYXJnYyAhPSAyKQorICAgICAgICByZXR1cm4gMTsKKworI2lmIFBM
QVRGT1JNKEVGTCkKKyAgICBpZiAoIWVpbmFfaW5pdCgpKQorICAgICAgICByZXR1cm4gMTsKKyAg
ICBpZiAoIWVjb3JlX2luaXQoKSkgeworICAgICAgICAvLyBDb3VsZCBub3QgaW5pdCBlY29yZS4K
KyAgICAgICAgZWluYV9zaHV0ZG93bigpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisjZW5k
aWYKKworI2lmICFHTElCX0NIRUNLX1ZFUlNJT04oMiwgMzUsIDApCisgICAgZ190eXBlX2luaXQo
KTsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKEVGTCkKKyAgICBpZiAoIWVjb3JlX21haW5fbG9vcF9n
bGliX2ludGVncmF0ZSgpKQorICAgICAgICByZXR1cm4gMTsKKyNlbmRpZgorCisgICAgSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgV1RGOjppbml0aWFsaXplTWFpblRocmVhZCgpOwor
CisgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyNpZiBVU0UoU09VUCkK
KyAgICBTb3VwU2Vzc2lvbiogc2Vzc2lvbiA9IFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkZWZh
dWx0U2Vzc2lvbigpOworICAgIGNvbnN0IGNoYXIqIGh0dHBQcm94eSA9IGdldGVudigiaHR0cF9w
cm94eSIpOworICAgIGlmIChodHRwUHJveHkpIHsKKyAgICAgICAgY29uc3QgY2hhciogbm9Qcm94
eSA9IGdldGVudigibm9fcHJveHkiKTsKKyAgICAgICAgU291cFByb3h5VVJJUmVzb2x2ZXIqIHJl
c29sdmVyRWZsID0gc291cFByb3h5UmVzb2x2ZXJXa05ldyhodHRwUHJveHksIG5vUHJveHkpOwor
ICAgICAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZF
QVRVUkUocmVzb2x2ZXJFZmwpKTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYocmVzb2x2ZXJFZmwp
OworICAgIH0KKworICAgIC8vIFNldCBTT1VQIGNhY2hlLgorICAgIFN0cmluZyBzb3VwQ2FjaGVE
aXJlY3RvcnkgPSBTdHJpbmc6OmZyb21VVEY4KGVmcmVldF9jYWNoZV9ob21lX2dldCgpKSArICIv
V2ViS2l0RWZsIjsKKyAgICBTb3VwQ2FjaGUqIHNvdXBDYWNoZSA9IHNvdXBfY2FjaGVfbmV3KHNv
dXBDYWNoZURpcmVjdG9yeS51dGY4KCkuZGF0YSgpLCBTT1VQX0NBQ0hFX1NJTkdMRV9VU0VSKTsK
KyAgICBzb3VwX3Nlc3Npb25fYWRkX2ZlYXR1cmUoc2Vzc2lvbiwgU09VUF9TRVNTSU9OX0ZFQVRV
UkUoc291cENhY2hlKSk7CisgICAgc291cF9jYWNoZV9sb2FkKHNvdXBDYWNoZSk7CisjZW5kaWYK
KworICAgIGludCBzb2NrZXQgPSBhdG9pKGFyZ3ZbMV0pOworCisgICAgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5jb25uZWN0
aW9uSWRlbnRpZmllciA9IHNvY2tldDsKKworICAgIE5ldHdvcmtQcm9jZXNzOjpzaGFyZWQoKS5p
bml0aWFsaXplKHBhcmFtZXRlcnMpOworCisgICAgUnVuTG9vcDo6cnVuKCk7CisKKyNpZiBVU0Uo
U09VUCkKKyAgICBzb3VwX2NhY2hlX2ZsdXNoKHNvdXBDYWNoZSk7CisgICAgc291cF9jYWNoZV9k
dW1wKHNvdXBDYWNoZSk7CisgICAgZ19vYmplY3RfdW5yZWYoc291cENhY2hlKTsKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oRUZMKQorICAgIGVjb3JlX3NodXRkb3duKCk7CisgICAgZWluYV9zaHV0
ZG93bigpOworI2VuZGlmCisKKyAgICByZXR1cm4gMDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVu
aXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hZGFiNWM1ZTE0MzljZjhmM2UxYTZjZGY1OTcyNWFkN2E2ZTdmNzMz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9O
ZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgKQEAgLTAsMCArMSwxNiBAQAorI2lmbmRlZiBOZXR3b3Jr
UHJvY2Vzc01haW5Vbml4X2gKKyNkZWZpbmUgTmV0d29ya1Byb2Nlc3NNYWluVW5peF9oCisKKyNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKK1dLX0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nlc3NN
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pOworfSAvLyBleHRlcm4gIkMiCisjZW5kaWYgLy8g
X19jcGx1c3BsdXMKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJQcm9j
ZXNzTWFpbkVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IGI4N2U5NzljNTE3NjQ1
NWExZDMxNDhhYzg2ZGVjNWNlOGIxOWI3N2UuLmQxYTg1ZjQzNzM4YTBlZGYzNmIxNTYwYTBkM2M4
YTg2NWNmNjcyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtl
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC0xLDQgKzEsOSBAQAog
bGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdv
cmtQcm9jZXNzRWZsLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NN
YWluVW5peC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRT
Y2hlZHVsZXJTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHRTb3VwLmNwcAorCiAgICAgUGxhdGZvcm0vZWZsL0xvZ2dpbmdFZmwuY3BwCiAgICAg
UGxhdGZvcm0vZWZsL01vZHVsZUVmbC5jcHAKICAgICBQbGF0Zm9ybS9lZmwvV29ya1F1ZXVlRWZs
LmNwcApAQCAtMTA4LDYgKzExMyw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAg
IFVJUHJvY2Vzcy9lZmwvV2ViUHJlZmVyZW5jZXNFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9X
ZWJQcm9jZXNzUHJveHlFZmwuY3BwCiAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291
cC5jcHAKKwogICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZWZsL1dlYkluc3BlY3RvclNl
cnZlckVmbC5jcHAKICAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0
U2VydmVyU291cC5jcHAKIApAQCAtMTE3LDYgKzEyNCw4IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJf
U09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwu
Y3BwCiAKKyAgICBVSVByb2Nlc3MvTmV0d29yay9zb3VwL05ldHdvcmtQcm9jZXNzUHJveHlTb3Vw
LmNwcAorCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNw
cAogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAK
IApAQCAtMTYyLDYgKzE3MSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdDJfSU5DTFVERV9ESVJFQ1RP
UklFUwogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAgICAgIiR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvZW5jaGFudCIKICAgICAiJHtXRUJDT1JFX0RJUn0v
c3ZnL2dyYXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4Igog
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvRG93bmxvYWRzL3NvdXAiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9lZmwiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgpAQCAt
MzIyLDYgKzMzMiwyOSBAQCBpZiAoRU5BQkxFX1BMVUdJTl9QUk9DRVNTKQogICAgIGluc3RhbGwo
VEFSR0VUUyAke1BsdWdpblByb2Nlc3NfRVhFQ1VUQUJMRV9OQU1FfSBERVNUSU5BVElPTiAiJHtF
WEVDX0lOU1RBTExfRElSfSIpCiBlbmRpZiAoKSAjIEVOQUJMRV9QTFVHSU5fUFJPQ0VTUwogCitp
ZiAoRU5BQkxFX05FVFdPUktfUFJPQ0VTUykKKyAgICBhZGRfZGVmaW5pdGlvbnMoLURFTkFCTEVf
TkVUV09SS19QUk9DRVNTPTEpCisKKyAgICBzZXQoTmV0d29ya1Byb2Nlc3NfRVhFQ1VUQUJMRV9O
QU1FIE5ldHdvcmtQcm9jZXNzKQorICAgIGxpc3QoQVBQRU5EIE5ldHdvcmtQcm9jZXNzX0lOQ0xV
REVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzIgor
ICAgICkKKworICAgIGluY2x1ZGVfZGlyZWN0b3JpZXMoJHtOZXR3b3JrUHJvY2Vzc19JTkNMVURF
X0RJUkVDVE9SSUVTfSkKKworICAgIGxpc3QoQVBQRU5EIE5ldHdvcmtQcm9jZXNzX1NPVVJDRVMK
KyAgICAgICAgJHtXRUJLSVQyX0RJUn0vdW5peC9OZXR3b3JrTWFpblVuaXguY3BwCisgICAgKQor
CisgICAgc2V0KE5ldHdvcmtQcm9jZXNzX0xJQlJBUklFUworICAgICAgICAke1dlYktpdDJfTElC
UkFSWV9OQU1FfQorICAgICkKKworICAgIGFkZF9leGVjdXRhYmxlKCR7TmV0d29ya1Byb2Nlc3Nf
RVhFQ1VUQUJMRV9OQU1FfSAke05ldHdvcmtQcm9jZXNzX1NPVVJDRVN9KQorICAgIHRhcmdldF9s
aW5rX2xpYnJhcmllcygke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0gJHtOZXR3b3Jr
UHJvY2Vzc19MSUJSQVJJRVN9KQorICAgIGluc3RhbGwoVEFSR0VUUyAke05ldHdvcmtQcm9jZXNz
X0VYRUNVVEFCTEVfTkFNRX0gREVTVElOQVRJT04gIiR7RVhFQ19JTlNUQUxMX0RJUn0iKQorZW5k
aWYgKCkKKwogaW5jbHVkZV9kaXJlY3Rvcmllcygke1RISVJEUEFSVFlfRElSfS9ndGVzdC9pbmNs
dWRlKQogCiBzZXQoRVdLMlVuaXRUZXN0c19MSUJSQVJJRVMKQEAgLTM1Miw2ICszODUsNyBAQCBh
ZGRfZGVmaW5pdGlvbnMoLURURVNUX1JFU09VUkNFU19ESVI9XCIke1RFU1RfUkVTT1VSQ0VTX0RJ
Un1cIgogICAgIC1ETElCRVhFQ0RJUj1cIiR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9LyR7RVhFQ19J
TlNUQUxMX0RJUn1cIgogICAgIC1EV0VCUFJPQ0VTU05BTUU9XCIke1dlYlByb2Nlc3NfRVhFQ1VU
QUJMRV9OQU1FfVwiCiAgICAgLURQTFVHSU5QUk9DRVNTTkFNRT1cIiR7UGx1Z2luUHJvY2Vzc19F
WEVDVVRBQkxFX05BTUV9XCIKKyAgICAtRE5FVFdPUktQUk9DRVNTTkFNRT1cIiR7TmV0d29ya1By
b2Nlc3NfRVhFQ1VUQUJMRV9OQU1FfVwiCiApCiAKIGFkZF9saWJyYXJ5KGV3azJVbml0VGVzdFV0
aWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKaW5k
ZXggNWZiZjMyMDE4MTEwNTVlMzg0YWJlZGI2ZDNkZDVkYWYxYzdiNzRkZC4uZDc4ZWJjZGRlYmE5
NmU1YTlhMzAxZWM3ZThjZDUyMzc0OWRiZGUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaApAQCAtMzIsNiArMzIsOSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhl
Y3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKTsKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworI2VuZGlmCiAKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaAppbmRleCBiNDdmMzE4
MTU4MzI5YTg1NTA0ZTIyODFkYmIzZjU2NjdiZjM0ZjdhLi5kNjI0YzA4ZGZhZTY4MTZiZTIxNzAy
ZmJmY2FmMDgyZGRhYmU1Y2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UmVzb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VC
dWZmZXIuaApAQCAtMjYsMTIgKzI2LDExIEBACiAjaWZuZGVmIFdlYlJlc291cmNlQnVmZmVyX2gK
ICNkZWZpbmUgV2ViUmVzb3VyY2VCdWZmZXJfaAogCisjaW5jbHVkZSAiU2hhcmVhYmxlUmVzb3Vy
Y2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi1jbGFzcyBTaGFyZWFibGVSZXNvdXJjZTsKLQogY2xhc3MgV2ViUmVzb3VyY2VC
dWZmZXIgOiBwdWJsaWMgV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXIgewogcHVibGljOgogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYlJlc291cmNlQnVmZmVyPiBjcmVhdGUoUGFzc1JlZlB0cjxTaGFy
ZWFibGVSZXNvdXJjZT4gcmVzb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJSZXNvdXJj
ZUJ1ZmZlcihyZXNvdXJjZSkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
ZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
ZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAKaW5kZXggNjE4YWIyYTE0M2FmZWRjNTVl
MWEzZWVlMmNhNDA3NjVkYmMxZWJmNy4uYzllNDkyZWI0NjE2OTc4Y2ZkMGU1MWFhZWNlNzU5YjEw
MjhlNjIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhl
Y3V0YWJsZVBhdGhFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoRWZsLmNwcApAQCAtNzQsNCArNzQsMTMgQEAgU3RyaW5nIGV4ZWN1dGFi
bGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCkKICAgICByZXR1cm4gd2ViS2l0UGx1Z2luUHJvY2Vzc05h
bWU7CiB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQ
YXRoT2ZOZXR3b3JrUHJvY2VzcygpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBT
dHJpbmcsIHdlYktpdE5ldHdvcmtQcm9jZXNzTmFtZSwgKGZpbmRQcm9jZXNzUGF0aChORVRXT1JL
UFJPQ0VTU05BTUUpKSk7CisKKyAgICByZXR1cm4gd2ViS2l0TmV0d29ya1Byb2Nlc3NOYW1lOwor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3Bw
CmluZGV4IDNhMzYzMzQ3ZjhlY2FiYzM1Mjc1ZmVjMGI2NTEzYjBhMzRjMjI4ODEuLmJiZDhiYTMx
NmQwOGZkMzc3NmJhYjZmZWJmMzEwMzY3YjAzMDA4N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5j
cHAKQEAgLTUzLDYgKzUzLDExIEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNz
KCkKICAgICAgICAgcGx1Z2luUGF0aCA9IG1fbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0
aW9uRGF0YS5nZXQoInBsdWdpbi1wYXRoIikudXRmOCgpOwogICAgICAgICBicmVhazsKICNlbmRp
ZgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgY2FzZSBOZXR3b3JrUHJvY2VzczoK
KyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3Mo
KS51dGY4KCk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5k
ZXggZWZhNTVlN2ZlNTEyOTk3ZDMwMTI2OGY1Mzk3ODE2OTYwZmVlNjQ5Ni4uOTlmMmM2NDE4ODEz
ZDNiYTVjYjA4MzcwY2ExZmU2ZmQyYWE2NDMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTI5LDE4
ICsyOSwyMiBAQAogI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKICNpbmNsdWRlICJBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgiCi0jaW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNs
dWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKICNpZiBVU0UoU0VDVVJJVFlf
RlJBTUVXT1JLKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGltUHJveHkuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCisjaW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2VuZGlmCisKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRp
b24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIGNvbm5lY3Rpb24oKSkKIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDAsNiArMTA0LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKIAogI2lmIFBM
QVRGT1JNKE1BQykKICAgICAgICAgcmVwbHktPnNlbmQoQ29yZUlQQzo6QXR0YWNobWVudCgwLCBN
QUNIX01TR19UWVBFX01PVkVfU0VORCkpOworI2VsaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMp
CisgICAgICAgIHJlcGx5LT5zZW5kKENvcmVJUEM6OkF0dGFjaG1lbnQoKSk7CiAjZWxzZQogICAg
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogI2VuZGlmCkBAIC0xNTcsNiArMTYzLDggQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyhjb25zdCBDb3JlSVBDOjoKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICByZXBseS0+c2VuZChD
b3JlSVBDOjpBdHRhY2htZW50KGNvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSwgTUFDSF9NU0df
VFlQRV9NT1ZFX1NFTkQpKTsKKyNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIHJl
cGx5LT5zZW5kKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICNlbHNlCiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9zb3VwL05ldHdvcmtQcm9jZXNzUHJveHlTb3VwLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45MzkwNTAwZTJjNGJmM2Q4YjkzMDdlNTY5YjRmOTYxZGIzMTlkYTMwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vz
c1Byb3h5U291cC5jcHAKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1By
b3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMm
IGxhdW5jaE9wdGlvbnMpCit7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb250
ZXh0U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291
cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTg0ZGU3NjRmYjZiZjU0ZGIxY2YwMzEwODIzODA2OTkwNjZkZTFl
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNv
bnRleHRTb3VwLmNwcApAQCAtMCwwICsxLDE1IEBACisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisKKyNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vz
cyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZGVyLmNwcAppbmRleCA3NmQ3ZjYyZGJkMmJhNjUxNWU2YWNhNTg0OWViNWRkYTMxMDQw
NjQ2Li4xM2NiMWNlN2FhZjA3ZTU2MzBiMjNlODdjZjFmYzViNWZkYjE0MWJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRl
ci5jcHAKQEAgLTgzLDcgKzgzLDkgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyhjb25zdCBSZXNvdXJjZVJlc3AKIHsKICAgICBM
T0coTmV0d29yaywgIihXZWJQcm9jZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJl
c3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyBmb3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxv
YWRlci0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0Nv
ZGUoKSk7CiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZUNvcHkocmVzcG9uc2UpOworI2lm
IFVTRShDRk5FVFdPUkspCiAgICAgcmVzcG9uc2VDb3B5LnNldENlcnRpZmljYXRlQ2hhaW4oY2Vy
dGlmaWNhdGVJbmZvLmNlcnRpZmljYXRlQ2hhaW4oKSk7CisjZW5kaWYKICAgICBtX2NvcmVMb2Fk
ZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZUNvcHkpOwogfQogCkBAIC0xMjMsMTAgKzEy
NSwxMiBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3Qg
U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYgaGFuZAogICAgIG1fY29yZUxvYWRlci0+ZGlkRmlu
aXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKIH0KIAorI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FV
VEhfQ0FMTEJBQ0spCiB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNl
LCBib29sJiByZXN1bHQpCiB7CiAgICAgcmVzdWx0ID0gbV9jb3JlTG9hZGVyLT5jYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZSk7CiB9CisjZW5kaWYK
IAogdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmgKaW5kZXggMjAxNGM2ZWE3YmNjNGE0YWFkY2Y2NjcxOTUzYjI0ODQ3N2Q4NjVjOC4uMWU1
NzQwMDg5ZjkxZDA5Yjg3NWE4NTE0OGNmYjM5ZTQwOWZlZDYzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTgw
LDcgKzgwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZhaWxSZXNvdXJjZUxvYWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlKGNv
bnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBkb3VibGUgZmluaXNoVGltZSk7CiAKKyNp
ZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZvaWQgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2UmLCBib29sJiByZXN1bHQpOworI2VuZGlmCiAKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkZXI+IG1fY29yZUxvYWRlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4K
aW5kZXggZWFkNTdhODUxMmEyZjFjYTUxMzAwZTFiNzJkZGFjZGMyMjM0YjNiMy4uNjIxMTVlNDEz
NDBiMzllZTk5M2MyN2UwMjU3ZTgwNTc2Y2I2ZGY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNz
YWdlcy5pbgpAQCAtMzEsNyArMzEsOSBAQCBtZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRlciBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkRmluaXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hU
aW1lKQogICAgIERpZEZhaWxSZXNvdXJjZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJv
cikKICAgICAKKyNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIENh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlIHByb3RlY3Rpb25TcGFjZSkgLT4gKGJvb2wgcmVzcG9uc2UpCisjZW5kaWYKIAogICAgIC8v
IERpZFJlY2VpdmVSZXNvdXJjZSBpcyBmb3Igd2hlbiB3ZSBoYXZlIHRoZSBlbnRpcmUgcmVzb3Vy
Y2UgZGF0YSBhdmFpbGFibGUgYXQgb25jZSwgc3VjaCBhcyB3aGVuIHRoZSByZXNvdXJjZSBpcyBj
YWNoZWQgaW4gbWVtb3J5CiAgICAgRGlkUmVjZWl2ZVJlc291cmNlKFdlYktpdDo6U2hhcmVhYmxl
UmVzb3VyY2U6OkhhbmRsZSByZXNvdXJjZSwgZG91YmxlIGZpbmlzaFRpbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2Vi
RXJyb3JzRWZsLmNwcAppbmRleCA5ZDhkZmRhMGRhYjc0OTIwNDM5MzUyZGFkOTU5NTUzYmRjZGFl
YWU1Li4zNDVkOWMwNWRlM2ZjZDNjN2U3YjAxYTkwNTI4NDk5NzRhYWJkYTU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZs
L1dlYkVycm9yc0VmbC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgogCisjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0Vycm9yc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Vycm9yLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03MCw0ICs3Miw5IEBAIFJlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKICAgICByZXR1cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNw
b25zZSk7CiB9CiAKK1dlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBX
ZWJDb3JlOjpLVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoV2ViRXJyb3I6
OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybC5zdHJpbmcoKSwgQVND
SUlMaXRlcmFsKCJJbnRlcm5hbCBlcnJvciIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA4NmZiYzhmNzdm
MjU5NmM1OWE4NGQ5OGU5MTYyZGEzNzM2MDRlY2ViLi5mNDVjNjRlNjc3MWVlMDRjMjVmMzhjMjIw
OWQyNWY4NzE3Y2JkMTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKQEAgLTM0MiwxMSArMzQyLDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uKCkKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9u
SWRlbnRpZmllci5wb3J0KCkpOwotICAgIGlmIChDb3JlSVBDOjpDb25uZWN0aW9uOjppZGVudGlm
aWVySXNOdWxsKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuOworI2VsaWYg
VVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllciA9IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5y
ZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAjZW5kaWYKKyAgICBpZiAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzTnVsbChj
b25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKICAgICBtX25ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rp
b25JZGVudGlmaWVyKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvdW5peC9OZXR3b3JrTWFpblVuaXguY3BwIGIvU291cmNl
L1dlYktpdDIvdW5peC9OZXR3b3JrTWFpblVuaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0MjljN2FiMTAw
OGJhZWNlOTFhZTc2ZGRiZjE0ZTQ0NzFmOTQ1YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi91bml4L05ldHdvcmtNYWluVW5peC5jcHAKQEAgLTAsMCArMSwxMSBAQAorI2luY2x1
ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn
dikKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc01haW4oYXJnYywgYXJndik7
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2Ug
Yi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQppbmRleCBiZDFiN2UyOTA4MjQ0NWY2ZmRh
OGU1NThmZTU1ZmRiNTBjYzNmZmU5Li4yYjhlZWUxYzc1ZTg2MjRhMzM1OWFmMzg3YjJjMzY3Mzc3
ZWE5ZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9T
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMTQ2LDYgKzE0NiwxMCBAQCBpZiAoRU5B
QkxFX1dFQktJVDIgQU5EIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHNldChFTkFC
TEVfUExVR0lOX1BST0NFU1MgMSkKIGVuZGlmICgpCiAKK2lmIChFTkFCTEVfV0VCS0lUMikKKyAg
ICBvcHRpb24oRU5BQkxFX05FVFdPUktfUFJPQ0VTUyAiRW5hYmxlIG5ldHdvcmsgcHJvY2VzcyIg
T04pCitlbmRpZiAoKQorCiBpZiAoTk9UIEVOQUJMRV9TVkcpCiAgICAgc2V0KEVOQUJMRV9TVkdf
Rk9OVFMgMCkKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5k
ZXggM2I3MDU3MDU0MzFlMTg0Mjk2YzkwZmMzZDAwYmFhZDljMTQyNzIyYS4uNzJkMjYyNjdmZjcy
MjJjYmUwMmJiNmQ3YTFjMDViODM2NjcwYWM4MCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTA0ICBCYWxhenMgS2VsZW1lbiAg
PGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNldCB1cCBOZXR3b3Jr
UHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKyAgICAgICAgQWRkIHRoZSBFTkFCTEVf
TkVUV09SS19QUk9DRVNTIGZsYWcuCisKIDIwMTMtMDItMDIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8
cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NNYWtlXSBBZG9wdCB0aGUgV2luQ0UgcG9y
dCB0byBuZXcgQ01ha2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187112</attachid>
            <date>2013-02-07 08:08:52 -0800</date>
            <delta_ts>2013-02-08 08:50:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108832-20130207170519.patch</filename>
            <type>text/plain</type>
            <size>65925</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM2Njk2M2Y4MmNjODIx
MGEyMTE5MWU5MWIzYzVhOWQ1ZTNiYTM1MS4uZTMwYjJkNmYyNmQ4MTZkNjdlYTI2NjA0MTczMWM4
NzU3ZDgwMWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTA3ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNl
dCB1cCBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRGVmaW5lIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQcml2YXRlQnJvd3Np
bmdTZXNzaW9uIGZvciBzb3VwIGFzIHdlbGwuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChOZXR3b3JrU3RvcmFnZVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKwogMjAxMy0wMi0wNyAgQ2hhbmdTZW9rIE9oICA8c2hp
dmFtaWRvd0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS11bQUNdIEltcGxlbWVudCBvcGFjaXR5
IGFuaW1hdGlvbiB3aXRoIGNsdXR0ZXIgYWMgYmFja2VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDVmZjkwMmQ5
YzgyOTQ1Zjg5YjcwMTc1OTFkN2Q5MTdmZjA4ZDAxMGYuLjBlOWIxYmU1MWFlNTdiZTU3YWQ3NDA1
OWQ3MThhYjM0ZTEzODU4MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNzQgQEAKKzIwMTMtMDIt
MDcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXSzJd
W0VGTF0gU2V0IHVwIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIEVGTCBidWlsZCB3aXRoIEVOQUJMRV9ORVRXT1JLX1BS
T0NFU1MuIEJ5IGRlZmF1bHQgaXQgaXMgZGlzYWJsZWQuCisgICAgICAgIFRoZSBwYXRjaCBhZGRz
IHRoZSBuZWNlc3NhcnkgcGxhdGZvcm0gc3BlY2lmaWMgYml0cyBhbmQgc3R1YnMgZm9yCisgICAg
ICAgIFVOSVhfRE9NQUlOX1NPQ0tFVFMsIHRoZSBTT1VQIG5ldHdvcmsgYmFja2VuZCBhbmQgRUZM
IGFuZCBpdCBhZGRzIHRoZQorICAgICAgICByZWxhdGVkIGZpbGVzIHRvIHRoZSBDTWFrZSBidWls
ZCBzeXN0ZW0uIFNvbWUgcmVmYWN0b3Jpbmcgd2VyZSBhbHNvIG1hZGUuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vzcyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcyk6CisgICAgICAgIEFkZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMgY29kZSBmb3Ig
VU5JWF9ET01BSU5fU09DS0VUUy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOiBGaXggbWlzdHlwaW5nIGZvciBjYXNlCisgICAgICAg
IHNlbnNpdGl2ZSBzeXN0ZW1zLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCk6CisgICAgICAgIFRoaXMgc2hvdWxkIGJlIGEgY3Jvc3MtcGxhdGZvcm0gaW50ZXJmYWNl
IHNvIEkgbGlmdGVkIHRoZSBoZWFkZXIgZnJvbSB0aGUgbWFjIGRpcmVjdG9yeS4KKyAgICAgICAg
UmVtb3ZlZCBtYWMgc3BlY2lmaWMgYXJndW1lbnRzIGZyb20gY29uc3RydWN0b3IsIGFkZGVkIHNl
dHRlcnMgaW5zdGVhZC4gQWRkZWQgU291cCBzcGVjaWZpYyBiaXRzLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vzc0VmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9y
SG9zdCk6CisgICAgICAgIE9ubHkgc3R1YnMgZm9yIG5vdy4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFs
aXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAgICAgQ29waWVkIGhh
cmQtY29kZWQgY29uc3RhbnQgZnJvbSBSZXNvdXJjZVJlcXVlc3RTb3VwLmNwcCB3aXRoIGNvbW1l
bnQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppbml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VT
ZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lv
bik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJv
d3NpbmdTZXNzaW9uKToKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgZm9yIHNvdXAs
IHdpdGhvdXQgcHJpdmF0ZSBicm93c2luZyBzdXBwb3J0IHlldC4KKworICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXgu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzTWFpbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3Vu
aXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdCk6IENvbW1vbiBlbnRy
eSBwb2ludCBmb3IgVW5peCBwb3J0cy4gQ29ycmVjdCBSdW5Mb29wIGluaXRpYWxpemF0b24gZm9y
IEVGTCBoYXMgYmVlbiBwb3Nwb25lZC4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgor
ICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgICogU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmg6IENoYW5nZWQgZm9yd2Fy
ZCBkZWNsYXJhdGlvbiBvZiBTaGFyZWFibGVSZXNvdXJjZSB0byBhY3R1YWwKKyAgICAgICAgaW5j
bHVkZSBiZWNhdXNlIEdDQyByZXF1aXJlcyBhIGRlZmluaXRpb24gb2YgdGhlIHR5cGUgZm9yIHBh
c3NpbmcgaXQgaW4gYSBQYXNzT3duUHRyLgorICAgICAgICAqIFNoYXJlZC9lZmwvUHJvY2Vzc0V4
ZWN1dGFibGVQYXRoRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
OmV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0xh
dW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorCisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcyk6CisgICAgICAgIEd1YXJkcyBhbmQgaGFuZGxlIFVOSVhfRE9NQUlOX1NP
Q0tFVFMgY2FzZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1By
b2Nlc3NQcm94eVNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvc291cC9XZWJD
b250ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNv
dXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRp
YWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVS
ZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJl
c291cmNlTG9hZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIubWVzc2FnZXMuaW46CisgICAgICAgIEFkZGVkIGd1YXJkcyB3aGVyZSBpdCBpcyBhcHBy
b3ByaWF0ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVy
cm9yc0VmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmludGVybmFsRXJyb3IpOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAg
ICAgICBIYW5kbGUgVU5JWF9ET01BSU5fU09DS0VUUyBjYXNlLgorICAgICAgICAqIHVuaXgvTmV0
d29ya01haW5Vbml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJl
c291cmNlQnVmZmVyLmguCisgICAgICAgIChtYWluKTogQ29tbW9uIHN0dWIgZm9yIHRoZSBleGVj
dXRhYmxlIGZvciB1bml4IHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaC4KKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRMb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3luY05ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2VmbC9OZXR3b3JrUHJv
Y2Vzc0VmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJj
ZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFs
aXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0Vm
bC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
Ojppbml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01h
aW5Vbml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc01haW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAg
ICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGguaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogU2hhcmVkL1dlYlJlc291
cmNlQnVmZmVyLmg6CisgICAgICAgICogU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhF
ZmwuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6ZXhlY3V0YWJsZVBh
dGhPZk5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1By
b2Nlc3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6
bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om5ldHdv
cmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291
cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZl
ci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExh
dW5jaE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNw
cDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgu
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQ
cm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0
aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZGVyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICog
dW5peC9OZXR3b3JrTWFpblVuaXguY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTA2ICBC
YWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXVtVbml4
XVtSZWZhY3RvcmluZ10gR2V0IHJpZCBvZiBzb2NrZXQgY3JlYXRpb24gY29kZSBkdXBsaWNhdGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uaAppbmRleCA3YjE2MWEwMGM5NzYwYjVjYzEyNzA4YTY3NTJmOWExZjNmNmU4
YjhmLi4xZmZlNmVlY2ZjZTkwNDg0MmRkZWM5Nzg1ZmIzOTZjY2QzZWJiOTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogI2VsaWYgVVNFKFNPVVApCiAgICAgdm9p
ZCBzZXRTb3VwU2Vzc2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nlc3Npb24gPSBzZXNz
aW9uOyB9CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9z
ZXNzaW9uOyB9CisgICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBjb25zdCB7IHJl
dHVybiBtX2lzUHJpdmF0ZTsgfQogI2Vsc2UKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oTmV0
d29ya2luZ0NvbnRleHQqKTsKICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CkBAIC03Myw2
ICs3NCw3IEBAIHByaXZhdGU6CiAjZWxpZiBVU0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNl
c3Npb24oU291cFNlc3Npb24qKTsKICAgICBTb3VwU2Vzc2lvbiogbV9zZXNzaW9uOworICAgIGJv
b2wgbV9pc1ByaXZhdGU7CiAjZWxzZQogICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9j
b250ZXh0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXgg
ZGQ1NmUyYjg5ZjUxY2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFkMC4uYzI5YTRjMDY0NjcyZGFh
MWVmZWUxMWRhN2U0YzlkNjFjNTVkY2RjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25T
b3VwLmNwcApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNvdXBTZXNzaW9uKiBzZXNzaW9u
KQogICAgIDogbV9zZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX2lzUHJpdmF0ZShmYWxzZSkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBhZjZiMTQxYmUwMmE0MzIzNTllZTQ2MjUzMGQy
MDI2YmIwNWI2N2UxLi45MTYzNDFiZWJmNzY2OGY1ZGQ4N2FjNTgxZWNjN2NmNDg4NTM0MGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMSw1ICsxLDYgQEAKIHNldChXZWJLaXQyX0lOQ0xVREVf
RElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0iCisgICAgIiR7V0VCS0lUMl9ESVJ9L05l
dHdvcmtQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybSIKICAgICAiJHtXRUJL
SVQyX0RJUn0vUGxhdGZvcm0vQ29yZUlQQyIKICAgICAiJHtXRUJLSVQyX0RJUn0vUGx1Z2luUHJv
Y2VzcyIKQEAgLTExLDYgKzEyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9OZXR3
b3JrIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zIgogICAgICIke1dFQktJVDJfRElS
fS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL1Bs
dWdpbnMvTmV0c2NhcGUveDExIgpAQCAtMjMsNiArMjUsNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Eb3dubG9hZHMiCiAg
ICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9MYXVuY2hlciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
IgogICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL1N0b3JhZ2UiCkBAIC00MCw2ICs0Myw3IEBAIHNldChXZWJLaXQyX0lO
Q0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTGF1bmNoaW5nIgog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisgICAgIiR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKQEAgLTEx
OCw2ICsxMjIsMTQgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBzZXQo
V2ViS2l0Ml9TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHAKKyAgICBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKyAgICBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAK
KyAgICBOZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorCiAgICAg
UGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3BwCiAgICAgUGxhdGZv
cm0vV29ya1F1ZXVlLmNwcApAQCAtMTU4LDYgKzE3MCw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMK
ICAgICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogICAgIFNoYXJlZC9TZXNzaW9uU3Rh
dGUuY3BwCiAgICAgU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKyAgICBTaGFyZWQvU2hhcmVh
YmxlUmVzb3VyY2UuY3BwCiAgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAogICAgIFNoYXJl
ZC9VcGRhdGVJbmZvLmNwcAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmNwcApAQCAtMTkw
LDYgKzIwMyw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKICAgICBTaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCiAgICAg
U2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKKyAgICBTaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIu
Y3BwCiAgICAgU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYlVSTFJlcXVl
c3QuY3BwCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtMjIzLDYgKzIzNyw5IEBA
IHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJD
b29yZGluYXRlZFN1cmZhY2UuY3BwCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2Vi
Q3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcAogCisgICAgU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisgICAgU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisKICAgICBTaGFyZWQvUGx1Z2lucy9OUElkZW50
aWZpZXJEYXRhLmNwcAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVy
LmNwcAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCkBAIC0zNTUsNiArMzcy
LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5jcHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCisKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC0zNjcsNiArMzg2LDggQEAgc2V0KFdlYktpdDJf
U09VUkNFUwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKICAg
ICBVSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCiAKKyAgICBV
SVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKKwogICAgIFdlYlByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKIApA
QCAtNDI5LDYgKzQ1MCwxMCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQcm9jZXNz
L05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisgICAgV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKyAgICBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCkBAIC00OTUsNiArNTIwLDkg
QEAgc2V0KFdlYktpdDJfU09VUkNFUwogKQogCiBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxF
UworICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKwog
ICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAg
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vz
cy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNTI3LDYgKzU1NSw4IEBAIHNl
dChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01NDksNiArNTc5LDkgQEAg
c2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNo
ZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgogCisgICAgV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorICAgIFdlYlByb2Nlc3Mv
TmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9O
ZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5k
ZXggMGQ1MmI4ZjNlNzQ1YjVjMDI1NjAzOGMyYjFhYWNlOGZmZmVhMmNlMy4uNzNlZmU2ZGYyMGVm
ZDNmNTM0M2RlMzNiNDZmMDY2YmYyNzViOWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2NCw5IEBAIE5ldHdv
cmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgYWRkU3VwcGxlbWVudDxBdXRoZW50
aWNhdGlvbk1hbmFnZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigp
OworI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogICAgIGFkZFN1cHBsZW1lbnQ8Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyPigpOworI2VuZGlmCiB9CiAKIE5ldHdvcmtQcm9jZXNzOjp+TmV0d29y
a1Byb2Nlc3MoKQpAQCAtMTgwLDggKzE4MywxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVh
dGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAKICAgICBDb3JlSVBDOjpBdHRhY2ht
ZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOwog
ICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OkRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNsaWVudFBv
cnQpLCAwKTsKLSNlbHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbGlmIFVTRShVTklYX0RP
TUFJTl9TT0NLRVRTKQorICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgc2VydmVy
SWRlbnRpZmllciwgY2xpZW50SWRlbnRpZmllcjsKKyAgICBib29sIHN1Y2Nlc3MgPSBDb3JlSVBD
OjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVycyhzZXJ2ZXJJZGVu
dGlmaWVyLCBjbGllbnRJZGVudGlmaWVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1
Y2Nlc3MpOworCisgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjb25u
ZWN0aW9uID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShzZXJ2ZXJJZGVu
dGlmaWVyKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5y
ZWxlYXNlKCkpOworCisgICAgQ29yZUlQQzo6QXR0YWNobWVudCBjbGllbnRTb2NrZXQoY2xpZW50
SWRlbnRpZmllcik7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY2xpZW50U29ja2V0KSwgMCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcAppbmRleCA4YzMzMzJiNTgxMzcyM2YzOGE2YTdmZDg4Mjc3ZGZhNTJmYTA2NDlhLi5h
ZWE1NjRmZTBiYjNiNjQ1OWZmMzVhY2RjOWRkODgwMTNmYjYxZjg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcApAQCAtNCw3ICs0LDcgQEAKICNpbmNsdWRlICJIb3N0UmVjb3JkLmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Njb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNl
TG9hZGVyLmgiCiAjaW5jbHVkZSAiU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHAKaW5kZXggN2Y0YmJkZDgzNDY3ZGM5ZTYwMzhlY2NkNDYyZDhlNTE4ODJkYzE4Zi4uMjIy
YzM0YWZjNzZmZmJjMWFlMWM5ZjMyNThhNTI4MmJmM2ZhYjk3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC03Nyw4ICs3Nyw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAg
Ly8gRXhwbGljaXQgcmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6cmVzb3VyY2VIYW5kbGVTdG9wcGVkKCkKICAgICByZWYoKTsKICAgICAKLSAgICAv
LyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQg
d2l0aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93c2luZ01v
ZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKKyAgICAv
LyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBTZXQgcGxhdGZvcm0gc3BlY2lmaWMgc2V0dGluZ3Mu
CisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVh
dGUoaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QoKSk7CiAKICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlkNWJiOGYzNmExNjI1N2U1M2U5MGViYmU0NjMxZWM1NmJl
ZTg1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShib29sIHByaXZh
dGVCcm93c2luZ0VuYWJsZWQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dCgpOworCisgICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFn
ZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBl
bnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveVBy
aXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKworICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsgLy8gQ2FuIG9ubHkgYmUgY2Fs
bGVkIHdoZW4gdGhlIHNlc3Npb24gZXhpc3RzLgorCisgICAgdmlydHVhbCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBPVkVSUklERQorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9vbCBw
cml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpCisgICAgICAgIDogbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZhdGVC
cm93c2luZ0VuYWJsZWQpCisgICAgICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0KHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisg
ICAgeyB9CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3Rv
cmFnZVNlc3Npb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IE9WRVJSSURFOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2V0TmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoYm9vbCB2YWx1ZSkgeyBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
ID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQo
Ym9vbCB2YWx1ZSkgeyBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgPSB2YWx1ZTsg
fQorCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQo
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE5TT3BlcmF0aW9uUXVldWUgKnNjaGVkdWxl
ZE9wZXJhdGlvblF1ZXVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KSBjb25zdCBPVkVSUklERTsKKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisgICAgdmlydHVhbCB1
aW50NjRfdCBpbml0aWF0aW5nUGFnZUlEKCkgY29uc3Q7CisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7CisgICAgYm9vbCBtX2xv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7CisjZW5kaWYKKworICAgIGJvb2wgbV9wcml2
YXRlQnJvd3NpbmdFbmFibGVkOworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0OworfTsKKworfQorCisjZW5kaWYgLy8gUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU3luY05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9T
eW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZjgyZDE0OWMyZWJkMDBmMDA1ZGUz
YTk2YTNlNGY5ZTEwMWE1YWZiLi5mNjMyOTUyNGM3MjRmZTJmNGVmOTIyZmFiNWYwMjE3YTIwMzhj
YTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9T
eW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNTgsOCArNTgsOCBAQCB2b2lkIFN5bmNO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlOwogICAgIFZlY3RvcjxjaGFyPiBkYXRhOwogICAgIAotICAgIC8vIEZJWE1FIChOZXR3b3Jr
UHJvY2Vzcyk6IENyZWF0ZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCB3aXRoIGFjdHVhbCBzZXR0
aW5ncy4KLSAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5ldHdvcmtpbmdDb250
ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGluUHJp
dmF0ZUJyb3dzaW5nTW9kZSgpLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KCkpOworICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFNldCBwbGF0Zm9ybSBzcGVj
aWZpYyBzZXR0aW5ncy4KKyAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5ldHdv
cmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShpblByaXZhdGVC
cm93c2luZ01vZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgp
KTsKIAogICAgIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ODlhNzk2MjkzMTMzMWQ2OWQ3YjhlYzVkNzI2YWFiMTlhNmJhNmRhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9j
ZXNzRWZsLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3MuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNo
ZU1vZGVsKENhY2hlTW9kZWwpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBO
ZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0
IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTYwZDA0NjgxYzg0
YzBjOTYxMzkxYzRiMjk3MGRkZWU4YWRiM2YyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAotI2RlZmluZSBSZW1v
dGVOZXR3b3JraW5nQ29udGV4dF9oCi0KLSNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250
ZXh0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShib29sIG5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgbG9jYWxG
aWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwotICAgIH0KLSAgICB2aXJ0dWFs
IH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwotCi0gICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0
ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKLSAg
ICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7Ci0gICAgc3RhdGlj
IHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKLQotICAgIHN0YXRpYyBXZWJD
b3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsgLy8g
Q2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gZXhpc3RzLgotCi0gICAgdmlydHVh
bCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBP
VkVSUklERTsKLQotcHJpdmF0ZToKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwotCi0gICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBj
b25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBOU09wZXJhdGlvblF1ZXVlICpzY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgT1ZFUlJJREU7Ci0KLSAg
ICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7Ci0gICAgYm9vbCBtX2xvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQ7Ci0gICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7
Ci0gICAgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7Ci19
OwotCi19Ci0KLSNlbmRpZiAvLyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQubW0KaW5kZXggNzgxOTUzM2E1MjliNTZhZjQwYTBjYjllYzZhZTFjOWM3OTFjYTJl
Yi4uMGVlNTY4ZmVhM2RkMDIxNTYyZGUxYjczZmZlNDgzZDE1YTE0YTdhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5tbQpAQCAtNDIsMTkgKzQyLDYgQEAgc3RhdGljIE93blB0cjxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+JiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpCiAgICAgcmV0dXJu
IHNlc3Npb247CiB9CiAKLWJvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX3No
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7Ci19Ci0KLVJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KQotICAgIDogbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhuZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcykKLSAgICAsIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChsb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKQotICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKLXsKLX0KLQogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6On5SZW1vdGVOZXR3b3JraW5n
Q29udGV4dCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjdiYWI3MjZiNDIwZTY3NGQzMGQ0NGFhOWI1MGY0NDAyNTkzY2ZlOWIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit1bnNpZ25lZCBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwbGF0
Zm9ybUluaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQoreworICAg
IC8vIFNlZTogUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICByZXR1cm4gMTAwMDA7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHRTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2RkNGQzNTIzNThlZWY4YjJlY2MyNDMyNDI4Nzk0N2M5
ZGNmZGEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
c291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKKyNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5j
bHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90
ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQoKQoreworfQorCiti
b29sIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwordWludDY0X3QgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmluaXRpYXRp
bmdQYWdlSUQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKK3ZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0
b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2
YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAoreworICAgIHJl
dHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworfQor
CitOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworfQorCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZTdlZmIyMjI3NGU3ODMzNWI4MmI4YmU1YTc0NmM0OGE3ODQ4ZDRlMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0
d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgiCisKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL05ldHdvcmtQcm9jZXNzLmg+
CisjaW5jbHVkZSA8ZXJyb3IuaD4KKyNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRp
bmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgor
CisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0VYUE9SVCBp
bnQgTmV0d29ya1Byb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCit7CisgICAgaWYg
KGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuIDE7CisKKyNpZiBQTEFURk9STShHVEspCisgICAg
Z3RrX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNlbmRpZgorCisgICAgLy8gRklYTUU6IEV2ZW50IGxv
b3AgaXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseSBmb3IgRUZMLiBGb3IgRUZMIHdlIHNob3Vs
ZCBzaG91bGQgZWl0aGVyCisgICAgLy8gaW5pdGlhbGl6ZSBlY29yZSBvciB1c2UgdGhlIGdsaWIt
b25seSBSdW5Mb29wIGltcGxlbWVudGF0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MuCisKKyAg
ICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhy
ZWFkKCk7CisKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIC8v
IEZJWE1FOiBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCisKKyAgICBlcnJubyA9IDA7CisgICAgbG9u
ZyBpbnQgc29ja2V0ID0gc3RydG9sKGFyZ3ZbMV0sIDAsIDEwKTsKKyAgICBpZiAoZXJybm8pCisg
ICAgICAgIHJldHVybiAxOworCisgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciA9IGlu
dChzb2NrZXQpOworCisgICAgTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUocGFy
YW1ldGVycyk7CisKKyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIHJldHVybiAwOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQ
cm9jZXNzTWFpblVuaXguaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0
d29ya1Byb2Nlc3NNYWluVW5peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMGMwNGIxNTBmNGNkNGVkMTJhOTk0
ODU4ZjQwZjRjMWRhZDhjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaApAQCAtMCwwICsxLDM4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBTemVnZWQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0d29ya1Byb2Nlc3NN
YWluVW5peF9oCisjZGVmaW5lIE5ldHdvcmtQcm9jZXNzTWFpblVuaXhfaAorCisjaW5jbHVkZSA8
V2ViS2l0Mi9XS0Jhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0VYUE9SVCBpbnQg
TmV0d29ya1Byb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pOworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlByb2Nlc3NNYWluRWZsX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggZjZjZTE3NmZkM2E0M2ZlZGQ1ZDM0YTc2ZTlkNjViYTgxMGI3MTMz
ZS4uOGJmZGM4M2E0MTE5MWNjNjEzMGEwMzJhMGY3YTZiNmM5NjFjZjNhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTEsNCArMSw5IEBACiBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJD
RVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwCisgICAgTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyU291cC5jcHAKKyAg
ICBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKyAg
ICBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwCisKICAgICBQ
bGF0Zm9ybS9lZmwvTG9nZ2luZ0VmbC5jcHAKICAgICBQbGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNw
cAogICAgIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0xMDksNiArMTE0LDggQEAg
bGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJQcm9jZXNz
UHJveHlFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAogCisgICAgVUlQcm9j
ZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCisKICAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2Vy
dmVyL2VmbC9XZWJJbnNwZWN0b3JTZXJ2ZXJFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9zb3VwL1dlYlNvY2tldFNlcnZlclNvdXAuY3BwCiAKQEAgLTExOCw2ICsxMjUsOCBA
QCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9l
ZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAogCisgICAgVUlQcm9jZXNzL05ldHdvcmsvc291cC9O
ZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKKwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgv
UGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdp
blByb2Nlc3NQcm94eVVuaXguY3BwCiAKQEAgLTE2Myw2ICsxNzIsNyBAQCBsaXN0KEFQUEVORCBX
ZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
bmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
TmV0d29ya1Byb2Nlc3MvdW5peCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Rvd25sb2Fk
cy9zb3VwIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvZWZsIgogICAgICIke1dFQktJVDJf
RElSfS9TaGFyZWQvc291cCIKQEAgLTMyMyw2ICszMzMsMjcgQEAgaWYgKEVOQUJMRV9QTFVHSU5f
UFJPQ0VTUykKICAgICBpbnN0YWxsKFRBUkdFVFMgJHtQbHVnaW5Qcm9jZXNzX0VYRUNVVEFCTEVf
TkFNRX0gREVTVElOQVRJT04gIiR7RVhFQ19JTlNUQUxMX0RJUn0iKQogZW5kaWYgKCkgIyBFTkFC
TEVfUExVR0lOX1BST0NFU1MKIAoraWYgKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MpCisgICAgc2V0
KE5ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRSBOZXR3b3JrUHJvY2VzcykKKyAgICBsaXN0
KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dF
QktJVDJfRElSfS9OZXR3b3JrUHJvY2VzcyIKKyAgICApCisKKyAgICBpbmNsdWRlX2RpcmVjdG9y
aWVzKCR7TmV0d29ya1Byb2Nlc3NfSU5DTFVERV9ESVJFQ1RPUklFU30pCisKKyAgICBsaXN0KEFQ
UEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L3VuaXgv
TmV0d29ya01haW5Vbml4LmNwcAorICAgICkKKworICAgIHNldChOZXR3b3JrUHJvY2Vzc19MSUJS
QVJJRVMKKyAgICAgICAgJHtXZWJLaXQyX0xJQlJBUllfTkFNRX0KKyAgICApCisKKyAgICBhZGRf
ZXhlY3V0YWJsZSgke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0gJHtOZXR3b3JrUHJv
Y2Vzc19TT1VSQ0VTfSkKKyAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHtOZXR3b3JrUHJvY2Vz
c19FWEVDVVRBQkxFX05BTUV9ICR7TmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTfSkKKyAgICBpbnN0
YWxsKFRBUkdFVFMgJHtOZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9IERFU1RJTkFUSU9O
ICIke0VYRUNfSU5TVEFMTF9ESVJ9IikKK2VuZGlmICgpCisKIGluY2x1ZGVfZGlyZWN0b3JpZXMo
JHtUSElSRFBBUlRZX0RJUn0vZ3Rlc3QvaW5jbHVkZSkKIAogc2V0KEVXSzJVbml0VGVzdHNfTElC
UkFSSUVTCkBAIC0zNTMsNiArMzg0LDcgQEAgYWRkX2RlZmluaXRpb25zKC1EVEVTVF9SRVNPVVJD
RVNfRElSPVwiJHtURVNUX1JFU09VUkNFU19ESVJ9XCIKICAgICAtRExJQkVYRUNESVI9XCIke0NN
QUtFX0lOU1RBTExfUFJFRklYfS8ke0VYRUNfSU5TVEFMTF9ESVJ9XCIKICAgICAtRFdFQlBST0NF
U1NOQU1FPVwiJHtXZWJQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX1cIgogICAgIC1EUExVR0lOUFJP
Q0VTU05BTUU9XCIke1BsdWdpblByb2Nlc3NfRVhFQ1VUQUJMRV9OQU1FfVwiCisgICAgLURORVRX
T1JLUFJPQ0VTU05BTUU9XCIke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX1cIgogKQog
CiBhZGRfbGlicmFyeShld2syVW5pdFRlc3RVdGlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDVmYmYzMjAxODExMDU1ZTM4NGFiZWRiNmQz
ZGQ1ZGFmMWM3Yjc0ZGQuLmQ3OGViY2RkZWJhOTZlNWE5YTMwMWVjN2U4Y2Q1MjM3NDlkYmRlMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGgu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAg
LTMyLDYgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFN0cmluZyBleGVjdXRhYmxlUGF0
aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCk7
CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0
d29ya1Byb2Nlc3MoKTsKKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJl
c291cmNlQnVmZmVyLmgKaW5kZXggYjQ3ZjMxODE1ODMyOWE4NTUwNGUyMjgxZGJiM2Y1NjY3YmYz
NGY3YS4uZDYyNGMwOGRmYWU2ODE2YmUyMTcwMmZiZmNhZjA4MmRkYWJlNWNiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKQEAgLTI2LDEyICsyNiwxMSBAQAog
I2lmbmRlZiBXZWJSZXNvdXJjZUJ1ZmZlcl9oCiAjZGVmaW5lIFdlYlJlc291cmNlQnVmZmVyX2gK
IAorI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2hhcmVhYmxlUmVz
b3VyY2U7Ci0KIGNsYXNzIFdlYlJlc291cmNlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OlJlc291
cmNlQnVmZmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZXNvdXJjZUJ1
ZmZlcj4gY3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IHJlc291cmNlKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViUmVzb3VyY2VCdWZmZXIocmVzb3VyY2UpKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwu
Y3BwCmluZGV4IDYxOGFiMmExNDNhZmVkYzU1ZTFhM2VlZTJjYTQwNzY1ZGJjMWViZjcuLmM5ZTQ5
MmViNDYxNjk3OGNmZDBlNTFhYWVjZTc1OWIxMDI4ZTYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAKQEAgLTc0
LDQgKzc0LDEzIEBAIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCiAgICAg
cmV0dXJuIHdlYktpdFBsdWdpblByb2Nlc3NOYW1lOwogfQogCisjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB3ZWJLaXROZXR3b3JrUHJvY2Vzc05h
bWUsIChmaW5kUHJvY2Vzc1BhdGgoTkVUV09SS1BST0NFU1NOQU1FKSkpOworCisgICAgcmV0dXJu
IHdlYktpdE5ldHdvcmtQcm9jZXNzTmFtZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwv
UHJvY2Vzc0xhdW5jaGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAppbmRleCBmOWIzYmFjZTZlYTE2YmU4M2I0OWU5
NGVjZmViNzAxYmM4YWI0OWMwLi4zZGZmNWVkNDQwNTkyMTI5MjRlZWQwYmFkNDI4NjcyNWQ4ZGZh
MTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1By
b2Nlc3NMYXVuY2hlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCkBAIC01MSw2ICs1MSwxMSBAQCB2b2lkIFBy
b2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHBsdWdpblBhdGggPSBtX2xh
dW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4tcGF0aCIpLnV0
ZjgoKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQorICAgIGNhc2UgTmV0d29ya1Byb2Nlc3M6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhl
Y3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCkudXRmOCgpOworICAgICAgICBicmVhazsKKyNl
bmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQyZTIwNWZkNmI3NDJhOWRiYjNhMmE4NmNh
MTljM2QwZTllZGI5NTMuLjNjMDkwZmNlZjhjM2Q5NmZjZjliOTNhZWI3NDRmMzVkMmM5YTQyZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yOSwxOCArMjksMjIgQEAKICNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgot
I2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVu
TG9vcC5oPgogCiAjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKICNpbmNsdWRlICJTZWNJdGVt
U2hpbVByb3h5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQorI2lu
Y2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNlbmRpZgorCiAj
ZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0
aW9uLCBjb25uZWN0aW9uKCkpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTAwLDYg
KzEwNCw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVk
T3JGYWlsZWRUb0xhdW5jaCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHJlcGx5LT5z
ZW5kKENvcmVJUEM6OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNl
bGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXBseS0+c2VuZChDb3JlSVBD
OjpBdHRhY2htZW50KCkpOwogI2Vsc2UKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRp
ZgpAQCAtMTUwLDYgKzE1Niw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgQ29yZUlQQzo6CiAKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgcmVwbHktPnNlbmQoQ29yZUlQQzo6QXR0YWNobWVudChjb25uZWN0aW9u
SWRlbnRpZmllci5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxpZiBVU0Uo
VU5JWF9ET01BSU5fU09DS0VUUykKKyAgICByZXBseS0+c2VuZChjb25uZWN0aW9uSWRlbnRpZmll
cik7CiAjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNv
dXAuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJv
Y2Vzc1Byb3h5U291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UwZDIyNWRlMjlkMTgxZmFhN2M1ZWUwMjEx
MDY5YjkxZGM5Yjg3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hP
cHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sK
K30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
Y2I5Y2RmM2RhNmQ2ZjAyYzQ1ZjQwZWI1ZTc4MWRkYzkyYjVkZGJmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCkBAIC0w
LDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlICJO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MWM1OWRmMTNjOWYxZmU1YTA0MjM1NGFlMmQzNDk4ZjI3ZDg4MmI1NC4uZDg5NzQ4ZjZiMTkwYzY2
MGE3ZDQ3MjUzZDc1MjM4YzM4YzA5OTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzMzMyw2ICszMzMzLDcgQEAKIAkJCQk1
MUZEMThCNDE2NTFGQkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi8sCiAJ
CQkJNTE4MjlEQTMxNjM3QzcwQzAwMDk1M0Q2IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwICovLAogCQkJCTUxODI5REE0MTYzN0M3MEMwMDA5NTNENiAvKiBOZXR3b3JrUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmggKi8sCisJCQkJRTFCNzg0NzAxNjNGMjQ2OTAwMDdCNjkyIC8qIFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJNTE5QjRGRjIxNkE5RUE5NzAwNjY4NzRE
IC8qIFNjaGVkdWxhYmxlTG9hZGVyLmNwcCAqLywKIAkJCQk1MTlCNEZGMzE2QTlFQTk3MDA2Njg3
NEQgLyogU2NoZWR1bGFibGVMb2FkZXIuaCAqLywKIAkJCQk1MTgxNUI5RDE2QTYyMjIxMDA1NDUw
MUYgLyogU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgKi8sCkBAIC0zMzQ3LDcgKzMzNDgs
NiBAQAogCQkJCUUxN0FFMkMxMTZCOUMxMzkwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtQcm9jZXNzLnNiLmluICovLAogCQkJCTUxQThBNjE1MTYyN0YzRjkwMDBEOTBFOSAvKiBO
ZXR3b3JrUHJvY2Vzc01hYy5tbSAqLywKIAkJCQk1MTJDMDY4RjE2MzkwRTY5MDBBQkI5MTEgLyog
TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlck1hYy5tbSAqLywKLQkJCQlFMUI3ODQ3MDE2M0Yy
NDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQlFMUI3ODQ3
MjE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IG1hYzsKQEAgLTU4OTYsNyArNTg5Niw4IEBACiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3No
OwotCQkJc2hlbGxTY3JpcHQgPSAiaWYgW1sgXCIke0NPTkZJR1VSQVRJT059XCIgPT0gXCJQcm9k
dWN0aW9uXCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG5YUENfU0VSVklDRVNfUEFUSD1cIiR7
QlVJTFRfUFJPRFVDVFNfRElSfS8ke1dSQVBQRVJfTkFNRX0vV2ViS2l0Mi5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9YUENTZXJ2aWNlc1wiXG5ta2RpciAtcCBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9XCJc
bmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVu
dC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5X
ZWJDb250ZW50LkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFw
cGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRf
UFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjXCIgXCIke1hQQ19T
RVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjXCJcbmRpdHRvIFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5EZXZlbG9w
bWVudC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29y
a2luZy5EZXZlbG9wbWVudC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29t
LmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20u
YXBwbGUuV2ViS2l0LlBsdWdpbi4zMi54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRI
fS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uRGV2ZWxvcG1lbnQueHBjXCIgXCIke1hQ
Q19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi5EZXZlbG9wbWVudC54cGNc
IlxuIjsKKwkJCXNoZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtDT05GSUdVUkFUSU9OfVwiID09IFwi
UHJvZHVjdGlvblwiIF1dOyB0aGVuXG4gICAgZXhpdFxuZmlcblxuWFBDX1NFUlZJQ0VTX1BBVEg9
XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtXUkFQUEVSX05BTUV9L1dlYktpdDIuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxubWtkaXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRI
fVwiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNv
bnRlbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2Nv
bS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54cGNcIlxuZGl0dG8gXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhwY1wiIFwiJHtY
UENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnhwY1wiXG5kaXR0
byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2
ZWxvcG1lbnQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5l
dHdvcmtpbmcuRGV2ZWxvcG1lbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjMyLnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0v
Y29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNU
U19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjY0LnhwY1wiIFwiJHtYUENfU0VSVklDRVNf
UEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uNjQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF8K
K1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uRGV2ZWxvcG1lbnQueHBjXCIg
XCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi5EZXZlbG9wbWVu
dC54cGNcIlxuIjsKIAkJfTsKIAkJQzBDRTcyODQxMjQ3RTY2ODAwQkMwRUM0IC8qIEdlbmVyYXRl
IERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIuY3BwCmluZGV4IGM5YzhiMzBkOTc2MjQ1NzQ3MzRhYmRhNjc1Y2VhMzg0MTQ1
ODY1Y2QuLmQ3MjVhOWU1N2UxOThlODkyYmE3NzczM2JjZjJiYWQ5ZTFhYTY3MzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmNwcApAQCAtODMsNyArODMsOSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvKGNvbnN0IFJlc291cmNlUmVzcAogewogICAg
IExPRyhOZXR3b3JrLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
UmVzcG9uc2VXaXRoQ2VydGlmaWNhdGVJbmZvIGZvciAnJXMnLiBTdGF0dXMgJWQuIiwgbV9jb3Jl
TG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZXNwb25zZS5odHRwU3RhdHVz
Q29kZSgpKTsKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlQ29weShyZXNwb25zZSk7Cisj
aWYgVVNFKENGTkVUV09SSykKICAgICByZXNwb25zZUNvcHkuc2V0Q2VydGlmaWNhdGVDaGFpbihj
ZXJ0aWZpY2F0ZUluZm8uY2VydGlmaWNhdGVDaGFpbigpKTsKKyNlbmRpZgogICAgIG1fY29yZUxv
YWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlQ29weSk7CiB9CiAKQEAgLTEyMywxMCAr
MTI1LDEyIEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNvdXJjZShjb25z
dCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBoYW5kCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRG
aW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwogfQogCisjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0Vf
QVVUSF9DQUxMQkFDSykKIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3Bh
Y2UsIGJvb2wmIHJlc3VsdCkKIHsKICAgICByZXN1bHQgPSBtX2NvcmVMb2FkZXItPmNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlKTsKIH0KKyNlbmRp
ZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaAppbmRleCAwM2U4MjcxNjBkNGU1
MDAzMThkZjVmMjBhN2E2N2VmODVkZTYzYWNlLi4wMzkwMTc2N2U0ZmJhYzQ5YjFjYmNjODE4ZWVl
MWQ5MWY2OWI4OWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaApAQCAtODAsNyArODAsOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6Okhh
bmRsZSYsIGRvdWJsZSBmaW5pc2hUaW1lKTsKIAorI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FV
VEhfQ0FMTEJBQ0spCiAgICAgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlKGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYsIGJvb2wmIHJlc3VsdCk7CisjZW5k
aWYKIAogICAgIFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4gbV9jb3JlTG9hZGVyOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgppbmRleCBlYWQ1N2E4NTEyYTJmMWNhNTEz
MDBlMWI3MmRkYWNkYzIyMzRiM2IzLi45MzYxY2E4OTRkZjU2MTg2YjlkMTFiY2JkNzE2NjZkNTEw
ODhmZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCkBAIC0yMCw2ICsyMCw4IEBA
CiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorCiBtZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRlciBMZWdhY3lSZWNl
aXZlciB7CiAKICAgICBDYW5jZWxSZXNvdXJjZUxvYWRlcigpCkBAIC0zMSw4ICszMywxMiBAQCBt
ZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRlciBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkRmlu
aXNoUmVzb3VyY2VMb2FkKGRvdWJsZSBmaW5pc2hUaW1lKQogICAgIERpZEZhaWxSZXNvdXJjZUxv
YWQoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKICAgICAKKyNpZiBVU0UoUFJPVEVDVElP
Tl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIENhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFjZSkgLT4gKGJv
b2wgcmVzcG9uc2UpCisjZW5kaWYKIAogICAgIC8vIERpZFJlY2VpdmVSZXNvdXJjZSBpcyBmb3Ig
d2hlbiB3ZSBoYXZlIHRoZSBlbnRpcmUgcmVzb3VyY2UgZGF0YSBhdmFpbGFibGUgYXQgb25jZSwg
c3VjaCBhcyB3aGVuIHRoZSByZXNvdXJjZSBpcyBjYWNoZWQgaW4gbWVtb3J5CiAgICAgRGlkUmVj
ZWl2ZVJlc291cmNlKFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSByZXNvdXJjZSwg
ZG91YmxlIGZpbmlzaFRpbWUpCiB9CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9l
ZmwvV2ViRXJyb3JzRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKaW5kZXggOWQ4ZGZkYTBkYWI3NDkyMDQzOTM1MmRh
ZDk1OTU1M2JkY2RhZWFlNS4uMzQ1ZDljMDVkZTNmY2QzYzdlN2IwMWE5MDUyODQ5OTc0YWFiZGE1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9l
ZmwvV2ViRXJyb3JzRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCkBAIC0yNiwxMCArMjYsMTIgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKIAorI2luY2x1ZGUgIldlYkVy
cm9yLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FcnJvcnNFZmwuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYktpdDIv
V0tFcnJvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNzAsNCArNzIsOSBA
QCBSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5kbGVMb2FkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgcmV0dXJuIFdlYkNvcmU6OnBsdWdpbldpbGxIYW5kbGVM
b2FkRXJyb3IocmVzcG9uc2UpOwogfQogCitXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVybmFs
RXJyb3IoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsKQoreworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKFdlYkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckludGVybmFsLCB1cmwu
c3RyaW5nKCksIEFTQ0lJTGl0ZXJhbCgiSW50ZXJuYWwgZXJyb3IiKSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggNDkwZjMxOTBhNDRmMDQ0YWYyNTA5OTk1MWZiYWM1OWZmMWJhN2ZiYy4uNzJjMTE3YTBiNjli
ZWFjYzE4Mzg1ZjA3NDA2MWY4MmMwYjg5N2YwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwCkBAIC0zNDIsMTEgKzM0MiwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAg
Q29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNv
ZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKLSAgICBpZiAoQ29yZUlQQzo6Q29ubmVj
dGlvbjo6aWRlbnRpZmllcklzTnVsbChjb25uZWN0aW9uSWRlbnRpZmllcikpCi0gICAgICAgIHJl
dHVybjsKKyNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIENvcmVJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIgPSBlbmNvZGVkQ29ubmVjdGlv
bklkZW50aWZpZXIucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7CiAjZWxzZQogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogI2VuZGlmCisgICAgaWYgKENvcmVJUEM6OkNvbm5lY3Rpb246OmlkZW50
aWZpZXJJc051bGwoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICByZXR1cm47CiAgICAg
bV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmNy
ZWF0ZShjb25uZWN0aW9uSWRlbnRpZmllcik7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3VuaXgvTmV0d29ya01haW5Vbml4
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL3VuaXgvTmV0d29ya01haW5Vbml4LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOTQ4YjMxMzhlODJkMjdjNThiZjljYTAwMTM2ZWQyZDc3OWI4YWE5Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvdW5peC9OZXR3b3JrTWFpblVuaXguY3BwCkBAIC0wLDAgKzEs
MzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWFpblVuaXguaCIKKworaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzTWFpbihhcmdjLCBhcmd2KTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZSBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4
IDkzN2Y2N2Q5NWViZjk5ODU1NmUxZjVmYjBlNjYzNTExYTgzZjYwNzguLjI5ZTUwZDQ4MDI0MWFj
MDFmYzc2MjNhZmUzOTk4NmNhNDg2NTg0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZp
Zy5oLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCkBAIC04NCw2ICs4NCw3
IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTk9TTklGRgogI2NtYWtlZGVmaW5lMDEgRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEkKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9ORVRXT1JLX0lORk8K
KyNjbWFrZWRlZmluZTAxIEVOQUJMRV9ORVRXT1JLX1BST0NFU1MKICNjbWFrZWRlZmluZTAxIEVO
QUJMRV9OT1RJRklDQVRJT05TCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfT1JJRU5UQVRJT05fRVZF
TlRTCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfUEFHRV9QT1BVUApkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDE0ZGQ5MzVkMTZlMWZhZTY3M2E3YWJjZWE3OTQxODU0NjUy
Y2M1MjEuLmI0ZWMwN2Q1OWY3OGMyN2FmYzE5YzBhNGE3YWQ3NTI1MmU4NGI1NzMgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0w
NyAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dLMl1b
RUZMXSBTZXQgdXAgTmV0d29ya1Byb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwODgzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisgICAgICAg
IEFkZCB0aGUgRU5BQkxFX05FVFdPUktfUFJPQ0VTUyBmbGFnLgorCiAyMDEzLTAyLTA1ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIENv
bXBpbGUgV1RGIHRlc3RzIG9mIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187327</attachid>
            <date>2013-02-08 08:50:44 -0800</date>
            <delta_ts>2013-02-09 12:20:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108832-20130208174707.patch</filename>
            <type>text/plain</type>
            <size>67632</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY5NjY3MTY3NzQ5ZmMx
NjBhOWRiNTJmMWU2MDc2ZmYwZWEyYmEzNy4uNTE2OGU2MjJlY2FmN2QxM2RkMTJhZTA4NzA3YmE5
MDVmZjUxNmFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTA3ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNl
dCB1cCBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRGVmaW5lIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQcml2YXRlQnJvd3Np
bmdTZXNzaW9uIGZvciBzb3VwIGFzIHdlbGwuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChOZXR3b3JrU3RvcmFnZVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKwogMjAxMy0wMi0wOCAgQW50b24gVmF5dm9kICA8YXZh
eXZvZEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1RleHQgQXV0b3NpemluZ10gU3BsaXQgaXNB
dXRvc2l6aW5nQ2x1c3RlciBpbnRvIHRocmVlIGluZGVwZW5kZW50IGNoZWNrcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDEyOWM2YjFmNTUwNWEzNDA5OWFhNDMyYmNjMjExMDM0YTQ0ZTY0MjMuLjQ4NDc4MGUxMTQ0
Yzc3MzI2YTEyMzgwOGQ3MWIwMjE4Nzk2OTk0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNzQg
QEAKKzIwMTMtMDItMDcgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisg
ICAgICAgIFtXSzJdW0VGTF0gU2V0IHVwIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4MzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEVGTCBidWlsZCB3aXRoIEVOQUJM
RV9ORVRXT1JLX1BST0NFU1MuIEJ5IGRlZmF1bHQgaXQgaXMgZGlzYWJsZWQuCisgICAgICAgIFRo
ZSBwYXRjaCBhZGRzIHRoZSBuZWNlc3NhcnkgcGxhdGZvcm0gc3BlY2lmaWMgYml0cyBhbmQgc3R1
YnMgZm9yCisgICAgICAgIFVOSVhfRE9NQUlOX1NPQ0tFVFMsIHRoZSBTT1VQIG5ldHdvcmsgYmFj
a2VuZCBhbmQgRUZMIGFuZCBpdCBhZGRzIHRoZQorICAgICAgICByZWxhdGVkIGZpbGVzIHRvIHRo
ZSBDTWFrZSBidWlsZCBzeXN0ZW0uIFNvbWUgcmVmYWN0b3Jpbmcgd2VyZSBhbHNvIG1hZGUuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpOZXR3b3Jr
UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIEFkZCBwbGF0Zm9ybSBzcGVjaWZpYyBJ
UEMgY29kZSBmb3IgVU5JWF9ET01BSU5fU09DS0VUUy4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOiBGaXggbWlzdHlwaW5nIGZvciBj
YXNlCisgICAgICAgIHNlbnNpdGl2ZSBzeXN0ZW1zLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0TG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCk6CisgICAgICAgIFRoaXMgc2hvdWxkIGJlIGEgY3Jvc3MtcGxhdGZv
cm0gaW50ZXJmYWNlIHNvIEkgbGlmdGVkIHRoZSBoZWFkZXIgZnJvbSB0aGUgbWFjIGRpcmVjdG9y
eS4KKyAgICAgICAgUmVtb3ZlZCBtYWMgc3BlY2lmaWMgYXJndW1lbnRzIGZyb20gY29uc3RydWN0
b3IsIGFkZGVkIHNldHRlcnMgaW5zdGVhZC4gQWRkZWQgU291cCBzcGVjaWZpYyBiaXRzLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vzc0VmbC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVs
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0Nl
cnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgIE9ubHkgc3R1YnMgZm9yIG5vdy4KKworICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxh
dGZvcm1Jbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAg
ICAgQ29waWVkIGhhcmQtY29kZWQgY29uc3RhbnQgZnJvbSBSZXNvdXJjZVJlcXVlc3RTb3VwLmNw
cCB3aXRoIGNvbW1lbnQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5l
dHdvcmtpbmdDb250ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppbml0aWF0aW5nUGFnZUlEKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93
c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpz
dG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQgZm9yIHNvdXAsIHdpdGhvdXQgcHJpdmF0ZSBicm93c2luZyBzdXBwb3J0IHlldC4KKworICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9j
ZXNzTWFpblVuaXguY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzTWFpbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdCk6
IENvbW1vbiBlbnRyeSBwb2ludCBmb3IgVW5peCBwb3J0cy4gQ29ycmVjdCBSdW5Mb29wIGluaXRp
YWxpemF0b24gZm9yIEVGTCBoYXMgYmVlbiBwb3Nwb25lZC4KKworICAgICAgICAqIFBsYXRmb3Jt
RWZsLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgICogU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmg6IENo
YW5nZWQgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBTaGFyZWFibGVSZXNvdXJjZSB0byBhY3R1YWwK
KyAgICAgICAgaW5jbHVkZSBiZWNhdXNlIEdDQyByZXF1aXJlcyBhIGRlZmluaXRpb24gb2YgdGhl
IHR5cGUgZm9yIHBhc3NpbmcgaXQgaW4gYSBQYXNzT3duUHRyLgorICAgICAgICAqIFNoYXJlZC9l
ZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OmV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorCisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVu
Y2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIEd1YXJkcyBhbmQgaGFuZGxlIFVO
SVhfRE9NQUlOX1NPQ0tFVFMgY2FzZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL3Nv
dXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nl
c3Mvc291cC9XZWJDb250ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAg
ICAgICAgKFdlYlJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW46CisgICAgICAgIEFkZGVkIGd1YXJkcyB3aGVy
ZSBpdCBpcyBhcHByb3ByaWF0ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvZWZsL1dlYkVycm9yc0VmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmludGVybmFsRXJyb3Ip
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24pOgorICAgICAgICBIYW5kbGUgVU5JWF9ET01BSU5fU09DS0VUUyBjYXNlLgorICAgICAg
ICAqIHVuaXgvTmV0d29ya01haW5Vbml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChtYWluKTogQ29tbW9uIHN0dWIg
Zm9yIHRoZSBleGVjdXRhYmxlIGZvciB1bml4IHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXROZWVkc1NpdGVTcGVjaWZp
Y1F1aXJrcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRM
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3luY05l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Vm
bC9OZXR3b3JrUHJvY2Vzc0VmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNv
dXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZm
ZXIuaC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxh
dGZvcm1Jbml0aWFsaXplTWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZs
L1dlYkVycm9yc0VmbC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Ojppbml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRp
ZmllckJhc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5z
dXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9u
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3
b3JrUHJvY2Vzc01haW5Vbml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc01haW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9Q
cm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogU2hh
cmVkL1dlYlJlc291cmNlQnVmZmVyLmg6CisgICAgICAgICogU2hhcmVkL2VmbC9Qcm9jZXNzRXhl
Y3V0YWJsZVBhdGhFZmwuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6
ZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1
bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJv
Y2Vzc1Byb3h5U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJS
ZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybUdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNv
bnRleHRTb3VwLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291
cmNlQnVmZmVyLmguCisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlh
bGl6ZU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291
cmNlTG9hZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwv
V2ViRXJyb3JzRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6
CisgICAgICAgICogdW5peC9OZXR3b3JrTWFpblVuaXguY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKG1haW4pOgorCiAy
MDEzLTAyLTA2ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBbV0syXVtVbml4XVtSZWZhY3RvcmluZ10gR2V0IHJpZCBvZiBzb2NrZXQgY3JlYXRpb24gY29k
ZSBkdXBsaWNhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCA3YjE2MWEwMGM5NzYwYjVjYzEyNzA4YTY3
NTJmOWExZjNmNmU4YjhmLi4xZmZlNmVlY2ZjZTkwNDg0MmRkZWM5Nzg1ZmIzOTZjY2QzZWJiOTkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogI2VsaWYgVVNFKFNP
VVApCiAgICAgdm9pZCBzZXRTb3VwU2Vzc2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nl
c3Npb24gPSBzZXNzaW9uOyB9CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uOyB9CisgICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24o
KSBjb25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQogI2Vsc2UKICAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24oTmV0d29ya2luZ0NvbnRleHQqKTsKICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCk7CkBAIC03Myw2ICs3NCw3IEBAIHByaXZhdGU6CiAjZWxpZiBVU0UoU09VUCkKICAgICBOZXR3
b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qKTsKICAgICBTb3VwU2Vzc2lvbiogbV9zZXNz
aW9uOworICAgIGJvb2wgbV9pc1ByaXZhdGU7CiAjZWxzZQogICAgIFJlZlB0cjxOZXR3b3JraW5n
Q29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKaW5kZXggZGQ1NmUyYjg5ZjUxY2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFkMC4uYzI5
YTRjMDY0NjcyZGFhMWVmZWUxMWRhN2U0YzlkNjFjNTVkY2RjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNvdXBTZXNz
aW9uKiBzZXNzaW9uKQogICAgIDogbV9zZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX2lzUHJpdmF0
ZShmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBhZjZiMTQxYmUwMmE0MzIz
NTllZTQ2MjUzMGQyMDI2YmIwNWI2N2UxLi45MTYzNDFiZWJmNzY2OGY1ZGQ4N2FjNTgxZWNjN2Nm
NDg4NTM0MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMSw1ICsxLDYgQEAKIHNldChXZWJL
aXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0iCisgICAgIiR7V0VC
S0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vQ29yZUlQQyIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vUGx1Z2luUHJvY2VzcyIKQEAgLTExLDYgKzEyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQiCiAg
ICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9OZXR3b3JrIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zIgogICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExIgpAQCAtMjMsNiArMjUsNyBAQCBzZXQoV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9E
b3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9MYXVuY2hlciIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL1N0b3JhZ2UiCkBAIC00MCw2ICs0Myw3IEBAIHNl
dChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
TGF1bmNoaW5nIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZSIKQEAgLTExOCw2ICsxMjIsMTQgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklF
UwogKQogCiBzZXQoV2ViS2l0Ml9TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29y
ZC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJs
ZUxvYWRlci5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAorCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3Bw
CiAgICAgUGxhdGZvcm0vV29ya1F1ZXVlLmNwcApAQCAtMTU4LDYgKzE3MCw3IEBAIHNldChXZWJL
aXQyX1NPVVJDRVMKICAgICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogICAgIFNoYXJl
ZC9TZXNzaW9uU3RhdGUuY3BwCiAgICAgU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKyAgICBT
aGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwCiAgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNw
cAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxl
LmNwcApAQCAtMTkwLDYgKzIwMyw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKICAgICBTaGFyZWQvV2ViUmVuZGVyTGF5
ZXIuY3BwCiAgICAgU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKKyAgICBTaGFyZWQvV2ViUmVz
b3VyY2VCdWZmZXIuY3BwCiAgICAgU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCiAgICAgU2hhcmVk
L1dlYlVSTFJlcXVlc3QuY3BwCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtMjIz
LDYgKzIzNyw5IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcAogCisgICAgU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisgICAgU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisKICAgICBTaGFyZWQvUGx1
Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyLmNwcAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCkBA
IC0zNTUsNiArMzcyLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0xh
dW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC0zNjcsNiArMzg2LDggQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5jcHAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIu
Y3BwCiAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKKwogICAgIFdlYlBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKIApAQCAtNDI5LDYgKzQ1MCwxMCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAg
ICBXZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKIAorICAg
IFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKyAgICBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFdl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCkBAIC00
OTUsNiArNTIwLDkgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogKQogCiBzZXQoV2ViS2l0Ml9NRVNT
QUdFU19JTl9GSUxFUworICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3Nh
Z2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAg
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNTI3LDYg
KzU1NSw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogCiAgICAg
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01NDks
NiArNTc5LDkgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlByb2Nl
c3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgogCisgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorICAg
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorCiAgICAg
V2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4K
IAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKaW5kZXggMGQ1MmI4ZjNlNzQ1YjVjMDI1NjAzOGMyYjFhYWNlOGZmZmVhMmNlMy4u
NzNlZmU2ZGYyMGVmZDNmNTM0M2RlMzNiNDZmMDY2YmYyNzViOWFlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2
NCw5IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgYWRkU3VwcGxl
bWVudDxBdXRoZW50aWNhdGlvbk1hbmFnZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJDb29r
aWVNYW5hZ2VyPigpOworI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogICAgIGFkZFN1cHBs
ZW1lbnQ8Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyPigpOworI2VuZGlmCiB9CiAKIE5ldHdvcmtQcm9j
ZXNzOjp+TmV0d29ya1Byb2Nlc3MoKQpAQCAtMTgwLDggKzE4MywxNiBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAKICAgICBDb3Jl
SVBDOjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9N
QUtFX1NFTkQpOwogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKGNsaWVudFBvcnQpLCAwKTsKLSNlbHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbGlm
IFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgc2VydmVySWRlbnRpZmllciwgY2xpZW50SWRlbnRpZmllcjsKKyAgICBib29sIHN1Y2Nl
c3MgPSBDb3JlSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVy
cyhzZXJ2ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHN1Y2Nlc3MsIHN1Y2Nlc3MpOworCisgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzPiBjb25uZWN0aW9uID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0
ZShzZXJ2ZXJJZGVudGlmaWVyKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQo
Y29ubmVjdGlvbi5yZWxlYXNlKCkpOworCisgICAgQ29yZUlQQzo6QXR0YWNobWVudCBjbGllbnRT
b2NrZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkQ3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoY2xpZW50U29ja2V0KSwgMCk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCA4YzMzMzJiNTgxMzcyM2YzOGE2YTdmZDg4Mjc3ZGZh
NTJmYTA2NDlhLi5hZWE1NjRmZTBiYjNiNjQ1OWZmMzVhY2RjOWRkODgwMTNmYjYxZjg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtNCw3ICs0LDcgQEAKICNpbmNsdWRlICJIb3N0
UmVjb3JkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Njb25uZWN0aW9uTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3luY05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggN2Y0YmJkZDgzNDY3ZGM5ZTYwMzhlY2NkNDYyZDhlNTE4
ODJkYzE4Zi4uMjIyYzM0YWZjNzZmZmJjMWFlMWM5ZjMyNThhNTI4MmJmM2ZhYjk3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC03Nyw4ICs3Nyw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpz
dGFydCgpCiAgICAgLy8gRXhwbGljaXQgcmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VIYW5kbGVTdG9wcGVkKCkKICAgICByZWYoKTsK
ICAgICAKLSAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQgd2l0aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4
dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZh
dGVCcm93c2luZ01vZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCgpKTsKKyAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBTZXQgcGxhdGZvcm0gc3BlY2lm
aWMgc2V0dGluZ3MuCisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCksIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSk7CiAKICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lv
bnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90
ZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlkNWJiOGYzNmExNjI1N2U1M2U5MGVi
YmU0NjMxZWM1NmJlZTg1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw4NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAorI2Rl
ZmluZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdv
cmtpbmdDb250ZXh0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZShib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOworCisgICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0ZUJy
b3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKKyAgICBz
dGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIHZv
aWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKworICAgIHN0YXRpYyBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsgLy8gQ2Fu
IG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gZXhpc3RzLgorCisgICAgdmlydHVhbCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBPVkVS
UklERQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgICAgIDogbV9wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgICAgICwgbV9zaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IE9WRVJSSURFOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZv
aWQgc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoYm9vbCB2YWx1ZSkgeyBtX25lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoYm9vbCB2YWx1ZSkgeyBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQgPSB2YWx1ZTsgfQorCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE5TT3BlcmF0aW9uUXVl
dWUgKnNjaGVkdWxlZE9wZXJhdGlvblF1ZXVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklERTsKKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisg
ICAgdmlydHVhbCB1aW50NjRfdCBpbml0aWF0aW5nUGFnZUlEKCkgY29uc3Q7CisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7Cisg
ICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7CisjZW5kaWYKKworICAg
IGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOworICAgIGJvb2wgbV9zaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OworfTsKKworfQorCisjZW5kaWYgLy8gUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZjgyZDE0OWMy
ZWJkMDBmMDA1ZGUzYTk2YTNlNGY5ZTEwMWE1YWZiLi5mNjMyOTUyNGM3MjRmZTJmNGVmOTIyZmFi
NWYwMjE3YTIwMzhjYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNTgsOCArNTgsOCBA
QCB2b2lkIFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICBSZXNvdXJjZVJl
c3BvbnNlIHJlc3BvbnNlOwogICAgIFZlY3RvcjxjaGFyPiBkYXRhOwogICAgIAotICAgIC8vIEZJ
WE1FIChOZXR3b3JrUHJvY2Vzcyk6IENyZWF0ZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCB3aXRo
IGFjdHVhbCBzZXR0aW5ncy4KLSAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5l
dHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwg
ZmFsc2UsIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0KCkpOworICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFNldCBw
bGF0Zm9ybSBzcGVjaWZpYyBzZXR0aW5ncy4KKyAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ+IG5ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZShpblByaXZhdGVCcm93c2luZ01vZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCgpKTsKIAogICAgIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNz
RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ODlhNzk2MjkzMTMzMWQ2OWQ3YjhlYzVkNzI2YWFiMTlhNmJh
NmRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZs
L05ldHdvcmtQcm9jZXNzRWZsLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTmV0d29ya1By
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
OTYwZDA0NjgxYzg0YzBjOTYxMzkxYzRiMjk3MGRkZWU4YWRiM2YyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAot
I2RlZmluZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCi0KLSNpbmNsdWRlIDxXZWJDb3JlL05l
dHdvcmtpbmdDb250ZXh0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZShib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwotICAgIH0K
LSAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwotCi0gICAgc3RhdGljIHZv
aWQgc2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBT
dHJpbmcmKTsKLSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7
Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKLQotICAg
IHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gZXhpc3RzLgot
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QoKSBjb25zdCBPVkVSUklERTsKLQotcHJpdmF0ZToKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBtX3Nob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwotCi0gICAgdmlydHVhbCBib29s
IGlzVmFsaWQoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBOU09wZXJhdGlvblF1ZXVlICpzY2hlZHVsZWRPcGVyYXRpb25R
dWV1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgT1ZF
UlJJREU7Ci0KLSAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7Ci0gICAgYm9vbCBt
X2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7Ci0gICAgYm9vbCBtX3ByaXZhdGVCcm93
c2luZ0VuYWJsZWQ7Ci0gICAgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3Q7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggNzgxOTUzM2E1MjliNTZhZjQwYTBjYjllYzZh
ZTFjOWM3OTFjYTJlYi4uMGVlNTY4ZmVhM2RkMDIxNTYyZGUxYjczZmZlNDgzZDE1YTE0YTdhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNDIsMTkgKzQyLDYgQEAgc3RhdGljIE93blB0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigp
CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKLWJvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6
OnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAotewotICAg
IHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7Ci19Ci0K
LVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQotICAgIDogbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhu
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcykKLSAgICAsIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZChsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKQotICAgICwgbV9wcml2YXRl
QnJvd3NpbmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgLCBtX3Nob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCkKLXsKLX0KLQogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6On5SZW1v
dGVOZXR3b3JraW5nQ29udGV4dCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNj
aGVkdWxlclNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiYWI3MjZiNDIwZTY3NGQzMGQ0NGFhOWI1MGY0
NDAyNTkzY2ZlOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCisKKyNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1bnNpZ25lZCBOZXR3b3JrUmVzb3VyY2VMb2FkU2No
ZWR1bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhv
c3QoKQoreworICAgIC8vIFNlZTogUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICByZXR1cm4g
MTAwMDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2RkNGQzNTIzNThlZWY4YjJlY2My
NDMyNDI4Nzk0N2M5ZGNmZGEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCkBAIC0wLDAg
KzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQo
KQoreworfQorCitib29sIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordWludDY0X3QgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmluaXRpYXRpbmdQYWdlSUQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZh
dGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25z
dAoreworICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vz
c2lvbigpOworfQorCitOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigp
OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5V
bml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nl
c3NNYWluVW5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTdlZmIyMjI3NGU3ODMzNWI4MmI4YmU1YTc0NmM0
OGE3ODQ4ZDRlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgiCisKKyNpbmNsdWRlICJXS0Jhc2Uu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL05ldHdv
cmtQcm9jZXNzLmg+CisjaW5jbHVkZSA8ZXJyb3IuaD4KKyNpbmNsdWRlIDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNl
bmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1dLX0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
Cit7CisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuIDE7CisKKyNpZiBQTEFURk9S
TShHVEspCisgICAgZ3RrX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNlbmRpZgorCisgICAgLy8gRklY
TUU6IEV2ZW50IGxvb3AgaXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseSBmb3IgRUZMLiBGb3Ig
RUZMIHdlIHNob3VsZCBzaG91bGQgZWl0aGVyCisgICAgLy8gaW5pdGlhbGl6ZSBlY29yZSBvciB1
c2UgdGhlIGdsaWItb25seSBSdW5Mb29wIGltcGxlbWVudGF0aW9uIGluIHRoZSBuZXR3b3JrIHBy
b2Nlc3MuCisKKyAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRp
YWxpemVNYWluVGhyZWFkKCk7CisKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKworICAgIC8vIEZJWE1FOiBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCisKKyAgICBlcnJubyA9
IDA7CisgICAgbG9uZyBpbnQgc29ja2V0ID0gc3RydG9sKGFyZ3ZbMV0sIDAsIDEwKTsKKyAgICBp
ZiAoZXJybm8pCisgICAgICAgIHJldHVybiAxOworCisgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5jb25uZWN0aW9uSWRl
bnRpZmllciA9IGludChzb2NrZXQpOworCisgICAgTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgpLmlu
aXRpYWxpemUocGFyYW1ldGVycyk7CisKKyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIHJldHVy
biAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91
bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMGMwNGIxNTBm
NGNkNGVkMTJhOTk0ODU4ZjQwZjRjMWRhZDhjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0
eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0
d29ya1Byb2Nlc3NNYWluVW5peF9oCisjZGVmaW5lIE5ldHdvcmtQcm9jZXNzTWFpblVuaXhfaAor
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dL
X0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlByb2Nlc3NNYWluRWZsX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZjZjZTE3NmZkM2E0M2ZlZGQ1ZDM0YTc2ZTlk
NjViYTgxMGI3MTMzZS4uOGJmZGM4M2E0MTE5MWNjNjEzMGEwMzJhMGY3YTZiNmM5NjFjZjNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEsNCArMSw5IEBACiBsaXN0KEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwu
Y3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
U291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
U291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXgu
Y3BwCisKICAgICBQbGF0Zm9ybS9lZmwvTG9nZ2luZ0VmbC5jcHAKICAgICBQbGF0Zm9ybS9lZmwv
TW9kdWxlRWZsLmNwcAogICAgIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0xMDks
NiArMTE0LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzUHJveHlFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAog
CisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCisKICAgICBVSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL2VmbC9XZWJJbnNwZWN0b3JTZXJ2ZXJFZmwuY3BwCiAgICAgVUlQcm9j
ZXNzL0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tldFNlcnZlclNvdXAuY3BwCiAKQEAgLTEx
OCw2ICsxMjUsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vz
cy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAogCisgICAgVUlQcm9jZXNzL05l
dHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKKwogICAgIFVJUHJvY2Vzcy9Q
bHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCiAKQEAgLTE2Myw2ICsxNzIsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90
ZXh0L2VuY2hhbnQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvdW5peCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0Rvd25sb2Fkcy9zb3VwIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvZWZsIgogICAg
ICIke1dFQktJVDJfRElSfS9TaGFyZWQvc291cCIKQEAgLTMyMyw2ICszMzMsMjcgQEAgaWYgKEVO
QUJMRV9QTFVHSU5fUFJPQ0VTUykKICAgICBpbnN0YWxsKFRBUkdFVFMgJHtQbHVnaW5Qcm9jZXNz
X0VYRUNVVEFCTEVfTkFNRX0gREVTVElOQVRJT04gIiR7RVhFQ19JTlNUQUxMX0RJUn0iKQogZW5k
aWYgKCkgIyBFTkFCTEVfUExVR0lOX1BST0NFU1MKIAoraWYgKEVOQUJMRV9ORVRXT1JLX1BST0NF
U1MpCisgICAgc2V0KE5ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRSBOZXR3b3JrUHJvY2Vz
cykKKyAgICBsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19JTkNMVURFX0RJUkVDVE9SSUVTCisg
ICAgICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2VzcyIKKyAgICApCisKKyAgICBpbmNs
dWRlX2RpcmVjdG9yaWVzKCR7TmV0d29ya1Byb2Nlc3NfSU5DTFVERV9ESVJFQ1RPUklFU30pCisK
KyAgICBsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L3VuaXgvTmV0d29ya01haW5Vbml4LmNwcAorICAgICkKKworICAgIHNldChOZXR3b3Jr
UHJvY2Vzc19MSUJSQVJJRVMKKyAgICAgICAgJHtXZWJLaXQyX0xJQlJBUllfTkFNRX0KKyAgICAp
CisKKyAgICBhZGRfZXhlY3V0YWJsZSgke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0g
JHtOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTfSkKKyAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHtO
ZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9ICR7TmV0d29ya1Byb2Nlc3NfTElCUkFSSUVT
fSkKKyAgICBpbnN0YWxsKFRBUkdFVFMgJHtOZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9
IERFU1RJTkFUSU9OICIke0VYRUNfSU5TVEFMTF9ESVJ9IikKK2VuZGlmICgpCisKIGluY2x1ZGVf
ZGlyZWN0b3JpZXMoJHtUSElSRFBBUlRZX0RJUn0vZ3Rlc3QvaW5jbHVkZSkKIAogc2V0KEVXSzJV
bml0VGVzdHNfTElCUkFSSUVTCkBAIC0zNTMsNiArMzg0LDcgQEAgYWRkX2RlZmluaXRpb25zKC1E
VEVTVF9SRVNPVVJDRVNfRElSPVwiJHtURVNUX1JFU09VUkNFU19ESVJ9XCIKICAgICAtRExJQkVY
RUNESVI9XCIke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0VYRUNfSU5TVEFMTF9ESVJ9XCIKICAg
ICAtRFdFQlBST0NFU1NOQU1FPVwiJHtXZWJQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX1cIgogICAg
IC1EUExVR0lOUFJPQ0VTU05BTUU9XCIke1BsdWdpblByb2Nlc3NfRVhFQ1VUQUJMRV9OQU1FfVwi
CisgICAgLURORVRXT1JLUFJPQ0VTU05BTUU9XCIke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVf
TkFNRX1cIgogKQogCiBhZGRfbGlicmFyeShld2syVW5pdFRlc3RVdGlscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDVmYmYzMjAxODExMDU1
ZTM4NGFiZWRiNmQzZGQ1ZGFmMWM3Yjc0ZGQuLmQ3OGViY2RkZWJhOTZlNWE5YTMwMWVjN2U4Y2Q1
MjM3NDlkYmRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhl
Y3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoLmgKQEAgLTMyLDYgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFN0cmluZyBl
eGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVn
aW5Qcm9jZXNzKCk7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRh
YmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKaW5kZXggYjQ3ZjMxODE1ODMyOWE4NTUwNGUyMjgx
ZGJiM2Y1NjY3YmYzNGY3YS4uZDYyNGMwOGRmYWU2ODE2YmUyMTcwMmZiZmNhZjA4MmRkYWJlNWNi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKQEAgLTI2LDEy
ICsyNiwxMSBAQAogI2lmbmRlZiBXZWJSZXNvdXJjZUJ1ZmZlcl9oCiAjZGVmaW5lIFdlYlJlc291
cmNlQnVmZmVyX2gKIAorI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3Mg
U2hhcmVhYmxlUmVzb3VyY2U7Ci0KIGNsYXNzIFdlYlJlc291cmNlQnVmZmVyIDogcHVibGljIFdl
YkNvcmU6OlJlc291cmNlQnVmZmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IHJl
c291cmNlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViUmVzb3VyY2VCdWZmZXIocmVzb3VyY2Up
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGhFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGhFZmwuY3BwCmluZGV4IDYxOGFiMmExNDNhZmVkYzU1ZTFhM2VlZTJjYTQwNzY1ZGJj
MWViZjcuLmM5ZTQ5MmViNDYxNjk3OGNmZDBlNTFhYWVjZTc1OWIxMDI4ZTYyMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVm
bC5jcHAKQEAgLTc0LDQgKzc0LDEzIEBAIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJv
Y2VzcygpCiAgICAgcmV0dXJuIHdlYktpdFBsdWdpblByb2Nlc3NOYW1lOwogfQogCisjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nl
c3MoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB3ZWJLaXROZXR3
b3JrUHJvY2Vzc05hbWUsIChmaW5kUHJvY2Vzc1BhdGgoTkVUV09SS1BST0NFU1NOQU1FKSkpOwor
CisgICAgcmV0dXJuIHdlYktpdE5ldHdvcmtQcm9jZXNzTmFtZTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAppbmRleCBmOWIzYmFjZTZl
YTE2YmU4M2I0OWU5NGVjZmViNzAxYmM4YWI0OWMwLi4zZGZmNWVkNDQwNTkyMTI5MjRlZWQwYmFk
NDI4NjcyNWQ4ZGZhMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCkBAIC01MSw2ICs1MSwx
MSBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHBsdWdp
blBhdGggPSBtX2xhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVn
aW4tcGF0aCIpLnV0ZjgoKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorICAgIGNhc2UgTmV0d29ya1Byb2Nlc3M6CisgICAgICAgIGV4ZWN1dGFi
bGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCkudXRmOCgpOworICAgICAg
ICBicmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQyZTIwNWZkNmI3NDJh
OWRiYjNhMmE4NmNhMTljM2QwZTllZGI5NTMuLjNjMDkwZmNlZjhjM2Q5NmZjZjliOTNhZWI3NDRm
MzVkMmM5YTQyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yOSwxOCArMjksMjIgQEAKICNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eS5oIgotI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKICNpbmNs
dWRlICJTZWNJdGVtU2hpbVByb3h5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShDVVNUT01fUFJP
VE9DT0xTKQorI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIK
KyNlbmRpZgorCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNL
X0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0aW9uKCkpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtMTAwLDYgKzEwNCw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29ya1By
b2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAg
ICAgIHJlcGx5LT5zZW5kKENvcmVJUEM6OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpKTsKKyNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXBseS0+
c2VuZChDb3JlSVBDOjpBdHRhY2htZW50KCkpOwogI2Vsc2UKICAgICAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICNlbmRpZgpAQCAtMTUwLDYgKzE1Niw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgQ29yZUlQQzo6
CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgcmVwbHktPnNlbmQoQ29yZUlQQzo6QXR0YWNobWVu
dChjb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7
CisjZWxpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICByZXBseS0+c2VuZChjb25uZWN0
aW9uSWRlbnRpZmllcik7CiAjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1By
b2Nlc3NQcm94eVNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvc291
cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UwZDIyNWRlMjlkMTgx
ZmFhN2M1ZWUwMjExMDY5YjkxZGM5Yjg3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cGxhdGZv
cm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNo
T3B0aW9ucykKK3sKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45Y2I5Y2RmM2RhNmQ2ZjAyYzQ1ZjQwZWI1ZTc4MWRkYzkyYjVkZGJmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNv
dXAuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3Jr
UHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMWM1OWRmMTNjOWYxZmU1YTA0MjM1NGFlMmQzNDk4ZjI3ZDg4MmI1NC4uZWY2
NGM0OGRlM2M1MGMwZjAzODRiNzc4YmQ3MmE0NDg4YzdjNTRmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQ3Miw3ICsyNDcy
LDcgQEAKIAkJRTFBMzE3MzQxMzRDRUE4MDAwN0M5QTRGIC8qIEF0dHJpYnV0ZWRTdHJpbmcubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdHRyaWJ1dGVkU3RyaW5n
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUFFQTIyRDE0Njg3QkRCMDA4MDQ1
NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUFFQTIyRTE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9h
cmRBY2Nlc3NXYXRjaGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlFMUI3ODQ3MDE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFCNzg0NzAxNjNGMjQ2OTAw
MDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzcy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUI3ODQ3MjE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQzFCOEUxMkQ3
RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQcmludEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQzFCOEYx
MkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFByaW50SW5mb01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTMzMzMsNiArMzMzMyw3IEBACiAJCQkJNTFGRDE4QjQxNjUxRkJBRDAwREJFMUNF
IC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oICovLAogCQkJCTUxODI5REEzMTYzN0M3MEMwMDA5
NTNENiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCAqLywKIAkJCQk1MTgyOURB
NDE2MzdDNzBDMDAwOTUzRDYgLyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oICovLAor
CQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
ICovLAogCQkJCTUxOUI0RkYyMTZBOUVBOTcwMDY2ODc0RCAvKiBTY2hlZHVsYWJsZUxvYWRlci5j
cHAgKi8sCiAJCQkJNTE5QjRGRjMxNkE5RUE5NzAwNjY4NzREIC8qIFNjaGVkdWxhYmxlTG9hZGVy
LmggKi8sCiAJCQkJNTE4MTVCOUQxNkE2MjIyMTAwNTQ1MDFGIC8qIFN5bmNOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuY3BwICovLApAQCAtMzM0Nyw3ICszMzQ4LDYgQEAKIAkJCQlFMTdBRTJDMTE2QjlD
MTM5MDAxQzQyRjEgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JrUHJvY2Vzcy5zYi5pbiAqLywK
IAkJCQk1MUE4QTYxNTE2MjdGM0Y5MDAwRDkwRTkgLyogTmV0d29ya1Byb2Nlc3NNYWMubW0gKi8s
CiAJCQkJNTEyQzA2OEYxNjM5MEU2OTAwQUJCOTExIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXJNYWMubW0gKi8sCi0JCQkJRTFCNzg0NzAxNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJRTFCNzg0NzIxNjNGMjUzRTAwMDdCNjkyIC8qIFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovLAogCQkJKTsKIAkJCW5hbWUgPSBtYWM7CkBAIC01
ODk2LDcgKzU4OTYsOCBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gImlm
IFtbIFwiJHtDT05GSUdVUkFUSU9OfVwiID09IFwiUHJvZHVjdGlvblwiIF1dOyB0aGVuXG4gICAg
ZXhpdFxuZmlcblxuWFBDX1NFUlZJQ0VTX1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtX
UkFQUEVSX05BTUV9L1dlYktpdDIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxu
bWtkaXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRIfVwiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCIgXCIke1hQQ19TRVJWSUNF
U19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5EZXZlbG9wbWVudC54
cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5E
ZXZlbG9wbWVudC54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxl
LldlYktpdC5OZXR3b3JraW5nLnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxl
LldlYktpdC5OZXR3b3JraW5nLnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9j
b20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQueHBjXCIgXCIke1hQQ19TRVJW
SUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcuRGV2ZWxvcG1lbnQueHBjXCJc
bmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luLjMy
LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4uMzIu
eHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuUGx1
Z2luLjY0LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5QbHVn
aW4uNjQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJL
aXQuUGx1Z2luLkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFw
cGxlLldlYktpdC5QbHVnaW4uRGV2ZWxvcG1lbnQueHBjXCJcbiI7CisJCQlzaGVsbFNjcmlwdCA9
ICJpZiBbWyBcIiR7Q09ORklHVVJBVElPTn1cIiA9PSBcIlByb2R1Y3Rpb25cIiBdXTsgdGhlblxu
ICAgIGV4aXRcbmZpXG5cblhQQ19TRVJWSUNFU19QQVRIPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
LyR7V1JBUFBFUl9OQU1FfS9XZWJLaXQyLmZyYW1ld29yay9WZXJzaW9ucy9BL1hQQ1NlcnZpY2Vz
XCJcbm1rZGlyIC1wIFwiJHtYUENfU0VSVklDRVNfUEFUSH1cIlxuZGl0dG8gXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnhwY1wiIFwiJHtYUENfU0VS
VklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnhwY1wiXG5kaXR0byBcIiR7
QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuRGV2ZWxvcG1l
bnQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQuRGV2ZWxvcG1lbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya2luZy54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5h
cHBsZS5XZWJLaXQuTmV0d29ya2luZy54cGNcIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENf
U0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLkRldmVsb3BtZW50Lnhw
Y1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdp
bi4zMi54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2lu
LjMyLnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0
LlBsdWdpbi42NC54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luLjY0LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfCitQUk9EVUNUU19ESVJ9L2NvbS5hcHBs
ZS5XZWJLaXQuUGx1Z2luLkRldmVsb3BtZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0v
Y29tLmFwcGxlLldlYktpdC5QbHVnaW4uRGV2ZWxvcG1lbnQueHBjXCJcbiI7CiAJCX07CiAJCUMw
Q0U3Mjg0MTI0N0U2NjgwMEJDMEVDNCAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAppbmRleCBj
OWM4YjMwZDk3NjI0NTc0NzM0YWJkYTY3NWNlYTM4NDE0NTg2NWNkLi5kNzI1YTllNTdlMTk4ZTg5
MmJhNzc3MzNiY2YyYmFkOWUxYWE2NzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTgzLDcgKzgzLDkg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmlj
YXRlSW5mbyhjb25zdCBSZXNvdXJjZVJlc3AKIHsKICAgICBMT0coTmV0d29yaywgIihXZWJQcm9j
ZXNzKSBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRl
SW5mbyBmb3IgJyVzJy4gU3RhdHVzICVkLiIsIG1fY29yZUxvYWRlci0+dXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7CiAgICAgUmVzb3VyY2VS
ZXNwb25zZSByZXNwb25zZUNvcHkocmVzcG9uc2UpOworI2lmIFVTRShDRk5FVFdPUkspCiAgICAg
cmVzcG9uc2VDb3B5LnNldENlcnRpZmljYXRlQ2hhaW4oY2VydGlmaWNhdGVJbmZvLmNlcnRpZmlj
YXRlQ2hhaW4oKSk7CisjZW5kaWYKICAgICBtX2NvcmVMb2FkZXItPmRpZFJlY2VpdmVSZXNwb25z
ZShyZXNwb25zZUNvcHkpOwogfQogCkBAIC0xMjMsMTAgKzEyNSwxMiBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzb3VyY2UoY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6Okhh
bmRsZSYgaGFuZAogICAgIG1fY29yZUxvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1l
KTsKIH0KIAorI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiB2b2lkIFdl
YlJlc291cmNlTG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGNv
bnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVjdGlvblNwYWNlLCBib29sJiByZXN1bHQpCiB7CiAg
ICAgcmVzdWx0ID0gbV9jb3JlTG9hZGVyLT5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKHByb3RlY3Rpb25TcGFjZSk7CiB9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZGVyLmgKaW5kZXggMDNlODI3MTYwZDRlNTAwMzE4ZGY1ZjIwYTdhNjdlZjg1ZGU2
M2FjZS4uMDM5MDE3NjdlNGZiYWM0OWIxY2JjYzgxOGVlZTFkOTFmNjliODllMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmgKQEAgLTgwLDcgKzgwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZhaWxSZXNvdXJjZUxv
YWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmLCBkb3VibGUgZmluaXNoVGlt
ZSk7CiAKKyNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZvaWQg
Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2UmLCBib29sJiByZXN1bHQpOworI2VuZGlmCiAKICAgICBSZWZQdHI8V2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXI+IG1fY29yZUxvYWRlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVz
c2FnZXMuaW4KaW5kZXggZWFkNTdhODUxMmEyZjFjYTUxMzAwZTFiNzJkZGFjZGMyMjM0YjNiMy4u
OTM2MWNhODk0ZGY1NjE4NmI5ZDExYmNiZDcxNjY2ZDUxMDg4ZmU5MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5tZXNzYWdlcy5pbgpAQCAtMjAsNiArMjAsOCBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogbWVzc2Fn
ZXMgLT4gV2ViUmVzb3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgQ2FuY2VsUmVz
b3VyY2VMb2FkZXIoKQpAQCAtMzEsOCArMzMsMTIgQEAgbWVzc2FnZXMgLT4gV2ViUmVzb3VyY2VM
b2FkZXIgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZEZpbmlzaFJlc291cmNlTG9hZChkb3VibGUg
ZmluaXNoVGltZSkKICAgICBEaWRGYWlsUmVzb3VyY2VMb2FkKFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IpCiAgICAgCisjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykK
ICAgICBDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2UpIC0+IChib29sIHJlc3BvbnNlKQorI2VuZGlmCiAK
ICAgICAvLyBEaWRSZWNlaXZlUmVzb3VyY2UgaXMgZm9yIHdoZW4gd2UgaGF2ZSB0aGUgZW50aXJl
IHJlc291cmNlIGRhdGEgYXZhaWxhYmxlIGF0IG9uY2UsIHN1Y2ggYXMgd2hlbiB0aGUgcmVzb3Vy
Y2UgaXMgY2FjaGVkIGluIG1lbW9yeQogICAgIERpZFJlY2VpdmVSZXNvdXJjZShXZWJLaXQ6OlNo
YXJlYWJsZVJlc291cmNlOjpIYW5kbGUgcmVzb3VyY2UsIGRvdWJsZSBmaW5pc2hUaW1lKQogfQor
CisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwu
Y3BwCmluZGV4IDlkOGRmZGEwZGFiNzQ5MjA0MzkzNTJkYWQ5NTk1NTNiZGNkYWVhZTUuLjM0NWQ5
YzA1ZGUzZmNkM2M3ZTdiMDFhOTA1Mjg0OTk3NGFhYmRhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3Jz
RWZsLmNwcApAQCAtMjYsMTAgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiV2ViRXJyb3JzLmgiCiAKKyNpbmNsdWRlICJXZWJFcnJvci5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvRXJyb3JzRWZsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLRXJyb3IuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTcwLDQgKzcyLDkgQEAgUmVzb3VyY2VFcnJvciBwbHVnaW5X
aWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogICAg
IHJldHVybiBXZWJDb3JlOjpwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKHJlc3BvbnNlKTsKIH0K
IAorV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFdlYkNvcmU6OktV
UkwmIHVybCkKK3sKKyAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihXZWJFcnJvcjo6d2ViS2l0RXJy
b3JEb21haW4oKSwga1dLRXJyb3JJbnRlcm5hbCwgdXJsLnN0cmluZygpLCBBU0NJSUxpdGVyYWwo
IkludGVybmFsIGVycm9yIikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDQ5MGYzMTkwYTQ0ZjA0NGFmMjUw
OTk5NTFmYmFjNTlmZjFiYTdmYmMuLjcyYzExN2EwYjY5YmVhY2MxODM4NWYwNzQwNjFmODJjMGI4
OTdmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzQy
LDExICszNDIsMTMgQEAgdm9pZCBXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oKQogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIENvcmVJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVy
LnBvcnQoKSk7Ci0gICAgaWYgKENvcmVJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc051bGwo
Y29ubmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICByZXR1cm47CisjZWxpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKKyAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxl
RGVzY3JpcHRvcigpOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgor
ICAgIGlmIChDb3JlSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNOdWxsKGNvbm5lY3Rpb25J
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuOwogICAgIG1fbmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoY29ubmVjdGlvbklkZW50aWZp
ZXIpOwogfQogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi91bml4L05ldHdvcmtNYWluVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi91
bml4L05ldHdvcmtNYWluVW5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk0OGIzMTM4ZTgyZDI3YzU4YmY5
Y2EwMDEzNmVkMmQ3NzliOGFhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL3Vu
aXgvTmV0d29ya01haW5Vbml4LmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVIgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc01haW4oYXJnYywgYXJn
dik7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2Ug
Yi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCA5MzdmNjdkOTVlYmY5OTg1NTZlMWY1
ZmIwZTY2MzUxMWE4M2Y2MDc4Li4yOWU1MGQ0ODAyNDFhYzAxZmM3NjIzYWZlMzk5ODZjYTQ4NjU4
NDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2Vjb25maWcuaC5jbWFrZQpAQCAtODQsNiArODQsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5B
QkxFX05PU05JRkYKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJCiAj
Y21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUV09SS19JTkZPCisjY21ha2VkZWZpbmUwMSBFTkFCTEVf
TkVUV09SS19QUk9DRVNTCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTk9USUZJQ0FUSU9OUwogI2Nt
YWtlZGVmaW5lMDEgRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUwogI2NtYWtlZGVmaW5lMDEgRU5B
QkxFX1BBR0VfUE9QVVAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBi
MTZmNjUzOWNjMjQ5N2VhZTczZDgyZTBjYTQ5ZTAyYTA0NmUxYzdkLi4wYWU5MzQ2OTQzMjBjZjBi
NGQyMGZkZjllMDc3ZTNmMjMzZTUzMWI0IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMDcgIEJhbGF6cyBLZWxlbWVuICA8a2Jh
bGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXSzJdW0VGTF0gU2V0IHVwIE5ldHdvcmtQcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4
MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNv
dXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlOgorICAgICAgICBBZGQgdGhlIEVOQUJMRV9ORVRXT1JL
X1BST0NFU1MgZmxhZy4KKwogMjAxMy0wMi0wOCAgVG9tYXMgUG9wZWxhICA8dHBvcGVsYUByZWRo
YXQuY29tPgogCiAgICAgICAgIFtHVEtdIEluY2x1ZGUgZmlsZXMgZnJvbSBEZXJpdmVkU291cmNl
cy93ZWJraXRkb20gZm9yIGludHJvc3BlY3Rpb24K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187439</attachid>
            <date>2013-02-09 12:20:09 -0800</date>
            <delta_ts>2013-02-11 05:01:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108832-20130209211841.patch</filename>
            <type>text/plain</type>
            <size>71862</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDMzYjE5N2VhN2NmOTkx
MjdkMjNkNDY2YTcwMDcwNThiNWI1Mzk0MC4uZjI0NmI3ZjI1ZjRiYmMwNTA0Nzk5NWI4NDk2MGE0
OWM5N2FjMzEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTA5ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNl
dCB1cCBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRGVmaW5lIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQcml2YXRlQnJvd3Np
bmdTZXNzaW9uIGZvciBzb3VwIGFzIHdlbGwuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChOZXR3b3JrU3RvcmFnZVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKwogMjAxMy0wMi0wOCAgWXVyeSBTZW1pa2hhdHNreSAg
PHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZWZhY3RvciBN
ZW1vcnlTdGF0aXN0aWNzLmpzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjk5YTI3NzVlZDU3NDU4OTU1ODFjNjBm
MzMzOThjYzA3M2NkMDBmMy4uNzIzNDJlMTRjNmI4NjA1ZDZmYjNmM2MxZTFiZDJjMzU0NWQ3MzE4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3NCBAQAorMjAxMy0wMi0wOSAgQmFsYXpzIEtlbGVt
ZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dLMl1bRUZMXSBTZXQgdXAgTmV0
d29ya1Byb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwODgzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1ha2UgRUZMIGJ1aWxkIHdpdGggRU5BQkxFX05FVFdPUktfUFJPQ0VTUy4gQnkgZGVmYXVs
dCBpdCBpcyBkaXNhYmxlZC4KKyAgICAgICAgVGhlIHBhdGNoIGFkZHMgdGhlIG5lY2Vzc2FyeSBw
bGF0Zm9ybSBzcGVjaWZpYyBiaXRzIGFuZCBzdHVicyBmb3IKKyAgICAgICAgVU5JWF9ET01BSU5f
U09DS0VUUywgdGhlIFNPVVAgbmV0d29yayBiYWNrZW5kIGFuZCBFRkwgYW5kIGl0IGFkZHMgdGhl
CisgICAgICAgIHJlbGF0ZWQgZmlsZXMgdG8gdGhlIENNYWtlIGJ1aWxkIHN5c3RlbS4gU29tZSBy
ZWZhY3RvcmluZyB3ZXJlIGFsc28gbWFkZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6Ok5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAg
ICAgICAgQWRkIHBsYXRmb3JtIHNwZWNpZmljIElQQyBjb2RlIGZvciBVTklYX0RPTUFJTl9TT0NL
RVRTLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVk
dWxlci5jcHA6IEZpeCBtaXN0eXBpbmcgZm9yIGNhc2UKKyAgICAgICAgc2Vuc2l0aXZlIHN5c3Rl
bXMuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRO
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0OjpzZXRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAg
VGhpcyBzaG91bGQgYmUgYSBjcm9zcy1wbGF0Zm9ybSBpbnRlcmZhY2Ugc28gSSBsaWZ0ZWQgdGhl
IGhlYWRlciBmcm9tIHRoZSBtYWMgZGlyZWN0b3J5LgorICAgICAgICBSZW1vdmVkIG1hYyBzcGVj
aWZpYyBhcmd1bWVudHMgZnJvbSBjb25zdHJ1Y3RvciwgYWRkZWQgc2V0dGVycyBpbnN0ZWFkLiBB
ZGRlZCBTb3VwIHNwZWNpZmljIGJpdHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TeW5j
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3luY05ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvZWZsL05l
dHdvcmtQcm9jZXNzRWZsLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpwbGF0Zm9ybVNldENhY2hlTW9kZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAgICAg
T25seSBzdHVicyBmb3Igbm93LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVNYXhpbXVtSFRUUENv
bm5lY3Rpb25Db3VudFBlckhvc3QpOgorICAgICAgICBDb3BpZWQgaGFyZC1jb2RlZCBjb25zdGFu
dCBmcm9tIFJlc291cmNlUmVxdWVzdFNvdXAuY3BwIHdpdGggY29tbWVudC4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2Vi
RXJyb3JzRWZsLmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6
On5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Ojppc1ZhbGlkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OmluaXRpYXRpbmdQYWdlSUQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVy
QmFzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQ
cml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgor
ICAgICAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCBmb3Igc291cCwgd2l0aG91dCBwcml2YXRl
IGJyb3dzaW5nIHN1cHBvcnQgeWV0LgorCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYWluKToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vz
c01haW5Vbml4Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJj
ZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0KTogQ29tbW9uIGVudHJ5IHBvaW50IGZvciBVbml4
IHBvcnRzLiBDb3JyZWN0IFJ1bkxvb3AgaW5pdGlhbGl6YXRvbiBmb3IgRUZMIGhhcyBiZWVuIHBv
c3BvbmVkLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVk
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBT
aGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaDogQ2hhbmdlZCBmb3J3YXJkIGRlY2xhcmF0aW9uIG9m
IFNoYXJlYWJsZVJlc291cmNlIHRvIGFjdHVhbAorICAgICAgICBpbmNsdWRlIGJlY2F1c2UgR0ND
IHJlcXVpcmVzIGEgZGVmaW5pdGlvbiBvZiB0aGUgdHlwZSBmb3IgcGFzc2luZyBpdCBpbiBhIFBh
c3NPd25QdHIuCisgICAgICAgICogU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6ZXhlY3V0YWJsZVBhdGhP
Zk5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nl
c3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1
bmNoUHJvY2Vzcyk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29y
a1Byb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToK
KyAgICAgICAgR3VhcmRzIGFuZCBoYW5kbGUgVU5JWF9ET01BSU5fU09DS0VUUyBjYXNlLgorCisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5o
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5j
aE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRp
ZmljYXRlSW5mbyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5p
bjoKKyAgICAgICAgQWRkZWQgZ3VhcmRzIHdoZXJlIGl0IGlzIGFwcHJvcHJpYXRlLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIEhhbmRsZSBVTklY
X0RPTUFJTl9TT0NLRVRTIGNhc2UuCisgICAgICAgICogdW5peC9OZXR3b3JrTWFpblVuaXguY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4K
KyAgICAgICAgKG1haW4pOiBDb21tb24gc3R1YiBmb3IgdGhlIGV4ZWN1dGFibGUgZm9yIHVuaXgg
cG9ydHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjcmVh
dGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1N5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpTeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVNldENhY2hl
TW9kZWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hU
VFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyU291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVNYXhpbXVtSFRUUENv
bm5lY3Rpb25Db3VudFBlckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcC4KKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6On5SZW1vdGVOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmluaXRpYXRpbmdQYWdl
SUQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0UHJpdmF0
ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnN0b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OnByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uU291cC5jcHAuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzTWFpbik6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29y
a1Byb2Nlc3NNYWluVW5peC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogUGxhdGZvcm1F
ZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBTaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaDoKKyAg
ICAgICAgKiBTaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nl
c3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVk
T3JGYWlsZWRUb0xhdW5jaCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9zb3VwL05ldHdvcmtQcm9jZXNzUHJveHlTb3VwLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJS
ZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlV2l0aENlcnRpZmljYXRlSW5mbyk6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5oOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwOgorICAgICAgICAo
V2ViS2l0OjppbnRlcm5hbEVycm9yKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZW5z
dXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgKiB1bml4L05ldHdvcmtNYWlu
VW5peC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1
ZmZlci5oLgorICAgICAgICAobWFpbik6CisKIDIwMTMtMDItMDcgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxNDIyMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAppbmRleCA3YjE2MWEwMGM5NzYwYjVjYzEyNzA4YTY3
NTJmOWExZjNmNmU4YjhmLi4xZmZlNmVlY2ZjZTkwNDg0MmRkZWM5Nzg1ZmIzOTZjY2QzZWJiOTkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogI2VsaWYgVVNFKFNP
VVApCiAgICAgdm9pZCBzZXRTb3VwU2Vzc2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nl
c3Npb24gPSBzZXNzaW9uOyB9CiAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9zZXNzaW9uOyB9CisgICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24o
KSBjb25zdCB7IHJldHVybiBtX2lzUHJpdmF0ZTsgfQogI2Vsc2UKICAgICBOZXR3b3JrU3RvcmFn
ZVNlc3Npb24oTmV0d29ya2luZ0NvbnRleHQqKTsKICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9u
KCk7CkBAIC03Myw2ICs3NCw3IEBAIHByaXZhdGU6CiAjZWxpZiBVU0UoU09VUCkKICAgICBOZXR3
b3JrU3RvcmFnZVNlc3Npb24oU291cFNlc3Npb24qKTsKICAgICBTb3VwU2Vzc2lvbiogbV9zZXNz
aW9uOworICAgIGJvb2wgbV9pc1ByaXZhdGU7CiAjZWxzZQogICAgIFJlZlB0cjxOZXR3b3JraW5n
Q29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291
cC5jcHAKaW5kZXggZGQ1NmUyYjg5ZjUxY2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFkMC4uYzI5
YTRjMDY0NjcyZGFhMWVmZWUxMWRhN2U0YzlkNjFjNTVkY2RjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcApAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNvdXBTZXNz
aW9uKiBzZXNzaW9uKQogICAgIDogbV9zZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX2lzUHJpdmF0
ZShmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCBhZjZiMTQxYmUwMmE0MzIz
NTllZTQ2MjUzMGQyMDI2YmIwNWI2N2UxLi45MTYzNDFiZWJmNzY2OGY1ZGQ4N2FjNTgxZWNjN2Nm
NDg4NTM0MGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMSw1ICsxLDYgQEAKIHNldChXZWJL
aXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0iCisgICAgIiR7V0VC
S0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vQ29yZUlQQyIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vUGx1Z2luUHJvY2VzcyIKQEAgLTExLDYgKzEyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9E
SVJFQ1RPUklFUwogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQiCiAg
ICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9OZXR3b3JrIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvTmV0d29yay9DdXN0
b21Qcm90b2NvbHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zIgogICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExIgpAQCAtMjMsNiArMjUsNyBAQCBzZXQoV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9E
b3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9MYXVuY2hlciIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL05ldHdvcmsiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAg
ICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL1N0b3JhZ2UiCkBAIC00MCw2ICs0Myw3IEBAIHNl
dChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00iCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
TGF1bmNoaW5nIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZSIKQEAgLTExOCw2ICsxMjIsMTQgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklF
UwogKQogCiBzZXQoV2ViS2l0Ml9TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29y
ZC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJs
ZUxvYWRlci5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAorCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3Bw
CiAgICAgUGxhdGZvcm0vV29ya1F1ZXVlLmNwcApAQCAtMTU4LDYgKzE3MCw3IEBAIHNldChXZWJL
aXQyX1NPVVJDRVMKICAgICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogICAgIFNoYXJl
ZC9TZXNzaW9uU3RhdGUuY3BwCiAgICAgU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKyAgICBT
aGFyZWQvU2hhcmVhYmxlUmVzb3VyY2UuY3BwCiAgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNw
cAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxl
LmNwcApAQCAtMTkwLDYgKzIwMyw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKICAgICBTaGFyZWQvV2ViUmVuZGVyTGF5
ZXIuY3BwCiAgICAgU2hhcmVkL1dlYlJlbmRlck9iamVjdC5jcHAKKyAgICBTaGFyZWQvV2ViUmVz
b3VyY2VCdWZmZXIuY3BwCiAgICAgU2hhcmVkL1dlYlRvdWNoRXZlbnQuY3BwCiAgICAgU2hhcmVk
L1dlYlVSTFJlcXVlc3QuY3BwCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtMjIz
LDYgKzIzNyw5IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9XZWJDb29yZGluYXRlZFN1cmZhY2UuY3BwCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVyUHJvZ3JhbVByb3h5LmNwcAogCisgICAgU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisgICAgU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisKICAgICBTaGFyZWQvUGx1
Z2lucy9OUElkZW50aWZpZXJEYXRhLmNwcAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVz
c2FnZVJlY2VpdmVyLmNwcAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCkBA
IC0zNTUsNiArMzcyLDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0xh
dW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb24uY3BwCkBAIC0zNjcsNiArMzg2LDggQEAg
c2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQ
cm94eS5jcHAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIu
Y3BwCiAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb250ZXh0U291cC5jcHAKKwogICAgIFdlYlBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKIApAQCAtNDI5LDYgKzQ1MCwxMCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAg
ICBXZWJQcm9jZXNzL05ldHdvcmtJbmZvL1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKIAorICAg
IFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKyAgICBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFdl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCkBAIC00
OTUsNiArNTIwLDkgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogKQogCiBzZXQoV2ViS2l0Ml9NRVNT
QUdFU19JTl9GSUxFUworICAgIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KKwogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3Nh
Z2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAg
UGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNTI3LDYg
KzU1NSw4IEBAIHNldChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkubWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogCiAgICAg
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01NDks
NiArNTc5LDkgQEAgc2V0KFdlYktpdDJfTUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlByb2Nl
c3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbgogCisgICAgV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorICAg
IFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorCiAgICAg
V2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9XZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4K
IAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1l
c3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKaW5kZXggMGQ1MmI4ZjNlNzQ1YjVjMDI1NjAzOGMyYjFhYWNlOGZmZmVhMmNlMy4u
NzNlZmU2ZGYyMGVmZDNmNTM0M2RlMzNiNDZmMDY2YmYyNzViOWFlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2
NCw5IEBAIE5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgYWRkU3VwcGxl
bWVudDxBdXRoZW50aWNhdGlvbk1hbmFnZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJDb29r
aWVNYW5hZ2VyPigpOworI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQogICAgIGFkZFN1cHBs
ZW1lbnQ8Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyPigpOworI2VuZGlmCiB9CiAKIE5ldHdvcmtQcm9j
ZXNzOjp+TmV0d29ya1Byb2Nlc3MoKQpAQCAtMTgwLDggKzE4MywxNiBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcygpCiAKICAgICBDb3Jl
SVBDOjpBdHRhY2htZW50IGNsaWVudFBvcnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9N
QUtFX1NFTkQpOwogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRpZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKGNsaWVudFBvcnQpLCAwKTsKLSNlbHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbGlm
IFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgc2VydmVySWRlbnRpZmllciwgY2xpZW50SWRlbnRpZmllcjsKKyAgICBib29sIHN1Y2Nl
c3MgPSBDb3JlSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVy
cyhzZXJ2ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyKTsKKyAgICBBU1NFUlRfVU5VU0VE
KHN1Y2Nlc3MsIHN1Y2Nlc3MpOworCisgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzPiBjb25uZWN0aW9uID0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0
ZShzZXJ2ZXJJZGVudGlmaWVyKTsKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQo
Y29ubmVjdGlvbi5yZWxlYXNlKCkpOworCisgICAgQ29yZUlQQzo6QXR0YWNobWVudCBjbGllbnRT
b2NrZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkQ3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoY2xpZW50U29ja2V0KSwgMCk7CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCA4YzMzMzJiNTgxMzcyM2YzOGE2YTdmZDg4Mjc3ZGZh
NTJmYTA2NDlhLi5hZWE1NjRmZTBiYjNiNjQ1OWZmMzVhY2RjOWRkODgwMTNmYjYxZjg5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtNCw3ICs0LDcgQEAKICNpbmNsdWRlICJIb3N0
UmVjb3JkLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3Njb25uZWN0aW9uTWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0
d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiU3luY05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtS
ZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggN2Y0YmJkZDgzNDY3ZGM5ZTYwMzhlY2NkNDYyZDhlNTE4
ODJkYzE4Zi4uMjIyYzM0YWZjNzZmZmJjMWFlMWM5ZjMyNThhNTI4MmJmM2ZhYjk3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC03Nyw4ICs3Nyw4IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpz
dGFydCgpCiAgICAgLy8gRXhwbGljaXQgcmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VIYW5kbGVTdG9wcGVkKCkKICAgICByZWYoKTsK
ICAgICAKLSAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQgd2l0aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4
dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZh
dGVCcm93c2luZ01vZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCgpKTsKKyAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBTZXQgcGxhdGZvcm0gc3BlY2lm
aWMgc2V0dGluZ3MuCisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCksIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSk7CiAKICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lv
bnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90
ZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlkNWJiOGYzNmExNjI1N2U1M2U5MGVi
YmU0NjMxZWM1NmJlZTg1NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTAsMCArMSw4NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAorI2Rl
ZmluZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdv
cmtpbmdDb250ZXh0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZShib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOworCisgICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0ZUJy
b3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKKyAgICBz
dGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIHZv
aWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKKworICAgIHN0YXRpYyBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsgLy8gQ2Fu
IG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gZXhpc3RzLgorCisgICAgdmlydHVhbCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBPVkVS
UklERQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQoYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgICAgIDogbV9wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgICAgICwgbV9zaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IE9WRVJSSURFOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZv
aWQgc2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoYm9vbCB2YWx1ZSkgeyBtX25lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoYm9vbCB2YWx1ZSkgeyBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQgPSB2YWx1ZTsgfQorCisgICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIE5TT3BlcmF0aW9uUXVl
dWUgKnNjaGVkdWxlZE9wZXJhdGlvblF1ZXVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklERTsKKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisg
ICAgdmlydHVhbCB1aW50NjRfdCBpbml0aWF0aW5nUGFnZUlEKCkgY29uc3Q7CisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7Cisg
ICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7CisjZW5kaWYKKworICAg
IGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOworICAgIGJvb2wgbV9zaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OworfTsKKworfQorCisjZW5kaWYgLy8gUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZjgyZDE0OWMy
ZWJkMDBmMDA1ZGUzYTk2YTNlNGY5ZTEwMWE1YWZiLi5mNjMyOTUyNGM3MjRmZTJmNGVmOTIyZmFi
NWYwMjE3YTIwMzhjYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNTgsOCArNTgsOCBA
QCB2b2lkIFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICBSZXNvdXJjZVJl
c3BvbnNlIHJlc3BvbnNlOwogICAgIFZlY3RvcjxjaGFyPiBkYXRhOwogICAgIAotICAgIC8vIEZJ
WE1FIChOZXR3b3JrUHJvY2Vzcyk6IENyZWF0ZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCB3aXRo
IGFjdHVhbCBzZXR0aW5ncy4KLSAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5l
dHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwg
ZmFsc2UsIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0KCkpOworICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFNldCBw
bGF0Zm9ybSBzcGVjaWZpYyBzZXR0aW5ncy4KKyAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ+IG5ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZShpblByaXZhdGVCcm93c2luZ01vZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCgpKTsKIAogICAgIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NF
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNz
RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ODlhNzk2MjkzMTMzMWQ2OWQ3YjhlYzVkNzI2YWFiMTlhNmJh
NmRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZs
L05ldHdvcmtQcm9jZXNzRWZsLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAi
TmV0d29ya1Byb2Nlc3MuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTmV0d29ya1By
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
OTYwZDA0NjgxYzg0YzBjOTYxMzkxYzRiMjk3MGRkZWU4YWRiM2YyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAot
I2RlZmluZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCi0KLSNpbmNsdWRlIDxXZWJDb3JlL05l
dHdvcmtpbmdDb250ZXh0Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZShib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwotICAgIH0K
LSAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwotCi0gICAgc3RhdGljIHZv
aWQgc2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBT
dHJpbmcmKTsKLSAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7
Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKLQotICAg
IHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHByaXZhdGVCcm93c2luZ1Nl
c3Npb24oKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gZXhpc3RzLgot
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QoKSBjb25zdCBPVkVSUklERTsKLQotcHJpdmF0ZToKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBtX3Nob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwotCi0gICAgdmlydHVhbCBib29s
IGlzVmFsaWQoKSBjb25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVT
cGVjaWZpY1F1aXJrcygpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBOU09wZXJhdGlvblF1ZXVlICpzY2hlZHVsZWRPcGVyYXRpb25R
dWV1ZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgT1ZF
UlJJREU7Ci0KLSAgICBib29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7Ci0gICAgYm9vbCBt
X2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7Ci0gICAgYm9vbCBtX3ByaXZhdGVCcm93
c2luZ0VuYWJsZWQ7Ci0gICAgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3Q7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggNzgxOTUzM2E1MjliNTZhZjQwYTBjYjllYzZh
ZTFjOWM3OTFjYTJlYi4uMGVlNTY4ZmVhM2RkMDIxNTYyZGUxYjczZmZlNDgzZDE1YTE0YTdhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNDIsMTkgKzQyLDYgQEAgc3RhdGljIE93blB0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigp
CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKLWJvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6
OnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAotewotICAg
IHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7Ci19Ci0K
LVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQotICAgIDogbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhu
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcykKLSAgICAsIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZChsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKQotICAgICwgbV9wcml2YXRl
QnJvd3NpbmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCi0gICAgLCBtX3Nob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCkKLXsKLX0KLQogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6On5SZW1v
dGVOZXR3b3JraW5nQ29udGV4dCgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNj
aGVkdWxlclNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiYWI3MjZiNDIwZTY3NGQzMGQ0NGFhOWI1MGY0
NDAyNTkzY2ZlOWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcApAQCAtMCwwICsx
LDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCisKKyNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1bnNpZ25lZCBOZXR3b3JrUmVzb3VyY2VMb2FkU2No
ZWR1bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhv
c3QoKQoreworICAgIC8vIFNlZTogUmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICByZXR1cm4g
MTAwMDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2RkNGQzNTIzNThlZWY4YjJlY2My
NDMyNDI4Nzk0N2M5ZGNmZGEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCkBAIC0wLDAg
KzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQo
KQoreworfQorCitib29sIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordWludDY0X3QgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmluaXRpYXRpbmdQYWdlSUQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZh
dGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uJiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25z
dAoreworICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vz
c2lvbigpOworfQorCitOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigp
OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5V
bml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nl
c3NNYWluVW5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTdlZmIyMjI3NGU3ODMzNWI4MmI4YmU1YTc0NmM0
OGE3ODQ4ZDRlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgiCisKKyNpbmNsdWRlICJXS0Jhc2Uu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL05ldHdv
cmtQcm9jZXNzLmg+CisjaW5jbHVkZSA8ZXJyb3IuaD4KKyNpbmNsdWRlIDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNl
bmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1dLX0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
Cit7CisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAgcmV0dXJuIDE7CisKKyNpZiBQTEFURk9S
TShHVEspCisgICAgZ3RrX2luaXQoJmFyZ2MsICZhcmd2KTsKKyNlbmRpZgorCisgICAgLy8gRklY
TUU6IEV2ZW50IGxvb3AgaXMgbm90IGluaXRpYWxpemVkIGNvcnJlY3RseSBmb3IgRUZMLiBGb3Ig
RUZMIHdlIHNob3VsZCBzaG91bGQgZWl0aGVyCisgICAgLy8gaW5pdGlhbGl6ZSBlY29yZSBvciB1
c2UgdGhlIGdsaWItb25seSBSdW5Mb29wIGltcGxlbWVudGF0aW9uIGluIHRoZSBuZXR3b3JrIHBy
b2Nlc3MuCisKKyAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRp
YWxpemVNYWluVGhyZWFkKCk7CisKKyAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKworICAgIC8vIEZJWE1FOiBoYW5kbGUgcHJveHkgc2V0dGluZ3MuCisKKyAgICBlcnJubyA9
IDA7CisgICAgbG9uZyBpbnQgc29ja2V0ID0gc3RydG9sKGFyZ3ZbMV0sIDAsIDEwKTsKKyAgICBp
ZiAoZXJybm8pCisgICAgICAgIHJldHVybiAxOworCisgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6
YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5jb25uZWN0aW9uSWRl
bnRpZmllciA9IGludChzb2NrZXQpOworCisgICAgTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgpLmlu
aXRpYWxpemUocGFyYW1ldGVycyk7CisKKyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIHJldHVy
biAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91
bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMGMwNGIxNTBm
NGNkNGVkMTJhOTk0ODU4ZjQwZjRjMWRhZDhjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0
eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0
d29ya1Byb2Nlc3NNYWluVW5peF9oCisjZGVmaW5lIE5ldHdvcmtQcm9jZXNzTWFpblVuaXhfaAor
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dL
X0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pOwor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYlByb2Nlc3NNYWluRWZsX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZjZjZTE3NmZkM2E0M2ZlZGQ1ZDM0YTc2ZTlk
NjViYTgxMGI3MTMzZS4uOGJmZGM4M2E0MTE5MWNjNjEzMGEwMzJhMGY3YTZiNmM5NjFjZjNhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEsNCArMSw5IEBACiBsaXN0KEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwu
Y3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
U291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
U291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXgu
Y3BwCisKICAgICBQbGF0Zm9ybS9lZmwvTG9nZ2luZ0VmbC5jcHAKICAgICBQbGF0Zm9ybS9lZmwv
TW9kdWxlRWZsLmNwcAogICAgIFBsYXRmb3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0xMDks
NiArMTE0LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2Vm
bC9XZWJQcm9jZXNzUHJveHlFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAog
CisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCisKICAgICBVSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL2VmbC9XZWJJbnNwZWN0b3JTZXJ2ZXJFZmwuY3BwCiAgICAgVUlQcm9j
ZXNzL0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tldFNlcnZlclNvdXAuY3BwCiAKQEAgLTEx
OCw2ICsxMjUsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vz
cy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAogCisgICAgVUlQcm9jZXNzL05l
dHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKKwogICAgIFVJUHJvY2Vzcy9Q
bHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5jcHAKICAgICBVSVByb2Nlc3MvUGx1Z2lu
cy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3BwCiAKQEAgLTE2Myw2ICsxNzIsNyBAQCBs
aXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90
ZXh0L2VuY2hhbnQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvdW5peCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0Rvd25sb2Fkcy9zb3VwIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvZWZsIgogICAg
ICIke1dFQktJVDJfRElSfS9TaGFyZWQvc291cCIKQEAgLTMyMyw2ICszMzMsMjcgQEAgaWYgKEVO
QUJMRV9QTFVHSU5fUFJPQ0VTUykKICAgICBpbnN0YWxsKFRBUkdFVFMgJHtQbHVnaW5Qcm9jZXNz
X0VYRUNVVEFCTEVfTkFNRX0gREVTVElOQVRJT04gIiR7RVhFQ19JTlNUQUxMX0RJUn0iKQogZW5k
aWYgKCkgIyBFTkFCTEVfUExVR0lOX1BST0NFU1MKIAoraWYgKEVOQUJMRV9ORVRXT1JLX1BST0NF
U1MpCisgICAgc2V0KE5ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRSBOZXR3b3JrUHJvY2Vz
cykKKyAgICBsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19JTkNMVURFX0RJUkVDVE9SSUVTCisg
ICAgICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2VzcyIKKyAgICApCisKKyAgICBpbmNs
dWRlX2RpcmVjdG9yaWVzKCR7TmV0d29ya1Byb2Nlc3NfSU5DTFVERV9ESVJFQ1RPUklFU30pCisK
KyAgICBsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCisgICAgICAgICR7V0VCS0lU
Ml9ESVJ9L3VuaXgvTmV0d29ya01haW5Vbml4LmNwcAorICAgICkKKworICAgIHNldChOZXR3b3Jr
UHJvY2Vzc19MSUJSQVJJRVMKKyAgICAgICAgJHtXZWJLaXQyX0xJQlJBUllfTkFNRX0KKyAgICAp
CisKKyAgICBhZGRfZXhlY3V0YWJsZSgke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0g
JHtOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTfSkKKyAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHtO
ZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9ICR7TmV0d29ya1Byb2Nlc3NfTElCUkFSSUVT
fSkKKyAgICBpbnN0YWxsKFRBUkdFVFMgJHtOZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9
IERFU1RJTkFUSU9OICIke0VYRUNfSU5TVEFMTF9ESVJ9IikKK2VuZGlmICgpCisKIGluY2x1ZGVf
ZGlyZWN0b3JpZXMoJHtUSElSRFBBUlRZX0RJUn0vZ3Rlc3QvaW5jbHVkZSkKIAogc2V0KEVXSzJV
bml0VGVzdHNfTElCUkFSSUVTCkBAIC0zNTMsNiArMzg0LDcgQEAgYWRkX2RlZmluaXRpb25zKC1E
VEVTVF9SRVNPVVJDRVNfRElSPVwiJHtURVNUX1JFU09VUkNFU19ESVJ9XCIKICAgICAtRExJQkVY
RUNESVI9XCIke0NNQUtFX0lOU1RBTExfUFJFRklYfS8ke0VYRUNfSU5TVEFMTF9ESVJ9XCIKICAg
ICAtRFdFQlBST0NFU1NOQU1FPVwiJHtXZWJQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX1cIgogICAg
IC1EUExVR0lOUFJPQ0VTU05BTUU9XCIke1BsdWdpblByb2Nlc3NfRVhFQ1VUQUJMRV9OQU1FfVwi
CisgICAgLURORVRXT1JLUFJPQ0VTU05BTUU9XCIke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVf
TkFNRX1cIgogKQogCiBhZGRfbGlicmFyeShld2syVW5pdFRlc3RVdGlscwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IDVmYmYzMjAxODExMDU1
ZTM4NGFiZWRiNmQzZGQ1ZGFmMWM3Yjc0ZGQuLmQ3OGViY2RkZWJhOTZlNWE5YTMwMWVjN2U4Y2Q1
MjM3NDlkYmRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhl
Y3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoLmgKQEAgLTMyLDYgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFN0cmluZyBl
eGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVn
aW5Qcm9jZXNzKCk7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRh
YmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKaW5kZXggYjQ3ZjMxODE1ODMyOWE4NTUwNGUyMjgx
ZGJiM2Y1NjY3YmYzNGY3YS4uZDYyNGMwOGRmYWU2ODE2YmUyMTcwMmZiZmNhZjA4MmRkYWJlNWNi
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKQEAgLTI2LDEy
ICsyNiwxMSBAQAogI2lmbmRlZiBXZWJSZXNvdXJjZUJ1ZmZlcl9oCiAjZGVmaW5lIFdlYlJlc291
cmNlQnVmZmVyX2gKIAorI2luY2x1ZGUgIlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3Mg
U2hhcmVhYmxlUmVzb3VyY2U7Ci0KIGNsYXNzIFdlYlJlc291cmNlQnVmZmVyIDogcHVibGljIFdl
YkNvcmU6OlJlc291cmNlQnVmZmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBhc3NSZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IHJl
c291cmNlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViUmVzb3VyY2VCdWZmZXIocmVzb3VyY2Up
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGhFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGhFZmwuY3BwCmluZGV4IDYxOGFiMmExNDNhZmVkYzU1ZTFhM2VlZTJjYTQwNzY1ZGJj
MWViZjcuLmM5ZTQ5MmViNDYxNjk3OGNmZDBlNTFhYWVjZTc1OWIxMDI4ZTYyMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVm
bC5jcHAKQEAgLTc0LDQgKzc0LDEzIEBAIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJv
Y2VzcygpCiAgICAgcmV0dXJuIHdlYktpdFBsdWdpblByb2Nlc3NOYW1lOwogfQogCisjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nl
c3MoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCB3ZWJLaXROZXR3
b3JrUHJvY2Vzc05hbWUsIChmaW5kUHJvY2Vzc1BhdGgoTkVUV09SS1BST0NFU1NOQU1FKSkpOwor
CisgICAgcmV0dXJuIHdlYktpdE5ldHdvcmtQcm9jZXNzTmFtZTsKK30KKyNlbmRpZgorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcAppbmRleCAzYTM2MzM0N2Y4
ZWNhYmMzNTI3NWZlYzBiNjUxM2IwYTM0YzIyODgxLi5iYmQ4YmEzMTZkMDhmZDM3NzZiYWI2ZmVi
ZjMxMDM2N2IwMzAwODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCkBAIC01Myw2ICs1Mywx
MSBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHBsdWdp
blBhdGggPSBtX2xhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVn
aW4tcGF0aCIpLnV0ZjgoKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorICAgIGNhc2UgTmV0d29ya1Byb2Nlc3M6CisgICAgICAgIGV4ZWN1dGFi
bGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCkudXRmOCgpOworICAgICAg
ICBicmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQyZTIwNWZkNmI3NDJh
OWRiYjNhMmE4NmNhMTljM2QwZTllZGI5NTMuLjNjMDkwZmNlZjhjM2Q5NmZjZjliOTNhZWI3NDRm
MzVkMmM5YTQyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yOSwxOCArMjksMjIgQEAKICNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eS5oIgotI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01l
c3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKICNpbmNs
dWRlICJTZWNJdGVtU2hpbVByb3h5LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShDVVNUT01fUFJP
VE9DT0xTKQorI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIK
KyNlbmRpZgorCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNL
X0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0aW9uKCkpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtMTAwLDYgKzEwNCw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29ya1By
b2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAg
ICAgIHJlcGx5LT5zZW5kKENvcmVJUEM6OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpKTsKKyNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXBseS0+
c2VuZChDb3JlSVBDOjpBdHRhY2htZW50KCkpOwogI2Vsc2UKICAgICAgICAgbm90SW1wbGVtZW50
ZWQoKTsKICNlbmRpZgpAQCAtMTUwLDYgKzE1Niw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgQ29yZUlQQzo6
CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgcmVwbHktPnNlbmQoQ29yZUlQQzo6QXR0YWNobWVu
dChjb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7
CisjZWxpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKKyAgICByZXBseS0+c2VuZChjb25uZWN0
aW9uSWRlbnRpZmllcik7CiAjZWxzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1By
b2Nlc3NQcm94eVNvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvc291
cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UwZDIyNWRlMjlkMTgx
ZmFhN2M1ZWUwMjExMDY5YjkxZGM5Yjg3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5B
QkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cGxhdGZv
cm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNo
T3B0aW9ucykKK3sKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45Y2I5Y2RmM2RhNmQ2ZjAyYzQ1ZjQwZWI1ZTc4MWRkYzkyYjVkZGJmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNv
dXAuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisK
KyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3Jr
UHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMWM1OWRmMTNjOWYxZmU1YTA0MjM1NGFlMmQzNDk4ZjI3ZDg4MmI1NC4uM2Ux
YzA0YTlkYzI5MzEwYzM0YmNhYWYxNTY5NDhhMmEwYzI1YzljMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTcxLDYgKzU3MSw4
IEBACiAJCTkzRkM2N0JFMTJEM0NDRjIwMEE2MDYxMCAvKiBEZWNvZGVyQWRhcHRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGQzY3OUUxMkQzQ0M3
NDAwQTYwNjEwIC8qIERlY29kZXJBZGFwdGVyLmggKi87IH07CiAJCTkzRkM2N0JGMTJEM0NDRjIw
MEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZDNjc5RjEyRDNDQzc0MDBBNjA2MTAgLyogRW5jb2RlckFk
YXB0ZXIuY3BwICovOyB9OwogCQk5M0ZDNjdDMDEyRDNDQ0YyMDBBNjA2MTAgLyogRW5jb2RlckFk
YXB0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RkM2N0EwMTJEM0NDNzQwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5oICovOyB9OworCQk5OEJB
MTIyNTE2QzU3QzIxMDA4ODg4OTUgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBpbiBDb3B5
RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThCQTEyMjQxNkM1N0My
MTAwODg4ODk1IC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CisJCTk4QkExMjI2
MTZDNTdDMjEwMDg4ODg5NSAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOThCQTEyMjQxNkM1N0MyMTAwODg4
ODk1IC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CiAJCTlGNEY1OTQyMTY0OEI0
MDcwMDQ5M0I3RSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlck1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNEY1OTQxMTY0OEI0MDcwMDQ5
M0I3RSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJOUY0RjU5
NDQxNjQ4QjY3RjAwNDkzQjdFIC8qIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNEY1OTQzMTY0OEI2
N0YwMDQ5M0I3RSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW0gKi87IH07CiAJCTlG
NTRGODhGMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjU0Rjg4RTE2NDg4RTg3MDA3REY4
MUEgLyogQ2hpbGRQcm9jZXNzTWFjLm1tICovOyB9OwpAQCAtMTA3OSw3ICsxMDgxLDYgQEAKIAkJ
RTFBOUE4NTIxNjlFMjAyNTAwMkQ3MTc2IC8qIFdlYktpdC5pY25zIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIg
LyogV2ViS2l0LmljbnMgKi87IH07CiAJCUUxQUVBMjJGMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1
bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2Fy
ZEFjY2Vzc1dhdGNoZXIuaCAqLzsgfTsKIAkJRTFBRUEyMzAxNDY4N0JEQjAwODA0NTY5IC8qIFdL
RnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxQUVBMjJFMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXli
b2FyZEFjY2Vzc1dhdGNoZXIubW0gKi87IH07Ci0JCUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5MiAv
KiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFCNzg0NzAxNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0LmggKi87IH07CiAJCUUxQjc4NDczMTYzRjI1M0UwMDA3QjY5MiAvKiBSZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQjc4NDcyMTYzRjI1M0UwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbSAqLzsgfTsKIAkJRTFDQzFCOTAxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDQzFC
OEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovOyB9OwogCQlFMUNDMUI5MTEyRDdF
QURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDQzFCOEYxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5m
b01hYy5tbSAqLzsgfTsKQEAgLTEyNTgsNiArMTI1OSw3IEBACiAJCQkJNTEwQ0M4NDkxNjEzQzg1
QzAwRDAzRUQzIC8qIE5ldHdvcmtQcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQkNE
RTBBQkYxMzI3MjcwODAwMTI1OUZCIC8qIFBsdWdpblByb2Nlc3MuYXBwIGluIENvcHlGaWxlcyAq
LywKIAkJCQkxQTUwREI2NjExMEEzRDU3MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgaW4gQ29w
eUZpbGVzICovLAorCQkJCTk4QkExMjI1MTZDNTdDMjEwMDg4ODg5NSAvKiBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5oIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE1MjAsOCArMTUyMiw4IEBACiAJCTFB
QjE2QUVCMTY0QjQxRTQwMDI5MEQ2MiAvKiBSZW1vdGVHcmFwaGljc0xheWVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NMYXllci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFCMTZBRUMxNjRCNDFFNDAwMjkwRDYyIC8q
IFJlbW90ZUdyYXBoaWNzTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlR3JhcGhpY3NMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUIz
MUE5MzE2QkM2NUFCMDBGNkRCQzkgLyogU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTFBQjMxQTk0MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdG9yYWdlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBQjMxQTk1MTZCQzY4ODEwMEY2
REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2Vy
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCMzFBOTQxNkJDNjg4
MTAwRjZEQkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFCMzFBOTUxNkJDNjg4MTAwRjZE
QkM5IC8qIFN0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU3RvcmFnZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQUI3RDRDODEyODhBQUE3MDBDRkQwOEMgLyogRG93bmxvYWRQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb3dubG9hZFByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBQjdENEM5MTI4OEFBQTcwMENGRDA4QyAvKiBEb3dubG9hZFBy
b3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2FkUHJv
eHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUI3RDVFOTEyODhCOEMwMDBD
RkQwOEMgLyogRG93bmxvYWRQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBEb3dubG9hZFByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTkwNiw2ICsxOTA4LDcgQEAKIAkJOTNGQzY3OUUxMkQzQ0M3NDAwQTYwNjEwIC8qIERlY29k
ZXJBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY29kZXJBZGFw
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRkM2NzlGMTJEM0NDNzQwMEE2
MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFbmNvZGVyQWRhcHRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRkM2N0EwMTJEM0NDNzQwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFbmNvZGVyQWRhcHRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5OEJBMTIyNDE2QzU3QzIxMDA4ODg4OTUgLyogUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY0RjU5NDExNjQ4
QjQwNzAwNDkzQjdFIC8qIFNoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyTWFjLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFn
ZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNEY1OTQzMTY0OEI2N0Yw
MDQ5M0I3RSAvKiBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNTRGODhFMTY0ODhFODcwMDdERjgxQSAv
KiBDaGlsZFByb2Nlc3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBDaGlsZFByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
NDcyLDcgKzI0NzUsNiBAQAogCQlFMUEzMTczNDEzNENFQTgwMDA3QzlBNEYgLyogQXR0cmlidXRl
ZFN0cmluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF0dHJp
YnV0ZWRTdHJpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQUVBMjJEMTQ2
ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQUVBMjJFMTQ2ODdCREIwMDgwNDU2OSAvKiBX
S0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUI3ODQ3
MjE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4
IC8qIFByaW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmludElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQzFCOEYxMkQ3RUFERjAwNjI1
ODM4IC8qIFByaW50SW5mb01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFByaW50SW5mb01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMz
MTksNiArMzMyMSw3IEBACiAJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJv
Y2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOThC
QTEyMjQxNkM1N0MyMTAwODg4ODk1IC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJ
CQkJQkM4MjgzN0MxNkI0NURBNTAwQTI3OEZFIC8qIEVudHJ5UG9pbnQgKi8sCiAJCQkJNTEwQ0M3
REMxNjEzOEUyOTAwRDAzRUQzIC8qIG1hYyAqLywKIAkJCQk1MTJDMDY4NjE2MzhGNjdFMDBBQkI5
MTEgLyogSG9zdFJlY29yZC5jcHAgKi8sCkBAIC0zMzQ3LDcgKzMzNTAsNiBAQAogCQkJCUUxN0FF
MkMxMTZCOUMxMzkwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNi
LmluICovLAogCQkJCTUxQThBNjE1MTYyN0YzRjkwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vzc01h
Yy5tbSAqLywKIAkJCQk1MTJDMDY4RjE2MzkwRTY5MDBBQkI5MTEgLyogTmV0d29ya1Jlc291cmNl
TG9hZFNjaGVkdWxlck1hYy5tbSAqLywKLQkJCQlFMUI3ODQ3MDE2M0YyNDY5MDAwN0I2OTIgLyog
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCQlFMUI3ODQ3MjE2M0YyNTNFMDAwN0I2
OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IG1h
YzsKQEAgLTUwMjcsNyArNTAyOSw2IEBACiAJCQkJMUFBM0Q3NUMxNjUxQjQ0RjAwODcxM0QwIC8q
IFJlbW90ZUxheWVyVHJlZUhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTNENzYyMTY1MUI3
RDMwMDg3MTNEMCAvKiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRjFBQzZDMTY1MTc1OUUwMEMxN0Q3RiAvKiBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFCNzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTMwMDY2RTExMTBG
NEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMyRDAyMTcxMkFDNDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUFCNEE4RDEyOTZGMEEyMDAyMzk1MkYgLyogU2FuZGJveEV4
dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC01MzY2LDYgKzUzNjcsNyBAQAogCQkJCUJDOTg5
RDg1MTYxQTk4OTAwMDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMyRTZFOEUxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNCRUNERTgxNkI2NDE2ODAwMDQ3QTFBIC8qIFhQQ1NlcnZpY2VF
bnRyeVBvaW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5OEJBMTIyNjE2QzU3QzIxMDA4ODg4OTUg
LyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAK
aW5kZXggYzljOGIzMGQ5NzYyNDU3NDczNGFiZGE2NzVjZWEzODQxNDU4NjVjZC4uZDcyNWE5ZTU3
ZTE5OGU4OTJiYTc3NzMzYmNmMmJhZDllMWFhNjczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04Myw3
ICs4Myw5IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhD
ZXJ0aWZpY2F0ZUluZm8oY29uc3QgUmVzb3VyY2VSZXNwCiB7CiAgICAgTE9HKE5ldHdvcmssICIo
V2ViUHJvY2VzcykgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0
aWZpY2F0ZUluZm8gZm9yICclcycuIFN0YXR1cyAlZC4iLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCksIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogICAgIFJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2VDb3B5KHJlc3BvbnNlKTsKKyNpZiBVU0UoQ0ZORVRXT1JL
KQogICAgIHJlc3BvbnNlQ29weS5zZXRDZXJ0aWZpY2F0ZUNoYWluKGNlcnRpZmljYXRlSW5mby5j
ZXJ0aWZpY2F0ZUNoYWluKCkpOworI2VuZGlmCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZl
UmVzcG9uc2UocmVzcG9uc2VDb3B5KTsKIH0KIApAQCAtMTIzLDEwICsxMjUsMTIgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291
cmNlOjpIYW5kbGUmIGhhbmQKICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoZmlu
aXNoVGltZSk7CiB9CiAKKyNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQog
dm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgYm9vbCYgcmVzdWx0
KQogewogICAgIHJlc3VsdCA9IG1fY29yZUxvYWRlci0+Y2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2UpOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJSZXNvdXJjZUxvYWRlci5oCmluZGV4IDAzZTgyNzE2MGQ0ZTUwMDMxOGRmNWYyMGE3YTY3
ZWY4NWRlNjNhY2UuLjAzOTAxNzY3ZTRmYmFjNDliMWNiY2M4MThlZWUxZDkxZjY5Yjg5ZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5oCkBAIC04MCw3ICs4MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsUmVz
b3VyY2VMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVSZXNvdXJjZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgZG91YmxlIGZp
bmlzaFRpbWUpOwogCisjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAg
ICB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlJiwgYm9vbCYgcmVzdWx0KTsKKyNlbmRpZgogCiAgICAgUmVmUHRy
PFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiBtX2NvcmVMb2FkZXI7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLm1lc3NhZ2VzLmluCmluZGV4IGVhZDU3YTg1MTJhMmYxY2E1MTMwMGUxYjcyZGRhY2RjMjIz
NGIzYjMuLjkzNjFjYTg5NGRmNTYxODZiOWQxMWJjYmQ3MTY2NmQ1MTA4OGZlOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVz
b3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KQEAgLTIwLDYgKzIwLDggQEAKICMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisK
IG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZGVyIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIENh
bmNlbFJlc291cmNlTG9hZGVyKCkKQEAgLTMxLDggKzMzLDEyIEBAIG1lc3NhZ2VzIC0+IFdlYlJl
c291cmNlTG9hZGVyIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRGaW5pc2hSZXNvdXJjZUxvYWQo
ZG91YmxlIGZpbmlzaFRpbWUpCiAgICAgRGlkRmFpbFJlc291cmNlTG9hZChXZWJDb3JlOjpSZXNv
dXJjZUVycm9yIGVycm9yKQogICAgIAorI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FM
TEJBQ0spCiAgICAgQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlKSAtPiAoYm9vbCByZXNwb25zZSkKKyNl
bmRpZgogCiAgICAgLy8gRGlkUmVjZWl2ZVJlc291cmNlIGlzIGZvciB3aGVuIHdlIGhhdmUgdGhl
IGVudGlyZSByZXNvdXJjZSBkYXRhIGF2YWlsYWJsZSBhdCBvbmNlLCBzdWNoIGFzIHdoZW4gdGhl
IHJlc291cmNlIGlzIGNhY2hlZCBpbiBtZW1vcnkKICAgICBEaWRSZWNlaXZlUmVzb3VyY2UoV2Vi
S2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNlLCBkb3VibGUgZmluaXNoVGlt
ZSkKIH0KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJy
b3JzRWZsLmNwcAppbmRleCA5ZDhkZmRhMGRhYjc0OTIwNDM5MzUyZGFkOTU5NTUzYmRjZGFlYWU1
Li4zNDVkOWMwNWRlM2ZjZDNjN2U3YjAxYTkwNTI4NDk5NzRhYWJkYTU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dl
YkVycm9yc0VmbC5jcHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIldlYkVycm9ycy5oIgogCisjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0Vycm9yc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Vycm9yLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC03MCw0ICs3Miw5IEBAIFJlc291cmNlRXJyb3Ig
cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKICAgICByZXR1cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNwb25z
ZSk7CiB9CiAKK1dlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBXZWJD
b3JlOjpLVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoV2ViRXJyb3I6Ondl
YktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybC5zdHJpbmcoKSwgQVNDSUlM
aXRlcmFsKCJJbnRlcm5hbCBlcnJvciIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA0OTBmMzE5MGE0NGYw
NDRhZjI1MDk5OTUxZmJhYzU5ZmYxYmE3ZmJjLi43MmMxMTdhMGI2OWJlYWNjMTgzODVmMDc0MDYx
ZjgyYzBiODk3ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
QEAgLTM0MiwxMSArMzQyLDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRl
bnRpZmllci5wb3J0KCkpOwotICAgIGlmIChDb3JlSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVy
SXNOdWxsKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuOworI2VsaWYgVVNF
KFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllciA9IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxl
YXNlRmlsZURlc2NyaXB0b3IoKTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAj
ZW5kaWYKKyAgICBpZiAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzTnVsbChjb25u
ZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybjsKICAgICBtX25ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbiA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvdW5peC9OZXR3b3JrTWFpblVuaXguY3BwIGIvU291cmNlL1dl
YktpdDIvdW5peC9OZXR3b3JrTWFpblVuaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NDhiMzEzOGU4MmQy
N2M1OGJmOWNhMDAxMzZlZDJkNzc5YjhhYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi91bml4L05ldHdvcmtNYWluVW5peC5jcHAKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMyBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNYWluVW5peC5oIgorCitpbnQgbWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYWluKGFy
Z2MsIGFyZ3YpOworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZWNvbmZpZy5o
LmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5kZXggOTM3ZjY3ZDk1ZWJmOTk4
NTU2ZTFmNWZiMGU2NjM1MTFhODNmNjA3OC4uMjllNTBkNDgwMjQxYWMwMWZjNzYyM2FmZTM5OTg2
Y2E0ODY1ODQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKKysrIGIv
U291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTg0LDYgKzg0LDcgQEAKICNjbWFrZWRlZmlu
ZTAxIEVOQUJMRV9OT1NOSUZGCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUU0NBUEVfUExVR0lO
X0FQSQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05FVFdPUktfSU5GTworI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX05FVFdPUktfUFJPQ0VTUwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05PVElGSUNBVElP
TlMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICNjbWFrZWRlZmlu
ZTAxIEVOQUJMRV9QQUdFX1BPUFVQCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cK
aW5kZXggZjJjOGVlOWY0ZTEwNDE1ZjQ1ZTM5NWIzM2UzY2YyOTYzZTFjODIwYi4uYzYxMjNiN2I4
OTgzNDE1NTZkMWJhMDk2NjRjODNiNDUxZTlkZjQ3ZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisr
KyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTA5ICBCYWxhenMgS2VsZW1l
biAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNldCB1cCBOZXR3
b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZToKKyAgICAgICAgQWRkIHRoZSBFTkFCTEVf
TkVUV09SS19QUk9DRVNTIGZsYWcuCisKIDIwMTMtMDItMDcgIERhdmlkIEZhcmxlciAgPGRmYXJs
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2VmaWxlcyBzaG91bGQgd29yayBmb3IgYXJiaXRy
YXJ5IFNES3MgYW5kIGFyY2hpdGVjdHVyZXMgb24gQXBwbGUgcG9ydHMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187548</attachid>
            <date>2013-02-11 05:01:17 -0800</date>
            <delta_ts>2013-02-11 07:12:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108832-20130211135939.patch</filename>
            <type>text/plain</type>
            <size>61730</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE1OGE3NjkzMmI5NmI4
OWMwZGFmMTdhMjAwM2NjOWRlNTVjYmNkOC4uM2RjNDMwNDIzODdlOTVhMjRkZTgyNTNjN2JjM2Q5
NzBkYTU5YTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTExICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNl
dCB1cCBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRGVmaW5lIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQcml2YXRlQnJvd3Np
bmdTZXNzaW9uIGZvciBzb3VwIGFzIHdlbGwuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChOZXR3b3JrU3RvcmFnZVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKwogMjAxMy0wMi0xMSAgQW5kcmV5IEx1c2huaWtvdiAg
PGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaG9tZSBi
dXR0b24gYmVoYXZpb3VyIGlzIHdyb25nIGluIERURQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGE3YWQxZDE4MjJl
OTkwN2NhZjBhYjM2YWI1ZjJmMGYxNzE2MjkwMjcuLjRkMmQwZmVmMTQ1YmVjN2ZkZTY2YTI2OWQ4
Zjk4M2UzZmMyN2RjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNzQgQEAKKzIwMTMtMDItMTEg
IEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXSzJdW0VG
TF0gU2V0IHVwIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDg4MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIEVGTCBidWlsZCB3aXRoIEVOQUJMRV9ORVRXT1JLX1BST0NF
U1MuIEJ5IGRlZmF1bHQgaXQgaXMgZGlzYWJsZWQuCisgICAgICAgIFRoZSBwYXRjaCBhZGRzIHRo
ZSBuZWNlc3NhcnkgcGxhdGZvcm0gc3BlY2lmaWMgYml0cyBhbmQgc3R1YnMgZm9yCisgICAgICAg
IFVOSVhfRE9NQUlOX1NPQ0tFVFMsIHRoZSBTT1VQIG5ldHdvcmsgYmFja2VuZCBhbmQgRUZMIGFu
ZCBpdCBhZGRzIHRoZQorICAgICAgICByZWxhdGVkIGZpbGVzIHRvIHRoZSBDTWFrZSBidWlsZCBz
eXN0ZW0uIFNvbWUgcmVmYWN0b3Jpbmcgd2VyZSBhbHNvIG1hZGUuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyk6CisgICAgICAgIEFkZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMgY29kZSBmb3IgVU5J
WF9ET01BSU5fU09DS0VUUy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwOiBGaXggbWlzdHlwaW5nIGZvciBjYXNlCisgICAgICAgIHNl
bnNpdGl2ZSBzeXN0ZW1zLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChSZW1vdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCk6CisgICAgICAgIFRoaXMgc2hvdWxkIGJlIGEgY3Jvc3MtcGxhdGZvcm0gaW50ZXJmYWNlIHNv
IEkgbGlmdGVkIHRoZSBoZWFkZXIgZnJvbSB0aGUgbWFjIGRpcmVjdG9yeS4KKyAgICAgICAgUmVt
b3ZlZCBtYWMgc3BlY2lmaWMgYXJndW1lbnRzIGZyb20gY29uc3RydWN0b3IsIGFkZGVkIHNldHRl
cnMgaW5zdGVhZC4gQWRkZWQgU291cCBzcGVjaWZpYyBiaXRzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vzc0VmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCk6CisgICAgICAgIE9ubHkgc3R1YnMgZm9yIG5vdy4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFsaXpl
TWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAgICAgQ29waWVkIGhhcmQt
Y29kZWQgY29uc3RhbnQgZnJvbSBSZXNvdXJjZVJlcXVlc3RTb3VwLmNwcCB3aXRoIGNvbW1lbnQu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppbml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNz
aW9uSWRlbnRpZmllckJhc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgZm9yIHNvdXAsIHdp
dGhvdXQgcHJpdmF0ZSBicm93c2luZyBzdXBwb3J0IHlldC4KKworICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
TWFpbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3VuaXgv
TmV0d29ya1Byb2Nlc3NNYWluVW5peC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdCk6IENvbW1vbiBlbnRyeSBw
b2ludCBmb3IgVW5peCBwb3J0cy4gQ29ycmVjdCBSdW5Mb29wIGluaXRpYWxpemF0b24gZm9yIEVG
TCBoYXMgYmVlbiBwb3Nwb25lZC4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmg6IENoYW5nZWQgZm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiBTaGFyZWFibGVSZXNvdXJjZSB0byBhY3R1YWwKKyAgICAgICAgaW5jbHVk
ZSBiZWNhdXNlIEdDQyByZXF1aXJlcyBhIGRlZmluaXRpb24gb2YgdGhlIHR5cGUgZm9yIHBhc3Np
bmcgaXQgaW4gYSBQYXNzT3duUHRyLgorICAgICAgICAqIFNoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OmV4
ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcyk6CisgICAgICAgIEd1YXJkcyBhbmQgaGFuZGxlIFVOSVhfRE9NQUlOX1NPQ0tF
VFMgY2FzZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nl
c3NQcm94eVNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVz
b3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cGxh
dGZvcm1HZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvc291cC9XZWJDb250
ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJj
ZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291
cmNlTG9hZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIubWVzc2FnZXMuaW46CisgICAgICAgIEFkZGVkIGd1YXJkcyB3aGVyZSBpdCBpcyBhcHByb3By
aWF0ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9y
c0VmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmludGVybmFsRXJyb3IpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAg
ICBIYW5kbGUgVU5JWF9ET01BSU5fU09DS0VUUyBjYXNlLgorICAgICAgICAqIHVuaXgvTmV0d29y
a01haW5Vbml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291
cmNlQnVmZmVyLmguCisgICAgICAgIChtYWluKTogQ29tbW9uIHN0dWIgZm9yIHRoZSBleGVjdXRh
YmxlIGZvciB1bml4IHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6
CisgICAgICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRMb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3luY05ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vz
c0VmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1
ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFs
bG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFsaXpl
TWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5j
cHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0
d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpp
bml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpk
ZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5V
bml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc01haW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJs
ZVBhdGguaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogU2hhcmVkL1dlYlJlc291cmNl
QnVmZmVyLmg6CisgICAgICAgICogU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6ZXhlY3V0YWJsZVBhdGhP
Zk5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nl
c3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1
bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om5ldHdvcmtQ
cm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5o
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5j
aE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZp
Y2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogdW5p
eC9OZXR3b3JrTWFpblVuaXguY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTEwICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSB0aGUgUGx1Zy1pbiBYUENT
ZXJ2aWNlIGJ1aWxkIHdvcmsgZXZlbiB3aGVuIGJ1aWxkaW5nIGluIFhjb2RlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aAppbmRleCA3YjE2MWEwMGM5NzYwYjVjYzEyNzA4YTY3NTJmOWExZjNmNmU4YjhmLi4xZmZlNmVl
Y2ZjZTkwNDg0MmRkZWM5Nzg1ZmIzOTZjY2QzZWJiOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHVibGljOgogI2VsaWYgVVNFKFNPVVApCiAgICAgdm9pZCBzZXRTb3VwU2Vz
c2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nlc3Npb24gPSBzZXNzaW9uOyB9CiAgICAg
U291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uOyB9Cisg
ICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2lzUHJp
dmF0ZTsgfQogI2Vsc2UKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oTmV0d29ya2luZ0NvbnRl
eHQqKTsKICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CkBAIC03Myw2ICs3NCw3IEBAIHBy
aXZhdGU6CiAjZWxpZiBVU0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNl
c3Npb24qKTsKICAgICBTb3VwU2Vzc2lvbiogbV9zZXNzaW9uOworICAgIGJvb2wgbV9pc1ByaXZh
dGU7CiAjZWxzZQogICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggZGQ1NmUyYjg5ZjUx
Y2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFkMC4uYzI5YTRjMDY0NjcyZGFhMWVmZWUxMWRhN2U0
YzlkNjFjNTVkY2RjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAt
MzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNvdXBTZXNzaW9uKiBzZXNzaW9uKQogICAgIDogbV9z
ZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX2lzUHJpdmF0ZShmYWxzZSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAppbmRleCBhZjZiMTQxYmUwMmE0MzIzNTllZTQ2MjUzMGQyMDI2YmIwNWI2N2Ux
Li45MTYzNDFiZWJmNzY2OGY1ZGQ4N2FjNTgxZWNjN2NmNDg4NTM0MGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dApAQCAtMSw1ICsxLDYgQEAKIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJLSVQyX0RJUn0iCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNz
IgogICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybSIKICAgICAiJHtXRUJLSVQyX0RJUn0vUGxh
dGZvcm0vQ29yZUlQQyIKICAgICAiJHtXRUJLSVQyX0RJUn0vUGx1Z2luUHJvY2VzcyIKQEAgLTEx
LDYgKzEyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VDJfRElSfS9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9OZXR3b3JrIgorICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvUGx1
Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2Nh
cGUveDExIgpAQCAtMjMsNiArMjUsNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9MYXVuY2hlciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL1N0b3JhZ2UiCkBAIC00MCw2ICs0Myw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00i
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTGF1bmNoaW5nIgogICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKQEAgLTExOCw2ICsxMjIsMTQg
QEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBzZXQoV2ViS2l0Ml9TT1VS
Q0VTCisgICAgTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKKyAgICBOZXR3b3Jr
UHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorCiAgICAgUGxhdGZvcm0vTG9n
Z2luZy5jcHAKICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3BwCiAgICAgUGxhdGZvcm0vV29ya1F1ZXVl
LmNwcApAQCAtMTU4LDYgKzE3MCw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQv
U2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogICAgIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCiAgICAg
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKyAgICBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2Uu
Y3BwCiAgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAogICAgIFNoYXJlZC9VcGRhdGVJbmZv
LmNwcAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmNwcApAQCAtMTkwLDYgKzIwMyw3IEBA
IHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKICAgICBTaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCiAgICAgU2hhcmVkL1dlYlJl
bmRlck9iamVjdC5jcHAKKyAgICBTaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuY3BwCiAgICAgU2hh
cmVkL1dlYlRvdWNoRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwCiAgICAg
U2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtMjIzLDYgKzIzNyw5IEBAIHNldChXZWJLaXQy
X1NPVVJDRVMKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1
cmZhY2UuY3BwCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5LmNwcAogCisgICAgU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisgICAgU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCisKICAgICBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIFNo
YXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCkBAIC0zNTUsNiArMzcyLDggQEAgc2V0KFdl
YktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5j
cHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisKICAg
ICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb24uY3BwCkBAIC0zNjcsNiArMzg2LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKICAgICBVSVByb2Nlc3Mv
UGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCiAKKyAgICBVSVByb2Nlc3Mvc291
cC9XZWJDb250ZXh0U291cC5jcHAKKwogICAgIFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQ
cm9jZXNzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKIApAQCAtNDI5LDYgKzQ1
MCwxMCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQcm9jZXNzL05ldHdvcmtJbmZv
L1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKKyAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCkBAIC00OTUsNiArNTIwLDkgQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogKQogCiBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAgIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAg
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKwogICAgIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNTI3LDYgKzU1NSw4IEBAIHNldChXZWJLaXQyX01F
U1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
bWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01NDksNiArNTc5LDkgQEAgc2V0KFdlYktpdDJf
TUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNh
Y2hlTWFuYWdlci5tZXNzYWdlcy5pbgogCisgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9X
ZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFdlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMGQ1MmI4ZjNl
NzQ1YjVjMDI1NjAzOGMyYjFhYWNlOGZmZmVhMmNlMy4uNzNlZmU2ZGYyMGVmZDNmNTM0M2RlMzNi
NDZmMDY2YmYyNzViOWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2NCw5IEBAIE5ldHdvcmtQcm9jZXNzOjpO
ZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgYWRkU3VwcGxlbWVudDxBdXRoZW50aWNhdGlvbk1hbmFn
ZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpOworI2lmIEVOQUJM
RShDVVNUT01fUFJPVE9DT0xTKQogICAgIGFkZFN1cHBsZW1lbnQ8Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyPigpOworI2VuZGlmCiB9CiAKIE5ldHdvcmtQcm9jZXNzOjp+TmV0d29ya1Byb2Nlc3MoKQpA
QCAtMTgwLDggKzE4MywxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcygpCiAKICAgICBDb3JlSVBDOjpBdHRhY2htZW50IGNsaWVudFBv
cnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOwogICAgIHBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRp
ZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNsaWVudFBvcnQpLCAwKTsKLSNl
bHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRT
KQorICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgc2VydmVySWRlbnRpZmllciwg
Y2xpZW50SWRlbnRpZmllcjsKKyAgICBib29sIHN1Y2Nlc3MgPSBDb3JlSVBDOjpDb25uZWN0aW9u
OjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVycyhzZXJ2ZXJJZGVudGlmaWVyLCBjbGll
bnRJZGVudGlmaWVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOworCisg
ICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjb25uZWN0aW9uID0gTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShzZXJ2ZXJJZGVudGlmaWVyKTsKKyAg
ICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkpOwor
CisgICAgQ29yZUlQQzo6QXR0YWNobWVudCBjbGllbnRTb2NrZXQoY2xpZW50SWRlbnRpZmllcik7
CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3NQcm94eTo6RGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY2xpZW50
U29ja2V0KSwgMCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRl
eCA4YzMzMzJiNTgxMzcyM2YzOGE2YTdmZDg4Mjc3ZGZhNTJmYTA2NDlhLi5hZWE1NjRmZTBiYjNi
NjQ1OWZmMzVhY2RjOWRkODgwMTNmYjYxZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cApAQCAtNCw3ICs0LDcgQEAKICNpbmNsdWRlICJIb3N0UmVjb3JkLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3Njb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
N2Y0YmJkZDgzNDY3ZGM5ZTYwMzhlY2NkNDYyZDhlNTE4ODJkYzE4Zi4uMjIyYzM0YWZjNzZmZmJj
MWFlMWM5ZjMyNThhNTI4MmJmM2ZhYjk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03Nyw4ICs3Nyw4
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgLy8gRXhwbGljaXQg
cmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVz
b3VyY2VIYW5kbGVTdG9wcGVkKCkKICAgICByZWYoKTsKICAgICAKLSAgICAvLyBGSVhNRSAoTmV0
d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgd2l0aCBhY3R1YWwg
c2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93c2luZ01vZGUoKSwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKKyAgICAvLyBGSVhNRSAoTmV0
d29ya1Byb2Nlc3MpOiBTZXQgcGxhdGZvcm0gc3BlY2lmaWMgc2V0dGluZ3MuCisgICAgbV9uZXR3
b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoaW5Qcml2YXRl
QnJvd3NpbmdNb2RlKCksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qo
KSk7CiAKICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcAppbmRleCAxZjgyZDE0OWMyZWJkMDBmMDA1ZGUzYTk2YTNlNGY5ZTEwMWE1YWZiLi5mNjMy
OTUyNGM3MjRmZTJmNGVmOTIyZmFiNWYwMjE3YTIwMzhjYTk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcApAQCAtNTgsOCArNTgsOCBAQCB2b2lkIFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0
YXJ0KCkKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwogICAgIFZlY3RvcjxjaGFyPiBk
YXRhOwogICAgIAotICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IENyZWF0ZSBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCB3aXRoIGFjdHVhbCBzZXR0aW5ncy4KLSAgICBSZWZQdHI8UmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ+IG5ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpLCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpOworICAgIC8vIEZJWE1FIChO
ZXR3b3JrUHJvY2Vzcyk6IFNldCBwbGF0Zm9ybSBzcGVjaWZpYyBzZXR0aW5ncy4KKyAgICBSZWZQ
dHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShpblByaXZhdGVCcm93c2luZ01vZGUoKSwgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKIAogICAgIGNvbnN1bWVTYW5kYm94
RXh0ZW5zaW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODlhNzk2MjkzMTMzMWQ2
OWQ3YjhlYzVkNzI2YWFiMTlhNmJhNmRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcApAQCAtMCwwICsxLDUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JL
X1BST0NFU1MpCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKworI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikKK3sKK30KKwordm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YWxsb3dTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZv
JiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggNzgx
OTUzM2E1MjliNTZhZjQwYTBjYjllYzZhZTFjOWM3OTFjYTJlYi4uMGVlNTY4ZmVhM2RkMDIxNTYy
ZGUxYjczZmZlNDgzZDE1YTE0YTdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQpAQCAtNDIs
MTkgKzQyLDYgQEAgc3RhdGljIE93blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBwcml2YXRl
QnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpCiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKLWJvb2wg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3Q7Ci19Ci0KLVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQotICAgIDogbV9u
ZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcykKLSAgICAsIG1f
bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChsb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkKQotICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQpCi0gICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qo
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKLXsKLX0KLQogUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6On5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJj
ZUxvYWRTY2hlZHVsZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiYWI3
MjZiNDIwZTY3NGQzMGQ0NGFhOWI1MGY0NDAyNTkzY2ZlOWIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXJTb3VwLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRlICJOZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1bnNpZ25l
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVNYXhpbXVt
SFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQoreworICAgIC8vIFNlZTogUmVzb3VyY2VSZXF1
ZXN0U291cC5jcHAKKyAgICByZXR1cm4gMTAwMDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3Nv
dXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41M2RkNGQzNTIzNThlZWY4YjJlY2MyNDMyNDI4Nzk0N2M5ZGNmZGEzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dFNvdXAuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEz
IFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRl
ICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQoKQoreworfQorCitib29sIFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordWludDY0
X3QgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmluaXRpYXRpbmdQYWdlSUQoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmll
ckJhc2UoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworfQorCitOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
dW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTdlZmIy
MjI3NGU3ODMzNWI4MmI4YmU1YTc0NmM0OGE3ODQ4ZDRlMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5j
cHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVj
dHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01haW5Vbml4
LmgiCisKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
KyNpbmNsdWRlIDxXZWJLaXQyL05ldHdvcmtQcm9jZXNzLmg+CisjaW5jbHVkZSA8ZXJyb3IuaD4K
KyNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDxzdGRs
aWIuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCisjaWYgUExBVEZPUk0oR1RLKQor
I2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nlc3NNYWlu
KGludCBhcmdjLCBjaGFyKiBhcmd2W10pCit7CisgICAgaWYgKGFyZ2MgIT0gMikKKyAgICAgICAg
cmV0dXJuIDE7CisKKyNpZiBQTEFURk9STShHVEspCisgICAgZ3RrX2luaXQoJmFyZ2MsICZhcmd2
KTsKKyNlbmRpZgorCisgICAgLy8gRklYTUU6IEV2ZW50IGxvb3AgaXMgbm90IGluaXRpYWxpemVk
IGNvcnJlY3RseSBmb3IgRUZMLiBGb3IgRUZMIHdlIHNob3VsZCBzaG91bGQgZWl0aGVyCisgICAg
Ly8gaW5pdGlhbGl6ZSBlY29yZSBvciB1c2UgdGhlIGdsaWItb25seSBSdW5Mb29wIGltcGxlbWVu
dGF0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MuCisKKyAgICBKU0M6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisKKyAgICBSdW5Mb29w
Ojppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIC8vIEZJWE1FOiBoYW5kbGUgcHJveHkg
c2V0dGluZ3MuCisKKyAgICBlcnJubyA9IDA7CisgICAgbG9uZyBpbnQgc29ja2V0ID0gc3RydG9s
KGFyZ3ZbMV0sIDAsIDEwKTsKKyAgICBpZiAoZXJybm8pCisgICAgICAgIHJldHVybiAxOworCisg
ICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAg
cGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciA9IGludChzb2NrZXQpOworCisgICAgTmV0
d29ya1Byb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUocGFyYW1ldGVycyk7CisKKyAgICBSdW5M
b29wOjpydW4oKTsKKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZlMGMwNGIxNTBmNGNkNGVkMTJhOTk0ODU4ZjQwZjRjMWRhZDhjMGYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdv
cmtQcm9jZXNzTWFpblVuaXguaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgTmV0d29ya1Byb2Nlc3NNYWluVW5peF9oCisjZGVmaW5lIE5l
dHdvcmtQcm9jZXNzTWFpblVuaXhfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nlc3NNYWluKGlu
dCBhcmdjLCBjaGFyKiBhcmd2W10pOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFdlYlByb2Nlc3NNYWluRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggZjZj
ZTE3NmZkM2E0M2ZlZGQ1ZDM0YTc2ZTlkNjViYTgxMGI3MTMzZS4uOGJmZGM4M2E0MTE5MWNjNjEz
MGEwMzJhMGY3YTZiNmM5NjFjZjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTEs
NCArMSw5IEBACiBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vz
cy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3Vw
L1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy91bml4
L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwCisKICAgICBQbGF0Zm9ybS9lZmwvTG9nZ2luZ0Vm
bC5jcHAKICAgICBQbGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNwcAogICAgIFBsYXRmb3JtL2VmbC9X
b3JrUXVldWVFZmwuY3BwCkBAIC0xMDksNiArMTE0LDggQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJQcm9jZXNzUHJveHlFZmwuY3BwCiAgICAgVUlQ
cm9jZXNzL2VmbC9XZWJWaWV3LmNwcAogCisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNv
dXAuY3BwCisKICAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2VmbC9XZWJJbnNwZWN0b3JT
ZXJ2ZXJFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9zb3VwL1dlYlNvY2tl
dFNlcnZlclNvdXAuY3BwCiAKQEAgLTExOCw2ICsxMjUsOCBAQCBsaXN0KEFQUEVORCBXZWJLaXQy
X1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZs
LmNwcAogCisgICAgVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291
cC5jcHAKKwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0b3JlVW5peC5j
cHAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94eVVuaXguY3Bw
CiAKQEAgLTE2Myw2ICsxNzIsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgogICAgICIk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L3N2Zy9ncmFwaGljcyIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvdW5peCIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Rvd25sb2Fkcy9zb3VwIgogICAgICIke1dFQktJ
VDJfRElSfS9TaGFyZWQvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvc291cCIKQEAg
LTMyMyw2ICszMzMsMjcgQEAgaWYgKEVOQUJMRV9QTFVHSU5fUFJPQ0VTUykKICAgICBpbnN0YWxs
KFRBUkdFVFMgJHtQbHVnaW5Qcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0gREVTVElOQVRJT04gIiR7
RVhFQ19JTlNUQUxMX0RJUn0iKQogZW5kaWYgKCkgIyBFTkFCTEVfUExVR0lOX1BST0NFU1MKIAor
aWYgKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MpCisgICAgc2V0KE5ldHdvcmtQcm9jZXNzX0VYRUNV
VEFCTEVfTkFNRSBOZXR3b3JrUHJvY2VzcykKKyAgICBsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vz
c19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJv
Y2VzcyIKKyAgICApCisKKyAgICBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7TmV0d29ya1Byb2Nlc3Nf
SU5DTFVERV9ESVJFQ1RPUklFU30pCisKKyAgICBsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19T
T1VSQ0VTCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L3VuaXgvTmV0d29ya01haW5Vbml4LmNwcAor
ICAgICkKKworICAgIHNldChOZXR3b3JrUHJvY2Vzc19MSUJSQVJJRVMKKyAgICAgICAgJHtXZWJL
aXQyX0xJQlJBUllfTkFNRX0KKyAgICApCisKKyAgICBhZGRfZXhlY3V0YWJsZSgke05ldHdvcmtQ
cm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0gJHtOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTfSkKKyAgICB0
YXJnZXRfbGlua19saWJyYXJpZXMoJHtOZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9ICR7
TmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTfSkKKyAgICBpbnN0YWxsKFRBUkdFVFMgJHtOZXR3b3Jr
UHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9IERFU1RJTkFUSU9OICIke0VYRUNfSU5TVEFMTF9ESVJ9
IikKK2VuZGlmICgpCisKIGluY2x1ZGVfZGlyZWN0b3JpZXMoJHtUSElSRFBBUlRZX0RJUn0vZ3Rl
c3QvaW5jbHVkZSkKIAogc2V0KEVXSzJVbml0VGVzdHNfTElCUkFSSUVTCkBAIC0zNTMsNiArMzg0
LDcgQEAgYWRkX2RlZmluaXRpb25zKC1EVEVTVF9SRVNPVVJDRVNfRElSPVwiJHtURVNUX1JFU09V
UkNFU19ESVJ9XCIKICAgICAtRExJQkVYRUNESVI9XCIke0NNQUtFX0lOU1RBTExfUFJFRklYfS8k
e0VYRUNfSU5TVEFMTF9ESVJ9XCIKICAgICAtRFdFQlBST0NFU1NOQU1FPVwiJHtXZWJQcm9jZXNz
X0VYRUNVVEFCTEVfTkFNRX1cIgogICAgIC1EUExVR0lOUFJPQ0VTU05BTUU9XCIke1BsdWdpblBy
b2Nlc3NfRVhFQ1VUQUJMRV9OQU1FfVwiCisgICAgLURORVRXT1JLUFJPQ0VTU05BTUU9XCIke05l
dHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX1cIgogKQogCiBhZGRfbGlicmFyeShld2syVW5p
dFRlc3RVdGlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0
aC5oCmluZGV4IDVmYmYzMjAxODExMDU1ZTM4NGFiZWRiNmQzZGQ1ZGFmMWM3Yjc0ZGQuLmQ3OGVi
Y2RkZWJhOTZlNWE5YTMwMWVjN2U4Y2Q1MjM3NDlkYmRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAgLTMyLDYgKzMyLDkgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3Ry
aW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCk7CisjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNlbmRp
ZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1
ZmZlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKaW5kZXgg
YjQ3ZjMxODE1ODMyOWE4NTUwNGUyMjgxZGJiM2Y1NjY3YmYzNGY3YS4uZDYyNGMwOGRmYWU2ODE2
YmUyMTcwMmZiZmNhZjA4MmRkYWJlNWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlJlc291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJl
c291cmNlQnVmZmVyLmgKQEAgLTI2LDEyICsyNiwxMSBAQAogI2lmbmRlZiBXZWJSZXNvdXJjZUJ1
ZmZlcl9oCiAjZGVmaW5lIFdlYlJlc291cmNlQnVmZmVyX2gKIAorI2luY2x1ZGUgIlNoYXJlYWJs
ZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2hhcmVhYmxlUmVzb3VyY2U7Ci0KIGNsYXNzIFdlYlJl
c291cmNlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OlJlc291cmNlQnVmZmVyIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRlKFBhc3NSZWZQ
dHI8U2hhcmVhYmxlUmVzb3VyY2U+IHJlc291cmNlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2Vi
UmVzb3VyY2VCdWZmZXIocmVzb3VyY2UpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwCmluZGV4IDYxOGFiMmExNDNh
ZmVkYzU1ZTFhM2VlZTJjYTQwNzY1ZGJjMWViZjcuLmM5ZTQ5MmViNDYxNjk3OGNmZDBlNTFhYWVj
ZTc1OWIxMDI4ZTYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUHJv
Y2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZs
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAKQEAgLTc0LDQgKzc0LDEzIEBAIFN0cmluZyBl
eGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCiAgICAgcmV0dXJuIHdlYktpdFBsdWdpblBy
b2Nlc3NOYW1lOwogfQogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKK1N0cmluZyBleGVj
dXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgU3RyaW5nLCB3ZWJLaXROZXR3b3JrUHJvY2Vzc05hbWUsIChmaW5kUHJvY2Vzc1BhdGgo
TkVUV09SS1BST0NFU1NOQU1FKSkpOworCisgICAgcmV0dXJuIHdlYktpdE5ldHdvcmtQcm9jZXNz
TmFtZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVy
RWZsLmNwcAppbmRleCAzYTM2MzM0N2Y4ZWNhYmMzNTI3NWZlYzBiNjUxM2IwYTM0YzIyODgxLi5i
YmQ4YmEzMTZkMDhmZDM3NzZiYWI2ZmViZjMxMDM2N2IwMzAwODdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNo
ZXJFZmwuY3BwCkBAIC01Myw2ICs1MywxMSBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNo
UHJvY2VzcygpCiAgICAgICAgIHBsdWdpblBhdGggPSBtX2xhdW5jaE9wdGlvbnMuZXh0cmFJbml0
aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4tcGF0aCIpLnV0ZjgoKTsKICAgICAgICAgYnJlYWs7
CiAjZW5kaWYKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGNhc2UgTmV0d29ya1By
b2Nlc3M6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQ
cm9jZXNzKCkudXRmOCgpOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCmluZGV4IGQyZTIwNWZkNmI3NDJhOWRiYjNhMmE4NmNhMTljM2QwZTllZGI5NTMuLjNjMDkw
ZmNlZjhjM2Q5NmZjZjliOTNhZWI3NDRmMzVkMmM5YTQyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBA
IC0yOSwxOCArMjksMjIgQEAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogCiAjaW5jbHVk
ZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgotI2luY2x1ZGUgIkN1c3RvbVByb3Rv
Y29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgVVNFKFNF
Q1VSSVRZX0ZSQU1FV09SSykKICNpbmNsdWRlICJTZWNJdGVtU2hpbVByb3h5LmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQorI2luY2x1ZGUgIkN1c3RvbVByb3RvY29s
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNlbmRpZgorCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0so
YXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0aW9uKCkpCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTAwLDYgKzEwNCw4IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpCiAK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHJlcGx5LT5zZW5kKENvcmVJUEM6OkF0dGFjaG1l
bnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbGlmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQorICAgICAgICByZXBseS0+c2VuZChDb3JlSVBDOjpBdHRhY2htZW50KCkpOwogI2Vs
c2UKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgpAQCAtMTUwLDYgKzE1Niw4IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MoY29uc3QgQ29yZUlQQzo6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgcmVwbHkt
PnNlbmQoQ29yZUlQQzo6QXR0YWNobWVudChjb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCksIE1B
Q0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykK
KyAgICByZXBseS0+c2VuZChjb25uZWN0aW9uSWRlbnRpZmllcik7CiAjZWxzZQogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2UwZDIyNWRlMjlkMTgxZmFhN2M1ZWUwMjExMDY5YjkxZGM5Yjg3NwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29y
a1Byb2Nlc3NQcm94eVNvdXAuY3BwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9z
b3VwL1dlYkNvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2I5Y2RmM2RhNmQ2ZjAyYzQ1ZjQw
ZWI1ZTc4MWRkYzkyYjVkZGJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNp
bmNsdWRlICJXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb250ZXh0Ojpw
bGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYpCit7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2I1M2IxY2ZhOGYxMzYxNzZlY2Qw
YzZmOWZlNDdlNjRhNmIxN2Q5My4uZjI4Mjg0MGI1MDMxMTJhMzgyMDk1NDc2NzQzOWMzODVkNjA0
ZjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNTcyLDYgKzU3Miw3IEBACiAJCTkzRkM2N0JFMTJEM0NDRjIwMEE2MDYxMCAv
KiBEZWNvZGVyQWRhcHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGQzY3OUUxMkQzQ0M3NDAwQTYwNjEwIC8qIERlY29kZXJBZGFwdGVyLmggKi87
IH07CiAJCTkzRkM2N0JGMTJEM0NDRjIwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZDNjc5RjEyRDND
Qzc0MDBBNjA2MTAgLyogRW5jb2RlckFkYXB0ZXIuY3BwICovOyB9OwogCQk5M0ZDNjdDMDEyRDND
Q0YyMDBBNjA2MTAgLyogRW5jb2RlckFkYXB0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkM2N0EwMTJEM0NDNzQwMEE2MDYxMCAvKiBFbmNvZGVy
QWRhcHRlci5oICovOyB9OworCQk5ODVCMDdCRDE2QzkwNkZEMDA4MUMzNTUgLyogUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk4NUIwN0JDMTZDOTA2RkQwMDgxQzM1NSAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oICovOyB9OwogCQk5RjRGNTk0MjE2NDhCNDA3MDA0OTNCN0UgLyogU2hhcmVkV29ya2VyUHJv
Y2Vzc01hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5RjRGNTk0MTE2NDhCNDA3MDA0OTNCN0UgLyogU2hhcmVkV29ya2VyUHJvY2Vzc01h
bmFnZXJNYWMubW0gKi87IH07CiAJCTlGNEY1OTQ0MTY0OEI2N0YwMDQ5M0I3RSAvKiBTaGFyZWRX
b3JrZXJQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5RjRGNTk0MzE2NDhCNjdGMDA0OTNCN0UgLyogU2hhcmVkV29ya2VyUHJv
Y2Vzc1Byb3h5TWFjLm1tICovOyB9OwogCQk5RjU0Rjg4RjE2NDg4RTg3MDA3REY4MUEgLyogQ2hp
bGRQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01hYy5tbSAqLzsg
fTsKQEAgLTEwNzYsNyArMTA3Nyw2IEBACiAJCUUxQTlBODUyMTY5RTIwMjUwMDJENzE3NiAvKiBX
ZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovOyB9OwogCQlFMUFF
QTIyRjE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUFFQTIyRDE0Njg3
QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmggKi87IH07CiAJCUUx
QUVBMjMwMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUFFQTIyRTE0
Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tICovOyB9Owot
CQlFMUI3ODQ3MTE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQjc4NDcwMTYz
RjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OwogCQlFMUI3
ODQ3MzE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUI3ODQ3MjE2M0YyNTNF
MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gKi87IH07CiAJCUUxQ0MxQjkw
MTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQ0MxQjhFMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludElu
Zm8uaCAqLzsgfTsKIAkJRTFDQzFCOTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQ0MxQjhG
MTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gKi87IH07CkBAIC0xOTEwLDYgKzE5
MTAsNyBAQAogCQk5M0ZDNjc5RTEyRDNDQzc0MDBBNjA2MTAgLyogRGVjb2RlckFkYXB0ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2RlckFkYXB0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGQzY3OUYxMkQzQ0M3NDAwQTYwNjEwIC8qIEVuY29k
ZXJBZGFwdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVuY29k
ZXJBZGFwdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGQzY3QTAxMkQz
Q0M3NDAwQTYwNjEwIC8qIEVuY29kZXJBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEVuY29kZXJBZGFwdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk4NUIwN0JDMTZDOTA2RkQwMDgxQzM1NSAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
OyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY0RjU5NDExNjQ4QjQwNzAwNDkzQjdFIC8qIFNoYXJl
ZFdvcmtlclByb2Nlc3NNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXJNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlGNEY1OTQzMTY0OEI2N0YwMDQ5M0I3RSAvKiBTaGFyZWRXb3Jr
ZXJQcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlGNTRGODhFMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDaGlsZFByb2Nlc3NNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDc2LDcgKzI0NzcsNiBAQAogCQlF
MUEzMTczNDEzNENFQTgwMDA3QzlBNEYgLyogQXR0cmlidXRlZFN0cmluZy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF0dHJpYnV0ZWRTdHJpbmcubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1
bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxQUVBMjJFMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dh
dGNoZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0Z1bGxL
ZXlib2FyZEFjY2Vzc1dhdGNoZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUx
Qjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUI3ODQ3MjE2M0YyNTNFMDAwN0I2OTIgLyog
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmludEluZm8uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTFDQzFCOEYxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByaW50SW5mb01hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMTksNiArMzMxOSw3IEBACiAJCTUx
MENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTg1QjA3QkMxNkM5MDZGRDAwODFDMzU1
IC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJQkM4MjgzN0MxNkI0NURBNTAw
QTI3OEZFIC8qIEVudHJ5UG9pbnQgKi8sCiAJCQkJNTEwQ0M3REMxNjEzOEUyOTAwRDAzRUQzIC8q
IG1hYyAqLywKIAkJCQk1MTJDMDY4NjE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJlY29yZC5jcHAg
Ki8sCkBAIC0zMzQ3LDcgKzMzNDgsNiBAQAogCQkJCUUxN0FFMkMxMTZCOUMxMzkwMDFDNDJGMSAv
KiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluICovLAogCQkJCTUxQThBNjE1
MTYyN0YzRjkwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vzc01hYy5tbSAqLywKIAkJCQk1MTJDMDY4
RjE2MzkwRTY5MDBBQkI5MTEgLyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlck1hYy5tbSAq
LywKLQkJCQlFMUI3ODQ3MDE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaCAqLywKIAkJCQlFMUI3ODQ3MjE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IG1hYzsKQEAgLTUwMjcsNyArNTAyNyw2
IEBACiAJCQkJMUFBM0Q3NUMxNjUxQjQ0RjAwODcxM0QwIC8qIFJlbW90ZUxheWVyVHJlZUhvc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTNENzYyMTY1MUI3RDMwMDg3MTNEMCAvKiBSZW1vdGVM
YXllclRyZWVIb3N0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjFBQzZDMTY1MTc1
OUUwMEMxN0Q3RiAvKiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTFCNzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTMwMDY2RTExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9u
c2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTcxMkFDNDFDQjAwRTcz
MkEzIC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUFCNEE4RDEyOTZGMEEyMDAyMzk1MkYgLyogU2FuZGJveEV4dGVuc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCkBAIC01MzY2LDYgKzUzNjUsNyBAQAogCQkJCUJDOTg5RDg1MTYxQTk4OTAwMDBENDZEMyAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRTZF
OEUxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNC
RUNERTgxNkI2NDE2ODAwMDQ3QTFBIC8qIFhQQ1NlcnZpY2VFbnRyeVBvaW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5ODVCMDdCRDE2QzkwNkZEMDA4MUMzNTUgLyogUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzljOGIzMGQ5NzYyNDU3
NDczNGFiZGE2NzVjZWEzODQxNDU4NjVjZC4uZDcyNWE5ZTU3ZTE5OGU4OTJiYTc3NzMzYmNmMmJh
ZDllMWFhNjczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04Myw3ICs4Myw5IEBAIHZvaWQgV2ViUmVz
b3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8oY29uc3Qg
UmVzb3VyY2VSZXNwCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2VzcykgV2ViUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8gZm9yICclcycu
IFN0YXR1cyAlZC4iLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2VDb3B5KHJlc3BvbnNlKTsKKyNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIHJlc3BvbnNlQ29weS5z
ZXRDZXJ0aWZpY2F0ZUNoYWluKGNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZUNoYWluKCkpOwor
I2VuZGlmCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2VDb3B5
KTsKIH0KIApAQCAtMTIzLDEwICsxMjUsMTIgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmQKICAg
ICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7CiB9CiAKKyNpZiBV
U0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogdm9pZCBXZWJSZXNvdXJjZUxvYWRl
cjo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQcm90ZWN0aW9u
U3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgYm9vbCYgcmVzdWx0KQogewogICAgIHJlc3VsdCA9IG1f
Y29yZUxvYWRlci0+Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShwcm90ZWN0
aW9uU3BhY2UpOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5o
CmluZGV4IDAzZTgyNzE2MGQ0ZTUwMDMxOGRmNWYyMGE3YTY3ZWY4NWRlNjNhY2UuLjAzOTAxNzY3
ZTRmYmFjNDliMWNiY2M4MThlZWUxZDkxZjY5Yjg5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBAIC04MCw3ICs4
MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJjZShjb25zdCBT
aGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgZG91YmxlIGZpbmlzaFRpbWUpOwogCisjaWYgVVNF
KFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICB2b2lkIGNhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiwg
Ym9vbCYgcmVzdWx0KTsKKyNlbmRpZgogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyPiBtX2NvcmVMb2FkZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCmluZGV4
IGVhZDU3YTg1MTJhMmYxY2E1MTMwMGUxYjcyZGRhY2RjMjIzNGIzYjMuLjkzNjFjYTg5NGRmNTYx
ODZiOWQxMWJjYmQ3MTY2NmQ1MTA4OGZlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMu
aW4KQEAgLTIwLDYgKzIwLDggQEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKIG1lc3NhZ2VzIC0+IFdlYlJlc291
cmNlTG9hZGVyIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIENhbmNlbFJlc291cmNlTG9hZGVyKCkK
QEAgLTMxLDggKzMzLDEyIEBAIG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZGVyIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBEaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlzaFRpbWUpCiAg
ICAgRGlkRmFpbFJlc291cmNlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogICAg
IAorI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgQ2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UgcHJv
dGVjdGlvblNwYWNlKSAtPiAoYm9vbCByZXNwb25zZSkKKyNlbmRpZgogCiAgICAgLy8gRGlkUmVj
ZWl2ZVJlc291cmNlIGlzIGZvciB3aGVuIHdlIGhhdmUgdGhlIGVudGlyZSByZXNvdXJjZSBkYXRh
IGF2YWlsYWJsZSBhdCBvbmNlLCBzdWNoIGFzIHdoZW4gdGhlIHJlc291cmNlIGlzIGNhY2hlZCBp
biBtZW1vcnkKICAgICBEaWRSZWNlaXZlUmVzb3VyY2UoV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJj
ZTo6SGFuZGxlIHJlc291cmNlLCBkb3VibGUgZmluaXNoVGltZSkKIH0KKworI2VuZGlmIC8vIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcAppbmRleCA5ZDhk
ZmRhMGRhYjc0OTIwNDM5MzUyZGFkOTU5NTUzYmRjZGFlYWU1Li4zNDVkOWMwNWRlM2ZjZDNjN2U3
YjAxYTkwNTI4NDk5NzRhYWJkYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAKQEAgLTI2
LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5o
IgogCisjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Vycm9yc0VmbC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Vycm9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCkBAIC03MCw0ICs3Miw5IEBAIFJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRF
cnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICByZXR1cm4gV2ViQ29y
ZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNwb25zZSk7CiB9CiAKK1dlYkNvcmU6OlJl
c291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwpCit7Cisg
ICAgcmV0dXJuIFJlc291cmNlRXJyb3IoV2ViRXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtX
S0Vycm9ySW50ZXJuYWwsIHVybC5zdHJpbmcoKSwgQVNDSUlMaXRlcmFsKCJJbnRlcm5hbCBlcnJv
ciIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcAppbmRleCA2OWExZTFlNzc2MGY4NWE2YzA0MzlhYzE4NWRhY2ZkNDQ3
MjdjZWQyLi5hMWVlNmM2ZWViODAyZDIyZjFkMzA1NThhZDY1ZWMyMGM5ZTQ1MTNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTM0MiwxMSArMzQyLDEzIEBA
IHZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkKIAogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCkpOwotICAg
IGlmIChDb3JlSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNOdWxsKGNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkKLSAgICAgICAgcmV0dXJuOworI2VsaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMp
CisgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmll
ciA9IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsK
ICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKKyAgICBpZiAoQ29yZUlQ
Qzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzTnVsbChjb25uZWN0aW9uSWRlbnRpZmllcikpCisg
ICAgICAgIHJldHVybjsKICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KICNlbmRp
ZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
dW5peC9OZXR3b3JrTWFpblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvdW5peC9OZXR3b3JrTWFp
blVuaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NDhiMzEzOGU4MmQyN2M1OGJmOWNhMDAxMzZlZDJkNzc5
YjhhYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi91bml4L05ldHdvcmtNYWlu
VW5peC5jcHAKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBVbml2
ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NNYWluVW5peC5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAg
cmV0dXJuIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYWluKGFyZ2MsIGFyZ3YpOworfQorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2UKaW5kZXggOTM3ZjY3ZDk1ZWJmOTk4NTU2ZTFmNWZiMGU2NjM1MTFhODNm
NjA3OC4uMjllNTBkNDgwMjQxYWMwMWZjNzYyM2FmZTM5OTg2Y2E0ODY1ODQ1MyAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKKysrIGIvU291cmNlL2NtYWtlY29uZmlnLmgu
Y21ha2UKQEAgLTg0LDYgKzg0LDcgQEAKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9OT1NOSUZGCiAj
Y21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSQogI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX05FVFdPUktfSU5GTworI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05FVFdPUktfUFJPQ0VT
UwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05PVElGSUNBVElPTlMKICNjbWFrZWRlZmluZTAxIEVO
QUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9QQUdFX1BPUFVQ
CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMmE2YTczNmExZmEwZTcz
YWFiYmEyOTNhMzVjM2I2NzhhMjJjZDE0Yi4uMDAyYTAwZmVhYzM2Y2M1Yzc1MTU3NWY1MWI0OGMz
MTA4YzY5MjBjYiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDEzLTAyLTExICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbV0syXVtFRkxdIFNldCB1cCBOZXR3b3JrUHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4ODMyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2Vjb25m
aWcuaC5jbWFrZToKKyAgICAgICAgQWRkIHRoZSBFTkFCTEVfTkVUV09SS19QUk9DRVNTIGZsYWcu
CisKIDIwMTMtMDItMTAgIExhc3psbyBHb21ib3MgIDxsLmdvbWJvc0BzYW1zdW5nLmNvbT4KIAog
ICAgICAgICBDb25zb2xpZGF0ZSB0aGUgd2F5IFdURl9VU0VfUFRIUkVBRFMgaXMgZW5hYmxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187565</attachid>
            <date>2013-02-11 07:12:08 -0800</date>
            <delta_ts>2013-09-30 09:19:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108832-20130211161030.patch</filename>
            <type>text/plain</type>
            <size>73082</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjE1OGE3NjkzMmI5NmI4
OWMwZGFmMTdhMjAwM2NjOWRlNTVjYmNkOC4uM2RjNDMwNDIzODdlOTVhMjRkZTgyNTNjN2JjM2Q5
NzBkYTU5YTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTExICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNl
dCB1cCBOZXR3b3JrUHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA4ODMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRGVmaW5lIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6aXNQcml2YXRlQnJvd3Np
bmdTZXNzaW9uIGZvciBzb3VwIGFzIHdlbGwuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2
aW9yIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChOZXR3b3JrU3RvcmFnZVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25Tb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKToKKwogMjAxMy0wMi0xMSAgQW5kcmV5IEx1c2huaWtvdiAg
PGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaG9tZSBi
dXR0b24gYmVoYXZpb3VyIGlzIHdyb25nIGluIERURQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGE3YWQxZDE4MjJl
OTkwN2NhZjBhYjM2YWI1ZjJmMGYxNzE2MjkwMjcuLjMxNGY0ZDUzNjg0OTk5YmQ4NTczYmZkNDNl
YzM0M2E5NWY0Y2U4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNDAgQEAKKzIwMTMtMDItMTEg
IEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtXSzJdW0VG
TF0gU2V0IHVwIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDg4MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIEVGTCBidWlsZCB3aXRoIEVOQUJMRV9ORVRXT1JLX1BST0NF
U1MuIEJ5IGRlZmF1bHQgaXQgaXMgZGlzYWJsZWQuCisgICAgICAgIFRoZSBwYXRjaCBhZGRzIHRo
ZSBuZWNlc3NhcnkgcGxhdGZvcm0gc3BlY2lmaWMgYml0cyBhbmQgc3R1YnMgZm9yCisgICAgICAg
IFVOSVhfRE9NQUlOX1NPQ0tFVFMsIHRoZSBTT1VQIG5ldHdvcmsgYmFja2VuZCBhbmQgRUZMIGFu
ZCBpdCBhZGRzIHRoZQorICAgICAgICByZWxhdGVkIGZpbGVzIHRvIHRoZSBDTWFrZSBidWlsZCBz
eXN0ZW0uIFNvbWUgcmVmYWN0b3Jpbmcgd2VyZSBhbHNvIG1hZGUuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpOZXR3b3JrUHJvY2Vzcyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyk6CisgICAgICAgIEFkZCBwbGF0Zm9ybSBzcGVjaWZpYyBJUEMgY29kZSBmb3IgVU5J
WF9ET01BSU5fU09DS0VUUy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwOiBGaXggbWlzdHlwaW5nIGZvciBjYXNlCisgICAgICAgIHNl
bnNpdGl2ZSBzeXN0ZW1zLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChSZW1vdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6c2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCk6CisgICAgICAgIFRoaXMgc2hvdWxkIGJlIGEgY3Jvc3MtcGxhdGZvcm0gaW50ZXJmYWNlIHNv
IEkgbGlmdGVkIHRoZSBoZWFkZXIgZnJvbSB0aGUgbWFjIGRpcmVjdG9yeS4KKyAgICAgICAgUmVt
b3ZlZCBtYWMgc3BlY2lmaWMgYXJndW1lbnRzIGZyb20gY29uc3RydWN0b3IsIGFkZGVkIHNldHRl
cnMgaW5zdGVhZC4gQWRkZWQgU291cCBzcGVjaWZpYyBiaXRzLgorCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KToKKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vzc0VmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCk6CisgICAgICAgIE9ubHkgc3R1YnMgZm9yIG5vdy4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFsaXpl
TWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAgICAgQ29waWVkIGhhcmQt
Y29kZWQgY29uc3RhbnQgZnJvbSBSZXNvdXJjZVJlcXVlc3RTb3VwLmNwcCB3aXRoIGNvbW1lbnQu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0
U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5jcHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppbml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNz
aW9uSWRlbnRpZmllckJhc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgZm9yIHNvdXAsIHdp
dGhvdXQgcHJpdmF0ZSBicm93c2luZyBzdXBwb3J0IHlldC4KKworICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29y
a1N0b3JhZ2VTZXNzaW9uU291cC5jcHAuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
TWFpbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3VuaXgv
TmV0d29ya1Byb2Nlc3NNYWluVW5peC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdCk6IENvbW1vbiBlbnRyeSBw
b2ludCBmb3IgVW5peCBwb3J0cy4gQ29ycmVjdCBSdW5Mb29wIGluaXRpYWxpemF0b24gZm9yIEVG
TCBoYXMgYmVlbiBwb3Nwb25lZC4KKworICAgICAgICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAg
ICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaDoKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgICogU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmg6IENoYW5nZWQgZm9yd2FyZCBk
ZWNsYXJhdGlvbiBvZiBTaGFyZWFibGVSZXNvdXJjZSB0byBhY3R1YWwKKyAgICAgICAgaW5jbHVk
ZSBiZWNhdXNlIEdDQyByZXF1aXJlcyBhIGRlZmluaXRpb24gb2YgdGhlIHR5cGUgZm9yIHBhc3Np
bmcgaXQgaW4gYSBQYXNzT3duUHRyLgorICAgICAgICAqIFNoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OmV4
ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorCisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcyk6CisgICAgICAgIEd1YXJkcyBhbmQgaGFuZGxlIFVOSVhfRE9NQUlOX1NPQ0tF
VFMgY2FzZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nl
c3NQcm94eVNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVz
b3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cGxh
dGZvcm1HZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvc291cC9XZWJDb250
ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJj
ZUJ1ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291
cmNlTG9hZGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
ZXIubWVzc2FnZXMuaW46CisgICAgICAgIEFkZGVkIGd1YXJkcyB3aGVyZSBpdCBpcyBhcHByb3By
aWF0ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9y
c0VmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmludGVybmFsRXJyb3IpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAg
ICBIYW5kbGUgVU5JWF9ET01BSU5fU09DS0VUUyBjYXNlLgorICAgICAgICAqIHVuaXgvTmV0d29y
a01haW5Vbml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291
cmNlQnVmZmVyLmguCisgICAgICAgIChtYWluKTogQ29tbW9uIHN0dWIgZm9yIHRoZSBleGVjdXRh
YmxlIGZvciB1bml4IHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6
CisgICAgICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzZXRMb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3luY05ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vz
c0VmbC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1
ZmZlci5oLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFs
bG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6cGxhdGZvcm1Jbml0aWFsaXpl
TWF4aW11bUhUVFBDb25uZWN0aW9uQ291bnRQZXJIb3N0KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5j
cHAuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp+UmVtb3RlTmV0
d29ya2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6aXNWYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpp
bml0aWF0aW5nUGFnZUlEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uSWRlbnRpZmllckJhc2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpk
ZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5V
bml4LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc01haW4pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIFBsYXRmb3JtRWZsLmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJs
ZVBhdGguaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogU2hhcmVkL1dlYlJlc291cmNl
QnVmZmVyLmg6CisgICAgICAgICogU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwu
Y3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6ZXhlY3V0YWJsZVBhdGhP
Zk5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nl
c3NMYXVuY2hlckVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVuY2hlcjo6bGF1
bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om5ldHdvcmtQ
cm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2gpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkaWRDcmVhdGVOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291cC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5o
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5j
aE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZp
Y2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogdW5p
eC9OZXR3b3JrTWFpblVuaXguY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKG1haW4pOgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6TmV0d29ya1Byb2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1N5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpTeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCk6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmguCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1TZXRDYWNoZU1vZGVsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFs
bG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdCk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZU1heGltdW1IVFRQQ29ubmVjdGlvbkNvdW50UGVySG9zdCk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJFcnJvcnNFZmwuY3BwLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6On5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmluaXRpYXRpbmdQYWdlSUQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2V0UHJpdmF0ZUJyb3dz
aW5nU3RvcmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmRlc3Ryb3lQcml2YXRlQnJvd3Np
bmdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnN0
b3JhZ2VTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6
OnByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3VuaXgv
TmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcC4KKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzTWFpbik6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4Lmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oLgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBTaGFy
ZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAq
IFNoYXJlZC9XZWJSZXNvdXJjZUJ1ZmZlci5oOgorICAgICAgICAqIFNoYXJlZC9lZmwvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJL
aXQ6OmV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNz
L0xhdW5jaGVyL2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29y
a1Byb2Nlc3NQcm94eVNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAg
ICogVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZp
Y2F0ZUluZm8pOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogdW5p
eC9OZXR3b3JrTWFpblVuaXguY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUmVzb3VyY2VCdWZmZXIuaC4KKyAgICAgICAgKG1haW4pOgorCiAyMDEzLTAyLTEwICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSB0aGUgUGx1Zy1pbiBYUENT
ZXJ2aWNlIGJ1aWxkIHdvcmsgZXZlbiB3aGVuIGJ1aWxkaW5nIGluIFhjb2RlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aAppbmRleCA3YjE2MWEwMGM5NzYwYjVjYzEyNzA4YTY3NTJmOWExZjNmNmU4YjhmLi4xZmZlNmVl
Y2ZjZTkwNDg0MmRkZWM5Nzg1ZmIzOTZjY2QzZWJiOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHVibGljOgogI2VsaWYgVVNFKFNPVVApCiAgICAgdm9pZCBzZXRTb3VwU2Vz
c2lvbihTb3VwU2Vzc2lvbiogc2Vzc2lvbikgeyBtX3Nlc3Npb24gPSBzZXNzaW9uOyB9CiAgICAg
U291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uOyB9Cisg
ICAgYm9vbCBpc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2lzUHJp
dmF0ZTsgfQogI2Vsc2UKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oTmV0d29ya2luZ0NvbnRl
eHQqKTsKICAgICB+TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCk7CkBAIC03Myw2ICs3NCw3IEBAIHBy
aXZhdGU6CiAjZWxpZiBVU0UoU09VUCkKICAgICBOZXR3b3JrU3RvcmFnZVNlc3Npb24oU291cFNl
c3Npb24qKTsKICAgICBTb3VwU2Vzc2lvbiogbV9zZXNzaW9uOworICAgIGJvb2wgbV9pc1ByaXZh
dGU7CiAjZWxzZQogICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5kZXggZGQ1NmUyYjg5ZjUx
Y2Q3N2NjYjIwMjczZjdhMmM1ZDM4ZWJmZWFkMC4uYzI5YTRjMDY0NjcyZGFhMWVmZWUxMWRhN2U0
YzlkNjFjNTVkY2RjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Npb25Tb3VwLmNwcApAQCAt
MzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5ldHdvcmtTdG9yYWdlU2Vzc2lv
bjo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uKFNvdXBTZXNzaW9uKiBzZXNzaW9uKQogICAgIDogbV9z
ZXNzaW9uKHNlc3Npb24pCisgICAgLCBtX2lzUHJpdmF0ZShmYWxzZSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFr
ZUxpc3RzLnR4dAppbmRleCBhZjZiMTQxYmUwMmE0MzIzNTllZTQ2MjUzMGQyMDI2YmIwNWI2N2Ux
Li45MTYzNDFiZWJmNzY2OGY1ZGQ4N2FjNTgxZWNjN2NmNDg4NTM0MGEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxp
c3RzLnR4dApAQCAtMSw1ICsxLDYgQEAKIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJLSVQyX0RJUn0iCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNz
IgogICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybSIKICAgICAiJHtXRUJLSVQyX0RJUn0vUGxh
dGZvcm0vQ29yZUlQQyIKICAgICAiJHtXRUJLSVQyX0RJUn0vUGx1Z2luUHJvY2VzcyIKQEAgLTEx
LDYgKzEyLDcgQEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJ
VDJfRElSfS9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9OZXR3b3JrIgorICAgICIk
e1dFQktJVDJfRElSfS9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC9QbHVnaW5zIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvUGx1
Z2lucy9OZXRzY2FwZSIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0c2Nh
cGUveDExIgpAQCAtMjMsNiArMjUsNyBAQCBzZXQoV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Eb3dubG9hZHMiCiAgICAgIiR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9MYXVuY2hlciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsi
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zIgogICAgICIke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvUGx1Z2lucyIKICAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL1N0b3JhZ2UiCkBAIC00MCw2ICs0Myw3IEBAIHNldChXZWJLaXQyX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00i
CiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvTGF1bmNoaW5nIgogICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL01lZGlhQ2FjaGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvTmV0d29yayIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1BsdWdpbnMiCiAgICAgIiR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZSIKQEAgLTExOCw2ICsxMjIsMTQg
QEAgc2V0KFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwogKQogCiBzZXQoV2ViS2l0Ml9TT1VS
Q0VTCisgICAgTmV0d29ya1Byb2Nlc3MvSG9zdFJlY29yZC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwCisgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKKyAgICBOZXR3b3Jr
UHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorCiAgICAgUGxhdGZvcm0vTG9n
Z2luZy5jcHAKICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3BwCiAgICAgUGxhdGZvcm0vV29ya1F1ZXVl
LmNwcApAQCAtMTU4LDYgKzE3MCw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQv
U2VjdXJpdHlPcmlnaW5EYXRhLmNwcAogICAgIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCiAgICAg
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5jcHAKKyAgICBTaGFyZWQvU2hhcmVhYmxlUmVzb3VyY2Uu
Y3BwCiAgICAgU2hhcmVkL1N0YXRpc3RpY3NEYXRhLmNwcAogICAgIFNoYXJlZC9VcGRhdGVJbmZv
LmNwcAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmNwcApAQCAtMTkwLDYgKzIwMyw3IEBA
IHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKICAgICBTaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCiAgICAgU2hhcmVkL1dlYlJl
bmRlck9iamVjdC5jcHAKKyAgICBTaGFyZWQvV2ViUmVzb3VyY2VCdWZmZXIuY3BwCiAgICAgU2hh
cmVkL1dlYlRvdWNoRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYlVSTFJlcXVlc3QuY3BwCiAgICAg
U2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtMjIzLDYgKzIzNyw5IEBAIHNldChXZWJLaXQy
X1NPVVJDRVMKICAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9XZWJDb29yZGluYXRlZFN1
cmZhY2UuY3BwCiAgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvV2ViQ3VzdG9tRmlsdGVy
UHJvZ3JhbVByb3h5LmNwcAogCisgICAgU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCisgICAgU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCisKICAgICBTaGFyZWQvUGx1Z2lucy9OUElkZW50aWZpZXJEYXRhLmNw
cAogICAgIFNoYXJlZC9QbHVnaW5zL05QT2JqZWN0TWVzc2FnZVJlY2VpdmVyLmNwcAogICAgIFNo
YXJlZC9QbHVnaW5zL05QT2JqZWN0UHJveHkuY3BwCkBAIC0zNTUsNiArMzcyLDggQEAgc2V0KFdl
YktpdDJfU09VUkNFUwogCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5j
cHAKIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisKICAg
ICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5j
cHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb24uY3BwCkBAIC0zNjcsNiArMzg2LDggQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKICAgICBVSVByb2Nlc3Mv
UGx1Z2lucy9XZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuY3BwCiAKKyAgICBVSVByb2Nlc3Mvc291
cC9XZWJDb250ZXh0U291cC5jcHAKKwogICAgIFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQ
cm9jZXNzLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKIApAQCAtNDI5LDYgKzQ1
MCwxMCBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAKICAgICBXZWJQcm9jZXNzL05ldHdvcmtJbmZv
L1dlYk5ldHdvcmtJbmZvTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKKyAgICBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAogCkBAIC00OTUsNiArNTIwLDkgQEAgc2V0KFdlYktp
dDJfU09VUkNFUwogKQogCiBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAgIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisgICAg
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKwogICAgIFBsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2VzLmluCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNTI3LDYgKzU1NSw4IEBAIHNldChXZWJLaXQyX01F
U1NBR0VTX0lOX0ZJTEVTCiAKICAgICBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHku
bWVzc2FnZXMuaW4KIAorICAgIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KKwogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogCiAgICAgVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01NDksNiArNTc5LDkgQEAgc2V0KFdlYktpdDJf
TUVTU0FHRVNfSU5fRklMRVMKIAogICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUNh
Y2hlTWFuYWdlci5tZXNzYWdlcy5pbgogCisgICAgV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorICAgIFdlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgorCiAgICAgV2ViUHJvY2Vzcy9OZXR3b3JrSW5mby9X
ZWJOZXR3b3JrSW5mb01hbmFnZXIubWVzc2FnZXMuaW4KIAogICAgIFdlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMGQ1MmI4ZjNl
NzQ1YjVjMDI1NjAzOGMyYjFhYWNlOGZmZmVhMmNlMy4uNzNlZmU2ZGYyMGVmZDNmNTM0M2RlMzNi
NDZmMDY2YmYyNzViOWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02Myw3ICs2NCw5IEBAIE5ldHdvcmtQcm9jZXNzOjpO
ZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgYWRkU3VwcGxlbWVudDxBdXRoZW50aWNhdGlvbk1hbmFn
ZXI+KCk7CiAgICAgYWRkU3VwcGxlbWVudDxXZWJDb29raWVNYW5hZ2VyPigpOworI2lmIEVOQUJM
RShDVVNUT01fUFJPVE9DT0xTKQogICAgIGFkZFN1cHBsZW1lbnQ8Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyPigpOworI2VuZGlmCiB9CiAKIE5ldHdvcmtQcm9jZXNzOjp+TmV0d29ya1Byb2Nlc3MoKQpA
QCAtMTgwLDggKzE4MywxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjcmVhdGVOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcygpCiAKICAgICBDb3JlSVBDOjpBdHRhY2htZW50IGNsaWVudFBv
cnQobGlzdGVuaW5nUG9ydCwgTUFDSF9NU0dfVFlQRV9NQUtFX1NFTkQpOwogICAgIHBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkRp
ZENyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGNsaWVudFBvcnQpLCAwKTsKLSNl
bHNlCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyNlbGlmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRT
KQorICAgIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgc2VydmVySWRlbnRpZmllciwg
Y2xpZW50SWRlbnRpZmllcjsKKyAgICBib29sIHN1Y2Nlc3MgPSBDb3JlSVBDOjpDb25uZWN0aW9u
OjpjcmVhdGVTZXJ2ZXJBbmRDbGllbnRJZGVudGlmaWVycyhzZXJ2ZXJJZGVudGlmaWVyLCBjbGll
bnRJZGVudGlmaWVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOworCisg
ICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjb25uZWN0aW9uID0gTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShzZXJ2ZXJJZGVudGlmaWVyKTsKKyAg
ICBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoY29ubmVjdGlvbi5yZWxlYXNlKCkpOwor
CisgICAgQ29yZUlQQzo6QXR0YWNobWVudCBjbGllbnRTb2NrZXQoY2xpZW50SWRlbnRpZmllcik7
CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3NQcm94eTo6RGlkQ3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY2xpZW50
U29ja2V0KSwgMCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRl
eCA4YzMzMzJiNTgxMzcyM2YzOGE2YTdmZDg4Mjc3ZGZhNTJmYTA2NDlhLi5hZWE1NjRmZTBiYjNi
NjQ1OWZmMzVhY2RjOWRkODgwMTNmYjYxZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cApAQCAtNCw3ICs0LDcgQEAKICNpbmNsdWRlICJIb3N0UmVjb3JkLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCi0jaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3Njb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAj
aW5jbHVkZSAiU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
N2Y0YmJkZDgzNDY3ZGM5ZTYwMzhlY2NkNDYyZDhlNTE4ODJkYzE4Zi4uMjIyYzM0YWZjNzZmZmJj
MWFlMWM5ZjMyNThhNTI4MmJmM2ZhYjk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03Nyw4ICs3Nyw4
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAgICAgLy8gRXhwbGljaXQg
cmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVz
b3VyY2VIYW5kbGVTdG9wcGVkKCkKICAgICByZWYoKTsKICAgICAKLSAgICAvLyBGSVhNRSAoTmV0
d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgd2l0aCBhY3R1YWwg
c2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93c2luZ01vZGUoKSwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKKyAgICAvLyBGSVhNRSAoTmV0
d29ya1Byb2Nlc3MpOiBTZXQgcGxhdGZvcm0gc3BlY2lmaWMgc2V0dGluZ3MuCisgICAgbV9uZXR3
b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoaW5Qcml2YXRl
QnJvd3NpbmdNb2RlKCksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qo
KSk7CiAKICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTlkNWJiOGYzNmExNjI1N2U1M2U5MGViYmU0NjMxZWM1NmJlZTg1NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0LmgKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5p
dmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAorI2RlZmluZSBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dF9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBX
ZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShib29sIHByaXZhdGVCcm93c2luZ0Vu
YWJsZWQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQo
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgp
OworCisgICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25JZGVu
dGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBlbnN1cmVQcml2YXRl
QnJvd3NpbmdTZXNzaW9uKCk7CisgICAgc3RhdGljIHZvaWQgZGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oKTsKKworICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsgLy8gQ2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gdGhl
IHNlc3Npb24gZXhpc3RzLgorCisgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBPVkVSUklERQorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9vbCBwcml2YXRlQnJvd3Np
bmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qp
CisgICAgICAgIDogbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQpCisgICAgICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgeyB9CisKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24o
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IE9WRVJS
SURFOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2V0TmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MoYm9vbCB2YWx1ZSkgeyBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gdmFsdWU7IH0K
KyAgICB2b2lkIHNldExvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoYm9vbCB2YWx1ZSkg
eyBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQgPSB2YWx1ZTsgfQorCisgICAgdmly
dHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIE5TT3BlcmF0aW9uUXVldWUgKnNjaGVkdWxlZE9wZXJhdGlvblF1
ZXVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBPVkVS
UklERTsKKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisgICAgdmlydHVhbCB1aW50NjRfdCBpbml0
aWF0aW5nUGFnZUlEKCkgY29uc3Q7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBi
b29sIG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7CisgICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQ7CisjZW5kaWYKKworICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdF
bmFibGVkOworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0OworfTsKKworfQorCisjZW5kaWYgLy8gUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU3luY05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcAppbmRleCAxZjgyZDE0OWMyZWJkMDBmMDA1ZGUzYTk2YTNlNGY5ZTEw
MWE1YWZiLi5mNjMyOTUyNGM3MjRmZTJmNGVmOTIyZmFiNWYwMjE3YTIwMzhjYTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcApAQCAtNTgsOCArNTgsOCBAQCB2b2lkIFN5bmNOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnN0YXJ0KCkKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwogICAgIFZl
Y3RvcjxjaGFyPiBkYXRhOwogICAgIAotICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IENy
ZWF0ZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCB3aXRoIGFjdHVhbCBzZXR0aW5ncy4KLSAgICBS
ZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGluUHJpdmF0ZUJyb3dzaW5n
TW9kZSgpLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpOworICAg
IC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFNldCBwbGF0Zm9ybSBzcGVjaWZpYyBzZXR0aW5n
cy4KKyAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5ldHdvcmtpbmdDb250ZXh0
ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShpblByaXZhdGVCcm93c2luZ01vZGUo
KSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKIAogICAgIGNv
bnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODlh
Nzk2MjkzMTMzMWQ2OWQ3YjhlYzVkNzI2YWFiMTlhNmJhNmRhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzRWZsLmNwcApA
QCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKworI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikK
K3sKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hl
TW9kZWwpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vz
czo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFBsYXRmb3JtQ2Vy
dGlmaWNhdGVJbmZvJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOTYwZDA0NjgxYzg0YzBjOTYxMzkxYzRi
Mjk3MGRkZWU4YWRiM2YyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHRfaAotI2RlZmluZSBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dF9oCi0KLSNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtpbmdDb250ZXh0Lmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCA6IHB1Ymxp
YyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShib29sIG5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3
b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3
b3JraW5nQ29udGV4dCgpOwotCi0gICAgc3RhdGljIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nU3Rv
cmFnZVNlc3Npb25JZGVudGlmaWVyQmFzZShjb25zdCBTdHJpbmcmKTsKLSAgICBzdGF0aWMgdm9p
ZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJv
eVByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsKLQotICAgIHN0YXRpYyBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mIHByaXZhdGVCcm93c2luZ1Nlc3Npb24oKTsgLy8gQ2FuIG9ubHkgYmUg
Y2FsbGVkIHdoZW4gdGhlIHNlc3Npb24gZXhpc3RzLgotCi0gICAgdmlydHVhbCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCBPVkVSUklERTsKLQot
cHJpdmF0ZToKLSAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpOwotCi0gICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBPVkVSUklE
RTsKLQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpIGNvbnN0IE9W
RVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVk
KCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb24mIHN0b3JhZ2VTZXNzaW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBOU09w
ZXJhdGlvblF1ZXVlICpzY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgT1ZFUlJJREU7Ci0KLSAgICBib29sIG1fbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3M7Ci0gICAgYm9vbCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQ7Ci0gICAgYm9vbCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQ7Ci0gICAgYm9vbCBt
X3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7Ci19OwotCi19Ci0KLSNl
bmRpZiAvLyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0K
aW5kZXggNzgxOTUzM2E1MjliNTZhZjQwYTBjYjllYzZhZTFjOWM3OTFjYTJlYi4uMGVlNTY4ZmVh
M2RkMDIxNTYyZGUxYjczZmZlNDgzZDE1YTE0YTdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5t
bQpAQCAtNDIsMTkgKzQyLDYgQEAgc3RhdGljIE93blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+
JiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpCiAgICAgcmV0dXJuIHNlc3Npb247CiB9
CiAKLWJvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAotewotICAgIHJldHVybiBtX3Nob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7Ci19Ci0KLVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBi
b29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQot
ICAgIDogbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcykK
LSAgICAsIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChsb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkKQotICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZhdGVC
cm93c2luZ0VuYWJsZWQpCi0gICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKLXsKLX0K
LQogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6On5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdv
cmtSZXNvdXJjZUxvYWRTY2hlZHVsZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlclNvdXAuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdiYWI3MjZiNDIwZTY3NGQzMGQ0NGFhOWI1MGY0NDAyNTkzY2ZlOWIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtSZXNvdXJj
ZUxvYWRTY2hlZHVsZXJTb3VwLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKKyNpbmNsdWRl
ICJOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit1bnNpZ25lZCBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwbGF0Zm9ybUluaXRpYWxp
emVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQoreworICAgIC8vIFNlZTogUmVz
b3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICByZXR1cm4gMTAwMDA7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41M2RkNGQzNTIzNThlZWY4YjJlY2MyNDMyNDI4Nzk0N2M5ZGNmZGEzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVO
ZXR3b3JraW5nQ29udGV4dFNvdXAuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KyNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgorCisjaW5jbHVkZSA8V2ViQ29y
ZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU5ldHdvcmtpbmdD
b250ZXh0Ojp+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQoKQoreworfQorCitib29sIFJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwordWludDY0X3QgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmluaXRpYXRpbmdQYWdlSUQoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNldFByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9u
SWRlbnRpZmllckJhc2UoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVQcml2YXRlQnJvd3NpbmdT
ZXNzaW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6c3RvcmFnZVNlc3Npb24oKSBjb25zdAoreworICAgIHJldHVybiBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworfQorCitOZXR3b3JrU3Rv
cmFnZVNlc3Npb24mIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpwcml2YXRlQnJvd3NpbmdTZXNz
aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBOZXR3b3JrU3RvcmFn
ZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lvbigpOworfQorCit9CisKKyNlbmRpZiAvLyBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvdW5peC9OZXR3b3JrUHJvY2Vzc01haW5Vbml4LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NNYWluVW5peC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTdlZmIyMjI3NGU3ODMzNWI4MmI4YmU1YTc0NmM0OGE3ODQ4ZDRlMgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NN
YWluVW5peC5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c01haW5Vbml4LmgiCisKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL05ldHdvcmtQcm9jZXNzLmg+CisjaW5jbHVkZSA8
ZXJyb3IuaD4KKyNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbmNs
dWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorCisjaWYgUExBVEZP
Uk0oR1RLKQorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0VYUE9SVCBpbnQgTmV0d29ya1By
b2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCit7CisgICAgaWYgKGFyZ2MgIT0gMikK
KyAgICAgICAgcmV0dXJuIDE7CisKKyNpZiBQTEFURk9STShHVEspCisgICAgZ3RrX2luaXQoJmFy
Z2MsICZhcmd2KTsKKyNlbmRpZgorCisgICAgLy8gRklYTUU6IEV2ZW50IGxvb3AgaXMgbm90IGlu
aXRpYWxpemVkIGNvcnJlY3RseSBmb3IgRUZMLiBGb3IgRUZMIHdlIHNob3VsZCBzaG91bGQgZWl0
aGVyCisgICAgLy8gaW5pdGlhbGl6ZSBlY29yZSBvciB1c2UgdGhlIGdsaWItb25seSBSdW5Mb29w
IGltcGxlbWVudGF0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MuCisKKyAgICBKU0M6OmluaXRp
YWxpemVUaHJlYWRpbmcoKTsKKyAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7CisKKyAg
ICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKKworICAgIC8vIEZJWE1FOiBoYW5k
bGUgcHJveHkgc2V0dGluZ3MuCisKKyAgICBlcnJubyA9IDA7CisgICAgbG9uZyBpbnQgc29ja2V0
ID0gc3RydG9sKGFyZ3ZbMV0sIDAsIDEwKTsKKyAgICBpZiAoZXJybm8pCisgICAgICAgIHJldHVy
biAxOworCisgICAgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRl
cnM7CisgICAgcGFyYW1ldGVycy5jb25uZWN0aW9uSWRlbnRpZmllciA9IGludChzb2NrZXQpOwor
CisgICAgTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUocGFyYW1ldGVycyk7CisK
KyAgICBSdW5Mb29wOjpydW4oKTsKKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVu
aXguaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3VuaXgvTmV0d29ya1Byb2Nlc3NN
YWluVW5peC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMGMwNGIxNTBmNGNkNGVkMTJhOTk0ODU4ZjQwZjRjMWRh
ZDhjMGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy91
bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVW5pdmVyc2l0eSBvZiBTemVnZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0d29ya1Byb2Nlc3NNYWluVW5peF9oCisj
ZGVmaW5lIE5ldHdvcmtQcm9jZXNzTWFpblVuaXhfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jh
c2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0VYUE9SVCBpbnQgTmV0d29ya1Byb2Nl
c3NNYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pOworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFdlYlByb2Nlc3NNYWluRWZsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UK
aW5kZXggZjZjZTE3NmZkM2E0M2ZlZGQ1ZDM0YTc2ZTlkNjViYTgxMGI3MTMzZS4uOGJmZGM4M2E0
MTE5MWNjNjEzMGEwMzJhMGY3YTZiNmM5NjFjZjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKQEAgLTEsNCArMSw5IEBACiBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICBOZXR3
b3JrUHJvY2Vzcy9lZmwvTmV0d29ya1Byb2Nlc3NFZmwuY3BwCisgICAgTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyU291cC5jcHAKKyAgICBOZXR3b3JrUHJv
Y2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKyAgICBOZXR3b3JrUHJv
Y2Vzcy91bml4L05ldHdvcmtQcm9jZXNzTWFpblVuaXguY3BwCisKICAgICBQbGF0Zm9ybS9lZmwv
TG9nZ2luZ0VmbC5jcHAKICAgICBQbGF0Zm9ybS9lZmwvTW9kdWxlRWZsLmNwcAogICAgIFBsYXRm
b3JtL2VmbC9Xb3JrUXVldWVFZmwuY3BwCkBAIC0xMDksNiArMTE0LDggQEAgbGlzdChBUFBFTkQg
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL2VmbC9XZWJQcm9jZXNzUHJveHlFZmwuY3Bw
CiAgICAgVUlQcm9jZXNzL2VmbC9XZWJWaWV3LmNwcAogCisgICAgVUlQcm9jZXNzL3NvdXAvV2Vi
Q29udGV4dFNvdXAuY3BwCisKICAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2VmbC9XZWJJ
bnNwZWN0b3JTZXJ2ZXJFZmwuY3BwCiAgICAgVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9zb3Vw
L1dlYlNvY2tldFNlcnZlclNvdXAuY3BwCiAKQEAgLTExOCw2ICsxMjUsOCBAQCBsaXN0KEFQUEVO
RCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xh
dW5jaGVyRWZsLmNwcAogCisgICAgVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vz
c1Byb3h5U291cC5jcHAKKwogICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luSW5mb1N0
b3JlVW5peC5jcHAKICAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpblByb2Nlc3NQcm94
eVVuaXguY3BwCiAKQEAgLTE2Myw2ICsxNzIsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xV
REVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3Vw
IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VuY2hhbnQiCiAgICAgIiR7V0VC
Q09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nl
c3MvdW5peCIKICAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Rvd25sb2Fkcy9zb3VwIgogICAg
ICIke1dFQktJVDJfRElSfS9TaGFyZWQvZWZsIgogICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQv
c291cCIKQEAgLTMyMyw2ICszMzMsMjcgQEAgaWYgKEVOQUJMRV9QTFVHSU5fUFJPQ0VTUykKICAg
ICBpbnN0YWxsKFRBUkdFVFMgJHtQbHVnaW5Qcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0gREVTVElO
QVRJT04gIiR7RVhFQ19JTlNUQUxMX0RJUn0iKQogZW5kaWYgKCkgIyBFTkFCTEVfUExVR0lOX1BS
T0NFU1MKIAoraWYgKEVOQUJMRV9ORVRXT1JLX1BST0NFU1MpCisgICAgc2V0KE5ldHdvcmtQcm9j
ZXNzX0VYRUNVVEFCTEVfTkFNRSBOZXR3b3JrUHJvY2VzcykKKyAgICBsaXN0KEFQUEVORCBOZXR3
b3JrUHJvY2Vzc19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgICAgICIke1dFQktJVDJfRElSfS9O
ZXR3b3JrUHJvY2VzcyIKKyAgICApCisKKyAgICBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7TmV0d29y
a1Byb2Nlc3NfSU5DTFVERV9ESVJFQ1RPUklFU30pCisKKyAgICBsaXN0KEFQUEVORCBOZXR3b3Jr
UHJvY2Vzc19TT1VSQ0VTCisgICAgICAgICR7V0VCS0lUMl9ESVJ9L3VuaXgvTmV0d29ya01haW5V
bml4LmNwcAorICAgICkKKworICAgIHNldChOZXR3b3JrUHJvY2Vzc19MSUJSQVJJRVMKKyAgICAg
ICAgJHtXZWJLaXQyX0xJQlJBUllfTkFNRX0KKyAgICApCisKKyAgICBhZGRfZXhlY3V0YWJsZSgk
e05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX0gJHtOZXR3b3JrUHJvY2Vzc19TT1VSQ0VT
fSkKKyAgICB0YXJnZXRfbGlua19saWJyYXJpZXMoJHtOZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxF
X05BTUV9ICR7TmV0d29ya1Byb2Nlc3NfTElCUkFSSUVTfSkKKyAgICBpbnN0YWxsKFRBUkdFVFMg
JHtOZXR3b3JrUHJvY2Vzc19FWEVDVVRBQkxFX05BTUV9IERFU1RJTkFUSU9OICIke0VYRUNfSU5T
VEFMTF9ESVJ9IikKK2VuZGlmICgpCisKIGluY2x1ZGVfZGlyZWN0b3JpZXMoJHtUSElSRFBBUlRZ
X0RJUn0vZ3Rlc3QvaW5jbHVkZSkKIAogc2V0KEVXSzJVbml0VGVzdHNfTElCUkFSSUVTCkBAIC0z
NTMsNiArMzg0LDcgQEAgYWRkX2RlZmluaXRpb25zKC1EVEVTVF9SRVNPVVJDRVNfRElSPVwiJHtU
RVNUX1JFU09VUkNFU19ESVJ9XCIKICAgICAtRExJQkVYRUNESVI9XCIke0NNQUtFX0lOU1RBTExf
UFJFRklYfS8ke0VYRUNfSU5TVEFMTF9ESVJ9XCIKICAgICAtRFdFQlBST0NFU1NOQU1FPVwiJHtX
ZWJQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX1cIgogICAgIC1EUExVR0lOUFJPQ0VTU05BTUU9XCIk
e1BsdWdpblByb2Nlc3NfRVhFQ1VUQUJMRV9OQU1FfVwiCisgICAgLURORVRXT1JLUFJPQ0VTU05B
TUU9XCIke05ldHdvcmtQcm9jZXNzX0VYRUNVVEFCTEVfTkFNRX1cIgogKQogCiBhZGRfbGlicmFy
eShld2syVW5pdFRlc3RVdGlscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oCmluZGV4IDVmYmYzMjAxODExMDU1ZTM4NGFiZWRiNmQzZGQ1ZGFmMWM3Yjc0
ZGQuLmQ3OGViY2RkZWJhOTZlNWE5YTMwMWVjN2U4Y2Q1MjM3NDlkYmRlMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKQEAgLTMyLDYgKzMyLDkg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2Vz
cygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVnaW5Qcm9jZXNzKCk7CisjaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3Mo
KTsKKyNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJS
ZXNvdXJjZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVy
LmgKaW5kZXggYjQ3ZjMxODE1ODMyOWE4NTUwNGUyMjgxZGJiM2Y1NjY3YmYzNGY3YS4uZDYyNGMw
OGRmYWU2ODE2YmUyMTcwMmZiZmNhZjA4MmRkYWJlNWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlJlc291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlJlc291cmNlQnVmZmVyLmgKQEAgLTI2LDEyICsyNiwxMSBAQAogI2lmbmRlZiBXZWJS
ZXNvdXJjZUJ1ZmZlcl9oCiAjZGVmaW5lIFdlYlJlc291cmNlQnVmZmVyX2gKIAorI2luY2x1ZGUg
IlNoYXJlYWJsZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2hhcmVhYmxlUmVzb3VyY2U7Ci0KIGNs
YXNzIFdlYlJlc291cmNlQnVmZmVyIDogcHVibGljIFdlYkNvcmU6OlJlc291cmNlQnVmZmVyIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJSZXNvdXJjZUJ1ZmZlcj4gY3JlYXRl
KFBhc3NSZWZQdHI8U2hhcmVhYmxlUmVzb3VyY2U+IHJlc291cmNlKSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViUmVzb3VyY2VCdWZmZXIocmVzb3VyY2UpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwCmluZGV4IDYx
OGFiMmExNDNhZmVkYzU1ZTFhM2VlZTJjYTQwNzY1ZGJjMWViZjcuLmM5ZTQ5MmViNDYxNjk3OGNm
ZDBlNTFhYWVjZTc1OWIxMDI4ZTYyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9lZmwvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAKQEAgLTc0LDQgKzc0LDEzIEBA
IFN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCiAgICAgcmV0dXJuIHdlYktp
dFBsdWdpblByb2Nlc3NOYW1lOwogfQogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKK1N0
cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoY29uc3QgU3RyaW5nLCB3ZWJLaXROZXR3b3JrUHJvY2Vzc05hbWUsIChmaW5kUHJv
Y2Vzc1BhdGgoTkVUV09SS1BST0NFU1NOQU1FKSkpOworCisgICAgcmV0dXJuIHdlYktpdE5ldHdv
cmtQcm9jZXNzTmFtZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5j
aGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9lZmwvUHJvY2Vz
c0xhdW5jaGVyRWZsLmNwcAppbmRleCAzYTM2MzM0N2Y4ZWNhYmMzNTI3NWZlYzBiNjUxM2IwYTM0
YzIyODgxLi5iYmQ4YmEzMTZkMDhmZDM3NzZiYWI2ZmViZjMxMDM2N2IwMzAwODdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hl
ckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2VmbC9Qcm9j
ZXNzTGF1bmNoZXJFZmwuY3BwCkBAIC01Myw2ICs1MywxMSBAQCB2b2lkIFByb2Nlc3NMYXVuY2hl
cjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHBsdWdpblBhdGggPSBtX2xhdW5jaE9wdGlvbnMu
ZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4tcGF0aCIpLnV0ZjgoKTsKICAgICAg
ICAgYnJlYWs7CiAjZW5kaWYKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGNhc2Ug
TmV0d29ya1Byb2Nlc3M6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhP
Zk5ldHdvcmtQcm9jZXNzKCkudXRmOCgpOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IGQyZTIwNWZkNmI3NDJhOWRiYjNhMmE4NmNhMTljM2QwZTllZGI5
NTMuLjNjMDkwZmNlZjhjM2Q5NmZjZjliOTNhZWI3NDRmMzVkMmM5YTQyZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCkBAIC0yOSwxOCArMjksMjIgQEAKICNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
CiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgotI2luY2x1ZGUgIkN1
c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJEb3dubG9hZFBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAj
aWYgVVNFKFNFQ1VSSVRZX0ZSQU1FV09SSykKICNpbmNsdWRlICJTZWNJdGVtU2hpbVByb3h5Lmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDVVNUT01fUFJPVE9DT0xTKQorI2luY2x1ZGUgIkN1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNlbmRpZgorCiAjZGVmaW5lIE1FU1NB
R0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0
aW9uKCkpCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTAwLDYgKzEwNCw4IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xh
dW5jaCgpCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIHJlcGx5LT5zZW5kKENvcmVJUEM6
OkF0dGFjaG1lbnQoMCwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpKTsKKyNlbGlmIFVTRShVTklY
X0RPTUFJTl9TT0NLRVRTKQorICAgICAgICByZXBseS0+c2VuZChDb3JlSVBDOjpBdHRhY2htZW50
KCkpOwogI2Vsc2UKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgpAQCAtMTUwLDYg
KzE1Niw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoY29uc3QgQ29yZUlQQzo6CiAKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgcmVwbHktPnNlbmQoQ29yZUlQQzo6QXR0YWNobWVudChjb25uZWN0aW9uSWRlbnRpZmllci5w
b3J0KCksIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKSk7CisjZWxpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykKKyAgICByZXBseS0+c2VuZChjb25uZWN0aW9uSWRlbnRpZmllcik7CiAjZWxzZQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9OZXR3b3JrL3NvdXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vzc1Byb3h5U291
cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2UwZDIyNWRlMjlkMTgxZmFhN2M1ZWUwMjExMDY5YjkxZGM5Yjg3
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL3Nv
dXAvTmV0d29ya1Byb2Nlc3NQcm94eVNvdXAuY3BwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nl
c3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKK3sKK30KKworfQorCisj
ZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9zb3VwL1dlYkNvbnRleHRTb3VwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2I5Y2RmM2RhNmQ2
ZjAyYzQ1ZjQwZWI1ZTc4MWRkYzkyYjVkZGJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViQ29udGV4dFNvdXAuY3BwCkBAIC0wLDAgKzEsNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJD
b250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYpCit7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2I1M2IxY2ZhOGYx
MzYxNzZlY2QwYzZmOWZlNDdlNjRhNmIxN2Q5My4uZjI4Mjg0MGI1MDMxMTJhMzgyMDk1NDc2NzQz
OWMzODVkNjA0ZjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTcyLDYgKzU3Miw3IEBACiAJCTkzRkM2N0JFMTJEM0NDRjIw
MEE2MDYxMCAvKiBEZWNvZGVyQWRhcHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGQzY3OUUxMkQzQ0M3NDAwQTYwNjEwIC8qIERlY29kZXJBZGFw
dGVyLmggKi87IH07CiAJCTkzRkM2N0JGMTJEM0NDRjIwMEE2MDYxMCAvKiBFbmNvZGVyQWRhcHRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0ZD
Njc5RjEyRDNDQzc0MDBBNjA2MTAgLyogRW5jb2RlckFkYXB0ZXIuY3BwICovOyB9OwogCQk5M0ZD
NjdDMDEyRDNDQ0YyMDBBNjA2MTAgLyogRW5jb2RlckFkYXB0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkM2N0EwMTJEM0NDNzQwMEE2MDYxMCAv
KiBFbmNvZGVyQWRhcHRlci5oICovOyB9OworCQk5ODVCMDdCRDE2QzkwNkZEMDA4MUMzNTUgLyog
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk4NUIwN0JDMTZDOTA2RkQwMDgxQzM1NSAvKiBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dC5oICovOyB9OwogCQk5RjRGNTk0MjE2NDhCNDA3MDA0OTNCN0UgLyogU2hhcmVk
V29ya2VyUHJvY2Vzc01hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5RjRGNTk0MTE2NDhCNDA3MDA0OTNCN0UgLyogU2hhcmVkV29ya2Vy
UHJvY2Vzc01hbmFnZXJNYWMubW0gKi87IH07CiAJCTlGNEY1OTQ0MTY0OEI2N0YwMDQ5M0I3RSAv
KiBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjRGNTk0MzE2NDhCNjdGMDA0OTNCN0UgLyogU2hhcmVk
V29ya2VyUHJvY2Vzc1Byb3h5TWFjLm1tICovOyB9OwogCQk5RjU0Rjg4RjE2NDg4RTg3MDA3REY4
MUEgLyogQ2hpbGRQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUY1NEY4OEUxNjQ4OEU4NzAwN0RGODFBIC8qIENoaWxkUHJvY2Vzc01h
Yy5tbSAqLzsgfTsKQEAgLTEwNzYsNyArMTA3Nyw2IEBACiAJCUUxQTlBODUyMTY5RTIwMjUwMDJE
NzE3NiAvKiBXZWJLaXQuaWNucyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovOyB9
OwogCQlFMUFFQTIyRjE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRj
aGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUFF
QTIyRDE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmggKi87
IH07CiAJCUUxQUVBMjMwMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dh
dGNoZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUFFQTIyRTE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1t
ICovOyB9OwotCQlFMUI3ODQ3MTE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
Qjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9
OwogCQlFMUI3ODQ3MzE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUI3ODQ3
MjE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gKi87IH07CiAJ
CUUxQ0MxQjkwMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQ0MxQjhFMTJEN0VBREYwMDYyNTgzOCAv
KiBQcmludEluZm8uaCAqLzsgfTsKIAkJRTFDQzFCOTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50
SW5mb01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxQ0MxQjhGMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gKi87IH07CkBAIC0x
OTEwLDYgKzE5MTAsNyBAQAogCQk5M0ZDNjc5RTEyRDNDQzc0MDBBNjA2MTAgLyogRGVjb2RlckFk
YXB0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2RlckFkYXB0ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGQzY3OUYxMkQzQ0M3NDAwQTYwNjEw
IC8qIEVuY29kZXJBZGFwdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEVuY29kZXJBZGFwdGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNG
QzY3QTAxMkQzQ0M3NDAwQTYwNjEwIC8qIEVuY29kZXJBZGFwdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEVuY29kZXJBZGFwdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk4NUIwN0JDMTZDOTA2RkQwMDgxQzM1NSAvKiBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY0RjU5NDExNjQ4QjQwNzAwNDkzQjdF
IC8qIFNoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXJNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNEY1OTQzMTY0OEI2N0YwMDQ5M0I3RSAvKiBT
aGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlGNTRGODhFMTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nl
c3NNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDaGlsZFBy
b2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDc2LDcgKzI0Nzcs
NiBAQAogCQlFMUEzMTczNDEzNENFQTgwMDA3QzlBNEYgLyogQXR0cmlidXRlZFN0cmluZy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF0dHJpYnV0ZWRTdHJpbmcu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQUVBMjJEMTQ2ODdCREIwMDgwNDU2
OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxQUVBMjJFMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2Fy
ZEFjY2Vzc1dhdGNoZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUI3ODQ3MjE2M0YyNTNFMDAw
N0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQzFCOEUxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcmludEluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDQzFCOEYxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50
SW5mb01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByaW50
SW5mb01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMzMTksNiArMzMxOSw3
IEBACiAJCTUxMENDN0RBMTYxMzhFMDEwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2VzcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOTg1QjA3QkMxNkM5MDZG
RDAwODFDMzU1IC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkJQkM4MjgzN0Mx
NkI0NURBNTAwQTI3OEZFIC8qIEVudHJ5UG9pbnQgKi8sCiAJCQkJNTEwQ0M3REMxNjEzOEUyOTAw
RDAzRUQzIC8qIG1hYyAqLywKIAkJCQk1MTJDMDY4NjE2MzhGNjdFMDBBQkI5MTEgLyogSG9zdFJl
Y29yZC5jcHAgKi8sCkBAIC0zMzQ3LDcgKzMzNDgsNiBAQAogCQkJCUUxN0FFMkMxMTZCOUMxMzkw
MDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNiLmluICovLAogCQkJ
CTUxQThBNjE1MTYyN0YzRjkwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vzc01hYy5tbSAqLywKIAkJ
CQk1MTJDMDY4RjE2MzkwRTY5MDBBQkI5MTEgLyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxl
ck1hYy5tbSAqLywKLQkJCQlFMUI3ODQ3MDE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQuaCAqLywKIAkJCQlFMUI3ODQ3MjE2M0YyNTNFMDAwN0I2OTIgLyogUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IG1hYzsKQEAgLTUwMjcs
NyArNTAyNyw2IEBACiAJCQkJMUFBM0Q3NUMxNjUxQjQ0RjAwODcxM0QwIC8qIFJlbW90ZUxheWVy
VHJlZUhvc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTNENzYyMTY1MUI3RDMwMDg3MTNEMCAv
KiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjFB
QzZDMTY1MTc1OUUwMEMxN0Q3RiAvKiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRTFCNzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTMwMDY2RTExMTBGNEY3MDAzMTkzN0Mg
LyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTcxMkFD
NDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUFCNEE4RDEyOTZGMEEyMDAyMzk1MkYgLyogU2FuZGJveEV4dGVuc2lvbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC01MzY2LDYgKzUzNjUsNyBAQAogCQkJCUJDOTg5RDg1MTYxQTk4OTAw
MDBENDZEMyAvKiBXS1dlYlByb2Nlc3NQbHVnSW5JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMyRTZFOEUxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCRUNERTgxNkI2NDE2ODAwMDQ3QTFBIC8qIFhQQ1NlcnZpY2VFbnRyeVBvaW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5ODVCMDdCRDE2QzkwNkZEMDA4MUMzNTUgLyogUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYzljOGIz
MGQ5NzYyNDU3NDczNGFiZGE2NzVjZWEzODQxNDU4NjVjZC4uZDcyNWE5ZTU3ZTE5OGU4OTJiYTc3
NzMzYmNmMmJhZDllMWFhNjczMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC04Myw3ICs4Myw5IEBAIHZv
aWQgV2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUlu
Zm8oY29uc3QgUmVzb3VyY2VSZXNwCiB7CiAgICAgTE9HKE5ldHdvcmssICIoV2ViUHJvY2Vzcykg
V2ViUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZVdpdGhDZXJ0aWZpY2F0ZUluZm8g
Zm9yICclcycuIFN0YXR1cyAlZC4iLCBtX2NvcmVMb2FkZXItPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogICAgIFJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2VDb3B5KHJlc3BvbnNlKTsKKyNpZiBVU0UoQ0ZORVRXT1JLKQogICAgIHJlc3Bv
bnNlQ29weS5zZXRDZXJ0aWZpY2F0ZUNoYWluKGNlcnRpZmljYXRlSW5mby5jZXJ0aWZpY2F0ZUNo
YWluKCkpOworI2VuZGlmCiAgICAgbV9jb3JlTG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVz
cG9uc2VDb3B5KTsKIH0KIApAQCAtMTIzLDEwICsxMjUsMTIgQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZVJlc291cmNlKGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUm
IGhhbmQKICAgICBtX2NvcmVMb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7CiB9
CiAKKyNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogdm9pZCBXZWJSZXNv
dXJjZUxvYWRlcjo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQ
cm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgYm9vbCYgcmVzdWx0KQogewogICAgIHJl
c3VsdCA9IG1fY29yZUxvYWRlci0+Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFj
ZShwcm90ZWN0aW9uU3BhY2UpOwogfQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRlci5oCmluZGV4IDAzZTgyNzE2MGQ0ZTUwMDMxOGRmNWYyMGE3YTY3ZWY4NWRlNjNhY2Uu
LjAzOTAxNzY3ZTRmYmFjNDliMWNiY2M4MThlZWUxZDkxZjY5Yjg5ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5oCkBA
IC04MCw3ICs4MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNvdXJj
ZShjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiwgZG91YmxlIGZpbmlzaFRpbWUpOwog
CisjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICB2b2lkIGNhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlJiwgYm9vbCYgcmVzdWx0KTsKKyNlbmRpZgogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJl
c291cmNlTG9hZGVyPiBtX2NvcmVMb2FkZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2Vz
LmluCmluZGV4IGVhZDU3YTg1MTJhMmYxY2E1MTMwMGUxYjcyZGRhY2RjMjIzNGIzYjMuLjkzNjFj
YTg5NGRmNTYxODZiOWQxMWJjYmQ3MTY2NmQ1MTA4OGZlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIu
bWVzc2FnZXMuaW4KQEAgLTIwLDYgKzIwLDggQEAKICMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKIG1lc3NhZ2VzIC0+
IFdlYlJlc291cmNlTG9hZGVyIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIENhbmNlbFJlc291cmNl
TG9hZGVyKCkKQEAgLTMxLDggKzMzLDEyIEBAIG1lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZGVy
IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWRGaW5pc2hSZXNvdXJjZUxvYWQoZG91YmxlIGZpbmlz
aFRpbWUpCiAgICAgRGlkRmFpbFJlc291cmNlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yKQogICAgIAorI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAg
Q2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJDb3JlOjpQcm90ZWN0aW9u
U3BhY2UgcHJvdGVjdGlvblNwYWNlKSAtPiAoYm9vbCByZXNwb25zZSkKKyNlbmRpZgogCiAgICAg
Ly8gRGlkUmVjZWl2ZVJlc291cmNlIGlzIGZvciB3aGVuIHdlIGhhdmUgdGhlIGVudGlyZSByZXNv
dXJjZSBkYXRhIGF2YWlsYWJsZSBhdCBvbmNlLCBzdWNoIGFzIHdoZW4gdGhlIHJlc291cmNlIGlz
IGNhY2hlZCBpbiBtZW1vcnkKICAgICBEaWRSZWNlaXZlUmVzb3VyY2UoV2ViS2l0OjpTaGFyZWFi
bGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNlLCBkb3VibGUgZmluaXNoVGltZSkKIH0KKworI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZsLmNwcApp
bmRleCA5ZDhkZmRhMGRhYjc0OTIwNDM5MzUyZGFkOTU5NTUzYmRjZGFlYWU1Li4zNDVkOWMwNWRl
M2ZjZDNjN2U3YjAxYTkwNTI4NDk5NzRhYWJkYTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFcnJvcnNFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkVycm9yc0VmbC5j
cHAKQEAgLTI2LDEwICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldl
YkVycm9ycy5oIgogCisjaW5jbHVkZSAiV2ViRXJyb3IuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Vy
cm9yc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
c3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Vycm9yLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC03MCw0ICs3Miw5IEBAIFJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhh
bmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICByZXR1
cm4gV2ViQ29yZTo6cGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihyZXNwb25zZSk7CiB9CiAKK1dl
YkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJuYWxFcnJvcihjb25zdCBXZWJDb3JlOjpLVVJMJiB1
cmwpCit7CisgICAgcmV0dXJuIFJlc291cmNlRXJyb3IoV2ViRXJyb3I6OndlYktpdEVycm9yRG9t
YWluKCksIGtXS0Vycm9ySW50ZXJuYWwsIHVybC5zdHJpbmcoKSwgQVNDSUlMaXRlcmFsKCJJbnRl
cm5hbCBlcnJvciIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2OWExZTFlNzc2MGY4NWE2YzA0MzlhYzE4
NWRhY2ZkNDQ3MjdjZWQyLi5hMWVlNmM2ZWViODAyZDIyZjFkMzA1NThhZDY1ZWMyMGM5ZTQ1MTNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTM0MiwxMSAr
MzQyLDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0
KCkpOwotICAgIGlmIChDb3JlSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNOdWxsKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgcmV0dXJuOworI2VsaWYgVVNFKFVOSVhfRE9NQUlO
X1NPQ0tFVFMpCisgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllciA9IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmlsZURlc2Ny
aXB0b3IoKTsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKKyAgICBp
ZiAoQ29yZUlQQzo6Q29ubmVjdGlvbjo6aWRlbnRpZmllcklzTnVsbChjb25uZWN0aW9uSWRlbnRp
ZmllcikpCisgICAgICAgIHJldHVybjsKICAgICBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiA9
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IH0KICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvdW5peC9OZXR3b3JrTWFpblVuaXguY3BwIGIvU291cmNlL1dlYktpdDIvdW5peC9O
ZXR3b3JrTWFpblVuaXguY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NDhiMzEzOGU4MmQyN2M1OGJmOWNhMDAx
MzZlZDJkNzc5YjhhYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi91bml4L05l
dHdvcmtNYWluVW5peC5jcHAKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBVbml2ZXJzaXR5IG9mIFN6ZWdlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCisjaW5jbHVkZSAiTmV0
d29ya1Byb2Nlc3NNYWluVW5peC5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
Cit7CisgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYWluKGFyZ2MsIGFyZ3YpOwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlIGIvU291
cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5kZXggOTM3ZjY3ZDk1ZWJmOTk4NTU2ZTFmNWZiMGU2
NjM1MTFhODNmNjA3OC4uMjllNTBkNDgwMjQxYWMwMWZjNzYyM2FmZTM5OTg2Y2E0ODY1ODQ1MyAx
MDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKKysrIGIvU291cmNlL2NtYWtl
Y29uZmlnLmguY21ha2UKQEAgLTg0LDYgKzg0LDcgQEAKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9O
T1NOSUZGCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSQogI2NtYWtl
ZGVmaW5lMDEgRU5BQkxFX05FVFdPUktfSU5GTworI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05FVFdP
UktfUFJPQ0VTUwogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05PVElGSUNBVElPTlMKICNjbWFrZWRl
ZmluZTAxIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9Q
QUdFX1BPUFVQCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMmE2YTcz
NmExZmEwZTczYWFiYmEyOTNhMzVjM2I2NzhhMjJjZDE0Yi4uMDAyYTAwZmVhYzM2Y2M1Yzc1MTU3
NWY1MWI0OGMzMTA4YzY5MjBjYiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTExICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNA
d2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXVtFRkxdIFNldCB1cCBOZXR3b3JrUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4ODMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2Vjb25maWcuaC5jbWFrZToKKyAgICAgICAgQWRkIHRoZSBFTkFCTEVfTkVUV09SS19QUk9D
RVNTIGZsYWcuCisKIDIwMTMtMDItMTAgIExhc3psbyBHb21ib3MgIDxsLmdvbWJvc0BzYW1zdW5n
LmNvbT4KIAogICAgICAgICBDb25zb2xpZGF0ZSB0aGUgd2F5IFdURl9VU0VfUFRIUkVBRFMgaXMg
ZW5hYmxlZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>