<?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>111578</bug_id>
          
          <creation_ts>2013-03-06 07:10:14 -0800</creation_ts>
          <short_desc>Web Inspector: split Console into two entities, a web-facing bound object and page console.</short_desc>
          <delta_ts>2013-03-19 09:42:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Sergey Ryazanov">serya</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mkwst+watchlist</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rego+ews</cc>
    
    <cc>rniwa</cc>
    
    <cc>serya</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848834</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-06 07:10:14 -0800</bug_when>
    <thetext>Otherwise, a lot of logging in WebCore needs to go through the DOMWindow which is unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848898</commentid>
    <comment_count>1</comment_count>
      <attachid>191760</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-06 08:52:34 -0800</bug_when>
    <thetext>Created attachment 191760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848911</commentid>
    <comment_count>2</comment_count>
      <attachid>191760</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-06 09:05:32 -0800</bug_when>
    <thetext>Comment on attachment 191760
Patch

Attachment 191760 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17045262</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848925</commentid>
    <comment_count>3</comment_count>
      <attachid>191760</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-06 09:16:37 -0800</bug_when>
    <thetext>Comment on attachment 191760
Patch

Attachment 191760 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17086053</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848930</commentid>
    <comment_count>4</comment_count>
      <attachid>191760</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-06 09:18:26 -0800</bug_when>
    <thetext>Comment on attachment 191760
Patch

Attachment 191760 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/16991311</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848941</commentid>
    <comment_count>5</comment_count>
      <attachid>191760</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-06 09:28:09 -0800</bug_when>
    <thetext>Comment on attachment 191760
Patch

Attachment 191760 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17082223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848985</commentid>
    <comment_count>6</comment_count>
      <attachid>191760</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 09:49:50 -0800</bug_when>
    <thetext>Comment on attachment 191760
Patch

Attachment 191760 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17073145

New failing tests:
fast/xsl/xslt-mismatched-tags-in-xslt.xml
fast/xsl/xslt-missing-namespace-in-xslt.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849031</commentid>
    <comment_count>7</comment_count>
      <attachid>191786</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-03-06 10:30:46 -0800</bug_when>
    <thetext>Created attachment 191786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849108</commentid>
    <comment_count>8</comment_count>
      <attachid>191786</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-06 11:15:38 -0800</bug_when>
    <thetext>Comment on attachment 191786
Patch

Attachment 191786 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16991356</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855328</commentid>
    <comment_count>9</comment_count>
      <attachid>193152</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-14 11:01:04 -0700</bug_when>
    <thetext>Created attachment 193152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855336</commentid>
    <comment_count>10</comment_count>
      <attachid>193152</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-14 11:11:52 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17189511</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855342</commentid>
    <comment_count>11</comment_count>
      <attachid>193152</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-14 11:19:48 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17129205</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855371</commentid>
    <comment_count>12</comment_count>
      <attachid>193152</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-14 11:44:14 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/17041605</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855408</commentid>
    <comment_count>13</comment_count>
      <attachid>193152</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-14 12:20:36 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16996290

New failing tests:
fast/xsl/xslt-mismatched-tags-in-xslt.xml
fast/xsl/xslt-missing-namespace-in-xslt.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855421</commentid>
    <comment_count>14</comment_count>
      <attachid>193152</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-14 12:29:26 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17126439</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855423</commentid>
    <comment_count>15</comment_count>
      <attachid>193152</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-14 12:32:26 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17186187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855433</commentid>
    <comment_count>16</comment_count>
      <attachid>193152</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-14 12:51:32 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/16997832</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855447</commentid>
    <comment_count>17</comment_count>
      <attachid>193152</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-14 13:18:55 -0700</bug_when>
    <thetext>Comment on attachment 193152
Patch

Attachment 193152 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17176167

New failing tests:
fast/xsl/xslt-mismatched-tags-in-xslt.xml
fast/xsl/xslt-missing-namespace-in-xslt.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855804</commentid>
    <comment_count>18</comment_count>
      <attachid>193259</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-15 01:40:10 -0700</bug_when>
    <thetext>Created attachment 193259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855808</commentid>
    <comment_count>19</comment_count>
      <attachid>193259</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-15 01:53:45 -0700</bug_when>
    <thetext>Comment on attachment 193259
Patch

Attachment 193259 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17215140</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855810</commentid>
    <comment_count>20</comment_count>
      <attachid>193259</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-15 01:56:44 -0700</bug_when>
    <thetext>Comment on attachment 193259
Patch

Attachment 193259 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17116304</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855813</commentid>
    <comment_count>21</comment_count>
      <attachid>193259</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-03-15 02:05:15 -0700</bug_when>
    <thetext>Comment on attachment 193259
Patch

Attachment 193259 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17210250</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855818</commentid>
    <comment_count>22</comment_count>
      <attachid>193259</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-15 02:19:26 -0700</bug_when>
    <thetext>Comment on attachment 193259
Patch

Attachment 193259 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/17055662</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855824</commentid>
    <comment_count>23</comment_count>
      <attachid>193261</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-15 02:26:34 -0700</bug_when>
    <thetext>Created attachment 193261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855861</commentid>
    <comment_count>24</comment_count>
      <attachid>193261</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 03:35:41 -0700</bug_when>
    <thetext>Comment on attachment 193261
Patch

Attachment 193261 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17060887

New failing tests:
fast/xsl/xslt-mismatched-tags-in-xslt.xml
fast/xsl/xslt-missing-namespace-in-xslt.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855871</commentid>
    <comment_count>25</comment_count>
      <attachid>193275</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-15 03:53:07 -0700</bug_when>
    <thetext>Created attachment 193275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855876</commentid>
    <comment_count>26</comment_count>
      <attachid>193275</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-15 04:05:16 -0700</bug_when>
    <thetext>Comment on attachment 193275
Patch

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

&gt; Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp:82
&gt; +            if (console)

Nit: I believe the accepted WebKit style here would be to inline the assignment. That is `if (PageConsole* console = m_globalObject-&gt;impl()-&gt;pageConsole())`.

&gt; Source/WebCore/dom/Document.cpp:4819
&gt; +    if (p)

Nit: Inline the assignment, and prefer complete words for variable names: &apos;page&apos; rather than &apos;p&apos;.

&gt; Source/WebCore/dom/Document.cpp:4831
&gt; +    if (p)

Nit: Same as above.

&gt; Source/WebCore/page/DOMWindow.h:236
&gt;          Console* console() const;

Do we still need access to the Console from DOMWindow, or will PageConsole fill the external requirements? It would be nice if external callers only had one option; otherwise they&apos;ll likely make the wrong choice. If possible, I&apos;d suggest removing DOMWindow::console, or making it private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855897</commentid>
    <comment_count>27</comment_count>
      <attachid>193275</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-15 04:42:52 -0700</bug_when>
    <thetext>Comment on attachment 193275
Patch

Attachment 193275 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17060918</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855899</commentid>
    <comment_count>28</comment_count>
      <attachid>193275</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 04:43:19 -0700</bug_when>
    <thetext>Comment on attachment 193275
Patch

Attachment 193275 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17145279

New failing tests:
fast/xsl/xslt-mismatched-tags-in-xslt.xml
fast/xsl/xslt-missing-namespace-in-xslt.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855907</commentid>
    <comment_count>29</comment_count>
      <attachid>193285</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-15 05:19:17 -0700</bug_when>
    <thetext>Created attachment 193285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855930</commentid>
    <comment_count>30</comment_count>
      <attachid>193285</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-15 06:10:02 -0700</bug_when>
    <thetext>Comment on attachment 193285
Patch

Attachment 193285 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17207241

New failing tests:
fast/xsl/xslt-mismatched-tags-in-xslt.xml
fast/xsl/xslt-missing-namespace-in-xslt.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855953</commentid>
    <comment_count>31</comment_count>
      <attachid>193285</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-15 06:41:12 -0700</bug_when>
    <thetext>Comment on attachment 193285
Patch

Attachment 193285 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17187261</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855976</commentid>
    <comment_count>32</comment_count>
      <attachid>193285</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-15 07:18:27 -0700</bug_when>
    <thetext>Comment on attachment 193285
Patch

Attachment 193285 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17165234</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856053</commentid>
    <comment_count>33</comment_count>
      <attachid>193285</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-15 09:50:56 -0700</bug_when>
    <thetext>Comment on attachment 193285
Patch

Attachment 193285 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17156719</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856550</commentid>
    <comment_count>34</comment_count>
      <attachid>193432</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-16 02:03:40 -0700</bug_when>
    <thetext>Created attachment 193432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856628</commentid>
    <comment_count>35</comment_count>
      <attachid>193448</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-16 15:30:49 -0700</bug_when>
    <thetext>Created attachment 193448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857065</commentid>
    <comment_count>36</comment_count>
      <attachid>193448</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-18 06:46:23 -0700</bug_when>
    <thetext>Comment on attachment 193448
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new tests (OOPS!).

Please remove this line, otherwise commit queue won&apos;t let you commit the patch.

&gt; Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp:-80
&gt; -            // FIXME: Pass actual line number and source URL.

Please keep FIXME here.

&gt; Source/WebCore/dom/Document.cpp:127
&gt; +#include &quot;PageConsole.h&quot;

Do we still need to include Console.h here?

&gt; Source/WebCore/dom/Document.cpp:4848
&gt; +    Page* p = page();

Page* page = ...

&gt; Source/WebCore/dom/Document.cpp:4861
&gt; +    if (p)

Ditto

&gt; Source/WebCore/page/Console.h:81
&gt;      static void mute();

Should be removed.

&gt; Source/WebCore/page/Console.h:82
&gt;      static void unmute();

Ditto

&gt; Source/WebCore/page/Console.h:-99
&gt; -    inline Page* page() const;

Why did you remove this?

&gt; Source/WebCore/xml/XSLStyleSheetLibxslt.cpp:27
&gt;  #include &quot;DOMWindow.h&quot;

Could be removed now.

&gt; Source/WebCore/xml/XSLTProcessorLibxslt.cpp:30
&gt;  #include &quot;DOMWindow.h&quot;

Could be removed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857976</commentid>
    <comment_count>37</comment_count>
      <attachid>193743</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-18 23:38:10 -0700</bug_when>
    <thetext>Created attachment 193743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857988</commentid>
    <comment_count>38</comment_count>
      <attachid>193743</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-18 23:53:32 -0700</bug_when>
    <thetext>Comment on attachment 193743
Patch

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

&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:13641
&gt;  \ No newline at end of file

I am not sure if newline is expected here. Please revert this change.

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

if (Page* page = page())
    page-&gt;console()-&gt;addMessage(source, level, message, requestIdentifier, this);

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

Ditto

&gt; Source/WebCore/xml/XSLStyleSheetLibxslt.cpp:27
&gt;  #include &quot;DOMWindow.h&quot;

I still think you don&apos;t need to include DOMWindow.h here.

&gt; Source/WebCore/xml/XSLTProcessorLibxslt.cpp:30
&gt;  #include &quot;DOMWindow.h&quot;

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857998</commentid>
    <comment_count>39</comment_count>
      <attachid>193750</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-19 00:19:01 -0700</bug_when>
    <thetext>Created attachment 193750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858167</commentid>
    <comment_count>40</comment_count>
      <attachid>193791</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-19 04:45:47 -0700</bug_when>
    <thetext>Created attachment 193791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858171</commentid>
    <comment_count>41</comment_count>
      <attachid>193743</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-19 04:50:12 -0700</bug_when>
    <thetext>Comment on attachment 193743
Patch

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

&gt;&gt; Source/WebCore/WebCore.vcxproj/WebCore.vcxproj:13641
&gt;&gt;  \ No newline at end of file
&gt; 
&gt; I am not sure if newline is expected here. Please revert this change.

done

&gt;&gt; Source/WebCore/dom/Document.cpp:4847
&gt;&gt; +    if (page())
&gt; 
&gt; if (Page* page = page())
&gt;     page-&gt;console()-&gt;addMessage(source, level, message, requestIdentifier, this);

It is not valid C++ code. &apos;page&apos; on the both sides of the expressions refer to the same variable. It is a pointer and the () operation is not applicable to it.

&gt;&gt; Source/WebCore/xml/XSLStyleSheetLibxslt.cpp:27
&gt;&gt;  #include &quot;DOMWindow.h&quot;
&gt; 
&gt; I still think you don&apos;t need to include DOMWindow.h here.

done

&gt;&gt; Source/WebCore/xml/XSLTProcessorLibxslt.cpp:30
&gt;&gt;  #include &quot;DOMWindow.h&quot;
&gt; 
&gt; Ditto

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858200</commentid>
    <comment_count>42</comment_count>
      <attachid>193804</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-19 05:56:25 -0700</bug_when>
    <thetext>Created attachment 193804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858302</commentid>
    <comment_count>43</comment_count>
      <attachid>193833</attachid>
    <who name="Sergey Ryazanov">serya</who>
    <bug_when>2013-03-19 08:13:14 -0700</bug_when>
    <thetext>Created attachment 193833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858326</commentid>
    <comment_count>44</comment_count>
      <attachid>193833</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 08:56:36 -0700</bug_when>
    <thetext>Comment on attachment 193833
Patch

Clearing flags on attachment: 193833

Committed r146208: &lt;http://trac.webkit.org/changeset/146208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858327</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-19 08:56:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858358</commentid>
    <comment_count>46</comment_count>
      <attachid>193743</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-19 09:42:15 -0700</bug_when>
    <thetext>Comment on attachment 193743
Patch

Clearing obsolete r?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191760</attachid>
            <date>2013-03-06 08:52:34 -0800</date>
            <delta_ts>2013-03-06 10:30:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130306204839.patch</filename>
            <type>text/plain</type>
            <size>42817</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNjODg3NmRjMThmNWVm
ZjExYmM4YWI2YzBmYzIxMDY3YjZiNmIzZC4uZDM3ZGJlODI5MDRhMDI2OWUwOGUxNzk2ZmRjZDU5
MzU0NTZiNzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEzLTAzLTA2ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNwbGl0IENvbnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3VuZCBv
YmplY3QgYW5kIHBhZ2UgY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMTU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE90aGVyd2lzZSwgYSBsb3Qgb2YgbG9nZ2luZyBpbiBXZWJDb3JlIG5l
ZWRzIHRvIGdvIHRocm91Z2ggdGhlIERPTVdpbmRvdyB3aGljaCBpcyB1bm5lY2Vzc2FyeS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3Bh
Y2VVUkkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9v
a3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6Om11dGVDb25z
b2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlUnVudGltZUFnZW50OjptdXRlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xlKToKKyAgICAgICAgKiBwYWdlL0NvbnNv
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxBZGRNZXNzYWdlKToKKyAgICAgICAg
KiBwYWdlL0NvbnNvbGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29uc29sZSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpwYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2spOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZSk6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93KToK
KyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OmNvbnNvbGUpOgorICAgICAgICAoUGFnZSk6CisgICAgICAgICogcGFnZS9Q
YWdlQ29uc29sZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OlBh
Z2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNv
bnNvbGU6On5QYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJp
bnRTb3VyY2VVUkxBbmRMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwcmlu
dE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZTo6YWRkTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6bXV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6dW5tdXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZUNvbnNvbGU6OnNldFNob3VsZFByaW50RXhjZXB0aW9ucyk6CisgICAgICAgICogcGFn
ZS9QYWdlQ29uc29sZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
aC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OmNy
ZWF0ZSk6CisgICAgICAgIChQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZTo6cGFnZSk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKToKKyAgICAgICAg
KFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAyMDEzLTAzLTA2ICBNYXJqYSBIw7ZsdHTDpCAg
PG1hcmphQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNDQ2MTcpOiBXcm9u
ZyB1c2FnZSBvZiBvdmVyd3JpdHRlbiB2YXJpYWJsZSBpbiB0b0RPTVdpbmRvdyAoVjhCaW5kaW5n
LmNwcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDI4ODJhZWEwZjBmMDYyOWM3MDI4ODU4Y2Zj
ZTllMjZiOTYyM2ZhNC4uMmQ4ZDBlZDRmM2NlZDRiMzBiMmM4NDZkOGZkZGQ5YWEzY2QzMmIzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3OTAsNiArMTc5MCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NF
bnRyeS5jcHAKICAgICBwYWdlL1BhZ2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAKICAg
ICBwYWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAK
ICAgICBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggZjg1OWYwYmVhY2QxNDM2ZDc2YjM5YTA1ZmQ0Njk1YTA4ZmQxYTFmYS4uN2RkOTVjYmZk
YTVkYTYxMDBmYTAyN2MzODRhMzBiNjc1YjdiNzY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC00MjExLDYgKzQyMTEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25z
b2xlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDQxYzBlYjc5NWRiNmZkMjg2M2NlNzRm
OWQ0ZGE0MmRjNWQwNWQxNzAuLmY2ZjVlOWRjMzQyMGY1Mjc4ODRkM2Y3YzE4YzRmZTUzZmYxNzg1
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQpAQCAtOTQwLDYgKzk0MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBh
Z2UvTmF2aWdhdG9yQmFzZS5jcHAgXAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwIFwK
ICAgICBwYWdlL1BhZ2UuY3BwIFwKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAgICAgcGFn
ZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAog
ICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGRm
NGYwZjU3NzQ1OGFjNWQ4YzJlNWYyODE2ZDlmZGQ1MzViOTZlYzkuLmQ3ZWE0YzFmZTQ0NjU2Mzdj
ODRkZDJhMDU3NjdiZDllYTA1Njg3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyMzYsNiArMjIz
Niw3IEBACiAgICAgICAgICAgICAncGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdl
LmNwcCcsCisgICAgICAgICAgICAncGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvUGFnZUdyb3VwLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODQ0
M2Y5ZTJiYTFlODY5NGNkOTRhODYyZDMyOGMwMTM3ZDE5YzYxYi4uNmQwZWVmZDkxNTRhNGRiNTI2
MzA1ZWM2YjQ3NTRjYjY3MzhiMGQ5MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NDcxLDYgKzI3NDcxLDE0IEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuY3Bw
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XFBhZ2VDb25zb2xlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBmN2M2OWU4
NDFmN2E1ZmJjNDY1NjYxMDBmYTMzZjA2OTIzMTBhZTUxLi42MWYxNzYyZmZjYjE5ZWQyZDhlZGFm
MTNiMjgxNzZlMzBiYTRlMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKQEAgLTI5NzYsNiArMjk3Niw3IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwYWdlXE5hdmlnYXRvckJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGFnZVxPcmlnaW5BY2Nlc3NFbnRyeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwYWdlXFBhZ2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGFnZVxQYWdlQ29uc29sZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdl
XFBhZ2VHcm91cC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VH
cm91cExvYWREZWZlcnJlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdl
XFBhZ2VTZXJpYWxpemVyLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA3ODM5YzBjNDg0NzRhZjk4
MjlkMzljN2IwMjVjNmY1MzFmYTc4YWE3Li41NjFlZWFlNTU4Y2ZhYTg2MzE4MjJiMDlmYzYxNGVm
ZGE5ZTg2NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NjgxLDYgKzY2ODEsOSBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2Vc
UGFnZUNvbnNvbGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhkOGZi
MGE0OTBhNGZiYzc0NjhiM2JmMzlhNzk2MzIxZjFlMDIyZTMuLmU0NjVlYTU2NTJiMzk2NmQwNTA1
ZjNiZWY1YTVlMzIzNTdmMTY1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk1MzMsNiArOTUzMyw4IEBACiAJCTdBNTQ4ODE2
MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUGF0Y2hTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0E1NjNFNTQxMkRFMzJCMDAwRjQ1MzZEIC8qIEluamVjdGVkU2NyaXB0
U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0
U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNTYzRjk1MTJERjVDOTEw
MEY0NTM2RCAvKiBJbmplY3RlZFNjcmlwdFNvdXJjZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgcGF0aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QTY1MkY5QTE2RTc5MjQzMDA1RkMyNTUgLyogUGFnZUNvbnNvbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNvbnNvbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTY1MkY5QjE2RTc5MjQzMDA1RkMyNTUg
LyogUGFnZUNvbnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNv
bnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2NzRCRDkwRjlFQkY0RTAw
NkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VHcm91cExv
YWREZWZlcnJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTcyNTZCOTE1RUI5
RjVCMDA3MzIzQTcgLyogSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IEluc3BlY3Rvck92ZXJsYXlQYWdlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05NTcwLDggKzk1NzIsOCBAQAogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAx
QTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5k
b3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdFQTMwRjYyMTZERkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
LmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0VBMzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBwYXRoID0gSlNXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0VB
MzBGNjgxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3RUEzMEY2NzE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdFQTMwRjY4MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDRDMTJE
MjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RUU2ODQ0RDEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25D
Ri5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNGLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDRFMTJEMjZFMzgwMEU3OTQxNSAv
KiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTY1MDQsNiArMTY1MDYsOCBAQAogCQkJCTAwMTQ2Mjg5MTAzQ0QxREUwMDBCMjBEQiAv
KiBPcmlnaW5BY2Nlc3NFbnRyeS5oICovLAogCQkJCTY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAv
KiBQYWdlLmNwcCAqLywKIAkJCQk2NUEyMTQ2NzA5N0EzMjkxMDBCOTA1MEEgLyogUGFnZS5oICov
LAorCQkJCTdBNjUyRjlBMTZFNzkyNDMwMDVGQzI1NSAvKiBQYWdlQ29uc29sZS5jcHAgKi8sCisJ
CQkJN0E2NTJGOUIxNkU3OTI0MzAwNUZDMjU1IC8qIFBhZ2VDb25zb2xlLmggKi8sCiAJCQkJOTMw
MkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi8sCiAJCQkJOTMwMkIwQkUw
RDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUw
MDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLApAQCAtMjY2ODQsNyArMjY2
ODgsNyBAQAogCQkJCUUxODcwNTYzMTZFNTRBMEQwMDU4NUU5NyAvKiBNYWluVGhyZWFkVGFzay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0U2NkUyMzQxNkQ2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFQTMwRjZBMTZERkZFNzUw
MDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovLAot
IAkJCQkyRDgyODdGNzE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkyRDgyODdGNzE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5ODg2LDcgKzI5ODkwLDcgQEAKIAkJCQlBMzFDNEU1MjE2
RTAyQjA4MDAyRjc5NTcgLyogSlNPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0QwQiAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8sCi0gCQkJCTJEODI4
N0Y2MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMkQ4Mjg3RjYxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBhOWIzNGE2NTZjOGZmZWExZTc5ZTFjZGU2Zjc2
ZjhmNjBkNDc5ODRiLi44NzA4OTM0YmI1NGJhOWY1ZjRjMjZlNWEyNGUxZWQxNmMxMmQzYmQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCkBAIC0yNiwxMiArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogCi0jaW5jbHVkZSAiQ29uc29sZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRl
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
UGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNMb2NrLmg+CiAKQEAgLTc3LDggKzc4LDkgQEAgU3RyaW5nIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpCiAgICAg
aWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewogICAgICAgICBjYWxsVHlwZSA9IG1fY3Vz
dG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIu
Z2V0KCksIGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkg
ewotICAgICAgICAgICAgLy8gRklYTUU6IFBhc3MgYWN0dWFsIGxpbmUgbnVtYmVyIGFuZCBzb3Vy
Y2UgVVJMLgotICAgICAgICAgICAgbV9nbG9iYWxPYmplY3QtPmltcGwoKS0+Y29uc29sZSgpLT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVz
b2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CisgICAg
ICAgICAgICBGcmFtZSogZnJhbWUgPSBhY3RpdmVET01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0
YW5jZSgpKS0+ZnJhbWUoKTsKKyAgICAgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgp
KQorICAgICAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmFkZE1lc3NhZ2UoSlNN
ZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5v
dCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKTsKICAgICAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKICAgICAgICAgfQogICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2
ZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBiOTU0ZmZlZDFlZDM2OGRk
ZWM3MmZiMTJmM2YyYjdkODgxYzk1YTE0Li5jYWUzNDg5YjVkMDBmODk2Yzg3MDA1NTY0OWZmNzU2
Y2Y5YWVhNjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTMwLDggKzMwLDEwIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5o
IgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC02OSw3ICs3MSw5
IEBAIFN0cmluZyBWOEN1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNv
bnN0IFN0cmluZyYgcHJlZml4KQogICAgIH0KIAogICAgIGlmIChsb29rdXBOYW1lc3BhY2VVUklG
dW5jLklzRW1wdHkoKSAmJiAhbV9yZXNvbHZlci0+SXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIGFj
dGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLT5jb25zb2xlKCktPmFkZE1l
c3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZl
ciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKTsKKyAgICAgICAg
RnJhbWUqIGZyYW1lID0gYWN0aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSkt
PmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAgICAg
ICAgZnJhbWUtPnBhZ2UoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1
cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDlhOGI3OGUxYTk4MTQ0ODgxZDY5ZjA5M2Zi
OTUwNTZmZjk0MzAzZjcuLjA0ZmJjYmIxYTRkMzc0NTdjZWI5MmE1MGU1OTcyYjFkMTU1MTlmNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTI0LDYgKzEyNCw3IEBACiAjaW5jbHVkZSAi
Tm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIk5vZGVXaXRoSW5kZXguaCIKICNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIK
ICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCkBAIC00NzcxLDEwICs0NzcyLDkgQEAgdm9pZCBEb2N1bWVudDo6YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9
IGRvbVdpbmRvdygpKSB7Ci0gICAgICAgIGlmIChDb25zb2xlKiBjb25zb2xlID0gd2luZG93LT5j
b25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWws
IG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlzKTsKLSAgICB9CisgICAgUGFnZSogcCA9
IHBhZ2UoKTsKKyAgICBpZiAocCkKKyAgICAgICAgcC0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlzKTsKIH0KIAogdm9p
ZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
LCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCkBA
IC00Nzg0LDEwICs0Nzg0LDkgQEAgdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7
Ci0gICAgICAgIGlmIChDb25zb2xlKiBjb25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAg
ICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJj
ZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwot
ICAgIH0KKyAgICBQYWdlKiBwID0gcGFnZSgpOworICAgIGlmIChwKQorICAgICAgICBwLT5jb25z
b2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5l
TnVtYmVyLCBjYWxsU3RhY2ssIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIGNvbnN0
IFNlY3VyaXR5T3JpZ2luKiBEb2N1bWVudDo6dG9wT3JpZ2luKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDE2MjIyZWU2NTFk
NzZhMDQ2OTU0YjdmYmFlNTFjOGJmZGIwMDI3ZjcuLjIwMGZiMmNmNzQ1NjBiNTVjNTdiOTRmMTE4
YTY0ZGNkZDZjMGZlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
RGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1
Z2dlckFnZW50LmNwcApAQCAtMzQsMTEgKzM0LDExIEBACiAKICNpbmNsdWRlICJQYWdlRGVidWdn
ZXJBZ2VudC5oIgogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvck92
ZXJsYXkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0
cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25z
b2xlLmgiCiAjaW5jbHVkZSAiUGFnZVNjcmlwdERlYnVnU2VydmVyLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTg4LDEyICs4OCwxMiBAQCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIFBhZ2VE
ZWJ1Z2dlckFnZW50OjpzY3JpcHREZWJ1Z1NlcnZlcigpCiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdl
bnQ6Om11dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjptdXRlKCk7CisgICAgUGFnZUNvbnNv
bGU6Om11dGUoKTsKIH0KIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSgp
CiB7Ci0gICAgQ29uc29sZTo6dW5tdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6OnVubXV0ZSgpOwog
fQogCiBJbmplY3RlZFNjcmlwdCBQYWdlRGVidWdnZXJBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JF
dmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0
SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5k
ZXggNzdiNDBmYTMxMmE3YTRmMzFjNjM3MzJmZDM3NjRlMDg5ZjgxNzI2ZS4uYTg0MzFiYTBmYTc4
Y2M4NDE1Yjg0NGMyMjNlMWIwMzRlYjJlOTY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAjaW5jbHVkZSAi
UGFnZVJ1bnRpbWVBZ2VudC5oIgogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIuaCIKQEAgLTQyLDYgKzQxLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JT
dGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogCiB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6RXhlY3V0aW9uQ29udGV4
dERlc2NyaXB0aW9uOwpAQCAtMTQ4LDEyICsxNDgsMTIgQEAgSW5qZWN0ZWRTY3JpcHQgUGFnZVJ1
bnRpbWVBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywKIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjptdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29s
ZTo6bXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRp
bWVBZ2VudDo6dW5tdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29sZTo6dW5tdXRlKCk7CisgICAg
UGFnZUNvbnNvbGU6OnVubXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9y
dEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCBm
Mzk4YzI1MmNkNWY2MTJjN2MzNzQ0ZWYwZjhmNjg1ZWJmN2Y5MmU0Li42NWMzNmZhMDQxY2U0NTBh
ZDk4ZWQwNWRhZDNjYTMxMDVhMDk4ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnNvbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTQx
LDYgKzQxLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
TWVtb3J5SW5mby5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgog
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNjEsMTAgKzYyLDYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1uYW1lc3BhY2UgewotICAgIGludCBtdXRlQ291bnQgPSAwOwotfQot
CiBDb25zb2xlOjpDb25zb2xlKEZyYW1lKiBmcmFtZSkKICAgICA6IERPTVdpbmRvd1Byb3BlcnR5
KGZyYW1lKQogewpAQCAtNzQsMTE0ICs3MSw2IEBAIENvbnNvbGU6On5Db25zb2xlKCkKIHsKIH0K
IAotc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQotewotICAgIGlmICghc291cmNlVVJMLmlzRW1wdHko
KSkgewotICAgICAgICBpZiAobGluZU51bWJlciA+IDApCi0gICAgICAgICAgICBwcmludGYoIiVz
OiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsK
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCi17Ci0gICAgY29uc3Qg
Y2hhciogc291cmNlU3RyaW5nOwotICAgIHN3aXRjaCAoc291cmNlKSB7Ci0gICAgY2FzZSBIVE1M
TWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkhUTUwiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFhNTE1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJYTUwiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEpTTWVzc2FnZVNvdXJjZToKLSAgICAg
ICAgc291cmNlU3RyaW5nID0gIkpTIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBOZXR3b3Jr
TWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIk5FVFdPUksiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIENvbnNvbGVBUElNZXNzYWdlU291cmNlOgotICAgICAgICBzb3Vy
Y2VTdHJpbmcgPSAiQ09OU09MRUFQSSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgT3RoZXJN
ZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIiOwotICAgICAgICBi
cmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgc291cmNlU3RyaW5nID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAg
ICBjb25zdCBjaGFyKiBsZXZlbFN0cmluZzsKLSAgICBzd2l0Y2ggKGxldmVsKSB7Ci0gICAgY2Fz
ZSBEZWJ1Z01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiREVCVUciOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIExvZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJp
bmcgPSAiTE9HIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXYXJuaW5nTWVzc2FnZUxldmVs
OgotICAgICAgICBsZXZlbFN0cmluZyA9ICJXQVJOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBFcnJvck1lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRVJST1IiOwotICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiVU5LTk9XTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LQotICAgIHByaW50ZigiJXMgJXM6Iiwgc291cmNlU3RyaW5nLCBsZXZlbFN0cmluZyk7Ci19Ci0K
LXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxl
dmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBTdHJpbmcgdXJsOwotICAgIGlm
IChkb2N1bWVudCkKLSAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOwotICAg
IHVuc2lnbmVkIGxpbmUgPSAwOwotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2lu
ZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKLSAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2Vy
KiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7Ci0gICAgICAg
IGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRp
bmdTY3JpcHQoKSkKLSAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVC
YXNlZEludCgpOwotICAgIH0KLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2Us
IHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOwotfQotCi12b2lkIENvbnNvbGU6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
KQotewotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAs
IGNhbGxTdGFjaywgMCk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIpCi17Ci0gICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0gQ29uc29s
ZUFQSU1lc3NhZ2VTb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFBhZ2UqIHBhZ2UgPSB0
aGlzLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
Y2FsbFN0YWNrKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VU
b0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGNh
bGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIGVsc2UKLSAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0YXRlLCByZXF1ZXN0
SWRlbnRpZmllcik7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkgfHwgbV9mcmFtZS0+
c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNl
LCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgdXJsKTsKLQotICAgIGlmICghbV9mcmFtZS0+
c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAh
c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHByaW50U291
cmNlVVJMQW5kTGluZSh1cmwsIGxpbmVOdW1iZXIpOwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFu
ZExldmVsUHJlZml4KHNvdXJjZSwgbGV2ZWwpOwotCi0gICAgcHJpbnRmKCIgJXNcbiIsIG1lc3Nh
Z2UudXRmOCgpLmRhdGEoKSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQ
YWdlKiBwYWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIFNjcmlwdFN0
YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHBycEFyZ3VtZW50cywgYm9v
bCBhY2NlcHROb0FyZ3VtZW50cyA9IGZhbHNlLCBib29sIHByaW50VHJhY2UgPSBmYWxzZSkKIHsK
ICAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMgPSBwcnBBcmd1bWVudHM7CkBA
IC0yMDYsMTEgKzk1LDExIEBAIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBw
YWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsCiAgICAgaWYgKGdvdE1l
c3NhZ2UpCiAgICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29u
c29sZShDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGxhc3RD
YWxsZXIubGluZU51bWJlcigpLCBsYXN0Q2FsbGVyLnNvdXJjZVVSTCgpKTsKIAotICAgIGlmICgh
cGFnZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQo
KSAmJiAhQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCisgICAgaWYgKCFwYWdlLT5z
ZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFQ
YWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHByaW50U291cmNlVVJMQW5kTGluZShsYXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2Fs
bGVyLmxpbmVOdW1iZXIoKSk7Ci0gICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgo
Q29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIGxldmVsKTsKKyAgICBQYWdlQ29uc29sZTo6cHJpbnRT
b3VyY2VVUkxBbmRMaW5lKGxhc3RDYWxsZXIuc291cmNlVVJMKCksIGxhc3RDYWxsZXIubGluZU51
bWJlcigpKTsKKyAgICBQYWdlQ29uc29sZTo6cHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVm
aXgoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIGxldmVsKTsKIAogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgYXJndW1lbnRzLT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICBTdHJp
bmcgYXJnQXNTdHJpbmcgPSBhcmd1bWVudHMtPmFyZ3VtZW50QXQoaSkudG9TdHJpbmcoYXJndW1l
bnRzLT5nbG9iYWxTdGF0ZSgpKTsKQEAgLTM3NiwxOSArMjY1LDYgQEAgdm9pZCBDb25zb2xlOjpn
cm91cEVuZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25z
b2xlKHBhZ2UoKSwgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIEVuZEdyb3VwTWVzc2FnZVR5cGUs
IExvZ01lc3NhZ2VMZXZlbCwgU3RyaW5nKCksIFN0cmluZygpLCAwKTsKIH0KIAotLy8gc3RhdGlj
Ci12b2lkIENvbnNvbGU6Om11dGUoKQotewotICAgIG11dGVDb3VudCsrOwotfQotCi0vLyBzdGF0
aWMKLXZvaWQgQ29uc29sZTo6dW5tdXRlKCkKLXsKLSAgICBBU1NFUlQobXV0ZUNvdW50ID4gMCk7
Ci0gICAgbXV0ZUNvdW50LS07Ci19Ci0KIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gQ29uc29sZTo6
bWVtb3J5KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogQmVjYXVzZSB3ZSBjcmVhdGUgYSBuZXcg
b2JqZWN0IGhlcmUgZWFjaCB0aW1lLApAQCAtMzk2LDE4ICsyNzIsNiBAQCBQYXNzUmVmUHRyPE1l
bW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiAgICAgcmV0dXJuIE1lbW9yeUluZm86
OmNyZWF0ZShtX2ZyYW1lKTsKIH0KIAotc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFs
c2U7Ci0KLWJvb2wgQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkKLXsKLSAgICByZXR1
cm4gcHJpbnRFeGNlcHRpb25zOwotfQotCi12b2lkIENvbnNvbGU6OnNldFNob3VsZFByaW50RXhj
ZXB0aW9ucyhib29sIHByaW50KQotewotICAgIHByaW50RXhjZXB0aW9ucyA9IHByaW50OwotfQot
CiBQYWdlKiBDb25zb2xlOjpwYWdlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29uc29sZS5oCmluZGV4IGE5YTVkMjc0NDU0NWQ4Yjg3ODkzYzc4NjI0ZDIxODM5ZWM1ZmM0
MmYuLmZjN2ZhN2Q5NGFhMTc1ZTYwY2E3NTYzZWIwNTJjMzk0MGEyYmExNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29uc29sZS5oCkBAIC0yOSwxMCArMjksNyBAQAogI2lmbmRlZiBDb25zb2xlX2gKICNkZWZpbmUg
Q29uc29sZV9oCiAKLSNpbmNsdWRlICJDb25zb2xlQVBJVHlwZXMuaCIKLSNpbmNsdWRlICJDb25z
b2xlVHlwZXMuaCIKICNpbmNsdWRlICJET01XaW5kb3dQcm9wZXJ0eS5oIgotI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGUuaCIKICNpbmNsdWRlICJT
Y3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtNDIsMTIgKzM5
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBG
cmFtZTsKIGNsYXNzIE1lbW9yeUluZm87CiBjbGFzcyBQYWdlOwogY2xhc3MgU2NyaXB0QXJndW1l
bnRzOwotY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVC
VUdHRVIpCiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8U2NyaXB0UHJvZmlsZT4gPiBQcm9maWxlc0Fy
cmF5OwpAQCAtNTgsMTAgKzUzLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENv
bnNvbGU+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb25zb2xl
KGZyYW1lKSk7IH0KICAgICB2aXJ0dWFsIH5Db25zb2xlKCk7CiAKLSAgICB2b2lkIGFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gPSAwLCBTY3JpcHRTdGF0ZSogPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyID0gMCk7Ci0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4pOwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9
IDAsIERvY3VtZW50KiA9IDApOwotCiAgICAgdm9pZCBkZWJ1ZyhTY3JpcHRTdGF0ZSosIFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAgdm9pZCBlcnJvcihTY3JpcHRTdGF0ZSosIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAgdm9pZCBpbmZvKFNjcmlwdFN0YXRlKiwg
UGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKQEAgLTk2LDcgKzg3LDcgQEAgcHVibGljOgog
ICAgIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gbWVtb3J5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0g
ICAgaW5saW5lIFBhZ2UqIHBhZ2UoKSBjb25zdDsKKyAgICBQYWdlKiBwYWdlKCkgY29uc3Q7CiAK
ICAgICBleHBsaWNpdCBDb25zb2xlKEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCBlOGUwMTFkZjM4NGFjMWQzODI0MzkwNmRlNmQ3MWUzZGJhOTZiN2ZkLi45Yzg4ZjZh
ODU5NTJlMDkzOWE3N2M4OWIwM2JmNDM5YzFiOGM2Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5j
bHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25z
b2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC02OTQsNiArNjk1LDEzIEBAIENv
bnNvbGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5n
ZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6cGFnZUNvbnNvbGUoKSBjb25zdAor
eworICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2ZyYW1lLT5wYWdlKCktPmNvbnNv
bGUoKSA6IDA7Cit9CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIERPTVdpbmRvdzo6YXBwbGljYXRp
b25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZl
bnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZwogICAgICAgICBp
ZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5h
YmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5n
KCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNpcGllbnQgaGFzIG9yaWdp
biAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSArICIuXG4iOwot
ICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2UpOworICAgICAgICAgICAgcGFnZUNvbnNv
bGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNz
YWdlLCBzdGFja1RyYWNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
QEAgLTE3OTksNyArMTgwNyw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3Ry
aW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBh
Y3RpdmVXaW5kb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA0Yjc2NDM4MDk0ZDE2MGZh
ZDYyZmRlMTNhYjQ4MTQ2ZjFkZGIxYjkxLi4wNzkwZWU4OThmZTQzZTBmOGMxNjc3OTI3OWZkYTNj
ZDJkOTZhYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwog
ICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9y
bWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRB
Y3Rpb247CkBAIC0yMzMsNiArMjM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQ
YXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShO
b2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNv
bGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAgICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkg
Y29uc3Q7CiAKICAgICAgICAgdm9pZCBwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsK
ICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWluQWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyog
YWN0aXZlV2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGVhYWRiMTg5MThiZGI3MWY1MTdl
ZWFmOTQ3NjEwYjIxMmEwYTY4NzQuLjczOWNkYjVjYWFlZjBjNGYwMmU3ZjZjZDcwMjBlY2NjYTJk
MTMxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5h
dmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAi
UGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgi
CkBAIC0xNzQsNiArMTc1LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAjZW5kaWYKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVy
bmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZh
bHNlKQorICAgICwgbV9jb25zb2xlKFBhZ2VDb25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAg
QVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBmYWY2ZDk2YzFkM2Q1
MDRlYzEyYmYzZDk5NmEzOWJhZWMxYjdkODBkLi42YTI5MTFjNjE5OWNhZjljYTJlODNmYTllMWZl
MjMxYjlkOWMzYjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNw
ZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5T
dGFydExpc3RlbmVyOwogY2xhc3MgTm9kZTsKK2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFn
ZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3Niw2
ICszNzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcm
IGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVzZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQ
YWdlQ29uc29sZSogY29uc29sZSgpIHsgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRl
OgpAQCAtNDk2LDYgKzQ5OCw3IEBAIHByaXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
KiBtX2FsdGVybmF0aXZlVGV4dENsaWVudDsKIAogICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1hdGlv
bnNTdXNwZW5kZWQ7CisgICAgT3duUHRyPFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7CiAKICAgICBI
YXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1Z2luczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVu
TWVkaWFFbmdpbmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
OWY4N2FiYjFkYzYxYzNjMmNkZjc4ZjgzMjc1ZjYzYjljMTE3ZTZkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKQEAgLTAsMCArMSwxOTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorCisjaW5jbHVk
ZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29s
ZUFQSVR5cGVzLmgiCisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJbnN0
cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKKyNpbmNs
dWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5o
IgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3
dGYvVW51c2VkUGFyYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNs
dWRlICJUcmFjZUV2ZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1l
c3BhY2UgeworICAgIGludCBtdXRlQ291bnQgPSAwOworfQorCitQYWdlQ29uc29sZTo6UGFnZUNv
bnNvbGUoUGFnZSogcGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+UGFn
ZUNvbnNvbGUoKSB7IH0KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5l
KGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoreworICAgIGlm
ICghc291cmNlVVJMLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobGluZU51bWJlciA+IDApCisg
ICAgICAgICAgICBwcmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGlu
ZU51bWJlcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJj
ZVVSTC51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50
TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwpCit7CisgICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOworICAgIHN3aXRj
aCAoc291cmNlKSB7CisgICAgY2FzZSBIVE1MTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNl
U3RyaW5nID0gIkhUTUwiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFhNTE1lc3NhZ2VTb3Vy
Y2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJYTUwiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEpTTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkpTIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNl
U3RyaW5nID0gIk5FVFdPUksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnNvbGVBUElN
ZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ09OU09MRUFQSSI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiT1RIRVIiOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlVOS05PV04iOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjb25zdCBjaGFyKiBsZXZlbFN0cmluZzsKKyAg
ICBzd2l0Y2ggKGxldmVsKSB7CisgICAgY2FzZSBEZWJ1Z01lc3NhZ2VMZXZlbDoKKyAgICAgICAg
bGV2ZWxTdHJpbmcgPSAiREVCVUciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvZ01lc3Nh
Z2VMZXZlbDoKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiTE9HIjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXYXJuaW5nTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJXQVJO
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFcnJvck1lc3NhZ2VMZXZlbDoKKyAgICAgICAg
bGV2ZWxTdHJpbmcgPSAiRVJST1IiOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiVU5LTk9X
TiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHByaW50ZigiJXMgJXM6Iiwgc291cmNl
U3RyaW5nLCBsZXZlbFN0cmluZyk7Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgU3RyaW5nIHVybDsKKyAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgIHVybCA9
IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKTsKKyAgICB1bnNpZ25lZCBsaW5lID0gMDsKKyAgICBp
ZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnBhcnNpbmcoKSAmJiAhZG9jdW1lbnQtPmlzSW5Eb2N1
bWVudFdyaXRlKCkgJiYgZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpKSB7Cisg
ICAgICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1lbnQtPnNjcmlw
dGFibGVEb2N1bWVudFBhcnNlcigpOworICAgICAgICBpZiAoIXBhcnNlci0+aXNXYWl0aW5nRm9y
U2NyaXB0cygpICYmICFwYXJzZXItPmlzRXhlY3V0aW5nU2NyaXB0KCkpCisgICAgICAgICAgICBs
aW5lID0gcGFyc2VyLT5saW5lTnVtYmVyKCkub25lQmFzZWRJbnQoKTsKKyAgICB9CisgICAgYWRk
TWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIDAsIDAsIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCit7CisgICAgYWRkTWVzc2FnZShz
b3VyY2UsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrLCAwKTsKK30KKwor
dm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNr
LCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCit7
CisgICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY2FsbFN0YWNrKQorICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVzdElk
ZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjph
ZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBt
ZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CisKKyAg
ICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgcGFnZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUoKS0+Y2xp
ZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51
bWJlciwgdXJsKTsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdl
c1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhc2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1cmwsIGxpbmVOdW1i
ZXIpOworICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNvdXJjZSwgbGV2ZWwp
OworCisgICAgcHJpbnRmKCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7Cit9CisKKy8v
IHN0YXRpYwordm9pZCBQYWdlQ29uc29sZTo6bXV0ZSgpCit7CisgICAgbXV0ZUNvdW50Kys7Cit9
CisKKy8vIHN0YXRpYwordm9pZCBQYWdlQ29uc29sZTo6dW5tdXRlKCkKK3sKKyAgICBBU1NFUlQo
bXV0ZUNvdW50ID4gMCk7CisgICAgbXV0ZUNvdW50LS07Cit9CisKK3N0YXRpYyBib29sIHByaW50
RXhjZXB0aW9ucyA9IGZhbHNlOworCitib29sIFBhZ2VDb25zb2xlOjpzaG91bGRQcmludEV4Y2Vw
dGlvbnMoKQoreworICAgIHJldHVybiBwcmludEV4Y2VwdGlvbnM7Cit9CisKK3ZvaWQgUGFnZUNv
bnNvbGU6OnNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sIHByaW50KQoreworICAgIHByaW50
RXhjZXB0aW9ucyA9IHByaW50OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhjMDg5MjQxMmZhMTVhZDUzYjliZjA1ZGIx
MTUyMGU5ZTlhZWM0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGUuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VDb25zb2xlX2gKKyNkZWZp
bmUgUGFnZUNvbnNvbGVfaAorCisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworCitjbGFzcyBQYWdlQ29u
c29sZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZUNvbnNvbGU+IGNyZWF0
ZShQYWdlKiBwYWdlKSB7IHJldHVybiBhZG9wdFB0cihuZXcgUGFnZUNvbnNvbGUocGFnZSkpOyB9
CisgICAgdmlydHVhbCB+UGFnZUNvbnNvbGUoKTsKKworICAgIHN0YXRpYyB2b2lkIHByaW50U291
cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
cik7CisgICAgc3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsKTsKKworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0
YWNrPiA9IDAsIFNjcmlwdFN0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZp
ZXIgPSAwKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Cisg
ICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCwgRG9jdW1l
bnQqID0gMCk7CisKKyAgICBzdGF0aWMgdm9pZCBtdXRlKCk7CisgICAgc3RhdGljIHZvaWQgdW5t
dXRlKCk7CisKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICBz
dGF0aWMgdm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCk7CisKK3ByaXZhdGU6Cisg
ICAgUGFnZUNvbnNvbGUoUGFnZSopOworCisgICAgUGFnZSogcGFnZSgpIHsgcmV0dXJuIG1fcGFn
ZTsgfTsKKworICAgIFBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFBhZ2VDb25zb2xlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nl
c3NvckxpYnhzbHQuY3BwCmluZGV4IDUwMzgwMmM3ZmU3YjU2ZjVmNzJkMTc4M2FiN2JjMzBjYjY1
ODFhZGUuLjllNmVhOThlMzg5Y2ZhN2U5Mjc1MTRjNjQ0YjEyMmUzYWI1YzdiY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcApAQCAtMjcsMTAgKzI3LDEx
IEBACiAjaW5jbHVkZSAiWFNMVFByb2Nlc3Nvci5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3Iu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgpAQCAtODIsNyArODMsNyBAQCB2b2lkIFhTTFRQcm9jZXNzb3I6OmdlbmVyaWNFcnJvckZ1
bmModm9pZCosIGNvbnN0IGNoYXIqLCAuLi4pCiAKIHZvaWQgWFNMVFByb2Nlc3Nvcjo6cGFyc2VF
cnJvckZ1bmModm9pZCogdXNlckRhdGEsIHhtbEVycm9yKiBlcnJvcikKIHsKLSAgICBDb25zb2xl
KiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8Q29uc29sZSo+KHVzZXJEYXRhKTsKKyAgICBQYWdlQ29u
c29sZSogY29uc29sZSA9IHN0YXRpY19jYXN0PFBhZ2VDb25zb2xlKj4odXNlckRhdGEpOwogICAg
IGlmICghY29uc29sZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzcsOSArMTM4LDEwIEBAIHN0
YXRpYyB4bWxEb2NQdHIgZG9jTG9hZGVyRnVuYyhjb25zdCB4bWxDaGFyKiB1cmksCiAgICAgICAg
ICAgICBnbG9iYWxDYWNoZWRSZXNvdXJjZUxvYWRlci0+cHJpbnRBY2Nlc3NEZW5pZWRNZXNzYWdl
KHVybCk7CiAgICAgICAgIH0KIAotICAgICAgICBDb25zb2xlKiBjb25zb2xlID0gMDsKLSAgICAg
ICAgaWYgKGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50KCkt
PmZyYW1lKCkpCi0gICAgICAgICAgICBjb25zb2xlID0gZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHls
ZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKTsKKyAgICAg
ICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSAwOworICAgICAgICBGcmFtZSogZnJhbWUgPSBnbG9i
YWxQcm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5mcmFtZSgpOwor
ICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIGNvbnNvbGUg
PSBmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCk7CiAgICAgICAgIHhtbFNldFN0cnVjdHVyZWRFcnJv
ckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nvcjo6cGFyc2VFcnJvckZ1bmMpOwogICAgICAgICB4
bWxTZXRHZW5lcmljRXJyb3JGdW5jKGNvbnNvbGUsIFhTTFRQcm9jZXNzb3I6OmdlbmVyaWNFcnJv
ckZ1bmMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191786</attachid>
            <date>2013-03-06 10:30:46 -0800</date>
            <delta_ts>2013-03-14 11:00:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130306222650.patch</filename>
            <type>text/plain</type>
            <size>43991</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGNjODg3NmRjMThmNWVm
ZjExYmM4YWI2YzBmYzIxMDY3YjZiNmIzZC4uZDM3ZGJlODI5MDRhMDI2OWUwOGUxNzk2ZmRjZDU5
MzU0NTZiNzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEzLTAzLTA2ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNwbGl0IENvbnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3VuZCBv
YmplY3QgYW5kIHBhZ2UgY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMTU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE90aGVyd2lzZSwgYSBsb3Qgb2YgbG9nZ2luZyBpbiBXZWJDb3JlIG5l
ZWRzIHRvIGdvIHRocm91Z2ggdGhlIERPTVdpbmRvdyB3aGljaCBpcyB1bm5lY2Vzc2FyeS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3Bh
Y2VVUkkpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEN1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9v
a3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjphZGRNZXNzYWdlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZURlYnVnZ2VyQWdlbnQ6Om11dGVDb25z
b2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQYWdlUnVudGltZUFnZW50OjptdXRlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xlKToKKyAgICAgICAgKiBwYWdlL0NvbnNv
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW50ZXJuYWxBZGRNZXNzYWdlKToKKyAgICAgICAg
KiBwYWdlL0NvbnNvbGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29uc29sZSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpwYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2spOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZSk6CisgICAgICAgICogcGFn
ZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9NV2luZG93KToK
KyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2U6OmNvbnNvbGUpOgorICAgICAgICAoUGFnZSk6CisgICAgICAgICogcGFnZS9Q
YWdlQ29uc29sZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OlBh
Z2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNv
bnNvbGU6On5QYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJp
bnRTb3VyY2VVUkxBbmRMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwcmlu
dE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZTo6YWRkTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6bXV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6dW5tdXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZUNvbnNvbGU6OnNldFNob3VsZFByaW50RXhjZXB0aW9ucyk6CisgICAgICAgICogcGFn
ZS9QYWdlQ29uc29sZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
aC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OmNy
ZWF0ZSk6CisgICAgICAgIChQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29u
c29sZTo6cGFnZSk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKToKKyAgICAgICAg
KFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAyMDEzLTAzLTA2ICBNYXJqYSBIw7ZsdHTDpCAg
PG1hcmphQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxNDQ2MTcpOiBXcm9u
ZyB1c2FnZSBvZiBvdmVyd3JpdHRlbiB2YXJpYWJsZSBpbiB0b0RPTVdpbmRvdyAoVjhCaW5kaW5n
LmNwcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDI4ODJhZWEwZjBmMDYyOWM3MDI4ODU4Y2Zj
ZTllMjZiOTYyM2ZhNC4uMmQ4ZDBlZDRmM2NlZDRiMzBiMmM4NDZkOGZkZGQ5YWEzY2QzMmIzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3OTAsNiArMTc5MCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NF
bnRyeS5jcHAKICAgICBwYWdlL1BhZ2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAKICAg
ICBwYWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAK
ICAgICBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggZjg1OWYwYmVhY2QxNDM2ZDc2YjM5YTA1ZmQ0Njk1YTA4ZmQxYTFmYS4uN2RkOTVjYmZk
YTVkYTYxMDBmYTAyN2MzODRhMzBiNjc1YjdiNzY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC00MjExLDYgKzQyMTEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25z
b2xlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDQxYzBlYjc5NWRiNmZkMjg2M2NlNzRm
OWQ0ZGE0MmRjNWQwNWQxNzAuLmY2ZjVlOWRjMzQyMGY1Mjc4ODRkM2Y3YzE4YzRmZTUzZmYxNzg1
MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQpAQCAtOTQwLDYgKzk0MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBh
Z2UvTmF2aWdhdG9yQmFzZS5jcHAgXAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwIFwK
ICAgICBwYWdlL1BhZ2UuY3BwIFwKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAgICAgcGFn
ZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAog
ICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGRm
NGYwZjU3NzQ1OGFjNWQ4YzJlNWYyODE2ZDlmZGQ1MzViOTZlYzkuLmQ3ZWE0YzFmZTQ0NjU2Mzdj
ODRkZDJhMDU3NjdiZDllYTA1Njg3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyMzYsNiArMjIz
Niw3IEBACiAgICAgICAgICAgICAncGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdl
LmNwcCcsCisgICAgICAgICAgICAncGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvUGFnZUdyb3VwLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODQ0
M2Y5ZTJiYTFlODY5NGNkOTRhODYyZDMyOGMwMTM3ZDE5YzYxYi4uNmQwZWVmZDkxNTRhNGRiNTI2
MzA1ZWM2YjQ3NTRjYjY3MzhiMGQ5MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NDcxLDYgKzI3NDcxLDE0IEBACiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuY3Bw
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdl
XFBhZ2VDb25zb2xlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBmN2M2OWU4
NDFmN2E1ZmJjNDY1NjYxMDBmYTMzZjA2OTIzMTBhZTUxLi42MWYxNzYyZmZjYjE5ZWQyZDhlZGFm
MTNiMjgxNzZlMzBiYTRlMmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2oKQEAgLTI5NzYsNiArMjk3Niw3IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwYWdlXE5hdmlnYXRvckJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGFnZVxPcmlnaW5BY2Nlc3NFbnRyeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwYWdlXFBhZ2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGFnZVxQYWdlQ29uc29sZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdl
XFBhZ2VHcm91cC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VH
cm91cExvYWREZWZlcnJlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdl
XFBhZ2VTZXJpYWxpemVyLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA3ODM5YzBjNDg0NzRhZjk4
MjlkMzljN2IwMjVjNmY1MzFmYTc4YWE3Li41NjFlZWFlNTU4Y2ZhYTg2MzE4MjJiMDlmYzYxNGVm
ZGE5ZTg2NjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02NjgxLDYgKzY2ODEsOSBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2Vc
UGFnZUNvbnNvbGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgorICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhkOGZi
MGE0OTBhNGZiYzc0NjhiM2JmMzlhNzk2MzIxZjFlMDIyZTMuLmU0NjVlYTU2NTJiMzk2NmQwNTA1
ZjNiZWY1YTVlMzIzNTdmMTY1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTk1MzMsNiArOTUzMyw4IEBACiAJCTdBNTQ4ODE2
MTRFNDMyQTEwMDZBRTA1QSAvKiBET01QYXRjaFN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUGF0Y2hTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0E1NjNFNTQxMkRFMzJCMDAwRjQ1MzZEIC8qIEluamVjdGVkU2NyaXB0
U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkU2NyaXB0
U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBNTYzRjk1MTJERjVDOTEw
MEY0NTM2RCAvKiBJbmplY3RlZFNjcmlwdFNvdXJjZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
amF2YXNjcmlwdDsgcGF0aCA9IEluamVjdGVkU2NyaXB0U291cmNlLmpzOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QTY1MkY5QTE2RTc5MjQzMDA1RkMyNTUgLyogUGFnZUNvbnNvbGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNvbnNvbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QTY1MkY5QjE2RTc5MjQzMDA1RkMyNTUg
LyogUGFnZUNvbnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNv
bnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0E2NzRCRDkwRjlFQkY0RTAw
NkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk3QTY3NEJEQTBGOUVCRjRFMDA2Q0YwOTkgLyogUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VHcm91cExv
YWREZWZlcnJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QTcyNTZCOTE1RUI5
RjVCMDA3MzIzQTcgLyogSW5zcGVjdG9yT3ZlcmxheVBhZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9IEluc3BlY3Rvck92ZXJsYXlQYWdlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05NTcwLDggKzk1NzIsOCBAQAogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAx
QTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5k
b3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdFQTMwRjYyMTZERkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
LmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0VBMzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBwYXRoID0gSlNXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0VB
MzBGNjgxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEMuaDsgcGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3RUEzMEY2NzE2REZGRTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdFQTMwRjY4MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDRDMTJE
MjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3RUU2ODQ0RDEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25D
Ri5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNGLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDRFMTJEMjZFMzgwMEU3OTQxNSAv
KiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTY1MDQsNiArMTY1MDYsOCBAQAogCQkJCTAwMTQ2Mjg5MTAzQ0QxREUwMDBCMjBEQiAv
KiBPcmlnaW5BY2Nlc3NFbnRyeS5oICovLAogCQkJCTY1RkVBODY4MDk4MzNBREUwMEJFRDRBQiAv
KiBQYWdlLmNwcCAqLywKIAkJCQk2NUEyMTQ2NzA5N0EzMjkxMDBCOTA1MEEgLyogUGFnZS5oICov
LAorCQkJCTdBNjUyRjlBMTZFNzkyNDMwMDVGQzI1NSAvKiBQYWdlQ29uc29sZS5jcHAgKi8sCisJ
CQkJN0E2NTJGOUIxNkU3OTI0MzAwNUZDMjU1IC8qIFBhZ2VDb25zb2xlLmggKi8sCiAJCQkJOTMw
MkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi8sCiAJCQkJOTMwMkIwQkUw
RDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUw
MDZDRjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLApAQCAtMjY2ODQsNyArMjY2
ODgsNyBAQAogCQkJCUUxODcwNTYzMTZFNTRBMEQwMDU4NUU5NyAvKiBNYWluVGhyZWFkVGFzay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0U2NkUyMzQxNkQ2RUI2QzAwRjdFN0ZGIC8qIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFQTMwRjZBMTZERkZFNzUw
MDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovLAot
IAkJCQkyRDgyODdGNzE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkyRDgyODdGNzE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5ODg2LDcgKzI5ODkwLDcgQEAKIAkJCQlBMzFDNEU1MjE2
RTAyQjA4MDAyRjc5NTcgLyogSlNPRVNUZXh0dXJlSGFsZkZsb2F0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0QwQiAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8sCi0gCQkJCTJEODI4
N0Y2MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMkQ4Mjg3RjYxNkU0QTAzODAwODZCRDAwIC8qIEhpdFRlc3RMb2NhdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBhOWIzNGE2NTZjOGZmZWExZTc5ZTFjZGU2Zjc2
ZjhmNjBkNDc5ODRiLi43NWRhNjhjNWQwMDYxYjU3ZDRkNWNhYzA3MTJhN2E5YTdmOGUwMjczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCkBAIC0yNiwxMiArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogCi0jaW5jbHVkZSAiQ29uc29sZS5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRl
ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
UGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNMb2NrLmg+CiAKQEAgLTc3LDggKzc4LDkgQEAgU3RyaW5nIEpTQ3VzdG9tWFBhdGhO
U1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpCiAgICAg
aWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewogICAgICAgICBjYWxsVHlwZSA9IG1fY3Vz
dG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdldENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIu
Z2V0KCksIGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkg
ewotICAgICAgICAgICAgLy8gRklYTUU6IFBhc3MgYWN0dWFsIGxpbmUgbnVtYmVyIGFuZCBzb3Vy
Y2UgVVJMLgotICAgICAgICAgICAgbV9nbG9iYWxPYmplY3QtPmltcGwoKS0+Y29uc29sZSgpLT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVz
b2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CisgICAg
ICAgICAgICBGcmFtZSogZnJhbWUgPSBtX2dsb2JhbE9iamVjdC0+aW1wbCgpLT5mcmFtZSgpOwor
ICAgICAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAg
ZnJhbWUtPnBhZ2UoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5h
bWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAg
ICAgIH0KICAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYjk1NGZmZWQxZWQzNjhkZGVjNzJmYjEyZjNmMmI3ZDg4
MWM5NWExNC4uY2FlMzQ4OWI1ZDAwZjg5NmM4NzAwNTU2NDlmZjc1NmNmOWFlYTY0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRlICJD
b25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTY3Jp
cHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNjksNyArNzEsOSBAQCBTdHJpbmcgVjhDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZp
eCkKICAgICB9CiAKICAgICBpZiAobG9va3VwTmFtZXNwYWNlVVJJRnVuYy5Jc0VtcHR5KCkgJiYg
IW1fcmVzb2x2ZXItPklzRnVuY3Rpb24oKSkgewotICAgICAgICBhY3RpdmVET01XaW5kb3coQmlu
ZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNv
dXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBh
IGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGFj
dGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLT5mcmFtZSgpOworICAgICAg
ICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCkt
PmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVs
LCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0
aG9kLiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCA5YThiNzhlMWE5ODE0NDg4MWQ2OWYwOTNmYjk1MDU2ZmY5NDMwM2Y3Li4w
NGZiY2JiMWE0ZDM3NDU3Y2ViOTJhNTBlNTk3MmIxZDE1NTE5Zjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTEyNCw2ICsxMjQsNyBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIK
ICNpbmNsdWRlICJOb2RlV2l0aEluZGV4LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRy
YW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgpAQCAt
NDc3MSwxMCArNDc3Miw5IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkgewot
ICAgICAgICBpZiAoQ29uc29sZSogY29uc29sZSA9IHdpbmRvdy0+Y29uc29sZSgpKQotICAgICAg
ICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCByZXF1ZXN0
SWRlbnRpZmllciwgdGhpcyk7Ci0gICAgfQorICAgIFBhZ2UqIHAgPSBwYWdlKCk7CisgICAgaWYg
KHApCisgICAgICAgIHAtPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNz
YWdlLCByZXF1ZXN0SWRlbnRpZmllciwgdGhpcyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
ciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQpAQCAtNDc4NCwxMCArNDc4NCw5
IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkgewotICAgICAgICBpZiAoQ29u
c29sZSogY29uc29sZSA9IHdpbmRvdy0+Y29uc29sZSgpKQotICAgICAgICAgICAgY29uc29sZS0+
YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIs
IGNhbGxTdGFjaywgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICB9CisgICAgUGFnZSog
cCA9IHBhZ2UoKTsKKyAgICBpZiAocCkKKyAgICAgICAgcC0+Y29uc29sZSgpLT5hZGRNZXNzYWdl
KHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNr
LCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBjb25zdCBTZWN1cml0eU9yaWdpbiog
RG9jdW1lbnQ6OnRvcE9yaWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxNjIyMmVlNjUxZDc2YTA0Njk1NGI3ZmJhZTUx
YzhiZmRiMDAyN2Y3Li4yMDBmYjJjZjc0NTYwYjU1YzU3Yjk0ZjExOGE2NGRjZGQ2YzBmZTc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAg
LTM0LDExICszNCwxMSBAQAogCiAjaW5jbHVkZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIKIAotI2lu
Y2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUg
IlBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04OCwx
MiArODgsMTIgQEAgUGFnZVNjcmlwdERlYnVnU2VydmVyJiBQYWdlRGVidWdnZXJBZ2VudDo6c2Ny
aXB0RGVidWdTZXJ2ZXIoKQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSgp
CiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7CiB9CiAK
IHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6
OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogSW5qZWN0ZWRTY3Jp
cHQgUGFnZURlYnVnZ2VyQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDc3YjQwZmEzMTJhN2E0
ZjMxYzYzNzMyZmQzNzY0ZTA4OWY4MTcyNmUuLmE4NDMxYmEwZmE3OGNjODQxNWI4NDRjMjIzZTFi
MDM0ZWIyZTk2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVu
dGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVB
Z2VudC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlBhZ2VSdW50aW1lQWdlbnQu
aCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgi
CkBAIC00Miw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRl
ICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBh
Z2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogdXNpbmcgV2ViQ29y
ZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlvbjsKQEAg
LTE0OCwxMiArMTQ4LDEyIEBAIEluamVjdGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6OmluamVj
dGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsCiAKIHZvaWQgUGFnZVJ1
bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6Om11dGUoKTsKKyAgICBQ
YWdlQ29uc29sZTo6bXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0ZUNv
bnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11
dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0
Q3JlYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5kZXggZjM5OGMyNTJjZDVmNjEyYzdj
Mzc0NGVmMGY4ZjY4NWViZjdmOTJlNC4uNjVjMzZmYTA0MWNlNDUwYWQ5OGVkMDVkYWQzY2EzMTA1
YTA5ODgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lbW9yeUluZm8uaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdl
R3JvdXAuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRD
YWxsU3RhY2suaCIKQEAgLTYxLDEwICs2Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
bmFtZXNwYWNlIHsKLSAgICBpbnQgbXV0ZUNvdW50ID0gMDsKLX0KLQogQ29uc29sZTo6Q29uc29s
ZShGcmFtZSogZnJhbWUpCiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsKQEAgLTc0
LDExNCArNzEsNiBAQCBDb25zb2xlOjp+Q29uc29sZSgpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIHBy
aW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlcikKLXsKLSAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYg
KGxpbmVOdW1iZXIgPiAwKQotICAgICAgICAgICAgcHJpbnRmKCIlczolZDogIiwgc291cmNlVVJM
LnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBw
cmludGYoIiVzOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotfQotCi1zdGF0
aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZUxldmVsIGxldmVsKQotewotICAgIGNvbnN0IGNoYXIqIHNvdXJjZVN0cmlu
ZzsKLSAgICBzd2l0Y2ggKHNvdXJjZSkgewotICAgIGNhc2UgSFRNTE1lc3NhZ2VTb3VyY2U6Ci0g
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJIVE1MIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBY
TUxNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJKUyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6Ci0g
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNP
TEVBUEkiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZToKLSAg
ICAgICAgc291cmNlU3RyaW5nID0gIk9USEVSIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJVTktOT1dOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgY29uc3QgY2hhciogbGV2
ZWxTdHJpbmc7Ci0gICAgc3dpdGNoIChsZXZlbCkgewotICAgIGNhc2UgRGVidWdNZXNzYWdlTGV2
ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkRFQlVHIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBMb2dNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkxPRyI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgV2FybmluZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiV0FSTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXJyb3JNZXNzYWdlTGV2
ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkVSUk9SIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGxldmVsU3Ry
aW5nID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBwcmludGYoIiVz
ICVzOiIsIHNvdXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOwotfQotCi12b2lkIENvbnNvbGU6OmFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBEb2N1bWVu
dCogZG9jdW1lbnQpCi17Ci0gICAgU3RyaW5nIHVybDsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAg
ICAgIHVybCA9IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKTsKLSAgICB1bnNpZ25lZCBsaW5lID0g
MDsKLSAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnBhcnNpbmcoKSAmJiAhZG9jdW1lbnQt
PmlzSW5Eb2N1bWVudFdyaXRlKCkgJiYgZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNl
cigpKSB7Ci0gICAgICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1l
bnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpOwotICAgICAgICBpZiAoIXBhcnNlci0+aXNX
YWl0aW5nRm9yU2NyaXB0cygpICYmICFwYXJzZXItPmlzRXhlY3V0aW5nU2NyaXB0KCkpCi0gICAg
ICAgICAgICBsaW5lID0gcGFyc2VyLT5saW5lTnVtYmVyKCkub25lQmFzZWRJbnQoKTsKLSAgICB9
Ci0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIDAsIDAs
IHJlcXVlc3RJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKLXsKLSAgICBhZGRNZXNz
YWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOwot
fQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwg
dW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aywgU2NyaXB0U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQot
ewotICAgIGlmIChtdXRlQ291bnQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAg
IGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGNhbGxTdGFjaykKLSAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKLSAgICBlbHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwg
bWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwotCi0g
ICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpIHx8IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHVybCk7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCktPmxvZ3NQ
YWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIXNob3VsZFByaW50RXhjZXB0
aW9ucygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUodXJs
LCBsaW5lTnVtYmVyKTsKLSAgICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChzb3Vy
Y2UsIGxldmVsKTsKLQotICAgIHByaW50ZigiICVzXG4iLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkp
OwotfQotCiBzdGF0aWMgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBTY3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBwcnBBcmd1bWVudHMsIGJvb2wgYWNjZXB0Tm9Bcmd1bWVu
dHMgPSBmYWxzZSwgYm9vbCBwcmludFRyYWNlID0gZmFsc2UpCiB7CiAgICAgUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4gYXJndW1lbnRzID0gcHJwQXJndW1lbnRzOwpAQCAtMjA2LDExICs5NSwxMSBA
QCBzdGF0aWMgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLAogICAgIGlmIChnb3RNZXNzYWdlKQogICAgICAgICBw
YWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1l
c3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIo
KSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKSk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkt
PmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIUNvbnNvbGU6OnNo
b3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1Bh
Z2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhUGFnZUNvbnNvbGU6OnNob3Vs
ZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVS
TEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkp
OwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCBsZXZlbCk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShs
YXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSk7CisgICAgUGFn
ZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNz
YWdlU291cmNlLCBsZXZlbCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50
cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0g
YXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvU3RyaW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUo
KSk7CkBAIC0zNzYsMTkgKzI2NSw2IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNv
bGVBUElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWws
IFN0cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAKLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjpt
dXRlKCkKLXsKLSAgICBtdXRlQ291bnQrKzsKLX0KLQotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6
OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+IDApOwotICAgIG11dGVDb3VudC0t
OwotfQotCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgY3JlYXRlIGEgbmV3IG9iamVjdCBoZXJlIGVhY2gg
dGltZSwKQEAgLTM5NiwxOCArMjcyLDYgQEAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xl
OjptZW1vcnkoKSBjb25zdAogICAgIHJldHVybiBNZW1vcnlJbmZvOjpjcmVhdGUobV9mcmFtZSk7
CiB9CiAKLXN0YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9IGZhbHNlOwotCi1ib29sIENvbnNv
bGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCi17Ci0gICAgcmV0dXJuIHByaW50RXhjZXB0aW9u
czsKLX0KLQotdm9pZCBDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmlu
dCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsKLX0KLQogUGFnZSogQ29uc29sZTo6
cGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRl
eCBhOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVjNWZjNDJmLi5mYzdmYTdkOTRhYTE3
NWU2MGNhNzU2M2ViMDUyYzM5NDBhMmJhMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtMjks
MTAgKzI5LDcgQEAKICNpZm5kZWYgQ29uc29sZV9oCiAjZGVmaW5lIENvbnNvbGVfaAogCi0jaW5j
bHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCi0jaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQyLDEyICszOSwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBNZW1v
cnlJbmZvOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEFyZ3VtZW50czsKLWNsYXNzIFNjcmlw
dENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+ID4gUHJvZmlsZXNBcnJheTsKQEAgLTU4LDEwICs1
Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJh
bWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAg
dmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0g
MCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAp
OwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lk
IGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAw
KTsKLQogICAgIHZvaWQgZGVidWcoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4pOwogICAgIHZvaWQgZXJyb3IoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwogICAgIHZvaWQgaW5mbyhTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPik7CkBAIC05Niw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPE1l
bW9yeUluZm8+IG1lbW9yeSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGlubGluZSBQYWdlKiBw
YWdlKCkgY29uc3Q7CisgICAgUGFnZSogcGFnZSgpIGNvbnN0OwogCiAgICAgZXhwbGljaXQgQ29u
c29sZShGcmFtZSopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZThlMDExZGYz
ODRhYzFkMzgyNDM5MDZkZTZkNzFlM2RiYTk2YjdmZC4uOWM4OGY2YTg1OTUyZTA5MzlhNzdjODli
MDNiZjQzOWMxYjhjNjc5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzUsNiAr
NzUsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUg
IlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRl
ICJQZXJmb3JtYW5jZS5oIgpAQCAtNjk0LDYgKzY5NSwxMyBAQCBDb25zb2xlKiBET01XaW5kb3c6
OmNvbnNvbGUoKSBjb25zdAogICAgIHJldHVybiBtX2NvbnNvbGUuZ2V0KCk7CiB9CiAKK1BhZ2VD
b25zb2xlKiBET01XaW5kb3c6OnBhZ2VDb25zb2xlKCkgY29uc3QKK3sKKyAgICBpZiAoIWlzQ3Vy
cmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bV9mcmFtZS0+cGFnZSgpID8gbV9mcmFtZS0+cGFnZSgpLT5jb25zb2xlKCkgOiAwOworfQorCiBE
T01BcHBsaWNhdGlvbkNhY2hlKiBET01XaW5kb3c6OmFwcGxpY2F0aW9uQ2FjaGUoKSBjb25zdAog
ewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCkBAIC04ODQsNyArODky
LDcgQEAgdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNr
KFNlY3VyaXR5T3JpZ2luKiBpbnRlbmRlZFRhcmcKICAgICAgICAgaWYgKCFpbnRlbmRlZFRhcmdl
dE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KSkpIHsKICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIlVuYWJsZSB0byBwb3N0IG1lc3Nh
Z2UgdG8gIiArIGludGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0cmluZygpICsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi4gUmVjaXBpZW50IGhhcyBvcmlnaW4gIiArIGRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkgKyAiLlxuIjsKLSAgICAgICAgICAgIGNvbnNv
bGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNz
YWdlLCBzdGFja1RyYWNlKTsKKyAgICAgICAgICAgIHBhZ2VDb25zb2xlKCktPmFkZE1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc3RhY2tUcmFjZSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzk5LDcgKzE4MDcs
NyBAQCB2b2lkIERPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogICAgIGlmIChtZXNzYWdlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UpOworICAgIHBhZ2VDb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAKIFN0cmluZyBET01XaW5kb3c6OmNy
b3NzRG9tYWluQWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmgKaW5kZXggNGI3NjQzODA5NGQxNjBmYWQ2MmZkZTEzYWI0ODE0NmYx
ZGRiMWI5MS4uMDc5MGVlODk4ZmU0M2UwZjhjMTY3NzkyNzlmZGEzY2QyZDk2YWIxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC01OSw2ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBOYXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOwor
ICAgIGNsYXNzIFBhZ2VDb25zb2xlOwogICAgIGNsYXNzIFBlcmZvcm1hbmNlOwogICAgIGNsYXNz
IFBvc3RNZXNzYWdlVGltZXI7CiAgICAgY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwpAQCAtMjMzLDYg
KzIzNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxXZWJLaXRQ
b2ludD4gd2Via2l0Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoTm9kZSosIGNvbnN0IFdlYktp
dFBvaW50KikgY29uc3Q7ICAgICAgICAKIAogICAgICAgICBDb25zb2xlKiBjb25zb2xlKCkgY29u
c3Q7CisgICAgICAgIFBhZ2VDb25zb2xlKiBwYWdlQ29uc29sZSgpIGNvbnN0OwogCiAgICAgICAg
IHZvaWQgcHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJik7CiAgICAgICAgIFN0cmluZyBj
cm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRvdyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAppbmRleCBlYWFkYjE4OTE4YmRiNzFmNTE3ZWVhZjk0NzYxMGIyMTJhMGE2
ODc0Li43MzljZGI1Y2FhZWYwYzRmMDJlN2Y2Y2Q3MDIwZWNjY2EyZDEzMTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNs
dWRlICJOZXR3b3JrU3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgorI2lu
Y2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAi
UGx1Z0luQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgpAQCAtMTc0LDYgKzE3NSw3
IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBt
X2FsdGVybmF0aXZlVGV4dENsaWVudChwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQp
CiAgICAgLCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKKyAgICAsIG1fY29u
c29sZShQYWdlQ29uc29sZTo6Y3JlYXRlKHRoaXMpKQogewogICAgIEFTU0VSVChtX2VkaXRvckNs
aWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggZmFmNmQ5NmMxZDNkNTA0ZWMxMmJmM2Q5OTZhMzli
YWVjMWI3ZDgwZC4uNmEyOTExYzYxOTljYWY5Y2EyZTgzZmE5ZTFmZTIzMWI5ZDljM2IyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKQEAgLTc0LDYgKzc0LDcgQEAgY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xh
c3MgSW5zcGVjdG9yQ29udHJvbGxlcjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKIGNs
YXNzIE5vZGU7CitjbGFzcyBQYWdlQ29uc29sZTsKIGNsYXNzIFBhZ2VHcm91cDsKIGNsYXNzIFBs
dWdJbkNsaWVudDsKIGNsYXNzIFBsdWdpbkRhdGE7CkBAIC0zNzYsNiArMzc3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2F3TWVkaWFFbmdpbmUoY29uc3QgU3RyaW5nJiBlbmdpbmVOYW1lKTsKICAg
ICB2b2lkIHJlc2V0U2Vlbk1lZGlhRW5naW5lcygpOwogCisgICAgUGFnZUNvbnNvbGUqIGNvbnNv
bGUoKSB7IHJldHVybiBtX2NvbnNvbGUuZ2V0KCk7IH0KICAgICB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTQ5Niw2ICs0OTgs
NyBAQCBwcml2YXRlOgogICAgIEFsdGVybmF0aXZlVGV4dENsaWVudCogbV9hbHRlcm5hdGl2ZVRl
eHRDbGllbnQ7CiAKICAgICBib29sIG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkOworICAg
IE93blB0cjxQYWdlQ29uc29sZT4gbV9jb25zb2xlOwogCiAgICAgSGFzaFNldDxTdHJpbmc+IG1f
c2VlblBsdWdpbnM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2Vlbk1lZGlhRW5naW5lczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDlmODdhYmIxZGM2MWMzYzJj
ZGY3OGY4MzI3NWY2M2I5YzExN2U2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGUuY3BwCkBAIC0wLDAgKzEsMTk5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnNvbGVBUElUeXBlcy5oIgorI2lu
Y2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJTY3JpcHRBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUu
aCIKKyNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJTZXR0
aW5ncy5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5jbHVkZSAiVHJhY2VFdmVudC5o
IgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKyAgICBpbnQg
bXV0ZUNvdW50ID0gMDsKK30KKworUGFnZUNvbnNvbGU6OlBhZ2VDb25zb2xlKFBhZ2UqIHBhZ2Up
IDogbV9wYWdlKHBhZ2UpIHsgfQorCitQYWdlQ29uc29sZTo6flBhZ2VDb25zb2xlKCkgeyB9CisK
K3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlcikKK3sKKyAgICBpZiAoIXNvdXJjZVVSTC5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiAwKQorICAgICAgICAgICAgcHJpbnRm
KCIlczolZDogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBwcmludGYoIiVzOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEo
KSk7CisgICAgfQorfQorCit2b2lkIFBhZ2VDb25zb2xlOjpwcmludE1lc3NhZ2VTb3VyY2VBbmRM
ZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsKQorewor
ICAgIGNvbnN0IGNoYXIqIHNvdXJjZVN0cmluZzsKKyAgICBzd2l0Y2ggKHNvdXJjZSkgeworICAg
IGNhc2UgSFRNTE1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJIVE1MIjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgorICAgICAgICBzb3Vy
Y2VTdHJpbmcgPSAiWE1MIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU01lc3NhZ2VTb3Vy
Y2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJKUyI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JL
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAg
ICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNPTEVBUEkiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE90aGVyTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIk9USEVSIjsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgY29uc3QgY2hhciogbGV2ZWxTdHJpbmc7CisgICAgc3dpdGNoIChsZXZlbCkg
eworICAgIGNhc2UgRGVidWdNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIkRF
QlVHIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2dNZXNzYWdlTGV2ZWw6CisgICAgICAg
IGxldmVsU3RyaW5nID0gIkxPRyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FybmluZ01l
c3NhZ2VMZXZlbDoKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiV0FSTiI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgRXJyb3JNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIkVS
Uk9SIjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgIGxldmVsU3RyaW5nID0gIlVOS05PV04iOworICAgICAgICBicmVh
azsKKyAgICB9CisKKyAgICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0cmluZywgbGV2ZWxTdHJp
bmcpOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFN0cmlu
ZyB1cmw7CisgICAgaWYgKGRvY3VtZW50KQorICAgICAgICB1cmwgPSBkb2N1bWVudC0+dXJsKCku
c3RyaW5nKCk7CisgICAgdW5zaWduZWQgbGluZSA9IDA7CisgICAgaWYgKGRvY3VtZW50ICYmIGRv
Y3VtZW50LT5wYXJzaW5nKCkgJiYgIWRvY3VtZW50LT5pc0luRG9jdW1lbnRXcml0ZSgpICYmIGRv
Y3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSkgeworICAgICAgICBTY3JpcHRhYmxl
RG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXIoKTsKKyAgICAgICAgaWYgKCFwYXJzZXItPmlzV2FpdGluZ0ZvclNjcmlwdHMoKSAmJiAhcGFy
c2VyLT5pc0V4ZWN1dGluZ1NjcmlwdCgpKQorICAgICAgICAgICAgbGluZSA9IHBhcnNlci0+bGlu
ZU51bWJlcigpLm9uZUJhc2VkSW50KCk7CisgICAgfQorICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBs
ZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCAwLCAwLCByZXF1ZXN0SWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgUGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENh
bGxTdGFjaz4gY2FsbFN0YWNrKQoreworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVz
c2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJl
ciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQoreworICAgIGlmIChtdXRlQ291
bnQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNlKQorICAgICAgICByZXR1cm47
CisKKyAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGNhbGxTdGFjaykKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIGxldmVsLCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBl
bHNlCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5l
TnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOworCisgICAgaWYgKCFwYWdlLT5zZXR0
aW5ncygpIHx8IHBhZ2UtPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdl
VG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHVybCk7CisKKyAg
ICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVF
bmFibGVkKCkgJiYgIXNob3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgICAgICByZXR1cm47CisK
KyAgICBwcmludFNvdXJjZVVSTEFuZExpbmUodXJsLCBsaW5lTnVtYmVyKTsKKyAgICBwcmludE1l
c3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChzb3VyY2UsIGxldmVsKTsKKworICAgIHByaW50Zigi
ICVzXG4iLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgUGFn
ZUNvbnNvbGU6Om11dGUoKQoreworICAgIG11dGVDb3VudCsrOworfQorCisvLyBzdGF0aWMKK3Zv
aWQgUGFnZUNvbnNvbGU6OnVubXV0ZSgpCit7CisgICAgQVNTRVJUKG11dGVDb3VudCA+IDApOwor
ICAgIG11dGVDb3VudC0tOworfQorCitzdGF0aWMgYm9vbCBwcmludEV4Y2VwdGlvbnMgPSBmYWxz
ZTsKKworYm9vbCBQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkKK3sKKyAgICBy
ZXR1cm4gcHJpbnRFeGNlcHRpb25zOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjpzZXRTaG91bGRQ
cmludEV4Y2VwdGlvbnMoYm9vbCBwcmludCkKK3sKKyAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmlu
dDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY4YzA4OTI0MTJmYTE1YWQ1M2I5YmYwNWRiMTE1MjBlOWU5YWVjNDIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmgKQEAgLTAs
MCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAg
IGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBQYWdlQ29uc29sZV9oCisjZGVmaW5lIFBhZ2VDb25zb2xlX2gK
KworI2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgorI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERvY3VtZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgUGFnZUNvbnNvbGUgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VDb25zb2xlPiBjcmVhdGUoUGFnZSogcGFnZSkgeyBy
ZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VDb25zb2xlKHBhZ2UpKTsgfQorICAgIHZpcnR1YWwgflBh
Z2VDb25zb2xlKCk7CisKKyAgICBzdGF0aWMgdm9pZCBwcmludFNvdXJjZVVSTEFuZExpbmUoY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOworICAgIHN0YXRpYyB2
b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCk7CisKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwLCBTY3JpcHRT
dGF0ZSogPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgdm9p
ZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3VtZW50KiA9IDApOworCisgICAg
c3RhdGljIHZvaWQgbXV0ZSgpOworICAgIHN0YXRpYyB2b2lkIHVubXV0ZSgpOworCisgICAgc3Rh
dGljIGJvb2wgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7CisgICAgc3RhdGljIHZvaWQgc2V0U2hv
dWxkUHJpbnRFeGNlcHRpb25zKGJvb2wpOworCitwcml2YXRlOgorICAgIFBhZ2VDb25zb2xlKFBh
Z2UqKTsKKworICAgIFBhZ2UqIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH07CisKKyAgICBQYWdl
KiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYWdl
Q29uc29sZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExp
YnhzbHQuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcApp
bmRleCAwYjgzNDBjZDk1Y2FlYmVmZjhlMTgxZjVhMTM1ZjkxY2MwZWMzNzg1Li4zMWRiYjBlMjUx
NDU0ZWNkZjVkMjFhNzY0NTMwZmZlYWFhNGNlN2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKQEAgLTI0LDEyICsyNCwxMyBAQAogCiAjaWYgRU5BQkxF
KFhTTFQpCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
KyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVNvdXJjZS5oIgog
I2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJz
ZXJTY29wZS5oIgpAQCAtMTQ0LDkgKzE0NSwxMCBAQCBib29sIFhTTFN0eWxlU2hlZXQ6OnBhcnNl
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICB4bWxGcmVlRG9jKG1fc3R5bGVz
aGVldERvYyk7CiAgICAgbV9zdHlsZXNoZWV0RG9jVGFrZW4gPSBmYWxzZTsKIAotICAgIENvbnNv
bGUqIGNvbnNvbGUgPSAwOwotICAgIGlmIChvd25lckRvY3VtZW50KCktPmZyYW1lKCkpCi0gICAg
ICAgIGNvbnNvbGUgPSBvd25lckRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7Cisg
ICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSAwOworICAgIEZyYW1lKiBmcmFtZSA9IG93bmVyRG9j
dW1lbnQoKS0+ZnJhbWUoKTsKKyAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAg
ICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKTsKIAogICAgIFhNTERvY3VtZW50
UGFyc2VyU2NvcGUgc2NvcGUoY2FjaGVkUmVzb3VyY2VMb2FkZXIoKSwgWFNMVFByb2Nlc3Nvcjo6
Z2VuZXJpY0Vycm9yRnVuYywgWFNMVFByb2Nlc3Nvcjo6cGFyc2VFcnJvckZ1bmMsIGNvbnNvbGUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAppbmRleCA1
MDM4MDJjN2ZlN2I1NmY1ZjcyZDE3ODNhYjdiYzMwY2I2NTgxYWRlLi45ZTZlYTk4ZTM4OWNmYTdl
OTI3NTE0YzY0NGIxMjJlM2FiNWM3YmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJv
Y2Vzc29yTGlieHNsdC5jcHAKQEAgLTI3LDEwICsyNywxMSBAQAogI2luY2x1ZGUgIlhTTFRQcm9j
ZXNzb3IuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAi
Q29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VI
YW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTgyLDcgKzgzLDcgQEAg
dm9pZCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jKHZvaWQqLCBjb25zdCBjaGFyKiwg
Li4uKQogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKHZvaWQqIHVzZXJEYXRh
LCB4bWxFcnJvciogZXJyb3IpCiB7Ci0gICAgQ29uc29sZSogY29uc29sZSA9IHN0YXRpY19jYXN0
PENvbnNvbGUqPih1c2VyRGF0YSk7CisgICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNf
Y2FzdDxQYWdlQ29uc29sZSo+KHVzZXJEYXRhKTsKICAgICBpZiAoIWNvbnNvbGUpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMTM3LDkgKzEzOCwxMCBAQCBzdGF0aWMgeG1sRG9jUHRyIGRvY0xvYWRl
ckZ1bmMoY29uc3QgeG1sQ2hhciogdXJpLAogICAgICAgICAgICAgZ2xvYmFsQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXItPnByaW50QWNjZXNzRGVuaWVkTWVzc2FnZSh1cmwpOwogICAgICAgICB9CiAKLSAg
ICAgICAgQ29uc29sZSogY29uc29sZSA9IDA7Ci0gICAgICAgIGlmIChnbG9iYWxQcm9jZXNzb3It
PnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICAgICAg
Y29uc29sZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50
KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAgICAgIFBhZ2VDb25zb2xlKiBjb25zb2xl
ID0gMDsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHlsZXNo
ZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICAgICAgaWYgKGZyYW1lICYmIGZy
YW1lLT5wYWdlKCkpCisgICAgICAgICAgICBjb25zb2xlID0gZnJhbWUtPnBhZ2UoKS0+Y29uc29s
ZSgpOwogICAgICAgICB4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKGNvbnNvbGUsIFhTTFRQcm9j
ZXNzb3I6OnBhcnNlRXJyb3JGdW5jKTsKICAgICAgICAgeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyhj
b25zb2xlLCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193152</attachid>
            <date>2013-03-14 11:01:04 -0700</date>
            <delta_ts>2013-03-15 01:40:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130314215658.patch</filename>
            <type>text/plain</type>
            <size>42390</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2OGY1ZmYxYjhiOGM3
MzI4M2Y0YjI4YTEyZTg3YTdjY2Y5NGQwYi4uM2NiZTgyMTlmMGRjOGEzMTc5NjZhNzA5NjU2YjFl
NjZmMjAwMTUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAzLTE0ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkQ29u
c29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
Om11dGVDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0
ZUNvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjppbnRlcm5hbEFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChDb25zb2xlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhZ2VDb25zb2xlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3Nh
Z2VFdmVudFdpdGhPcmlnaW5DaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBy
aW50RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y29uc29sZSk6Cisg
ICAgICAgIChQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6flBhZ2VDb25zb2xlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJl
Zml4KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjptdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VD
b25zb2xlOjp1bm11dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnNob3VsZFBy
aW50RXhjZXB0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwYWdlKToKKyAgICAgICAgKiB4
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nl
c3Nvcjo6cGFyc2VFcnJvckZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6ZG9jTG9hZGVyRnVuYyk6
CisKIDIwMTMtMDMtMTQgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgRW1wdHkgbGlzdCBpdGVtcyBhZnRlciBkcmFnJmRyb3AgaW4gY29udGVudEVk
aXRhYmxlIGRpdnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTZjOTQzZDgzYmJkNTJlODhhZmNl
MzdhYTEyYzAzMjI2OGYwMjY2Yy4uY2UyNWVlNjkyYTY3NGQ2ZGU2MTk0NjkzNDFhZDVmZGZjMTll
YjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3ODgsNiArMTc4OCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5B
Y2Nlc3NFbnRyeS5jcHAKICAgICBwYWdlL1BhZ2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5j
cHAKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJl
ci5jcHAKICAgICBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggM2Q0YTA3MjUzMWZmM2Q3ODFlNDkzNjA1MmQ0MTc5YTkyMTY3YzFhYy4uNzZj
MTYzNTcxMzY5ZDhkYWNkNzUxZGY1NDFlZTI3NWRlMjQ1OTcyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC00MjM2LDYgKzQyMzYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDNhNzk5NWVmNWY2ZDhlZDAy
YTk1NzdiZTUzNzcyNWY3YzRkZDg0YzguLjQ4NTMyMTE3YTg1Y2U3ZTdiODMyYTY4MzY5NGRmNGIx
NzBhMDc0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTQ3LDYgKzk0Nyw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgXAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnku
Y3BwIFwKICAgICBwYWdlL1BhZ2UuY3BwIFwKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAg
ICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5j
cHAgXAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDllMDhhOTNiOTVjOTc1MmM0M2JjNDk1NzNiOTU3MTExYzEzOTgxYmUuLjc5OWU1ZmU5NjA4
NmY1OWJiYmVmNDc4ZDQzMTM5Mjk5MzRmNjg3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyNTIs
NiArMjI1Miw3IEBACiAgICAgICAgICAgICAncGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFn
ZS9QYWdlLmNwcCcsCisgICAgICAgICAgICAncGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJl
ci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggN2EzNTAzZGI3NWJhMmMzOWFkNTdlYTZhYmE4ZTRmNGJjOTIzN2M0My4uODc5MmVmYmI3NDVk
YjllMGM1YzY2NjkwZTQyNmZlNzg5YTcxOTAyZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NTkwLDYgKzI3NTkwLDE0IEBACiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2UuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VDb25z
b2xlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxQYWdlQ29uc29sZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNmJlM2ZhZDZlYTM3
NDZkYmVjYzJlN2Y1M2FlODA3MThhMmM3ZWU1Ny4uODYwNjYwZjgyMjY3NTYxYzc5MTNkZjllNDgx
N2RkZWYxZWVhZjkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCkBAIC0yOTkyLDYgKzI5OTIsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxOYXZpZ2F0b3JCYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2Vc
UGFnZUNvbnNvbGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
R3JvdXAuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
U2VyaWFsaXplci5jcHAiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMTM2MzIxYWJjZGZhNWJjZDlkMmFj
NTA5NGJjZjRiZmExYjE4ZTJjNy4uOTA0OWVjZDQxMmU5OGYwYzEyNTZjNzQxMWM3MTI3MTQ0MzA4
ODZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNjY5Niw2ICs2Njk2LDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZS5jcHAiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VD
b25zb2xlLmNwcCI+CisgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNzgxZTM1MjU3
ZDBmZjQwYjBhYTFmMjhmZjg4MmQwMWQ5OTY5NTY2Li5iNzk2MDYzOTM2MWEzOGFmZTM2MDY4NDkx
MzBkMjhhNTA2ZDY0YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MTUzLDYgKzYxNTMsOCBAQAogCQlENzYxM0E1MDE0NzRG
MTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEzQTRFMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJL
aXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNX
ZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNw
cCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAw
Qzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCURBRUQyMDMwMTZGMjQ0MkIwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQUFDQjNEOTE2
RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuY3BwICovOyB9OworCQlEQUVEMjAzMTE2RjI0
NDQ4MDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29s
ZS5oICovOyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
REIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsg
fTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKIAkJREQwNUZF
MEQwQjhCQTNDNjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUg
LyogV2ViQ29yZU9iakNFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTM4NjMsNiArMTM4NjUsOCBAQAogCQlENzYxM0FDMjE0NzUzRTU2
MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlENzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBh
Z2VDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VD
b25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzREExNkYyNDE2
NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBhZ2VDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5
MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
ZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREMDVG
RTBCMEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU9iakNFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE2NDgwLDYgKzE2NDg0LDggQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4
MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkg
LyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5p
ZGwgKi8sCisJCQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAq
LywKKwkJCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAqLywKIAkJ
CQlDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8sCiAJCQkJQ0ND
MkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovLAogCQkJCUND
QzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8sCkBAIC0yNjc2
Nyw2ICsyNjc3Myw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NB
dWRpdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAw
OERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREFFRDIwMzExNkYyNDQ0ODAw
NzBFQzBGIC8qIFBhZ2VDb25zb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5OTc1LDYgKzI5OTgy
LDcgQEAKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRl
bGVnYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAv
KiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVD
MEYgLyogUGFnZUNvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYTli
MzRhNjU2YzhmZmVhMWU3OWUxY2RlNmY3NmY4ZjYwZDQ3OTg0Yi4uODcwODkzNGJiNTRiYTlmNWY0
YzI2ZTVhMjRlMWVkMTZjMTJkM2JkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMjYsMTIgKzI2LDEzIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogCkBAIC03Nyw4ICs3OCw5
IEBAIFN0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNv
bnN0IFN0cmluZyYgcHJlZml4KQogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsK
ICAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRD
YWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChj
YWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFj
dHVhbCBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICAgICAgICAgIG1fZ2xvYmFsT2Jq
ZWN0LT5pbXBsKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9y
TWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1l
c3BhY2VVUkkgbWV0aG9kLiIpOworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gYWN0aXZlRE9N
V2luZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSktPmZyYW1lKCk7CisgICAgICAgICAgICBp
ZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBtX2dsb2JhbE9iamVj
dC0+aW1wbCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWws
ICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRo
b2QuIik7CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KICAgICAgICAg
ZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5j
cHAKaW5kZXggYjk1NGZmZWQxZWQzNjhkZGVjNzJmYjEyZjNmMmI3ZDg4MWM5NWExNC4uY2FlMzQ4
OWI1ZDAwZjg5NmM4NzAwNTU2NDlmZjc1NmNmOWFlYTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwCkBAIC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgpAQCAtNjksNyArNzEsOSBAQCBTdHJpbmcgVjhDdXN0b21YUGF0aE5TUmVzb2x2
ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKICAgICB9CiAKICAg
ICBpZiAobG9va3VwTmFtZXNwYWNlVVJJRnVuYy5Jc0VtcHR5KCkgJiYgIW1fcmVzb2x2ZXItPklz
RnVuY3Rpb24oKSkgewotICAgICAgICBhY3RpdmVET01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0
YW5jZSgpKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFj
ZVVSSSBtZXRob2QuIik7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGFjdGl2ZURPTVdpbmRvdyhC
aW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLT5mcmFtZSgpOworICAgICAgICBpZiAoZnJhbWUgJiYg
ZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKS0+YWRk
TWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29s
dmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOwogICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAw
MTRiYzcyMTM1ODIxN2E5NTYyYzA0NjI2MTVmYzg3OTM4MWRjNDMyLi43ODNkYzc1ODc0ZjQ1YTE1
ZmYxNzQ0ZTk5NjlmODI2Zjg0ZDVmMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEy
NSw2ICsxMjUsNyBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJOb2Rl
V2l0aEluZGV4LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgpAQCAtNDc4OCwxMCArNDc4OSw5
IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkgewotICAgICAgICBpZiAoQ29u
c29sZSogY29uc29sZSA9IHdpbmRvdy0+Y29uc29sZSgpKQotICAgICAgICAgICAgY29uc29sZS0+
YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllciwgdGhp
cyk7Ci0gICAgfQorICAgIFBhZ2UqIHAgPSBwYWdlKCk7CisgICAgaWYgKHApCisgICAgICAgIHAt
PmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCByZXF1ZXN0SWRl
bnRpZmllciwgdGhpcyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyKQpAQCAtNDgwMSwxMCArNDgwMSw5IEBAIHZvaWQgRG9jdW1l
bnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoRE9NV2luZG93
KiB3aW5kb3cgPSBkb21XaW5kb3coKSkgewotICAgICAgICBpZiAoQ29uc29sZSogY29uc29sZSA9
IHdpbmRvdy0+Y29uc29sZSgpKQotICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShzb3Vy
Y2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgc3Rh
dGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICB9CisgICAgUGFnZSogcCA9IHBhZ2UoKTsKKyAg
ICBpZiAocCkKKyAgICAgICAgcC0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWws
IG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCBzdGF0ZSwgcmVxdWVz
dElkZW50aWZpZXIpOwogfQogCiBjb25zdCBTZWN1cml0eU9yaWdpbiogRG9jdW1lbnQ6OnRvcE9y
aWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURl
YnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFn
ZW50LmNwcAppbmRleCAxNjIyMmVlNjUxZDc2YTA0Njk1NGI3ZmJhZTUxYzhiZmRiMDAyN2Y3Li4y
MDBmYjJjZjc0NTYwYjU1YzU3Yjk0ZjExOGE2NGRjZGQ2YzBmZTc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM0LDExICszNCwxMSBA
QAogCiAjaW5jbHVkZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFn
ZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VTY3JpcHREZWJ1
Z1NlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04OCwxMiArODgsMTIgQEAgUGFn
ZVNjcmlwdERlYnVnU2VydmVyJiBQYWdlRGVidWdnZXJBZ2VudDo6c2NyaXB0RGVidWdTZXJ2ZXIo
KQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29s
ZTo6bXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7CiB9CiAKIHZvaWQgUGFnZURlYnVn
Z2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0ZSgpOworICAg
IFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogSW5qZWN0ZWRTY3JpcHQgUGFnZURlYnVnZ2Vy
QWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNv
bnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDc3YjQwZmEzMTJhN2E0ZjMxYzYzNzMyZmQzNzY0
ZTA4OWY4MTcyNmUuLmE4NDMxYmEwZmE3OGNjODQxNWI4NDRjMjIzZTFiMDM0ZWIyZTk2NjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTM0
LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlBhZ2VSdW50aW1lQWdlbnQuaCIKIAotI2luY2x1ZGUg
IkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2Ny
aXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCkBAIC00Miw2ICs0MSw3
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlvbjsKQEAgLTE0OCwxMiArMTQ4LDEy
IEBAIEluamVjdGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZh
bChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsCiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6bXV0
ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6Om11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6bXV0
ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAg
IENvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogdm9p
ZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5jcHAKaW5kZXggZWE1MzdjNGZiMjA5MGQ0MDEwY2YwYWY2MDY5ZGMwOWEy
MjNiMGQ5YS4uNjVjMzZmYTA0MWNlNDUwYWQ5OGVkMDVkYWQzY2EzMTA1YTA5ODgxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lbW9yeUluZm8uaCIKICNpbmNsdWRlICJQYWdlLmgi
CisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNs
dWRlICJTY3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKQEAg
LTYxLDEwICs2Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotbmFtZXNwYWNlIHsKLSAg
ICBpbnQgbXV0ZUNvdW50ID0gMDsKLX0KLQogQ29uc29sZTo6Q29uc29sZShGcmFtZSogZnJhbWUp
CiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsKQEAgLTc0LDEyNiArNzEsNiBAQCBD
b25zb2xlOjp+Q29uc29sZSgpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIHByaW50U291cmNlVVJMQW5k
TGluZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlcikKLXsKLSAg
ICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiAw
KQotICAgICAgICAgICAgcHJpbnRmKCIlczolZDogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCks
IGxpbmVOdW1iZXIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcmludGYoIiVzOiAiLCBz
b3VyY2VVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBwcmludE1l
c3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxl
dmVsIGxldmVsKQotewotICAgIGNvbnN0IGNoYXIqIHNvdXJjZVN0cmluZzsKLSAgICBzd2l0Y2gg
KHNvdXJjZSkgewotICAgIGNhc2UgWE1MTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3Ry
aW5nID0gIlhNTCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSlNNZXNzYWdlU291cmNlOgot
ICAgICAgICBzb3VyY2VTdHJpbmcgPSAiSlMiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE5l
dHdvcmtNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiTkVUV09SSyI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAg
IHNvdXJjZVN0cmluZyA9ICJDT05TT0xFQVBJIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBT
dG9yYWdlTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlNUT1JBR0UiOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEFwcENhY2hlTWVzc2FnZVNvdXJjZToKLSAgICAgICAg
c291cmNlU3RyaW5nID0gIkFQUENBQ0hFIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZW5k
ZXJpbmdNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiUkVOREVSSU5HIjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NNZXNzYWdlU291cmNlOgotICAgICAgICBzb3Vy
Y2VTdHJpbmcgPSAiQ1NTIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTZWN1cml0eU1lc3Nh
Z2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJTRUNVUklUWSI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcg
PSAiT1RIRVIiOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlVOS05PV04iOwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0KLSAgICBjb25zdCBjaGFyKiBsZXZlbFN0cmluZzsKLSAgICBzd2l0
Y2ggKGxldmVsKSB7Ci0gICAgY2FzZSBEZWJ1Z01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiREVCVUciOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExvZ01lc3NhZ2VMZXZl
bDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiTE9HIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBXYXJuaW5nTWVzc2FnZUxldmVsOgotICAgICAgICBsZXZlbFN0cmluZyA9ICJXQVJOIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFcnJvck1lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiRVJST1IiOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiVU5LTk9XTiI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHByaW50ZigiJXMgJXM6Iiwgc291cmNlU3RyaW5n
LCBsZXZlbFN0cmluZyk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAg
ICBTdHJpbmcgdXJsOwotICAgIGlmIChkb2N1bWVudCkKLSAgICAgICAgdXJsID0gZG9jdW1lbnQt
PnVybCgpLnN0cmluZygpOwotICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgIGlmIChkb2N1bWVu
dCAmJiBkb2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUo
KSAmJiBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKLSAgICAgICAgU2Ny
aXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyKCk7Ci0gICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkg
JiYgIXBhcnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKLSAgICAgICAgICAgIGxpbmUgPSBwYXJz
ZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOwotICAgIH0KLSAgICBhZGRNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIp
OwotfQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlw
dENhbGxTdGFjaz4gY2FsbFN0YWNrKQotewotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwg
bWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3Rh
dGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCi17Ci0gICAgaWYgKG11dGVDb3Vu
dCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoY2FsbFN0YWNrKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIGVs
c2UKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xl
KHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVO
dW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNl
dHRpbmdzKCkgfHwgbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1l
c3NhZ2VUb0NvbnNvbGUoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgdXJsKTsK
LQotICAgIGlmICghbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVt
Q29uc29sZUVuYWJsZWQoKSAmJiAhc2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1cmwsIGxpbmVOdW1iZXIpOwotICAg
IHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNvdXJjZSwgbGV2ZWwpOwotCi0gICAg
cHJpbnRmKCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7Ci19Ci0KIHN0YXRpYyB2b2lk
IGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+IHBycEFyZ3VtZW50cywgYm9vbCBhY2NlcHROb0FyZ3VtZW50cyA9IGZhbHNlLCBib29sIHBy
aW50VHJhY2UgPSBmYWxzZSkKIHsKICAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVu
dHMgPSBwcnBBcmd1bWVudHM7CkBAIC0yMTgsMTEgKzk1LDExIEBAIHN0YXRpYyB2b2lkIGludGVy
bmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsCiAgICAgaWYgKGdvdE1lc3NhZ2UpCiAgICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGll
bnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSwgdHlwZSwg
bGV2ZWwsIG1lc3NhZ2UsIGxhc3RDYWxsZXIubGluZU51bWJlcigpLCBsYXN0Q2FsbGVyLnNvdXJj
ZVVSTCgpKTsKIAotICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1Rv
U3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25z
KCkpCisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1D
b25zb2xlRW5hYmxlZCgpICYmICFQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIHByaW50U291cmNlVVJMQW5kTGluZShsYXN0Q2FsbGVy
LnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSk7Ci0gICAgcHJpbnRNZXNzYWdl
U291cmNlQW5kTGV2ZWxQcmVmaXgoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIGxldmVsKTsKKyAg
ICBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5lKGxhc3RDYWxsZXIuc291cmNlVVJM
KCksIGxhc3RDYWxsZXIubGluZU51bWJlcigpKTsKKyAgICBQYWdlQ29uc29sZTo6cHJpbnRNZXNz
YWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIGxldmVsKTsK
IAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJndW1lbnRzLT5hcmd1bWVudENvdW50KCk7
ICsraSkgewogICAgICAgICBTdHJpbmcgYXJnQXNTdHJpbmcgPSBhcmd1bWVudHMtPmFyZ3VtZW50
QXQoaSkudG9TdHJpbmcoYXJndW1lbnRzLT5nbG9iYWxTdGF0ZSgpKTsKQEAgLTM4OCwxOSArMjY1
LDYgQEAgdm9pZCBDb25zb2xlOjpncm91cEVuZCgpCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UoKSwgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2Us
IEVuZEdyb3VwTWVzc2FnZVR5cGUsIExvZ01lc3NhZ2VMZXZlbCwgU3RyaW5nKCksIFN0cmluZygp
LCAwKTsKIH0KIAotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6Om11dGUoKQotewotICAgIG11dGVD
b3VudCsrOwotfQotCi0vLyBzdGF0aWMKLXZvaWQgQ29uc29sZTo6dW5tdXRlKCkKLXsKLSAgICBB
U1NFUlQobXV0ZUNvdW50ID4gMCk7Ci0gICAgbXV0ZUNvdW50LS07Ci19Ci0KIFBhc3NSZWZQdHI8
TWVtb3J5SW5mbz4gQ29uc29sZTo6bWVtb3J5KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogQmVj
YXVzZSB3ZSBjcmVhdGUgYSBuZXcgb2JqZWN0IGhlcmUgZWFjaCB0aW1lLApAQCAtNDA4LDE4ICsy
NzIsNiBAQCBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiAg
ICAgcmV0dXJuIE1lbW9yeUluZm86OmNyZWF0ZShtX2ZyYW1lKTsKIH0KIAotc3RhdGljIGJvb2wg
cHJpbnRFeGNlcHRpb25zID0gZmFsc2U7Ci0KLWJvb2wgQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNl
cHRpb25zKCkKLXsKLSAgICByZXR1cm4gcHJpbnRFeGNlcHRpb25zOwotfQotCi12b2lkIENvbnNv
bGU6OnNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sIHByaW50KQotewotICAgIHByaW50RXhj
ZXB0aW9ucyA9IHByaW50OwotfQotCiBQYWdlKiBDb25zb2xlOjpwYWdlKCkgY29uc3QKIHsKICAg
ICBpZiAoIW1fZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCmluZGV4IGE5YTVkMjc0NDU0NWQ4Yjg3
ODkzYzc4NjI0ZDIxODM5ZWM1ZmM0MmYuLmZjN2ZhN2Q5NGFhMTc1ZTYwY2E3NTYzZWIwNTJjMzk0
MGEyYmExNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oCkBAIC0yOSwxMCArMjksNyBAQAogI2lmbmRl
ZiBDb25zb2xlX2gKICNkZWZpbmUgQ29uc29sZV9oCiAKLSNpbmNsdWRlICJDb25zb2xlQVBJVHlw
ZXMuaCIKLSNpbmNsdWRlICJDb25zb2xlVHlwZXMuaCIKICNpbmNsdWRlICJET01XaW5kb3dQcm9w
ZXJ0eS5oIgotI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFBy
b2ZpbGUuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBw
YWJsZS5oIgpAQCAtNDIsMTIgKzM5LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIE1lbW9yeUluZm87CiBjbGFzcyBQYWdl
OwogY2xhc3MgU2NyaXB0QXJndW1lbnRzOwotY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCiAjaWYg
RU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8U2NyaXB0
UHJvZmlsZT4gPiBQcm9maWxlc0FycmF5OwpAQCAtNTgsMTAgKzUzLDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENvbnNvbGU+IGNyZWF0ZShGcmFtZSogZnJhbWUpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBDb25zb2xlKGZyYW1lKSk7IH0KICAgICB2aXJ0dWFsIH5Db25zb2xlKCk7
CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwLCBTY3JpcHRTdGF0ZSogPSAw
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7Ci0gICAgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3VtZW50KiA9IDApOwotCiAgICAgdm9pZCBkZWJ1
ZyhTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAgdm9pZCBl
cnJvcihTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAgdm9p
ZCBpbmZvKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKQEAgLTk2
LDcgKzg3LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gbWVtb3J5KCkg
Y29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgaW5saW5lIFBhZ2UqIHBhZ2UoKSBjb25zdDsKKyAgICBQ
YWdlKiBwYWdlKCkgY29uc3Q7CiAKICAgICBleHBsaWNpdCBDb25zb2xlKEZyYW1lKik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YjAxNTk1MTYwNWNhNWY2YjE4OTIxZmMxYjEx
Y2I4ZThlN2U5ODU0Li5kYzJhODBlYTEzZTNjNzY2Mzk0ZjVmMzk0MTMzYzA2OWEyY2UyYjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAi
TWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5j
bHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBA
IC02OTQsNiArNjk1LDEzIEBAIENvbnNvbGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6
cGFnZUNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZy
YW1lKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBt
X2ZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKSA6IDA7Cit9CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUq
IERPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJl
bnRseURpc3BsYXllZEluRnJhbWUoKSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRv
dzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGlu
dGVuZGVkVGFyZwogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hl
bWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAg
U3RyaW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRU
YXJnZXRPcmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
LiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+
dG9TdHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKFNl
Y3VyaXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJh
Y2UpOworICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShTZWN1cml0eU1lc3Nh
Z2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3OTgsNyArMTgwNiw3IEBAIHZv
aWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAg
ICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zb2xl
KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2Fn
ZSk7CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9y
TWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21h
aW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAppbmRleCA0Yjc2NDM4MDk0ZDE2MGZhZDYyZmRlMTNhYjQ4MTQ2ZjFkZGIxYjkx
Li4wNzkwZWU4OThmZTQzZTBmOGMxNjc3OTI3OWZkYTNjZDJkOTZhYjE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xh
c3MgUGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1l
c3NhZ2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CkBAIC0yMzMsNiArMjM0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3
ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQq
KSBjb25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKKyAg
ICAgICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBw
cmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9t
YWluQWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IDIyZjMxMmZjMzllOTQwOTM1OWFiOGNmYjRhMzQ0MGFmZTEyMDI3MzIuLmEx
YjE3ZGI2NjE2NTk2NjM3YjE4MjhiMWFkYzlmN2FkNjMwOGJkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5l
dHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAi
UGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnSW5D
bGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0xNzYsNiArMTc3LDcgQEAgUGFn
ZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fYWx0ZXJu
YXRpdmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkKICAgICAs
IG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9jb25zb2xlKFBh
Z2VDb25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAppbmRleCAwMWNkMWRjM2M1ZmQyNGVlMDJmMjhiMzg3NmRlYjIwMGM1NDg1
NGYwLi4xMmY4MmExNGEwNWMzNmI1ZjBkNDk0MzkyMzRiMmYxNWM0MDZiNTNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTm9k
ZTsKK2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xp
ZW50OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3OCw2ICszNzksNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQg
cmVzZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQYWdlQ29uc29sZSogY29uc29sZSgpIHsg
cmV0dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtNTAwLDYgKzUwMiw3IEBAIHBy
aXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0aXZlVGV4dENsaWVu
dDsKIAogICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7CisgICAgT3duUHRy
PFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7CiAKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1
Z2luczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25zb2xlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTNjYTgyZDE5NDFkOGU4Njc2ZTU0NWFj
MTA2YWFhNWRiM2JlOTZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uc29sZS5jcHAKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQYWdlQ29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAi
Q2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCisjaW5jbHVkZSAi
Q29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRl
ICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNj
cmlwdEFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUg
IlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2lu
Y2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5k
aWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworICAgIGludCBtdXRlQ291
bnQgPSAwOworfQorCitQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUoUGFnZSogcGFnZSkgOiBtX3Bh
Z2UocGFnZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKSB7IH0KKwordm9pZCBQ
YWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoreworICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkg
eworICAgICAgICBpZiAobGluZU51bWJlciA+IDApCisgICAgICAgICAgICBwcmludGYoIiVzOiVk
OiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsKKyAg
ICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJl
Zml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCit7CisgICAgY29u
c3QgY2hhciogc291cmNlU3RyaW5nOworICAgIHN3aXRjaCAoc291cmNlKSB7CisgICAgY2FzZSBY
TUxNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9
ICJKUyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6Cisg
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNP
TEVBUEkiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JhZ2VNZXNzYWdlU291cmNlOgor
ICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFHRSI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXBwQ2FjaGVNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQVBQQ0FD
SEUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlcmluZ01lc3NhZ2VTb3VyY2U6Cisg
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJTkciOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENTU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJDU1MiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5TWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291
cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdGhlck1l
c3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9XTiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAg
IGNvbnN0IGNoYXIqIGxldmVsU3RyaW5nOworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNl
IERlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJERUJVRyI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTG9nTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmlu
ZyA9ICJMT0ciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhcm5pbmdNZXNzYWdlTGV2ZWw6
CisgICAgICAgIGxldmVsU3RyaW5nID0gIldBUk4iOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJFUlJPUiI7CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
CisgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKK30KKwor
dm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJpbmcgdXJsOworICAg
IGlmIChkb2N1bWVudCkKKyAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOwor
ICAgIHVuc2lnbmVkIGxpbmUgPSAwOworICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFy
c2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2Ny
aXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKKyAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7CisgICAg
ICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVj
dXRpbmdTY3JpcHQoKSkKKyAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5v
bmVCYXNlZEludCgpOworICAgIH0KKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3Nh
Z2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOworfQorCit2b2lkIFBhZ2VD
b25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNh
bGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmlu
ZygpLCAwLCBjYWxsU3RhY2ssIDApOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBpZiAobXV0ZUNvdW50ICYmIHNvdXJj
ZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFn
ZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChjYWxsU3RhY2spCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwg
bWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgc3Rh
dGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKSB8fCBw
YWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShz
b3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOworCisgICAgaWYgKCFwYWdl
LT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYm
ICFzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpbnRT
b3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAgcHJpbnRNZXNzYWdlU291cmNl
QW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBwcmludGYoIiAlc1xuIiwgbWVz
c2FnZS51dGY4KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjpt
dXRlKCkKK3sKKyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25z
b2xlOjp1bm11dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKKyAgICBtdXRlQ291
bnQtLTsKK30KKworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFsc2U7CisKK2Jvb2wg
UGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAgcmV0dXJuIHByaW50
RXhjZXB0aW9uczsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRp
b25zKGJvb2wgcHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OGMwODkyNDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFlYzQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCkBAIC0wLDAgKzEsNzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
CisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29uc29sZV9oCisKKyNpbmNsdWRl
ICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRl
ICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIFBhZ2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc093blB0cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0
UHRyKG5ldyBQYWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZSgp
OworCisgICAgc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBwcmludE1l
c3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwpOwor
CisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51
bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcg
cmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKKworICAgIHN0YXRpYyB2b2lk
IG11dGUoKTsKKyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKworICAgIHN0YXRpYyBib29sIHNo
b3VsZFByaW50RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhj
ZXB0aW9ucyhib29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZShQYWdlKik7CisKKyAg
ICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisgICAgUGFnZSogbV9wYWdlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZUNvbnNvbGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNTAzODAy
YzdmZTdiNTZmNWY3MmQxNzgzYWI3YmMzMGNiNjU4MWFkZS4uOWU2ZWE5OGUzODljZmE3ZTkyNzUx
NGM2NDRiMTIyZTNhYjVjN2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQ
cm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nv
ckxpYnhzbHQuY3BwCkBAIC0yNywxMCArMjcsMTEgQEAKICNpbmNsdWRlICJYU0xUUHJvY2Vzc29y
LmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNvbnNv
bGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xl
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQg
WFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3QgY2hhciosIC4uLikK
IAogdm9pZCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1s
RXJyb3IqIGVycm9yKQogewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxDb25z
b2xlKj4odXNlckRhdGEpOworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8
UGFnZUNvbnNvbGUqPih1c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICByZXR1
cm47CiAKQEAgLTEzNyw5ICsxMzgsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5j
KGNvbnN0IHhtbENoYXIqIHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291cmNlTG9h
ZGVyLT5wcmludEFjY2Vzc0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgfQogCi0gICAgICAg
IENvbnNvbGUqIGNvbnNvbGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJvY2Vzc29yLT54c2xT
dHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNvbnNv
bGUgPSBnbG9iYWxQcm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5k
b21XaW5kb3coKS0+Y29uc29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IDA7
CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgp
LT5vd25lckRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+
cGFnZSgpKQorICAgICAgICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKTsK
ICAgICAgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vzc29y
OjpwYXJzZUVycm9yRnVuYyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoY29uc29s
ZSwgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193259</attachid>
            <date>2013-03-15 01:40:10 -0700</date>
            <delta_ts>2013-03-15 02:26:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130315123605.patch</filename>
            <type>text/plain</type>
            <size>42392</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Nzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY2OGY1ZmYxYjhiOGM3
MzI4M2Y0YjI4YTEyZTg3YTdjY2Y5NGQwYi4uN2ZkMmY3NGJlODUwZDVkODcxOGMyOTRhN2IwOTk0
MDg2MzBlOGJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAzLTE1ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkQ29u
c29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
Om11dGVDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0
ZUNvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjppbnRlcm5hbEFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChDb25zb2xlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhZ2VDb25zb2xlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3Nh
Z2VFdmVudFdpdGhPcmlnaW5DaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBy
aW50RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y29uc29sZSk6Cisg
ICAgICAgIChQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6flBhZ2VDb25zb2xlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJl
Zml4KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjptdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VD
b25zb2xlOjp1bm11dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnNob3VsZFBy
aW50RXhjZXB0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwYWdlKToKKyAgICAgICAgKiB4
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nl
c3Nvcjo6cGFyc2VFcnJvckZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6ZG9jTG9hZGVyRnVuYyk6
CisKIDIwMTMtMDMtMTQgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+
CiAKICAgICAgICAgRW1wdHkgbGlzdCBpdGVtcyBhZnRlciBkcmFnJmRyb3AgaW4gY29udGVudEVk
aXRhYmxlIGRpdnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTZjOTQzZDgzYmJkNTJlODhhZmNl
MzdhYTEyYzAzMjI2OGYwMjY2Yy4uY2UyNWVlNjkyYTY3NGQ2ZGU2MTk0NjkzNDFhZDVmZGZjMTll
YjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3ODgsNiArMTc4OCw3IEBAIHNldChXZWJD
b3JlX1NPVVJDRVMKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5B
Y2Nlc3NFbnRyeS5jcHAKICAgICBwYWdlL1BhZ2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5j
cHAKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJl
ci5jcHAKICAgICBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggM2Q0YTA3MjUzMWZmM2Q3ODFlNDkzNjA1MmQ0MTc5YTkyMTY3YzFhYy4uNzZj
MTYzNTcxMzY5ZDhkYWNkNzUxZGY1NDFlZTI3NWRlMjQ1OTcyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC00MjM2LDYgKzQyMzYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDNhNzk5NWVmNWY2ZDhlZDAy
YTk1NzdiZTUzNzcyNWY3YzRkZDg0YzguLjQ4NTMyMTE3YTg1Y2U3ZTdiODMyYTY4MzY5NGRmNGIx
NzBhMDc0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTQ3LDYgKzk0Nyw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgXAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnku
Y3BwIFwKICAgICBwYWdlL1BhZ2UuY3BwIFwKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAg
ICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5j
cHAgXAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDllMDhhOTNiOTVjOTc1MmM0M2JjNDk1NzNiOTU3MTExYzEzOTgxYmUuLjc5OWU1ZmU5NjA4
NmY1OWJiYmVmNDc4ZDQzMTM5Mjk5MzRmNjg3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyNTIs
NiArMjI1Miw3IEBACiAgICAgICAgICAgICAncGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFn
ZS9QYWdlLmNwcCcsCisgICAgICAgICAgICAncGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJl
ci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5k
ZXggN2EzNTAzZGI3NWJhMmMzOWFkNTdlYTZhYmE4ZTRmNGJjOTIzN2M0My4uODc5MmVmYmI3NDVk
YjllMGM1YzY2NjkwZTQyNmZlNzg5YTcxOTAyZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NTkwLDYgKzI3NTkwLDE0IEBACiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2UuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VDb25z
b2xlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccGFnZVxQYWdlQ29uc29sZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNmJlM2ZhZDZlYTM3
NDZkYmVjYzJlN2Y1M2FlODA3MThhMmM3ZWU1Ny4uODYwNjYwZjgyMjY3NTYxYzc5MTNkZjllNDgx
N2RkZWYxZWVhZjkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCkBAIC0yOTkyLDYgKzI5OTIsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxOYXZpZ2F0b3JCYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2Vc
UGFnZUNvbnNvbGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
R3JvdXAuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
U2VyaWFsaXplci5jcHAiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMTM2MzIxYWJjZGZhNWJjZDlkMmFj
NTA5NGJjZjRiZmExYjE4ZTJjNy4uOTA0OWVjZDQxMmU5OGYwYzEyNTZjNzQxMWM3MTI3MTQ0MzA4
ODZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNjY5Niw2ICs2Njk2LDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZS5jcHAiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+
CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VD
b25zb2xlLmNwcCI+CisgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNzgxZTM1MjU3
ZDBmZjQwYjBhYTFmMjhmZjg4MmQwMWQ5OTY5NTY2Li5iNzk2MDYzOTM2MWEzOGFmZTM2MDY4NDkx
MzBkMjhhNTA2ZDY0YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MTUzLDYgKzYxNTMsOCBAQAogCQlENzYxM0E1MDE0NzRG
MTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEzQTRFMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJL
aXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNX
ZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNw
cCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAw
Qzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCURBRUQyMDMwMTZGMjQ0MkIwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQUFDQjNEOTE2
RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuY3BwICovOyB9OworCQlEQUVEMjAzMTE2RjI0
NDQ4MDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29s
ZS5oICovOyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
REIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsg
fTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKIAkJREQwNUZF
MEQwQjhCQTNDNjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUg
LyogV2ViQ29yZU9iakNFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTM4NjMsNiArMTM4NjUsOCBAQAogCQlENzYxM0FDMjE0NzUzRTU2
MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlENzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8q
IENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBh
Z2VDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VD
b25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzREExNkYyNDE2
NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBhZ2VDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5
MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElu
ZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREMDVG
RTBCMEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU9iakNFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE2NDgwLDYgKzE2NDg0LDggQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4
MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkg
LyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5p
ZGwgKi8sCisJCQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAq
LywKKwkJCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAqLywKIAkJ
CQlDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8sCiAJCQkJQ0ND
MkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovLAogCQkJCUND
QzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8sCkBAIC0yNjc2
Nyw2ICsyNjc3Myw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NB
dWRpdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAw
OERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREFFRDIwMzExNkYyNDQ0ODAw
NzBFQzBGIC8qIFBhZ2VDb25zb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5OTc1LDYgKzI5OTgy
LDcgQEAKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRl
bGVnYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAv
KiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVD
MEYgLyogUGFnZUNvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYTli
MzRhNjU2YzhmZmVhMWU3OWUxY2RlNmY3NmY4ZjYwZDQ3OTg0Yi4uOWU4NzUwNmVkZmQ3OTc4MDBm
OGJjNDJmZDMxYzFiM2FkNjM2MDdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMjYsMTIgKzI2LDEzIEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
aCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9N
V2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogCkBAIC03Nyw4ICs3OCw5
IEBAIFN0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNv
bnN0IFN0cmluZyYgcHJlZml4KQogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsK
ICAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRD
YWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChj
YWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFj
dHVhbCBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICAgICAgICAgIG1fZ2xvYmFsT2Jq
ZWN0LT5pbXBsKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9y
TWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1l
c3BhY2VVUkkgbWV0aG9kLiIpOworICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gYWN0aXZlRE9N
V2luZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSktPmZyYW1lKCk7CisgICAgICAgICAgICBp
ZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBmcmFtZS0+cGFnZSgp
LT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1l
dGhvZC4iKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgfQogICAgICAg
ICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmNwcAppbmRleCBiOTU0ZmZlZDFlZDM2OGRkZWM3MmZiMTJmM2YyYjdkODgxYzk1YTE0Li5jYWUz
NDg5YjVkMDBmODk2Yzg3MDA1NTY0OWZmNzU2Y2Y5YWVhNjQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHAKQEAgLTMwLDggKzMwLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgiCkBAIC02OSw3ICs3MSw5IEBAIFN0cmluZyBWOEN1c3RvbVhQYXRoTlNSZXNv
bHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQogICAgIH0KIAog
ICAgIGlmIChsb29rdXBOYW1lc3BhY2VVUklGdW5jLklzRW1wdHkoKSAmJiAhbV9yZXNvbHZlci0+
SXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omlu
c3RhbmNlKCkpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNw
YWNlVVJJIG1ldGhvZC4iKTsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gYWN0aXZlRE9NV2luZG93
KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAm
JiBmcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y29uc29sZSgpLT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVz
b2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDAxNGJjNzIxMzU4MjE3YTk1NjJjMDQ2MjYxNWZjODc5MzgxZGM0MzIuLjc4M2RjNzU4NzRmNDVh
MTVmZjE3NDRlOTk2OWY4MjZmODRkNWYyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MTI1LDYgKzEyNSw3IEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIk5v
ZGVXaXRoSW5kZXguaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUu
aCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCkBAIC00Nzg4LDEwICs0Nzg5
LDkgQEAgdm9pZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0gICAgICAgIGlmIChD
b25zb2xlKiBjb25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xl
LT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0
aGlzKTsKLSAgICB9CisgICAgUGFnZSogcCA9IHBhZ2UoKTsKKyAgICBpZiAocCkKKyAgICAgICAg
cC0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJ
ZGVudGlmaWVyLCB0aGlzKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdl
U291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCkBAIC00ODAxLDEwICs0ODAxLDkgQEAgdm9pZCBEb2N1
bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVs
LCBjb25zdCBTdHJpbmcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChET01XaW5k
b3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0gICAgICAgIGlmIChDb25zb2xlKiBjb25zb2xl
ID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCBz
dGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIH0KKyAgICBQYWdlKiBwID0gcGFnZSgpOwor
ICAgIGlmIChwKQorICAgICAgICBwLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZl
bCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHN0YXRlLCByZXF1
ZXN0SWRlbnRpZmllcik7CiB9CiAKIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBEb2N1bWVudDo6dG9w
T3JpZ2luKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
RGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2Vy
QWdlbnQuY3BwCmluZGV4IDE2MjIyZWU2NTFkNzZhMDQ2OTU0YjdmYmFlNTFjOGJmZGIwMDI3Zjcu
LjIwMGZiMmNmNzQ1NjBiNTVjNTdiOTRmMTE4YTY0ZGNkZDZjMGZlNzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAtMzQsMTEgKzM0LDEx
IEBACiAKICNpbmNsdWRlICJQYWdlRGVidWdnZXJBZ2VudC5oIgogCi0jaW5jbHVkZSAiQ29uc29s
ZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JQ
YWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZVNjcmlwdERl
YnVnU2VydmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg4LDEyICs4OCwxMiBAQCBQ
YWdlU2NyaXB0RGVidWdTZXJ2ZXImIFBhZ2VEZWJ1Z2dlckFnZW50OjpzY3JpcHREZWJ1Z1NlcnZl
cigpCiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6Om11dGVDb25zb2xlKCkKIHsKLSAgICBDb25z
b2xlOjptdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6Om11dGUoKTsKIH0KIAogdm9pZCBQYWdlRGVi
dWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29sZTo6dW5tdXRlKCk7Cisg
ICAgUGFnZUNvbnNvbGU6OnVubXV0ZSgpOwogfQogCiBJbmplY3RlZFNjcmlwdCBQYWdlRGVidWdn
ZXJBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Y29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggNzdiNDBmYTMxMmE3YTRmMzFjNjM3MzJmZDM3
NjRlMDg5ZjgxNzI2ZS4uYTg0MzFiYTBmYTc4Y2M4NDE1Yjg0NGMyMjNlMWIwMzRlYjJlOTY2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApAQCAt
MzQsNyArMzQsNiBAQAogCiAjaW5jbHVkZSAiUGFnZVJ1bnRpbWVBZ2VudC5oIgogCi0jaW5jbHVk
ZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRT
Y3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIKQEAgLTQyLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRp
bmdBZ2VudHMuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRl
cjo6UnVudGltZTo6RXhlY3V0aW9uQ29udGV4dERlc2NyaXB0aW9uOwpAQCAtMTQ4LDEyICsxNDgs
MTIgQEAgSW5qZWN0ZWRTY3JpcHQgUGFnZVJ1bnRpbWVBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JF
dmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywKIAogdm9pZCBQYWdlUnVudGltZUFnZW50Ojpt
dXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjpt
dXRlKCk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29uc29sZSgpCiB7Ci0g
ICAgQ29uc29sZTo6dW5tdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6OnVubXV0ZSgpOwogfQogCiB2
b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRDcmVhdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCBlYTUzN2M0ZmIyMDkwZDQwMTBjZjBhZjYwNjlkYzA5
YTIyM2IwZDlhLi42NWMzNmZhMDQxY2U0NTBhZDk4ZWQwNWRhZDNjYTMxMDVhMDk4ODE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0
b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpA
QCAtNjEsMTAgKzYyLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1uYW1lc3BhY2Ugewot
ICAgIGludCBtdXRlQ291bnQgPSAwOwotfQotCiBDb25zb2xlOjpDb25zb2xlKEZyYW1lKiBmcmFt
ZSkKICAgICA6IERPTVdpbmRvd1Byb3BlcnR5KGZyYW1lKQogewpAQCAtNzQsMTI2ICs3MSw2IEBA
IENvbnNvbGU6On5Db25zb2xlKCkKIHsKIH0KIAotc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxB
bmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQotewot
ICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAobGluZU51bWJlciA+
IDApCi0gICAgICAgICAgICBwcmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEo
KSwgbGluZU51bWJlcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHByaW50ZigiJXM6ICIs
IHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHByaW50
TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwpCi17Ci0gICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOwotICAgIHN3aXRj
aCAoc291cmNlKSB7Ci0gICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiWE1MIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6
Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJKUyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
TmV0d29ya01lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKLSAgICAg
ICAgc291cmNlU3RyaW5nID0gIkNPTlNPTEVBUEkiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFN0b3JhZ2VNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFHRSI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291cmNlOgotICAgICAg
ICBzb3VyY2VTdHJpbmcgPSAiQVBQQ0FDSEUiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFJl
bmRlcmluZ01lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJTkci
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNv
dXJjZVN0cmluZyA9ICJDU1MiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFNlY3VyaXR5TWVz
c2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmlu
ZyA9ICJPVEhFUiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9XTiI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLQotICAgIGNvbnN0IGNoYXIqIGxldmVsU3RyaW5nOwotICAgIHN3
aXRjaCAobGV2ZWwpIHsKLSAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVsOgotICAgICAgICBsZXZl
bFN0cmluZyA9ICJERUJVRyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTG9nTWVzc2FnZUxl
dmVsOgotICAgICAgICBsZXZlbFN0cmluZyA9ICJMT0ciOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFdhcm5pbmdNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIldBUk4iOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgotICAgICAgICBsZXZl
bFN0cmluZyA9ICJFUlJPUiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJp
bmcsIGxldmVsU3RyaW5nKTsKLX0KLQotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgRG9jdW1lbnQqIGRvY3VtZW50KQotewot
ICAgIFN0cmluZyB1cmw7Ci0gICAgaWYgKGRvY3VtZW50KQotICAgICAgICB1cmwgPSBkb2N1bWVu
dC0+dXJsKCkuc3RyaW5nKCk7Ci0gICAgdW5zaWduZWQgbGluZSA9IDA7Ci0gICAgaWYgKGRvY3Vt
ZW50ICYmIGRvY3VtZW50LT5wYXJzaW5nKCkgJiYgIWRvY3VtZW50LT5pc0luRG9jdW1lbnRXcml0
ZSgpICYmIGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSkgewotICAgICAgICBT
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRvY3VtZW50LT5zY3JpcHRhYmxlRG9j
dW1lbnRQYXJzZXIoKTsKLSAgICAgICAgaWYgKCFwYXJzZXItPmlzV2FpdGluZ0ZvclNjcmlwdHMo
KSAmJiAhcGFyc2VyLT5pc0V4ZWN1dGluZ1NjcmlwdCgpKQotICAgICAgICAgICAgbGluZSA9IHBh
cnNlci0+bGluZU51bWJlcigpLm9uZUJhc2VkSW50KCk7Ci0gICAgfQotICAgIGFkZE1lc3NhZ2Uo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCAwLCAwLCByZXF1ZXN0SWRlbnRpZmll
cik7Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCi17Ci0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVs
LCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrLCAwKTsKLX0KLQotdm9pZCBDb25zb2xl
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKLXsKLSAgICBpZiAobXV0ZUNv
dW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChjYWxsU3RhY2spCi0gICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAg
ZWxzZQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGlu
ZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKLQotICAgIGlmICghbV9mcmFtZS0+
c2V0dGluZ3MoKSB8fCBtX2ZyYW1lLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRk
TWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwp
OwotCi0gICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0
ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7Ci0g
ICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7Ci0KLSAg
ICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLX0KLQogc3RhdGljIHZv
aWQgaW50ZXJuYWxBZGRNZXNzYWdlKFBhZ2UqIHBhZ2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgU2NyaXB0U3RhdGUqIHN0YXRlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4gcHJwQXJndW1lbnRzLCBib29sIGFjY2VwdE5vQXJndW1lbnRzID0gZmFsc2UsIGJvb2wg
cHJpbnRUcmFjZSA9IGZhbHNlKQogewogICAgIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+IGFyZ3Vt
ZW50cyA9IHBycEFyZ3VtZW50czsKQEAgLTIxOCwxMSArOTUsMTEgQEAgc3RhdGljIHZvaWQgaW50
ZXJuYWxBZGRNZXNzYWdlKFBhZ2UqIHBhZ2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwKICAgICBpZiAoZ290TWVzc2FnZSkKICAgICAgICAgcGFnZS0+Y2hyb21lKCktPmNs
aWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKENvbnNvbGVBUElNZXNzYWdlU291cmNlLCB0eXBl
LCBsZXZlbCwgbWVzc2FnZSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxhc3RDYWxsZXIuc291
cmNlVVJMKCkpOwogCi0gICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2Vz
VG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlv
bnMoKSkKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3Rl
bUNvbnNvbGVFbmFibGVkKCkgJiYgIVBhZ2VDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGxhc3RDYWxs
ZXIuc291cmNlVVJMKCksIGxhc3RDYWxsZXIubGluZU51bWJlcigpKTsKLSAgICBwcmludE1lc3Nh
Z2VTb3VyY2VBbmRMZXZlbFByZWZpeChDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSwgbGV2ZWwpOwor
ICAgIFBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VV
UkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkpOworICAgIFBhZ2VDb25zb2xlOjpwcmludE1l
c3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSwgbGV2ZWwp
OwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMtPmFyZ3VtZW50Q291bnQo
KTsgKytpKSB7CiAgICAgICAgIFN0cmluZyBhcmdBc1N0cmluZyA9IGFyZ3VtZW50cy0+YXJndW1l
bnRBdChpKS50b1N0cmluZyhhcmd1bWVudHMtPmdsb2JhbFN0YXRlKCkpOwpAQCAtMzg4LDE5ICsy
NjUsNiBAQCB2b2lkIENvbnNvbGU6Omdyb3VwRW5kKCkKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSgpLCBDb25zb2xlQVBJTWVzc2FnZVNvdXJj
ZSwgRW5kR3JvdXBNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBTdHJpbmcoKSwgU3RyaW5n
KCksIDApOwogfQogCi0vLyBzdGF0aWMKLXZvaWQgQ29uc29sZTo6bXV0ZSgpCi17Ci0gICAgbXV0
ZUNvdW50Kys7Ci19Ci0KLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjp1bm11dGUoKQotewotICAg
IEFTU0VSVChtdXRlQ291bnQgPiAwKTsKLSAgICBtdXRlQ291bnQtLTsKLX0KLQogUGFzc1JlZlB0
cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBC
ZWNhdXNlIHdlIGNyZWF0ZSBhIG5ldyBvYmplY3QgaGVyZSBlYWNoIHRpbWUsCkBAIC00MDgsMTgg
KzI3Miw2IEBAIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gQ29uc29sZTo6bWVtb3J5KCkgY29uc3QK
ICAgICByZXR1cm4gTWVtb3J5SW5mbzo6Y3JlYXRlKG1fZnJhbWUpOwogfQogCi1zdGF0aWMgYm9v
bCBwcmludEV4Y2VwdGlvbnMgPSBmYWxzZTsKLQotYm9vbCBDb25zb2xlOjpzaG91bGRQcmludEV4
Y2VwdGlvbnMoKQotewotICAgIHJldHVybiBwcmludEV4Y2VwdGlvbnM7Ci19Ci0KLXZvaWQgQ29u
c29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wgcHJpbnQpCi17Ci0gICAgcHJpbnRF
eGNlcHRpb25zID0gcHJpbnQ7Ci19Ci0KIFBhZ2UqIENvbnNvbGU6OnBhZ2UoKSBjb25zdAogewog
ICAgIGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29s
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKaW5kZXggYTlhNWQyNzQ0NTQ1ZDhi
ODc4OTNjNzg2MjRkMjE4MzllYzVmYzQyZi4uZmM3ZmE3ZDk0YWExNzVlNjBjYTc1NjNlYjA1MmMz
OTQwYTJiYTE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKQEAgLTI5LDEwICsyOSw3IEBACiAjaWZu
ZGVmIENvbnNvbGVfaAogI2RlZmluZSBDb25zb2xlX2gKIAotI2luY2x1ZGUgIkNvbnNvbGVBUElU
eXBlcy5oIgotI2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgogI2luY2x1ZGUgIkRPTVdpbmRvd1By
b3BlcnR5LmgiCi0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0
UHJvZmlsZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCkBAIC00MiwxMiArMzksMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgTWVtb3J5SW5mbzsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBTY3JpcHRBcmd1bWVudHM7Ci1jbGFzcyBTY3JpcHRDYWxsU3RhY2s7CiAKICNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTY3Jp
cHRQcm9maWxlPiA+IFByb2ZpbGVzQXJyYXk7CkBAIC01OCwxMCArNTMsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q29uc29sZT4gY3JlYXRlKEZyYW1lKiBmcmFtZSkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IENvbnNvbGUoZnJhbWUpKTsgfQogICAgIHZpcnR1YWwgfkNvbnNvbGUo
KTsKIAotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDAsIFNjcmlwdFN0YXRlKiA9
IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKLSAgICB2b2lkIGFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCwgRG9jdW1lbnQqID0gMCk7Ci0KICAgICB2b2lkIGRl
YnVnKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKICAgICB2b2lk
IGVycm9yKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+KTsKICAgICB2
b2lkIGluZm8oU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwpAQCAt
OTYsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBtZW1vcnko
KSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBpbmxpbmUgUGFnZSogcGFnZSgpIGNvbnN0OworICAg
IFBhZ2UqIHBhZ2UoKSBjb25zdDsKIAogICAgIGV4cGxpY2l0IENvbnNvbGUoRnJhbWUqKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDliMDE1OTUxNjA1Y2E1ZjZiMTg5MjFmYzFi
MTFjYjhlOGU3ZTk4NTQuLmRjMmE4MGVhMTNlM2M3NjYzOTRmNWYzOTQxMzNjMDY5YTJjZTJiMWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRl
ICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJQYWdl
LmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNp
bmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIK
QEAgLTY5NCw2ICs2OTUsMTMgQEAgQ29uc29sZSogRE9NV2luZG93Ojpjb25zb2xlKCkgY29uc3QK
ICAgICByZXR1cm4gbV9jb25zb2xlLmdldCgpOwogfQogCitQYWdlQ29uc29sZSogRE9NV2luZG93
OjpwYWdlQ29uc29sZSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZElu
RnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2UoKSA/
IG1fZnJhbWUtPnBhZ2UoKS0+Y29uc29sZSgpIDogMDsKK30KKwogRE9NQXBwbGljYXRpb25DYWNo
ZSogRE9NV2luZG93OjphcHBsaWNhdGlvbkNhY2hlKCkgY29uc3QKIHsKICAgICBpZiAoIWlzQ3Vy
cmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQpAQCAtODg0LDcgKzg5Miw3IEBAIHZvaWQgRE9NV2lu
ZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiog
aW50ZW5kZWRUYXJnCiAgICAgICAgIGlmICghaW50ZW5kZWRUYXJnZXRPcmlnaW4tPmlzU2FtZVNj
aGVtZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7CiAgICAgICAgICAg
ICBTdHJpbmcgbWVzc2FnZSA9ICJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIgKyBpbnRlbmRl
ZFRhcmdldE9yaWdpbi0+dG9TdHJpbmcoKSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIgKyBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LT50b1N0cmluZygpICsgIi5cbiI7Ci0gICAgICAgICAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2Uo
U2VjdXJpdHlNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc3RhY2tU
cmFjZSk7CisgICAgICAgICAgICBwYWdlQ29uc29sZSgpLT5hZGRNZXNzYWdlKFNlY3VyaXR5TWVz
c2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2UpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMTc5OCw3ICsxODA2LDcgQEAg
dm9pZCBET01XaW5kb3c6OnByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
ICAgICBpZiAobWVzc2FnZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnNv
bGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNz
YWdlKTsKKyAgICBwYWdlQ29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJy
b3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpjcm9zc0Rv
bWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRvdykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oCmluZGV4IDRiNzY0MzgwOTRkMTYwZmFkNjJmZGUxM2FiNDgxNDZmMWRkYjFi
OTEuLjA3OTBlZTg5OGZlNDNlMGY4YzE2Nzc5Mjc5ZmRhM2NkMmQ5NmFiMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUGFnZTsKKyAgICBj
bGFzcyBQYWdlQ29uc29sZTsKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKICAgICBjbGFzcyBQb3N0
TWVzc2FnZVRpbWVyOwogICAgIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKQEAgLTIzMyw2ICsyMzQs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBhc3NSZWZQdHI8V2ViS2l0UG9pbnQ+
IHdlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlKE5vZGUqLCBjb25zdCBXZWJLaXRQb2lu
dCopIGNvbnN0OyAgICAgICAgCiAKICAgICAgICAgQ29uc29sZSogY29uc29sZSgpIGNvbnN0Owor
ICAgICAgICBQYWdlQ29uc29sZSogcGFnZUNvbnNvbGUoKSBjb25zdDsKIAogICAgICAgICB2b2lk
IHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBTdHJpbmcgY3Jvc3NE
b21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKaW5kZXggMjJmMzEyZmMzOWU5NDA5MzU5YWI4Y2ZiNGEzNDQwYWZlMTIwMjczMi4u
YTFiMTdkYjY2MTY1OTY2MzdiMTgyOGIxYWRjOWY3YWQ2MzA4YmQ2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1N0YXRlTm90aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBsdWdJ
bkNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKQEAgLTE3Niw2ICsxNzcsNyBAQCBQ
YWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9hbHRl
cm5hdGl2ZVRleHRDbGllbnQocGFnZUNsaWVudHMuYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KQogICAg
ICwgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQoZmFsc2UpCisgICAgLCBtX2NvbnNvbGUo
UGFnZUNvbnNvbGU6OmNyZWF0ZSh0aGlzKSkKIHsKICAgICBBU1NFUlQobV9lZGl0b3JDbGllbnQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDAxY2QxZGMzYzVmZDI0ZWUwMmYyOGIzODc2ZGViMjAwYzU0
ODU0ZjAuLjEyZjgyYTE0YTA1YzM2YjVmMGQ0OTQzOTIzNGIyZjE1YzQwNmI1M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC03NCw2ICs3NCw3IEBAIGNsYXNzIEluc3BlY3RvckNsaWVudDsKIGNsYXNzIElu
c3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBO
b2RlOworY2xhc3MgUGFnZUNvbnNvbGU7CiBjbGFzcyBQYWdlR3JvdXA7CiBjbGFzcyBQbHVnSW5D
bGllbnQ7CiBjbGFzcyBQbHVnaW5EYXRhOwpAQCAtMzc4LDYgKzM3OSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNhd01lZGlhRW5naW5lKGNvbnN0IFN0cmluZyYgZW5naW5lTmFtZSk7CiAgICAgdm9p
ZCByZXNldFNlZW5NZWRpYUVuZ2luZXMoKTsKIAorICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlKCkg
eyByZXR1cm4gbV9jb25zb2xlLmdldCgpOyB9CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC01MDAsNiArNTAyLDcgQEAg
cHJpdmF0ZToKICAgICBBbHRlcm5hdGl2ZVRleHRDbGllbnQqIG1fYWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50OwogCiAgICAgYm9vbCBtX3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZDsKKyAgICBPd25Q
dHI8UGFnZUNvbnNvbGU+IG1fY29uc29sZTsKIAogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5Q
bHVnaW5zOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5NZWRpYUVuZ2luZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5M2NhODJkMTk0MWQ4ZTg2NzZlNTQ1
YWMxMDZhYWE1ZGIzYmU5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25zb2xlLmNwcApAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJDb25zb2xlQVBJVHlwZXMuaCIKKyNpbmNsdWRl
ICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1
ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
U2NyaXB0QXJndW1lbnRzLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgorI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisj
aW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KKworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSB7CisgICAgaW50IG11dGVD
b3VudCA9IDA7Cit9CisKK1BhZ2VDb25zb2xlOjpQYWdlQ29uc29sZShQYWdlKiBwYWdlKSA6IG1f
cGFnZShwYWdlKSB7IH0KKworUGFnZUNvbnNvbGU6On5QYWdlQ29uc29sZSgpIHsgfQorCit2b2lk
IFBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUoY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCit7CisgICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgp
KSB7CisgICAgICAgIGlmIChsaW5lTnVtYmVyID4gMCkKKyAgICAgICAgICAgIHByaW50ZigiJXM6
JWQ6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpLCBsaW5lTnVtYmVyKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcHJpbnRmKCIlczogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIH0KK30KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQ
cmVmaXgoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCkKK3sKKyAgICBj
b25zdCBjaGFyKiBzb3VyY2VTdHJpbmc7CisgICAgc3dpdGNoIChzb3VyY2UpIHsKKyAgICBjYXNl
IFhNTE1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJYTUwiOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEpTTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5n
ID0gIkpTIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZToK
KyAgICAgICAgc291cmNlU3RyaW5nID0gIk5FVFdPUksiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIENvbnNvbGVBUElNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ09O
U09MRUFQSSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RvcmFnZU1lc3NhZ2VTb3VyY2U6
CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJTVE9SQUdFIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBBcHBDYWNoZU1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJBUFBD
QUNIRSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmVuZGVyaW5nTWVzc2FnZVNvdXJjZToK
KyAgICAgICAgc291cmNlU3RyaW5nID0gIlJFTkRFUklORyI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQ1NTTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkNTUyI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VjdXJpdHlNZXNzYWdlU291cmNlOgorICAgICAgICBz
b3VyY2VTdHJpbmcgPSAiU0VDVVJJVFkiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE90aGVy
TWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIk9USEVSIjsKKyAgICAgICAg
YnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHNvdXJjZVN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgY29uc3QgY2hhciogbGV2ZWxTdHJpbmc7CisgICAgc3dpdGNoIChsZXZlbCkgeworICAgIGNh
c2UgRGVidWdNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIkRFQlVHIjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2dNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3Ry
aW5nID0gIkxPRyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2FybmluZ01lc3NhZ2VMZXZl
bDoKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiV0FSTiI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRXJyb3JNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIkVSUk9SIjsKKyAg
ICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIGxldmVsU3RyaW5nID0gIlVOS05PV04iOworICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOworfQor
Cit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFN0cmluZyB1cmw7Cisg
ICAgaWYgKGRvY3VtZW50KQorICAgICAgICB1cmwgPSBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCk7
CisgICAgdW5zaWduZWQgbGluZSA9IDA7CisgICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LT5w
YXJzaW5nKCkgJiYgIWRvY3VtZW50LT5pc0luRG9jdW1lbnRXcml0ZSgpICYmIGRvY3VtZW50LT5z
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSkgeworICAgICAgICBTY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIqIHBhcnNlciA9IGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKTsKKyAg
ICAgICAgaWYgKCFwYXJzZXItPmlzV2FpdGluZ0ZvclNjcmlwdHMoKSAmJiAhcGFyc2VyLT5pc0V4
ZWN1dGluZ1NjcmlwdCgpKQorICAgICAgICAgICAgbGluZSA9IHBhcnNlci0+bGluZU51bWJlcigp
Lm9uZUJhc2VkSW50KCk7CisgICAgfQorICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVz
c2FnZSwgdXJsLCBsaW5lLCAwLCAwLCByZXF1ZXN0SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUGFn
ZUNvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y2FsbFN0YWNrKQoreworICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3Ry
aW5nKCksIDAsIGNhbGxTdGFjaywgMCk7Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OmFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3RhdGUqIHN0YXRlLCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQoreworICAgIGlmIChtdXRlQ291bnQgJiYgc291
cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaWYgKGNhbGxTdGFjaykKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVs
LCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBz
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBz
dGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpIHx8
IHBhZ2UtPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xl
KHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHVybCk7CisKKyAgICBpZiAoIXBh
Z2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkg
JiYgIXNob3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgICAgICByZXR1cm47CisKKyAgICBwcmlu
dFNvdXJjZVVSTEFuZExpbmUodXJsLCBsaW5lTnVtYmVyKTsKKyAgICBwcmludE1lc3NhZ2VTb3Vy
Y2VBbmRMZXZlbFByZWZpeChzb3VyY2UsIGxldmVsKTsKKworICAgIHByaW50ZigiICVzXG4iLCBt
ZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworfQorCisvLyBzdGF0aWMKK3ZvaWQgUGFnZUNvbnNvbGU6
Om11dGUoKQoreworICAgIG11dGVDb3VudCsrOworfQorCisvLyBzdGF0aWMKK3ZvaWQgUGFnZUNv
bnNvbGU6OnVubXV0ZSgpCit7CisgICAgQVNTRVJUKG11dGVDb3VudCA+IDApOworICAgIG11dGVD
b3VudC0tOworfQorCitzdGF0aWMgYm9vbCBwcmludEV4Y2VwdGlvbnMgPSBmYWxzZTsKKworYm9v
bCBQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkKK3sKKyAgICByZXR1cm4gcHJp
bnRFeGNlcHRpb25zOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2Vw
dGlvbnMoYm9vbCBwcmludCkKK3sKKyAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjY4YzA4OTI0MTJmYTE1YWQ1M2I5YmYwNWRiMTE1MjBlOWU5YWVjNDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmgKQEAgLTAsMCArMSw3MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBD
b21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBQYWdlQ29uc29sZV9oCisjZGVmaW5lIFBhZ2VDb25zb2xlX2gKKworI2luY2x1
ZGUgIkNvbnNvbGVUeXBlcy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1
ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50
OworY2xhc3MgUGFnZTsKKworY2xhc3MgUGFnZUNvbnNvbGUgeworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzT3duUHRyPFBhZ2VDb25zb2xlPiBjcmVhdGUoUGFnZSogcGFnZSkgeyByZXR1cm4gYWRv
cHRQdHIobmV3IFBhZ2VDb25zb2xlKHBhZ2UpKTsgfQorICAgIHZpcnR1YWwgflBhZ2VDb25zb2xl
KCk7CisKKyAgICBzdGF0aWMgdm9pZCBwcmludFNvdXJjZVVSTEFuZExpbmUoY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIpOworICAgIHN0YXRpYyB2b2lkIHByaW50
TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCk7
CisKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5l
TnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gPSAwLCBTY3JpcHRTdGF0ZSogPSAw
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CisgICAgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3VtZW50KiA9IDApOworCisgICAgc3RhdGljIHZv
aWQgbXV0ZSgpOworICAgIHN0YXRpYyB2b2lkIHVubXV0ZSgpOworCisgICAgc3RhdGljIGJvb2wg
c2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7CisgICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUHJpbnRF
eGNlcHRpb25zKGJvb2wpOworCitwcml2YXRlOgorICAgIFBhZ2VDb25zb2xlKFBhZ2UqKTsKKwor
ICAgIFBhZ2UqIHBhZ2UoKSB7IHJldHVybiBtX3BhZ2U7IH07CisKKyAgICBQYWdlKiBtX3BhZ2U7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQYWdlQ29uc29sZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAppbmRleCA1MDM4
MDJjN2ZlN2I1NmY1ZjcyZDE3ODNhYjdiYzMwY2I2NTgxYWRlLi45ZTZlYTk4ZTM4OWNmYTdlOTI3
NTE0YzY0NGIxMjJlM2FiNWM3YmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNM
VFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAKQEAgLTI3LDEwICsyNywxMSBAQAogI2luY2x1ZGUgIlhTTFRQcm9jZXNz
b3IuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ29u
c29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNv
bGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTgyLDcgKzgzLDcgQEAgdm9p
ZCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jKHZvaWQqLCBjb25zdCBjaGFyKiwgLi4u
KQogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKHZvaWQqIHVzZXJEYXRhLCB4
bWxFcnJvciogZXJyb3IpCiB7Ci0gICAgQ29uc29sZSogY29uc29sZSA9IHN0YXRpY19jYXN0PENv
bnNvbGUqPih1c2VyRGF0YSk7CisgICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2Fz
dDxQYWdlQ29uc29sZSo+KHVzZXJEYXRhKTsKICAgICBpZiAoIWNvbnNvbGUpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtMTM3LDkgKzEzOCwxMCBAQCBzdGF0aWMgeG1sRG9jUHRyIGRvY0xvYWRlckZ1
bmMoY29uc3QgeG1sQ2hhciogdXJpLAogICAgICAgICAgICAgZ2xvYmFsQ2FjaGVkUmVzb3VyY2VM
b2FkZXItPnByaW50QWNjZXNzRGVuaWVkTWVzc2FnZSh1cmwpOwogICAgICAgICB9CiAKLSAgICAg
ICAgQ29uc29sZSogY29uc29sZSA9IDA7Ci0gICAgICAgIGlmIChnbG9iYWxQcm9jZXNzb3ItPnhz
bFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICAgICAgY29u
c29sZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50KCkt
PmRvbVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAgICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0g
MDsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0
KCktPm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKTsKKyAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1l
LT5wYWdlKCkpCisgICAgICAgICAgICBjb25zb2xlID0gZnJhbWUtPnBhZ2UoKS0+Y29uc29sZSgp
OwogICAgICAgICB4bWxTZXRTdHJ1Y3R1cmVkRXJyb3JGdW5jKGNvbnNvbGUsIFhTTFRQcm9jZXNz
b3I6OnBhcnNlRXJyb3JGdW5jKTsKICAgICAgICAgeG1sU2V0R2VuZXJpY0Vycm9yRnVuYyhjb25z
b2xlLCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193261</attachid>
            <date>2013-03-15 02:26:34 -0700</date>
            <delta_ts>2013-03-15 03:53:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130315132229.patch</filename>
            <type>text/plain</type>
            <size>42419</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhhMWQ5NDZkYzk1ZDU5
ZGJhZmZkNTU4OTQ0OWEyYTMxNDgyODMwYi4uZWVlNTY2ODdhZTViODM0ZTAyYjA0Njc4MzVkMWM2
MjIyMTIzN2U0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAzLTE1ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkQ29u
c29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
Om11dGVDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0
ZUNvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjppbnRlcm5hbEFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChDb25zb2xlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhZ2VDb25zb2xlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3Nh
Z2VFdmVudFdpdGhPcmlnaW5DaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBy
aW50RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y29uc29sZSk6Cisg
ICAgICAgIChQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6flBhZ2VDb25zb2xlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJl
Zml4KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjptdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VD
b25zb2xlOjp1bm11dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnNob3VsZFBy
aW50RXhjZXB0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwYWdlKToKKyAgICAgICAgKiB4
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nl
c3Nvcjo6cGFyc2VFcnJvckZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6ZG9jTG9hZGVyRnVuYyk6
CisKIDIwMTMtMDMtMTUgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZsYW1lIENoYXJ0LiBXaGVuIHVzZXIgem9vbXMgdGhl
IGNoYXJ0LCB0aGUgcG9pbnQgdW5kZXIgY3Vyc29yIGhhcyB0byBiZSB0aGUgem9vbWluZyBjZW50
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDk2Yzk0M2Q4M2JiZDUyZTg4YWZjZTM3YWExMmMw
MzIyNjhmMDI2NmMuLmNlMjVlZTY5MmE2NzRkNmRlNjE5NDY5MzQxYWQ1ZmRmYzE5ZWI2MzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzg4LDYgKzE3ODgsNyBAQCBzZXQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50
cnkuY3BwCiAgICAgcGFnZS9QYWdlLmNwcAorICAgIHBhZ2UvUGFnZUNvbnNvbGUuY3BwCiAgICAg
cGFnZS9QYWdlR3JvdXAuY3BwCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCiAg
ICAgcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IDNkNGEwNzI1MzFmZjNkNzgxZTQ5MzYwNTJkNDE3OWE5MjE2N2MxYWMuLjc2YzE2MzU3MTM2
OWQ4ZGFjZDc1MWRmNTQxZWUyNzVkZTI0NTk3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQpAQCAtNDIzNiw2ICs0MjM2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25zb2xlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjZTY3ZDljNzJlYjU1MmRkMjkzMDExN2Zm
MzNkNmY4ZGVlMjBkZmFjLi43OWJkNDU4ZjYwNmRkNDA5YTVjMTRhZDU0MTYwYTRlOTk1YmMwM2Iw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKQEAgLTk0Nyw2ICs5NDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdl
L05hdmlnYXRvckJhc2UuY3BwIFwKICAgICBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCBcCiAg
ICAgcGFnZS9QYWdlLmNwcCBcCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAgXAogICAgIHBhZ2Uv
UGFnZUdyb3VwLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKICAg
ICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA5ZTA4
YTkzYjk1Yzk3NTJjNDNiYzQ5NTczYjk1NzExMWMxMzk4MWJlLi43OTllNWZlOTYwODZmNTliYmJl
ZjQ3OGQ0MzEzOTI5OTM0ZjY4NzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMjUyLDYgKzIyNTIs
NyBAQAogICAgICAgICAgICAgJ3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5j
cHAnLAorICAgICAgICAgICAgJ3BhZ2UvUGFnZUNvbnNvbGUuY3BwJywKICAgICAgICAgICAgICdw
YWdlL1BhZ2VHcm91cC5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVy
cmVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDdhMzUw
M2RiNzViYTJjMzlhZDU3ZWE2YWJhOGU0ZjRiYzkyMzdjNDMuLjg3OTJlZmJiNzQ1ZGI5ZTBjNWM2
NjY5MGU0MjZmZTc4OWE3MTkwMmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC0yNzU5MCw2ICsyNzU5MCwxNCBAQAogCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxQYWdlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlQ29uc29sZS5jcHAi
CisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2Vc
UGFnZUNvbnNvbGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIgogCQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDZiZTNmYWQ2ZWEzNzQ2ZGJlY2My
ZTdmNTNhZTgwNzE4YTJjN2VlNTcuLjg2MDY2MGY4MjI2NzU2MWM3OTEzZGY5ZTQ4MTdkZGVmMWVl
YWY5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtMjk5Miw2ICsyOTkyLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcTmF2aWdhdG9yQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdl
XE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VDb25z
b2xlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwTG9hZERlZmVy
cmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZVNlcmlhbGl6
ZXIuY3BwIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDEzNjMyMWFiY2RmYTViY2Q5ZDJhYzUwOTRiY2Y0
YmZhMWIxOGUyYzcuLjkwNDllY2Q0MTJlOThmMGMxMjU2Yzc0MTFjNzEyNzE0NDMwODg2ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qLmZpbHRlcnMKQEAgLTY2OTYsNiArNjY5Niw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXFBhZ2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uc29sZS5j
cHAiPgorICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAiPgogICAgICAgPEZpbHRl
cj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzc4MWUzNTI1N2QwZmY0MGIw
YWExZjI4ZmY4ODJkMDFkOTk2OTU2Ni4uYjc5NjA2MzkzNjFhMzhhZmUzNjA2ODQ5MTMwZDI4YTUw
NmQ2NGM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNjE1Myw2ICs2MTUzLDggQEAKIAkJRDc2MTNBNTAxNDc0RjEzRjAwREI4
NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBENzYxM0E0RTE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRG
bG93LmNwcCAqLzsgfTsKIAkJRDc2MTNBQzQxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFt
ZWRGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQ3NjEzQUMyMTQ3NTNFNTYwMERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgKi87IH07
CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAv
KiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFBQ0IzRDkxNkYyNDE2NDAw
NjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLzsgfTsKKwkJREFFRDIwMzExNkYyNDQ0ODAwNzBF
QzBGIC8qIFBhZ2VDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAqLzsg
fTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5
MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07CiAJCURC
MjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUwOEQyOTAw
MjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CiAJCUREMDVGRTBEMEI4QkEz
QzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQwNUZFMEIwQjhCQTNDNjAwOUFDREZFIC8qIFdlYkNv
cmVPYmpDRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTEzODYzLDYgKzEzODY1LDggQEAKIAkJRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2
IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRDc2MTNBQzMxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29s
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ29uc29sZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0RBMTZGMjQxNjQwMDY2NjEz
NSAvKiBQYWdlQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdl
Q29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5
MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRl
bnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERDA1RkUwQjBCOEJB
M0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvcmVPYmpDRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjQ4MCw2ICsxNjQ4NCw4IEBACiAJCQkJOTc1Q0EyODcxMzAzNjVGODAwRTk5QUQ5
IC8qIENyeXB0by5jcHAgKi8sCiAJCQkJOTc1Q0EyODgxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0
by5oICovLAogCQkJCTk3NUNBMjg5MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaWRsICovLAor
CQkJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi8sCisJCQkJ
REFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi8sCiAJCQkJQ0NDMkI1
MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovLAogCQkJCUNDQzJCNTExMTVG
NjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywKIAkJCQlDQ0MyQjUxMjE1
RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovLApAQCAtMjY3NjcsNiArMjY3
NzMsNyBAQAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRl
bGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAv
KiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTk3NSw2ICsyOTk4Miw3IEBACiAJ
CQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxlZ2F0ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1Bv
bGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREFFRDIwMzAxNkYyNDQyQjAwNzBFQzBGIC8qIFBh
Z2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCmluZGV4IGE5YjM0YTY1NmM4
ZmZlYTFlNzllMWNkZTZmNzZmOGY2MGQ0Nzk4NGIuLmI2ZTk3ZTk5MTQxMzZhOGM0Yjg5NjM1ZTQ5
YmVjMjNhMzY2ODhjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTI2LDEyICsyNiwxMyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNp
bmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1
c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KIApAQCAtNzcsOCArNzgsOSBAQCBTdHJp
bmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJp
bmcmIHByZWZpeCkKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7CiAgICAgICAg
IGNhbGxUeXBlID0gbV9jdXN0b21SZXNvbHZlci0+bWV0aG9kVGFibGUoKS0+Z2V0Q2FsbERhdGEo
bV9jdXN0b21SZXNvbHZlci5nZXQoKSwgY2FsbERhdGEpOwogICAgICAgICBpZiAoY2FsbFR5cGUg
PT0gQ2FsbFR5cGVOb25lKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogUGFzcyBhY3R1YWwgbGlu
ZSBudW1iZXIgYW5kIHNvdXJjZSBVUkwuCi0gICAgICAgICAgICBtX2dsb2JhbE9iamVjdC0+aW1w
bCgpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJ
IG1ldGhvZC4iKTsKKyAgICAgICAgICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gbV9nbG9iYWxP
YmplY3QtPmltcGwoKS0+cGFnZUNvbnNvbGUoKTsKKyAgICAgICAgICAgIGlmIChjb25zb2xlKQor
ICAgICAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFt
ZXNwYWNlVVJJIG1ldGhvZC4iKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAg
ICAgfQogICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcAppbmRleCBiOTU0ZmZlZDFlZDM2OGRkZWM3MmZiMTJmM2YyYjdkODgx
Yzk1YTE0Li5jYWUzNDg5YjVkMDBmODk2Yzg3MDA1NTY0OWZmNzU2Y2Y5YWVhNjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTMwLDggKzMwLDEwIEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1ZGUgIkNv
bnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC02OSw3ICs3MSw5IEBAIFN0cmluZyBWOEN1c3Rv
bVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4
KQogICAgIH0KIAogICAgIGlmIChsb29rdXBOYW1lc3BhY2VVUklGdW5jLklzRW1wdHkoKSAmJiAh
bV9yZXNvbHZlci0+SXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIGFjdGl2ZURPTVdpbmRvdyhCaW5k
aW5nU3RhdGU6Omluc3RhbmNlKCkpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEg
bG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKTsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gYWN0
aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSktPmZyYW1lKCk7CisgICAgICAg
IGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+
Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWws
ICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRo
b2QuIik7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDMwMTgzYzI2YTUzNDVhYTk3OTY4OTg3ODg0Y2ZlYzU0OWRjZDRjNGYuLjg1
NDc0NTQ0ZTY4NjY0OWVlMWIxZmQ4ZmFjYjRjZmNlNGNjYWY5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMTI1LDYgKzEyNSw3IEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgog
I2luY2x1ZGUgIk5vZGVXaXRoSW5kZXguaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
UGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJh
bnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCkBAIC00
ODE0LDEwICs0ODE1LDkgQEAgdm9pZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0g
ICAgICAgIGlmIChDb25zb2xlKiBjb25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAg
ICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJ
ZGVudGlmaWVyLCB0aGlzKTsKLSAgICB9CisgICAgUGFnZSogcCA9IHBhZ2UoKTsKKyAgICBpZiAo
cCkKKyAgICAgICAgcC0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3Nh
Z2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlzKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6YWRkTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3Rh
dGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCkBAIC00ODI3LDEwICs0ODI3LDkg
QEAgdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0gICAgICAgIGlmIChDb25z
b2xlKiBjb25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5h
ZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwg
Y2FsbFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIH0KKyAgICBQYWdlKiBw
ID0gcGFnZSgpOworICAgIGlmIChwKQorICAgICAgICBwLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ss
IHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CiB9CiAKIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBE
b2N1bWVudDo6dG9wT3JpZ2luKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZURlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDE2MjIyZWU2NTFkNzZhMDQ2OTU0YjdmYmFlNTFj
OGJmZGIwMDI3ZjcuLjIwMGZiMmNmNzQ1NjBiNTVjNTdiOTRmMTE4YTY0ZGNkZDZjMGZlNzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApAQCAt
MzQsMTEgKzM0LDExIEBACiAKICNpbmNsdWRlICJQYWdlRGVidWdnZXJBZ2VudC5oIgogCi0jaW5j
bHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rvck92ZXJsYXkuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JQYWdlQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAi
UGFnZVNjcmlwdERlYnVnU2VydmVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg4LDEy
ICs4OCwxMiBAQCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXImIFBhZ2VEZWJ1Z2dlckFnZW50OjpzY3Jp
cHREZWJ1Z1NlcnZlcigpCiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6Om11dGVDb25zb2xlKCkK
IHsKLSAgICBDb25zb2xlOjptdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6Om11dGUoKTsKIH0KIAog
dm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29sZTo6
dW5tdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6OnVubXV0ZSgpOwogfQogCiBJbmplY3RlZFNjcmlw
dCBQYWdlRGVidWdnZXJBZ2VudDo6aW5qZWN0ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBl
cnJvclN0cmluZywgY29uc3QgaW50KiBleGVjdXRpb25Db250ZXh0SWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKaW5kZXggNzdiNDBmYTMxMmE3YTRm
MzFjNjM3MzJmZDM3NjRlMDg5ZjgxNzI2ZS4uYTg0MzFiYTBmYTc4Y2M4NDE1Yjg0NGMyMjNlMWIw
MzRlYjJlOTY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAjaW5jbHVkZSAiUGFnZVJ1bnRpbWVBZ2VudC5o
IgogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdE1hbmFnZXIuaCIK
QEAgLTQyLDYgKzQxLDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JTdGF0ZS5oIgogI2luY2x1ZGUg
Ikluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiB1c2luZyBXZWJDb3Jl
OjpUeXBlQnVpbGRlcjo6UnVudGltZTo6RXhlY3V0aW9uQ29udGV4dERlc2NyaXB0aW9uOwpAQCAt
MTQ4LDEyICsxNDgsMTIgQEAgSW5qZWN0ZWRTY3JpcHQgUGFnZVJ1bnRpbWVBZ2VudDo6aW5qZWN0
ZWRTY3JpcHRGb3JFdmFsKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywKIAogdm9pZCBQYWdlUnVu
dGltZUFnZW50OjptdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgpOworICAgIFBh
Z2VDb25zb2xlOjptdXRlKCk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29u
c29sZSgpCiB7Ci0gICAgQ29uc29sZTo6dW5tdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6OnVubXV0
ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnJlcG9ydEV4ZWN1dGlvbkNvbnRleHRD
cmVhdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAppbmRleCBlYTUzN2M0ZmIyMDkwZDQwMTBj
ZjBhZjYwNjlkYzA5YTIyM2IwZDlhLi42NWMzNmZhMDQxY2U0NTBhZDk4ZWQwNWRhZDNjYTMxMDVh
MDk4ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VH
cm91cC5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFjay5oIgpAQCAtNjEsMTAgKzYyLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1u
YW1lc3BhY2UgewotICAgIGludCBtdXRlQ291bnQgPSAwOwotfQotCiBDb25zb2xlOjpDb25zb2xl
KEZyYW1lKiBmcmFtZSkKICAgICA6IERPTVdpbmRvd1Byb3BlcnR5KGZyYW1lKQogewpAQCAtNzQs
MTI2ICs3MSw2IEBAIENvbnNvbGU6On5Db25zb2xlKCkKIHsKIH0KIAotc3RhdGljIHZvaWQgcHJp
bnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5l
TnVtYmVyKQotewotICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAo
bGluZU51bWJlciA+IDApCi0gICAgICAgICAgICBwcmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwu
dXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBy
aW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsKLSAgICB9Ci19Ci0KLXN0YXRp
YyB2b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCi17Ci0gICAgY29uc3QgY2hhciogc291cmNlU3RyaW5n
OwotICAgIHN3aXRjaCAoc291cmNlKSB7Ci0gICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgotICAg
ICAgICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBKU01l
c3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJKUyI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJORVRXT1JLIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNv
dXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNPTEVBUEkiOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIFN0b3JhZ2VNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcg
PSAiU1RPUkFHRSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291
cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQVBQQ0FDSEUiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIFJlbmRlcmluZ01lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJSRU5ERVJJTkciOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6
Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJDU1MiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFNlY3VyaXR5TWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VSSVRZ
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6Ci0gICAgICAg
IHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiVU5L
Tk9XTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGNvbnN0IGNoYXIqIGxldmVsU3Ry
aW5nOwotICAgIHN3aXRjaCAobGV2ZWwpIHsKLSAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVsOgot
ICAgICAgICBsZXZlbFN0cmluZyA9ICJERUJVRyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
TG9nTWVzc2FnZUxldmVsOgotICAgICAgICBsZXZlbFN0cmluZyA9ICJMT0ciOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIFdhcm5pbmdNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5n
ID0gIldBUk4iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgot
ICAgICAgICBsZXZlbFN0cmluZyA9ICJFUlJPUiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBsZXZlbFN0cmluZyA9
ICJVTktOT1dOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcHJpbnRmKCIlcyAlczoi
LCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKLX0KLQotdm9pZCBDb25zb2xlOjphZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgRG9jdW1lbnQqIGRv
Y3VtZW50KQotewotICAgIFN0cmluZyB1cmw7Ci0gICAgaWYgKGRvY3VtZW50KQotICAgICAgICB1
cmwgPSBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCk7Ci0gICAgdW5zaWduZWQgbGluZSA9IDA7Ci0g
ICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LT5wYXJzaW5nKCkgJiYgIWRvY3VtZW50LT5pc0lu
RG9jdW1lbnRXcml0ZSgpICYmIGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSkg
ewotICAgICAgICBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRvY3VtZW50LT5z
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKTsKLSAgICAgICAgaWYgKCFwYXJzZXItPmlzV2FpdGlu
Z0ZvclNjcmlwdHMoKSAmJiAhcGFyc2VyLT5pc0V4ZWN1dGluZ1NjcmlwdCgpKQotICAgICAgICAg
ICAgbGluZSA9IHBhcnNlci0+bGluZU51bWJlcigpLm9uZUJhc2VkSW50KCk7Ci0gICAgfQotICAg
IGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCAwLCAwLCByZXF1
ZXN0SWRlbnRpZmllcik7Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2spCi17Ci0gICAgYWRkTWVzc2FnZShz
b3VyY2UsIGxldmVsLCBtZXNzYWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrLCAwKTsKLX0KLQot
dm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNj
cmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKLXsKLSAg
ICBpZiAobXV0ZUNvdW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKLSAgICBpZiAo
IXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChjYWxsU3RhY2spCi0gICAgICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRp
Zmllcik7Ci0gICAgZWxzZQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1l
c3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3Nh
Z2UsIHVybCwgbGluZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKLQotICAgIGlm
ICghbV9mcmFtZS0+c2V0dGluZ3MoKSB8fCBtX2ZyYW1lLT5zZXR0aW5ncygpLT5wcml2YXRlQnJv
d3NpbmdFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPmNocm9tZSgpLT5j
bGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5l
TnVtYmVyLCB1cmwpOwotCi0gICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQcmludEV4Y2VwdGlvbnMo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKHVybCwgbGlu
ZU51bWJlcik7Ci0gICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoc291cmNlLCBs
ZXZlbCk7Ci0KLSAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLX0K
LQogc3RhdGljIHZvaWQgaW50ZXJuYWxBZGRNZXNzYWdlKFBhZ2UqIHBhZ2UsIE1lc3NhZ2VUeXBl
IHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgU2NyaXB0U3RhdGUqIHN0YXRlLCBQYXNzUmVmUHRy
PFNjcmlwdEFyZ3VtZW50cz4gcHJwQXJndW1lbnRzLCBib29sIGFjY2VwdE5vQXJndW1lbnRzID0g
ZmFsc2UsIGJvb2wgcHJpbnRUcmFjZSA9IGZhbHNlKQogewogICAgIFJlZlB0cjxTY3JpcHRBcmd1
bWVudHM+IGFyZ3VtZW50cyA9IHBycEFyZ3VtZW50czsKQEAgLTIxOCwxMSArOTUsMTEgQEAgc3Rh
dGljIHZvaWQgaW50ZXJuYWxBZGRNZXNzYWdlKFBhZ2UqIHBhZ2UsIE1lc3NhZ2VUeXBlIHR5cGUs
IE1lc3NhZ2VMZXZlbCBsZXZlbCwKICAgICBpZiAoZ290TWVzc2FnZSkKICAgICAgICAgcGFnZS0+
Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCksIGxh
c3RDYWxsZXIuc291cmNlVVJMKCkpOwogCi0gICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5sb2dz
UGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFDb25zb2xlOjpzaG91bGRQ
cmludEV4Y2VwdGlvbnMoKSkKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVz
c2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIVBhZ2VDb25zb2xlOjpzaG91bGRQcmlu
dEV4Y2VwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpbnRTb3VyY2VVUkxBbmRM
aW5lKGxhc3RDYWxsZXIuc291cmNlVVJMKCksIGxhc3RDYWxsZXIubGluZU51bWJlcigpKTsKLSAg
ICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChDb25zb2xlQVBJTWVzc2FnZVNvdXJj
ZSwgbGV2ZWwpOworICAgIFBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUobGFzdENh
bGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkpOworICAgIFBhZ2VDb25z
b2xlOjpwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChDb25zb2xlQVBJTWVzc2FnZVNv
dXJjZSwgbGV2ZWwpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMtPmFy
Z3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAgICAgIFN0cmluZyBhcmdBc1N0cmluZyA9IGFyZ3Vt
ZW50cy0+YXJndW1lbnRBdChpKS50b1N0cmluZyhhcmd1bWVudHMtPmdsb2JhbFN0YXRlKCkpOwpA
QCAtMzg4LDE5ICsyNjUsNiBAQCB2b2lkIENvbnNvbGU6Omdyb3VwRW5kKCkKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSgpLCBDb25zb2xlQVBJ
TWVzc2FnZVNvdXJjZSwgRW5kR3JvdXBNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBTdHJp
bmcoKSwgU3RyaW5nKCksIDApOwogfQogCi0vLyBzdGF0aWMKLXZvaWQgQ29uc29sZTo6bXV0ZSgp
Ci17Ci0gICAgbXV0ZUNvdW50Kys7Ci19Ci0KLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjp1bm11
dGUoKQotewotICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKLSAgICBtdXRlQ291bnQtLTsKLX0K
LQogUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25zdAogewogICAg
IC8vIEZJWE1FOiBCZWNhdXNlIHdlIGNyZWF0ZSBhIG5ldyBvYmplY3QgaGVyZSBlYWNoIHRpbWUs
CkBAIC00MDgsMTggKzI3Miw2IEBAIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gQ29uc29sZTo6bWVt
b3J5KCkgY29uc3QKICAgICByZXR1cm4gTWVtb3J5SW5mbzo6Y3JlYXRlKG1fZnJhbWUpOwogfQog
Ci1zdGF0aWMgYm9vbCBwcmludEV4Y2VwdGlvbnMgPSBmYWxzZTsKLQotYm9vbCBDb25zb2xlOjpz
aG91bGRQcmludEV4Y2VwdGlvbnMoKQotewotICAgIHJldHVybiBwcmludEV4Y2VwdGlvbnM7Ci19
Ci0KLXZvaWQgQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wgcHJpbnQpCi17
Ci0gICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Ci19Ci0KIFBhZ2UqIENvbnNvbGU6OnBhZ2Uo
KSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKaW5kZXggYTlh
NWQyNzQ0NTQ1ZDhiODc4OTNjNzg2MjRkMjE4MzllYzVmYzQyZi4uZmM3ZmE3ZDk0YWExNzVlNjBj
YTc1NjNlYjA1MmMzOTQwYTJiYTE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b25zb2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKQEAgLTI5LDEwICsy
OSw3IEBACiAjaWZuZGVmIENvbnNvbGVfaAogI2RlZmluZSBDb25zb2xlX2gKIAotI2luY2x1ZGUg
IkNvbnNvbGVBUElUeXBlcy5oIgotI2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvd1Byb3BlcnR5LmgiCi0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5j
bHVkZSAiU2NyaXB0UHJvZmlsZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC00MiwxMiArMzksMTAgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgTWVtb3J5SW5m
bzsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBTY3JpcHRBcmd1bWVudHM7Ci1jbGFzcyBTY3JpcHRDYWxs
U3RhY2s7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHR5cGVkZWYgVmVjdG9y
PFJlZlB0cjxTY3JpcHRQcm9maWxlPiA+IFByb2ZpbGVzQXJyYXk7CkBAIC01OCwxMCArNTMsNiBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29uc29sZT4gY3JlYXRlKEZyYW1lKiBm
cmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENvbnNvbGUoZnJhbWUpKTsgfQogICAgIHZpcnR1
YWwgfkNvbnNvbGUoKTsKIAotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDAsIFNj
cmlwdFN0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKLSAg
ICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBhZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCwgRG9jdW1lbnQqID0gMCk7Ci0K
ICAgICB2b2lkIGRlYnVnKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+
KTsKICAgICB2b2lkIGVycm9yKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+KTsKICAgICB2b2lkIGluZm8oU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4pOwpAQCAtOTYsNyArODcsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxNZW1vcnlJ
bmZvPiBtZW1vcnkoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICBpbmxpbmUgUGFnZSogcGFnZSgp
IGNvbnN0OworICAgIFBhZ2UqIHBhZ2UoKSBjb25zdDsKIAogICAgIGV4cGxpY2l0IENvbnNvbGUo
RnJhbWUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDliMDE1OTUxNjA1Y2E1
ZjZiMTg5MjFmYzFiMTFjYjhlOGU3ZTk4NTQuLmRjMmE4MGVhMTNlM2M3NjYzOTRmNWYzOTQxMzNj
MDY5YTJjZTJiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTc1LDYgKzc1LDcg
QEAKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdl
R3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiUGVy
Zm9ybWFuY2UuaCIKQEAgLTY5NCw2ICs2OTUsMTMgQEAgQ29uc29sZSogRE9NV2luZG93Ojpjb25z
b2xlKCkgY29uc3QKICAgICByZXR1cm4gbV9jb25zb2xlLmdldCgpOwogfQogCitQYWdlQ29uc29s
ZSogRE9NV2luZG93OjpwYWdlQ29uc29sZSgpIGNvbnN0Cit7CisgICAgaWYgKCFpc0N1cnJlbnRs
eURpc3BsYXllZEluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG1fZnJh
bWUtPnBhZ2UoKSA/IG1fZnJhbWUtPnBhZ2UoKS0+Y29uc29sZSgpIDogMDsKK30KKwogRE9NQXBw
bGljYXRpb25DYWNoZSogRE9NV2luZG93OjphcHBsaWNhdGlvbkNhY2hlKCkgY29uc3QKIHsKICAg
ICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQpAQCAtODg0LDcgKzg5Miw3IEBA
IHZvaWQgRE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1
cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnCiAgICAgICAgIGlmICghaW50ZW5kZWRUYXJnZXRPcmln
aW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7
CiAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRv
ICIgKyBpbnRlbmRlZFRhcmdldE9yaWdpbi0+dG9TdHJpbmcoKSArCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIgKyBkb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLT50b1N0cmluZygpICsgIi5cbiI7Ci0gICAgICAgICAgICBjb25zb2xlKCkt
PmFkZE1lc3NhZ2UoU2VjdXJpdHlNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVz
c2FnZSwgc3RhY2tUcmFjZSk7CisgICAgICAgICAgICBwYWdlQ29uc29sZSgpLT5hZGRNZXNzYWdl
KFNlY3VyaXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNr
VHJhY2UpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMTc5OCw3
ICsxODA2LDcgQEAgdm9pZCBET01XaW5kb3c6OnByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKICAgICBpZiAobWVzc2FnZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlKTsKKyAgICBwYWdlQ29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwogfQogCiBTdHJpbmcgRE9NV2lu
ZG93Ojpjcm9zc0RvbWFpbkFjY2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRv
dykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4IDRiNzY0MzgwOTRkMTYwZmFkNjJmZGUxM2Fi
NDgxNDZmMWRkYjFiOTEuLjA3OTBlZTg5OGZlNDNlMGY4YzE2Nzc5Mjc5ZmRhM2NkMmQ5NmFiMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgTmF2aWdhdG9yOwogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3Mg
UGFnZTsKKyAgICBjbGFzcyBQYWdlQ29uc29sZTsKICAgICBjbGFzcyBQZXJmb3JtYW5jZTsKICAg
ICBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyOwogICAgIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKQEAg
LTIzMyw2ICsyMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFBhc3NSZWZQdHI8
V2ViS2l0UG9pbnQ+IHdlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlKE5vZGUqLCBjb25z
dCBXZWJLaXRQb2ludCopIGNvbnN0OyAgICAgICAgCiAKICAgICAgICAgQ29uc29sZSogY29uc29s
ZSgpIGNvbnN0OworICAgICAgICBQYWdlQ29uc29sZSogcGFnZUNvbnNvbGUoKSBjb25zdDsKIAog
ICAgICAgICB2b2lkIHByaW50RXJyb3JNZXNzYWdlKGNvbnN0IFN0cmluZyYpOwogICAgICAgICBT
dHJpbmcgY3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5k
b3cpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZDNiZGIwZTJjNjc2ZGZlZjU3YzA3Yzk2OGJkYzVm
NjMwYjlhMDlmZC4uNDliMjRjZGNkN2E0MTVmZDRlZGYyY2U0ZGE3NmYyNjYzNDVhMjNhNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1N0YXRlTm90aWZpZXIuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUu
aCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2lu
Y2x1ZGUgIlBsdWdJbkNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKQEAgLTE3Niw2
ICsxNzcsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykKICNlbmRpZgog
ICAgICwgbV9hbHRlcm5hdGl2ZVRleHRDbGllbnQocGFnZUNsaWVudHMuYWx0ZXJuYXRpdmVUZXh0
Q2xpZW50KQogICAgICwgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQoZmFsc2UpCisgICAg
LCBtX2NvbnNvbGUoUGFnZUNvbnNvbGU6OmNyZWF0ZSh0aGlzKSkKIHsKICAgICBBU1NFUlQobV9l
ZGl0b3JDbGllbnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGMwYzczMTg3YjZiODI1NTY2OWRjMjcz
Mzc2YmI2MjBjMjg5NGI5NWQuLjkxZmI5ZWEwY2VkMTQxMTZjOWExYmNmYWM3ZjQxNTI5NGU5Y2Ni
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC03NCw2ICs3NCw3IEBAIGNsYXNzIEluc3BlY3RvckNsaWVu
dDsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVu
ZXI7CiBjbGFzcyBOb2RlOworY2xhc3MgUGFnZUNvbnNvbGU7CiBjbGFzcyBQYWdlR3JvdXA7CiBj
bGFzcyBQbHVnSW5DbGllbnQ7CiBjbGFzcyBQbHVnaW5EYXRhOwpAQCAtMzc4LDYgKzM3OSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNhd01lZGlhRW5naW5lKGNvbnN0IFN0cmluZyYgZW5naW5lTmFt
ZSk7CiAgICAgdm9pZCByZXNldFNlZW5NZWRpYUVuZ2luZXMoKTsKIAorICAgIFBhZ2VDb25zb2xl
KiBjb25zb2xlKCkgeyByZXR1cm4gbV9jb25zb2xlLmdldCgpOyB9CiAgICAgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCkBAIC01MDQsNiArNTA2LDcgQEAgcHJpdmF0ZToKICAgICBBbHRlcm5hdGl2ZVRleHRD
bGllbnQqIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50OwogCiAgICAgYm9vbCBtX3NjcmlwdGVkQW5p
bWF0aW9uc1N1c3BlbmRlZDsKKyAgICBPd25QdHI8UGFnZUNvbnNvbGU+IG1fY29uc29sZTsKIAog
ICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5QbHVnaW5zOwogICAgIEhhc2hTZXQ8U3RyaW5nPiBt
X3NlZW5NZWRpYUVuZ2luZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE5M2NhODJkMTk0MWQ4ZTg2NzZlNTQ1YWMxMDZhYWE1ZGIzYmU5NmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApAQCAtMCwwICsxLDIx
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCisKKyNp
bmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJD
b25zb2xlQVBJVHlwZXMuaCIKKyNpbmNsdWRlICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29uc29s
ZUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCisjaW5jbHVkZSAi
U2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgor
I2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1
ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lmIFBMQVRGT1JNKENIUk9NSVVNKQor
I2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K25hbWVzcGFjZSB7CisgICAgaW50IG11dGVDb3VudCA9IDA7Cit9CisKK1BhZ2VDb25zb2xlOjpQ
YWdlQ29uc29sZShQYWdlKiBwYWdlKSA6IG1fcGFnZShwYWdlKSB7IH0KKworUGFnZUNvbnNvbGU6
On5QYWdlQ29uc29sZSgpIHsgfQorCit2b2lkIFBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFu
ZExpbmUoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCit7Cisg
ICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChsaW5lTnVtYmVyID4g
MCkKKyAgICAgICAgICAgIHByaW50ZigiJXM6JWQ6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgp
LCBsaW5lTnVtYmVyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJpbnRmKCIlczogIiwg
c291cmNlVVJMLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KK30KKwordm9pZCBQYWdlQ29uc29sZTo6
cHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1l
c3NhZ2VMZXZlbCBsZXZlbCkKK3sKKyAgICBjb25zdCBjaGFyKiBzb3VyY2VTdHJpbmc7CisgICAg
c3dpdGNoIChzb3VyY2UpIHsKKyAgICBjYXNlIFhNTE1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNv
dXJjZVN0cmluZyA9ICJYTUwiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEpTTWVzc2FnZVNv
dXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkpTIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIk5FVFdP
UksiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbnNvbGVBUElNZXNzYWdlU291cmNlOgor
ICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ09OU09MRUFQSSI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgU3RvcmFnZU1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJTVE9S
QUdFIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBcHBDYWNoZU1lc3NhZ2VTb3VyY2U6Cisg
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJBUFBDQUNIRSI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUmVuZGVyaW5nTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlJFTkRF
UklORyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTTWVzc2FnZVNvdXJjZToKKyAgICAg
ICAgc291cmNlU3RyaW5nID0gIkNTUyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU2VjdXJp
dHlNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU0VDVVJJVFkiOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNl
U3RyaW5nID0gIk9USEVSIjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJVTktOT1dOIjsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgY29uc3QgY2hhciogbGV2ZWxTdHJpbmc7Cisg
ICAgc3dpdGNoIChsZXZlbCkgeworICAgIGNhc2UgRGVidWdNZXNzYWdlTGV2ZWw6CisgICAgICAg
IGxldmVsU3RyaW5nID0gIkRFQlVHIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMb2dNZXNz
YWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIkxPRyI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2FybmluZ01lc3NhZ2VMZXZlbDoKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiV0FS
TiI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRXJyb3JNZXNzYWdlTGV2ZWw6CisgICAgICAg
IGxldmVsU3RyaW5nID0gIkVSUk9SIjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGxldmVsU3RyaW5nID0gIlVOS05P
V04iOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBwcmludGYoIiVzICVzOiIsIHNvdXJj
ZVN0cmluZywgbGV2ZWxTdHJpbmcpOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQoreworICAgIFN0cmluZyB1cmw7CisgICAgaWYgKGRvY3VtZW50KQorICAgICAgICB1cmwg
PSBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCk7CisgICAgdW5zaWduZWQgbGluZSA9IDA7CisgICAg
aWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LT5wYXJzaW5nKCkgJiYgIWRvY3VtZW50LT5pc0luRG9j
dW1lbnRXcml0ZSgpICYmIGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSkgewor
ICAgICAgICBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRvY3VtZW50LT5zY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIoKTsKKyAgICAgICAgaWYgKCFwYXJzZXItPmlzV2FpdGluZ0Zv
clNjcmlwdHMoKSAmJiAhcGFyc2VyLT5pc0V4ZWN1dGluZ1NjcmlwdCgpKQorICAgICAgICAgICAg
bGluZSA9IHBhcnNlci0+bGluZU51bWJlcigpLm9uZUJhc2VkSW50KCk7CisgICAgfQorICAgIGFk
ZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lLCAwLCAwLCByZXF1ZXN0
SWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQoreworICAgIGFkZE1lc3NhZ2Uo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7Cit9CisK
K3ZvaWQgUGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwg
dW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aywgU2NyaXB0U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQor
eworICAgIGlmIChtdXRlQ291bnQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNl
KQorICAgICAgICByZXR1cm47CisKKyAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNhbGxTdGFjaykKKyAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwg
bWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOworCisg
ICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpIHx8IHBhZ2UtPnNldHRpbmdzKCktPnByaXZhdGVCcm93
c2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+Y2hyb21lKCktPmNs
aWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVO
dW1iZXIsIHVybCk7CisKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2Fn
ZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIXNob3VsZFByaW50RXhjZXB0aW9ucygpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBwcmludFNvdXJjZVVSTEFuZExpbmUodXJsLCBsaW5lTnVt
YmVyKTsKKyAgICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChzb3VyY2UsIGxldmVs
KTsKKworICAgIHByaW50ZigiICVzXG4iLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOworfQorCisv
LyBzdGF0aWMKK3ZvaWQgUGFnZUNvbnNvbGU6Om11dGUoKQoreworICAgIG11dGVDb3VudCsrOwor
fQorCisvLyBzdGF0aWMKK3ZvaWQgUGFnZUNvbnNvbGU6OnVubXV0ZSgpCit7CisgICAgQVNTRVJU
KG11dGVDb3VudCA+IDApOworICAgIG11dGVDb3VudC0tOworfQorCitzdGF0aWMgYm9vbCBwcmlu
dEV4Y2VwdGlvbnMgPSBmYWxzZTsKKworYm9vbCBQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNl
cHRpb25zKCkKK3sKKyAgICByZXR1cm4gcHJpbnRFeGNlcHRpb25zOworfQorCit2b2lkIFBhZ2VD
b25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmludCkKK3sKKyAgICBwcmlu
dEV4Y2VwdGlvbnMgPSBwcmludDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uc29sZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4YzA4OTI0MTJmYTE1YWQ1M2I5YmYwNWRi
MTE1MjBlOWU5YWVjNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlQ29uc29sZV9oCisjZGVm
aW5lIFBhZ2VDb25zb2xlX2gKKworI2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgorI2luY2x1ZGUg
IlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgUGFnZUNv
bnNvbGUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhZ2VDb25zb2xlPiBjcmVh
dGUoUGFnZSogcGFnZSkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFBhZ2VDb25zb2xlKHBhZ2UpKTsg
fQorICAgIHZpcnR1YWwgflBhZ2VDb25zb2xlKCk7CisKKyAgICBzdGF0aWMgdm9pZCBwcmludFNv
dXJjZVVSTEFuZExpbmUoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIpOworICAgIHN0YXRpYyB2b2lkIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCk7CisKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxT
dGFjaz4gPSAwLCBTY3JpcHRTdGF0ZSogPSAwLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyID0gMCk7CisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pOwor
ICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3Vt
ZW50KiA9IDApOworCisgICAgc3RhdGljIHZvaWQgbXV0ZSgpOworICAgIHN0YXRpYyB2b2lkIHVu
bXV0ZSgpOworCisgICAgc3RhdGljIGJvb2wgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7CisgICAg
c3RhdGljIHZvaWQgc2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wpOworCitwcml2YXRlOgor
ICAgIFBhZ2VDb25zb2xlKFBhZ2UqKTsKKworICAgIFBhZ2UqIHBhZ2UoKSB7IHJldHVybiBtX3Bh
Z2U7IH07CisKKyAgICBQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBQYWdlQ29uc29sZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9j
ZXNzb3JMaWJ4c2x0LmNwcAppbmRleCA1MDM4MDJjN2ZlN2I1NmY1ZjcyZDE3ODNhYjdiYzMwY2I2
NTgxYWRlLi45ZTZlYTk4ZTM4OWNmYTdlOTI3NTE0YzY0NGIxMjJlM2FiNWM3YmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKQEAgLTI3LDEwICsyNywx
MSBAQAogI2luY2x1ZGUgIlhTTFRQcm9jZXNzb3IuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9y
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKQEAgLTgyLDcgKzgzLDcgQEAgdm9pZCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JG
dW5jKHZvaWQqLCBjb25zdCBjaGFyKiwgLi4uKQogCiB2b2lkIFhTTFRQcm9jZXNzb3I6OnBhcnNl
RXJyb3JGdW5jKHZvaWQqIHVzZXJEYXRhLCB4bWxFcnJvciogZXJyb3IpCiB7Ci0gICAgQ29uc29s
ZSogY29uc29sZSA9IHN0YXRpY19jYXN0PENvbnNvbGUqPih1c2VyRGF0YSk7CisgICAgUGFnZUNv
bnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxQYWdlQ29uc29sZSo+KHVzZXJEYXRhKTsKICAg
ICBpZiAoIWNvbnNvbGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTM3LDkgKzEzOCwxMCBAQCBz
dGF0aWMgeG1sRG9jUHRyIGRvY0xvYWRlckZ1bmMoY29uc3QgeG1sQ2hhciogdXJpLAogICAgICAg
ICAgICAgZ2xvYmFsQ2FjaGVkUmVzb3VyY2VMb2FkZXItPnByaW50QWNjZXNzRGVuaWVkTWVzc2Fn
ZSh1cmwpOwogICAgICAgICB9CiAKLSAgICAgICAgQ29uc29sZSogY29uc29sZSA9IDA7Ci0gICAg
ICAgIGlmIChnbG9iYWxQcm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgp
LT5mcmFtZSgpKQotICAgICAgICAgICAgY29uc29sZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5
bGVzaGVldCgpLT5vd25lckRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5jb25zb2xlKCk7CisgICAg
ICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gMDsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gZ2xv
YmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKTsK
KyAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICBjb25zb2xl
ID0gZnJhbWUtPnBhZ2UoKS0+Y29uc29sZSgpOwogICAgICAgICB4bWxTZXRTdHJ1Y3R1cmVkRXJy
b3JGdW5jKGNvbnNvbGUsIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKTsKICAgICAgICAg
eG1sU2V0R2VuZXJpY0Vycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJy
b3JGdW5jKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193275</attachid>
            <date>2013-03-15 03:53:07 -0700</date>
            <delta_ts>2013-03-15 05:19:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130315144902.patch</filename>
            <type>text/plain</type>
            <size>44692</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdiYzk2MDA5OWU2ZjVi
ZGRmYjNlYjVhYmE5ODRjNTlhZWNhNjNlNi4uYTNlYjUzY2NlZWU2NzUxMTRlYmQ3ZDQ4N2E5ODBi
ZjYzYWIzMWFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAzLTE1ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkQ29u
c29sZU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFkZE1lc3NhZ2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUpOgorICAgICAgICAqIGluc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6
Om11dGVDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0
ZUNvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjppbnRlcm5hbEFkZE1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvQ29uc29sZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChDb25zb2xlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBhZ2VDb25zb2xlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3Nh
Z2VFdmVudFdpdGhPcmlnaW5DaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnBy
aW50RXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChET01XaW5kb3cpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y29uc29sZSk6Cisg
ICAgICAgIChQYWdlKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6flBhZ2VDb25zb2xlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJl
Zml4KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjptdXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VD
b25zb2xlOjp1bm11dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnNob3VsZFBy
aW50RXhjZXB0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xlLmg6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpwYWdlKToKKyAgICAgICAgKiB4
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nl
c3Nvcjo6cGFyc2VFcnJvckZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6ZG9jTG9hZGVyRnVuYyk6
CisKIDIwMTMtMDMtMTUgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBzaG93IGltYWdlIGRlY29kZSBwZXJmb3JtZWQgb2ZmIG1h
aW4gdGhyZWFkIG9uIHRpbWVsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggOTBmZWI5ZmUxZjYwODMy
ZDUxNDhiMDkyNGNmNjNlODIwMDY2ZmQxOC4uOGFhODY3YzNiZTZlNTY3OWI1MTBjNmJjOWM4MmI3
YjU4YTYyYjRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTE1
ICBTZXJnZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3Rvcjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJv
dW5kIG9iamVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNv
cmUgbmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5
LgorCisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToKKyAgICAgICAgKCtbV2Vi
Q29yZVN0YXRpc3RpY3Mgc2hvdWxkUHJpbnRFeGNlcHRpb25zXSk6CisgICAgICAgICgrW1dlYkNv
cmVTdGF0aXN0aWNzIHNldFNob3VsZFByaW50RXhjZXB0aW9uczpdKToKKwogMjAxMy0wMy0xNCAg
TWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQg
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTZjOTQzZDgzYmJkNTJlODhhZmNlMzdhYTEyYzAzMjI2
OGYwMjY2Yy4uY2UyNWVlNjkyYTY3NGQ2ZGU2MTk0NjkzNDFhZDVmZGZjMTllYjYzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKQEAgLTE3ODgsNiArMTc4OCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMK
ICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5j
cHAKICAgICBwYWdlL1BhZ2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAKICAgICBwYWdl
L1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKICAgICBw
YWdlL1BhZ2VTZXJpYWxpemVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
M2Q0YTA3MjUzMWZmM2Q3ODFlNDkzNjA1MmQ0MTc5YTkyMTY3YzFhYy4uNzZjMTYzNTcxMzY5ZDhk
YWNkNzUxZGY1NDFlZTI3NWRlMjQ1OTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC00MjM2LDYgKzQyMzYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbnNvbGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGNlNjdkOWM3MmViNTUyZGQyOTMwMTE3ZmYzM2Q2
ZjhkZWUyMGRmYWMuLjc5YmQ0NThmNjA2ZGQ0MDlhNWMxNGFkNTQxNjBhNGU5OTViYzAzYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtOTQ3LDYgKzk0Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvTmF2
aWdhdG9yQmFzZS5jcHAgXAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwIFwKICAgICBw
YWdlL1BhZ2UuY3BwIFwKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAgICAgcGFnZS9QYWdl
R3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAogICAgIHBh
Z2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDllMDhhOTNi
OTVjOTc1MmM0M2JjNDk1NzNiOTU3MTExYzEzOTgxYmUuLjc5OWU1ZmU5NjA4NmY1OWJiYmVmNDc4
ZDQzMTM5Mjk5MzRmNjg3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyNTIsNiArMjI1Miw3IEBA
CiAgICAgICAgICAgICAncGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAogICAgICAgICAgICAg
J3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlLmNwcCcs
CisgICAgICAgICAgICAncGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2Uv
UGFnZUdyb3VwLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggN2EzNTAzZGI3
NWJhMmMzOWFkNTdlYTZhYmE4ZTRmNGJjOTIzN2M0My4uODc5MmVmYmI3NDVkYjllMGM1YzY2Njkw
ZTQyNmZlNzg5YTcxOTAyZCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTI3NTkwLDYgKzI3NTkwLDE0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFBhZ2UuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VDb25zb2xlLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdl
Q29uc29sZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggNmJlM2ZhZDZlYTM3NDZkYmVjYzJlN2Y1
M2FlODA3MThhMmM3ZWU1Ny4uODYwNjYwZjgyMjY3NTYxYzc5MTNkZjllNDgxN2RkZWYxZWVhZjkz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CkBAIC0yOTkyLDYgKzI5OTIsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxO
YXZpZ2F0b3JCYXNlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcT3Jp
Z2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQ
YWdlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXBMb2FkRGVmZXJyZXIu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlU2VyaWFsaXplci5j
cHAiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMTM2MzIxYWJjZGZhNWJjZDlkMmFjNTA5NGJjZjRiZmEx
YjE4ZTJjNy4uOTA0OWVjZDQxMmU5OGYwYzEyNTZjNzQxMWM3MTI3MTQ0MzA4ODZmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwpAQCAtNjY5Niw2ICs2Njk2LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBhZ2VcUGFnZS5jcHAiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENv
bXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VDb25zb2xlLmNwcCI+
CisgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCI+CiAgICAgICA8RmlsdGVyPnBh
Z2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNzgxZTM1MjU3ZDBmZjQwYjBhYTFm
MjhmZjg4MmQwMWQ5OTY5NTY2Li5iNzk2MDYzOTM2MWEzOGFmZTM2MDY4NDkxMzBkMjhhNTA2ZDY0
YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC02MTUzLDYgKzYxNTMsOCBAQAogCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYg
LyogV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQ3NjEzQTRFMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cu
Y3BwICovOyB9OwogCQlENzYxM0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZs
b3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2
MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLzsgfTsKIAkJ
RDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENv
b2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CURBRUQyMDMwMTZGMjQ0MkIwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQUFDQjNEOTE2RjI0MTY0MDA2NjYx
MzUgLyogUGFnZUNvbnNvbGUuY3BwICovOyB9OworCQlEQUVEMjAzMTE2RjI0NDQ4MDA3MEVDMEYg
LyogUGFnZUNvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5oICovOyB9Owog
CQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUw
OEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0My
Q0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5
RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKIAkJREQwNUZFMEQwQjhCQTNDNjAw
OUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9i
akNFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTM4NjMsNiArMTM4NjUsOCBAQAogCQlENzYxM0FDMjE0NzUzRTU2MDBEQjg2MDYgLyog
SlNXZWJLaXROYW1lZEZsb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJLaXROYW1lZEZsb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
NzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VDb25zb2xlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8q
IFBhZ2VDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VDb25z
b2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0
ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENv
bW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRlbnRD
b21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREMDVGRTBCMEI4QkEzQzYw
MDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZU9iakNFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE2NDgwLDYgKzE2NDg0LDggQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyog
Q3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmgg
Ki8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJ
REFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLywKKwkJCQlEQUFD
QjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAqLywKIAkJCQlDQ0MyQjUxMDE1
RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8sCiAJCQkJQ0NDMkI1MTExNUY2MTMw
NjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNDQzJCNTEyMTVGNjEz
MDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8sCkBAIC0yNjc2Nyw2ICsyNjc3Myw3
IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJv
UG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREFFRDIwMzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBh
Z2VDb25zb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5OTc1LDYgKzI5OTgyLDcgQEAKIAkJCQk5
NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVDMEYgLyogUGFnZUNv
bnNvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYTliMzRhNjU2YzhmZmVh
MWU3OWUxY2RlNmY3NmY4ZjYwZDQ3OTg0Yi4uYjZlOTdlOTkxNDEzNmE4YzRiODk2MzVlNDliZWMy
M2EzNjY4OGMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMjYsMTIgKzI2LDEzIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1
ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9t
LmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogCkBAIC03Nyw4ICs3OCw5IEBAIFN0cmluZyBK
U0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYg
cHJlZml4KQogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgY2Fs
bFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1
c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBD
YWxsVHlwZU5vbmUpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51
bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCkt
PmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVs
LCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0
aG9kLiIpOworICAgICAgICAgICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVj
dC0+aW1wbCgpLT5wYWdlQ29uc29sZSgpOworICAgICAgICAgICAgaWYgKGNvbnNvbGUpCisgICAg
ICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVz
c2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3Bh
Y2VVUkkgbWV0aG9kLiIpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9
CiAgICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5nZXQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCmluZGV4IGI5NTRmZmVkMWVkMzY4ZGRlYzcyZmIxMmYzZjJiN2Q4ODFjOTVh
MTQuLmNhZTM0ODliNWQwMGY4OTZjODcwMDU1NjQ5ZmY3NTZjZjlhZWE2NDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcApAQCAtMzAsOCArMzAsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJWOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogCi0jaW5jbHVkZSAiQ29uc29s
ZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTY5LDcgKzcxLDkgQEAgU3RyaW5nIFY4Q3VzdG9tWFBh
dGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpCiAg
ICAgfQogCiAgICAgaWYgKGxvb2t1cE5hbWVzcGFjZVVSSUZ1bmMuSXNFbXB0eSgpICYmICFtX3Jl
c29sdmVyLT5Jc0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgYWN0aXZlRE9NV2luZG93KEJpbmRpbmdT
dGF0ZTo6aW5zdGFuY2UoKSktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29r
dXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOworICAgICAgICBGcmFtZSogZnJhbWUgPSBhY3RpdmVE
T01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+ZnJhbWUoKTsKKyAgICAgICAgaWYg
KGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jb25z
b2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQ
YXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4i
KTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggMzAxODNjMjZhNTM0NWFhOTc5Njg5ODc4ODRjZmVjNTQ5ZGNkNGM0Zi4uODU0NzQ1
NDRlNjg2NjQ5ZWUxYjFmZDhmYWNiNGNmY2U0Y2NhZjlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC0xMjUsNiArMTI1LDcgQEAKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5j
bHVkZSAiTm9kZVdpdGhJbmRleC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdl
Q29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0
aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKQEAgLTQ4MTQs
MTAgKzQ4MTUsOSBAQCB2b2lkIERvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdAogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkpIHsKLSAgICAg
ICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAgICAgICAgICAg
IGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElkZW50
aWZpZXIsIHRoaXMpOwotICAgIH0KKyAgICBQYWdlKiBwID0gcGFnZSgpOworICAgIGlmIChwKQor
ICAgICAgICBwLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwg
cmVxdWVzdElkZW50aWZpZXIsIHRoaXMpOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwg
dW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKQEAgLTQ4MjcsMTAgKzQ4MjcsOSBAQCB2
b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KERPTVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkpIHsKLSAgICAgICAgaWYgKENvbnNvbGUq
IGNvbnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1l
c3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxs
U3RhY2ssIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgfQorICAgIFBhZ2UqIHAgPSBw
YWdlKCk7CisgICAgaWYgKHApCisgICAgICAgIHAtPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3Vy
Y2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgc3Rh
dGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAogY29uc3QgU2VjdXJpdHlPcmlnaW4qIERvY3Vt
ZW50Ojp0b3BPcmlnaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
RGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMTYyMjJlZTY1MWQ3NmEwNDY5NTRiN2ZiYWU1MWM4YmZk
YjAwMjdmNy4uMjAwZmIyY2Y3NDU2MGI1NWM1N2I5NGYxMThhNjRkY2RkNmMwZmU3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zNCwx
MSArMzQsMTEgQEAKIAogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dlckFnZW50LmgiCiAKLSNpbmNsdWRl
ICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgogI2luY2x1ZGUgIklu
c3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdl
U2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODgsMTIgKzg4
LDEyIEBAIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciYgUGFnZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERl
YnVnU2VydmVyKCkKIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewot
ICAgIENvbnNvbGU6Om11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwogfQogCiB2b2lk
IFBhZ2VEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjp1bm11
dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7CiB9CiAKIEluamVjdGVkU2NyaXB0IFBh
Z2VEZWJ1Z2dlckFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqIGVycm9y
U3RyaW5nLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCA3N2I0MGZhMzEyYTdhNGYzMWM2
MzczMmZkMzc2NGUwODlmODE3MjZlLi5hODQzMWJhMGZhNzhjYzg0MTViODQ0YzIyM2UxYjAzNGVi
MmU5NjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJQYWdlUnVudGltZUFnZW50LmgiCiAK
LSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJJ
bmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgpAQCAt
NDIsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5z
dHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29u
c29sZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIHVzaW5nIFdlYkNvcmU6OlR5
cGVCdWlsZGVyOjpSdW50aW1lOjpFeGVjdXRpb25Db250ZXh0RGVzY3JpcHRpb247CkBAIC0xNDgs
MTIgKzE0OCwxMiBAQCBJbmplY3RlZFNjcmlwdCBQYWdlUnVudGltZUFnZW50OjppbmplY3RlZFNj
cmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLAogCiB2b2lkIFBhZ2VSdW50aW1l
QWdlbnQ6Om11dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjptdXRlKCk7CisgICAgUGFnZUNv
bnNvbGU6Om11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xl
KCkKIHsKLSAgICBDb25zb2xlOjp1bm11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7
CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4IGVhNTM3YzRmYjIwOTBkNDAxMGNmMGFm
NjA2OWRjMDlhMjIzYjBkOWEuLjY1YzM2ZmEwNDFjZTQ1MGFkOThlZDA1ZGFkM2NhMzEwNWEwOTg4
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg
Ikluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJNZW1vcnlJbmZvLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3Vw
LmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrLmgiCkBAIC02MSwxMCArNjIsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVz
cGFjZSB7Ci0gICAgaW50IG11dGVDb3VudCA9IDA7Ci19Ci0KIENvbnNvbGU6OkNvbnNvbGUoRnJh
bWUqIGZyYW1lKQogICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUpCiB7CkBAIC03NCwxMjYg
KzcxLDYgQEAgQ29uc29sZTo6fkNvbnNvbGUoKQogewogfQogCi1zdGF0aWMgdm9pZCBwcmludFNv
dXJjZVVSTEFuZExpbmUoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIpCi17Ci0gICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChsaW5l
TnVtYmVyID4gMCkKLSAgICAgICAgICAgIHByaW50ZigiJXM6JWQ6ICIsIHNvdXJjZVVSTC51dGY4
KCkuZGF0YSgpLCBsaW5lTnVtYmVyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcHJpbnRm
KCIlczogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLX0KLQotc3RhdGljIHZv
aWQgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VMZXZlbCBsZXZlbCkKLXsKLSAgICBjb25zdCBjaGFyKiBzb3VyY2VTdHJpbmc7Ci0g
ICAgc3dpdGNoIChzb3VyY2UpIHsKLSAgICBjYXNlIFhNTE1lc3NhZ2VTb3VyY2U6Ci0gICAgICAg
IHNvdXJjZVN0cmluZyA9ICJYTUwiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEpTTWVzc2Fn
ZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkpTIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIk5F
VFdPUksiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbnNvbGVBUElNZXNzYWdlU291cmNl
OgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ09OU09MRUFQSSI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgU3RvcmFnZU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJT
VE9SQUdFIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBcHBDYWNoZU1lc3NhZ2VTb3VyY2U6
Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJBUFBDQUNIRSI7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUmVuZGVyaW5nTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlJF
TkRFUklORyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTTWVzc2FnZVNvdXJjZToKLSAg
ICAgICAgc291cmNlU3RyaW5nID0gIkNTUyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgU2Vj
dXJpdHlNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU0VDVVJJVFkiOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291
cmNlU3RyaW5nID0gIk9USEVSIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJVTktOT1dO
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgY29uc3QgY2hhciogbGV2ZWxTdHJpbmc7
Ci0gICAgc3dpdGNoIChsZXZlbCkgewotICAgIGNhc2UgRGVidWdNZXNzYWdlTGV2ZWw6Ci0gICAg
ICAgIGxldmVsU3RyaW5nID0gIkRFQlVHIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMb2dN
ZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkxPRyI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgV2FybmluZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAi
V0FSTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXJyb3JNZXNzYWdlTGV2ZWw6Ci0gICAg
ICAgIGxldmVsU3RyaW5nID0gIkVSUk9SIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIlVO
S05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBwcmludGYoIiVzICVzOiIsIHNv
dXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOwotfQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBEb2N1bWVudCogZG9jdW1l
bnQpCi17Ci0gICAgU3RyaW5nIHVybDsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIHVybCA9
IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKTsKLSAgICB1bnNpZ25lZCBsaW5lID0gMDsKLSAgICBp
ZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnBhcnNpbmcoKSAmJiAhZG9jdW1lbnQtPmlzSW5Eb2N1
bWVudFdyaXRlKCkgJiYgZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpKSB7Ci0g
ICAgICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1lbnQtPnNjcmlw
dGFibGVEb2N1bWVudFBhcnNlcigpOwotICAgICAgICBpZiAoIXBhcnNlci0+aXNXYWl0aW5nRm9y
U2NyaXB0cygpICYmICFwYXJzZXItPmlzRXhlY3V0aW5nU2NyaXB0KCkpCi0gICAgICAgICAgICBs
aW5lID0gcGFyc2VyLT5saW5lTnVtYmVyKCkub25lQmFzZWRJbnQoKTsKLSAgICB9Ci0gICAgYWRk
TWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIDAsIDAsIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKLX0KLQotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKLXsKLSAgICBhZGRNZXNzYWdlKHNvdXJj
ZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOwotfQotCi12b2lk
IENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBs
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQg
bGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0
U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQotewotICAgIGlm
IChtdXRlQ291bnQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAgIGlmICghcGFn
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGNhbGxTdGFjaykKLSAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9n
TWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVy
KTsKLSAgICBlbHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2Fn
ZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwg
dXJsLCBsaW5lTnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwotCi0gICAgaWYgKCFt
X2ZyYW1lLT5zZXR0aW5ncygpIHx8IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2lu
Z0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFnZS0+Y2hyb21lKCktPmNsaWVu
dCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1i
ZXIsIHVybCk7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2Fn
ZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIXNob3VsZFByaW50RXhjZXB0aW9ucygpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUodXJsLCBsaW5lTnVt
YmVyKTsKLSAgICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChzb3VyY2UsIGxldmVs
KTsKLQotICAgIHByaW50ZigiICVzXG4iLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwotfQotCiBz
dGF0aWMgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2FnZVR5cGUgdHlw
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBTY3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiBwcnBBcmd1bWVudHMsIGJvb2wgYWNjZXB0Tm9Bcmd1bWVudHMgPSBmYWxz
ZSwgYm9vbCBwcmludFRyYWNlID0gZmFsc2UpCiB7CiAgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50
cz4gYXJndW1lbnRzID0gcHJwQXJndW1lbnRzOwpAQCAtMjE4LDExICs5NSwxMSBAQCBzdGF0aWMg
dm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVz
c2FnZUxldmVsIGxldmVsLAogICAgIGlmIChnb3RNZXNzYWdlKQogICAgICAgICBwYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3Vy
Y2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFzdENh
bGxlci5zb3VyY2VVUkwoKSk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIUNvbnNvbGU6OnNob3VsZFByaW50
RXhjZXB0aW9ucygpKQorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdl
c1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhj
ZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUo
bGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkpOwotICAgIHBy
aW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBs
ZXZlbCk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShsYXN0Q2FsbGVy
LnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSk7CisgICAgUGFnZUNvbnNvbGU6
OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdlU291cmNl
LCBsZXZlbCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy0+YXJndW1l
bnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0gYXJndW1lbnRz
LT5hcmd1bWVudEF0KGkpLnRvU3RyaW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUoKSk7CkBAIC0z
ODgsMTkgKzI2NSw2IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNvbGVBUElNZXNz
YWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0cmluZygp
LCBTdHJpbmcoKSwgMCk7CiB9CiAKLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjptdXRlKCkKLXsK
LSAgICBtdXRlQ291bnQrKzsKLX0KLQotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6OnVubXV0ZSgp
Ci17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+IDApOwotICAgIG11dGVDb3VudC0tOwotfQotCiBQ
YXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiB7CiAgICAgLy8g
RklYTUU6IEJlY2F1c2Ugd2UgY3JlYXRlIGEgbmV3IG9iamVjdCBoZXJlIGVhY2ggdGltZSwKQEAg
LTQwOCwxOCArMjcyLDYgQEAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnko
KSBjb25zdAogICAgIHJldHVybiBNZW1vcnlJbmZvOjpjcmVhdGUobV9mcmFtZSk7CiB9CiAKLXN0
YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9IGZhbHNlOwotCi1ib29sIENvbnNvbGU6OnNob3Vs
ZFByaW50RXhjZXB0aW9ucygpCi17Ci0gICAgcmV0dXJuIHByaW50RXhjZXB0aW9uczsKLX0KLQot
dm9pZCBDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmludCkKLXsKLSAg
ICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsKLX0KLQogUGFnZSogQ29uc29sZTo6cGFnZSgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCBhOWE1ZDI3
NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVjNWZjNDJmLi5lNTc0Mzg3Yzc3N2JjYzJlMjA2N2E1
YzQ4MWE3NjYzMjY3M2RkYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNv
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtMjksMTAgKzI5LDcg
QEAKICNpZm5kZWYgQ29uc29sZV9oCiAjZGVmaW5lIENvbnNvbGVfaAogCi0jaW5jbHVkZSAiQ29u
c29sZUFQSVR5cGVzLmgiCi0jaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5jbHVkZSAiRE9N
V2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRl
ICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJT
Y3JpcHRXcmFwcGFibGUuaCIKQEAgLTQyLDEyICszOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBNZW1vcnlJbmZvOwog
Y2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEFyZ3VtZW50czsKLWNsYXNzIFNjcmlwdENhbGxTdGFj
azsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdHlwZWRlZiBWZWN0b3I8UmVm
UHRyPFNjcmlwdFByb2ZpbGU+ID4gUHJvZmlsZXNBcnJheTsKQEAgLTU4LDEwICs1Myw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJhbWUqIGZyYW1l
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+
Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5z
aWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0
U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZv
aWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lkIGFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKLQogICAg
IHZvaWQgZGVidWcoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwog
ICAgIHZvaWQgZXJyb3IoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4p
OwogICAgIHZvaWQgaW5mbyhTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRz
Pik7CkBAIC05MCwxMyArODEsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG11dGUoKTsK
ICAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKIAotICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50
RXhjZXB0aW9ucygpOwotICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhi
b29sKTsKLQogICAgIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gbWVtb3J5KCkgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgaW5saW5lIFBhZ2UqIHBhZ2UoKSBjb25zdDsKKyAgICBQYWdlKiBwYWdlKCkg
Y29uc3Q7CiAKICAgICBleHBsaWNpdCBDb25zb2xlKEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAppbmRleCA5YjAxNTk1MTYwNWNhNWY2YjE4OTIxZmMxYjExY2I4ZThlN2U5ODU0
Li5kYzJhODBlYTEzZTNjNzY2Mzk0ZjVmMzk0MTMzYzA2OWEyY2UyYjFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50
LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRy
YW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC02OTQsNiArNjk1
LDEzIEBAIENvbnNvbGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
Y29uc29sZS5nZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6cGFnZUNvbnNvbGUo
KSBjb25zdAoreworICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAg
ICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2ZyYW1lLT5wYWdl
KCktPmNvbnNvbGUoKSA6IDA7Cit9CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIERPTVdpbmRvdzo6
YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXll
ZEluRnJhbWUoKSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hN
ZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZwog
ICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChk
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3RyaW5nIG1lc3Nh
Z2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJnZXRPcmlnaW4t
PnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNpcGllbnQg
aGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSAr
ICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKFNlY3VyaXR5TWVzc2Fn
ZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2UpOworICAgICAg
ICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShTZWN1cml0eU1lc3NhZ2VTb3VyY2UsIEVy
cm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3OTgsNyArMTgwNiw3IEBAIHZvaWQgRE9NV2luZG93
OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKG1lc3Nh
Z2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zb2xlKCktPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgcGFn
ZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVs
LCBtZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJv
ck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApp
bmRleCA0Yjc2NDM4MDk0ZDE2MGZhZDYyZmRlMTNhYjQ4MTQ2ZjFkZGIxYjkxLi4wNzkwZWU4OThm
ZTQzZTBmOGMxNjc3OTI3OWZkYTNjZDJkOTZhYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
QEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5hdmlnYXRv
cjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUGFnZUNvbnNv
bGU7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsK
ICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CkBAIC0yMzMsNiArMjM0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0
UG9pbnRGcm9tTm9kZVRvUGFnZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsgICAg
ICAgIAogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAgICAgUGFnZUNv
bnNvbGUqIHBhZ2VDb25zb2xlKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBwcmludEVycm9yTWVz
c2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWluQWNjZXNzRXJy
b3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4
IGQzYmRiMGUyYzY3NmRmZWY1N2MwN2M5NjhiZGM1ZjYzMGI5YTA5ZmQuLjQ5YjI0Y2RjZDdhNDE1
ZmQ0ZWRmMmNlNGRhNzZmMjY2MzQ1YTIzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTQsNiAr
NTQsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5v
dGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUu
aCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNp
bmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0xNzYsNiArMTc3LDcgQEAgUGFnZTo6UGFnZShQYWdl
Q2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1fc2NyaXB0ZWRB
bmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9jb25zb2xlKFBhZ2VDb25zb2xlOjpj
cmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAppbmRleCBjMGM3MzE4N2I2YjgyNTU2NjlkYzI3MzM3NmJiNjIwYzI4OTRiOTVkLi45MWZiOWVh
MGNlZDE0MTE2YzlhMWJjZmFjN2Y0MTUyOTRlOWNjYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQs
NiArNzQsNyBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9s
bGVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTm9kZTsKK2NsYXNzIFBh
Z2VDb25zb2xlOwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3Mg
UGx1Z2luRGF0YTsKQEAgLTM3OCw2ICszNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXdNZWRp
YUVuZ2luZShjb25zdCBTdHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVzZXRTZWVuTWVk
aWFFbmdpbmVzKCk7CiAKKyAgICBQYWdlQ29uc29sZSogY29uc29sZSgpIHsgcmV0dXJuIG1fY29u
c29sZS5nZXQoKTsgfQogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtNTA0LDYgKzUwNiw3IEBA
IHByaXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0aXZlVGV4dENs
aWVudDsKIAogICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7CisgICAgT3du
UHRyPFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7CiAKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVu
UGx1Z2luczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTNjYTgyZDE5NDFkOGU4Njc2ZTU0
NWFjMTA2YWFhNWRiM2JlOTZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uc29sZS5jcHAKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCisjaW5jbHVk
ZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlNjcmlwdEFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1
ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgor
I2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUgIlNldHRpbmdz
LmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisj
ZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworICAgIGludCBtdXRl
Q291bnQgPSAwOworfQorCitQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUoUGFnZSogcGFnZSkgOiBt
X3BhZ2UocGFnZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKSB7IH0KKwordm9p
ZCBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoreworICAgIGlmICghc291cmNlVVJMLmlzRW1wdHko
KSkgeworICAgICAgICBpZiAobGluZU51bWJlciA+IDApCisgICAgICAgICAgICBwcmludGYoIiVz
OiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsK
KyAgICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVs
UHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCit7CisgICAg
Y29uc3QgY2hhciogc291cmNlU3RyaW5nOworICAgIHN3aXRjaCAoc291cmNlKSB7CisgICAgY2Fz
ZSBYTUxNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmlu
ZyA9ICJKUyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6
CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkNP
TlNPTEVBUEkiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JhZ2VNZXNzYWdlU291cmNl
OgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFHRSI7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQVBQ
Q0FDSEUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlcmluZ01lc3NhZ2VTb3VyY2U6
CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJTkciOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJDU1MiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5TWVzc2FnZVNvdXJjZToKKyAgICAgICAg
c291cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdGhl
ck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9XTiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIGNvbnN0IGNoYXIqIGxldmVsU3RyaW5nOworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBj
YXNlIERlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJERUJVRyI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9nTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0
cmluZyA9ICJMT0ciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhcm5pbmdNZXNzYWdlTGV2
ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIldBUk4iOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJFUlJPUiI7Cisg
ICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorCisgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKK30K
Kwordm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJpbmcgdXJsOwor
ICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygp
OworICAgIHVuc2lnbmVkIGxpbmUgPSAwOworICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+
cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+
c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKKyAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50
UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7Cisg
ICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNF
eGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIo
KS5vbmVCYXNlZEludCgpOworICAgIH0KKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1l
c3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOworfQorCit2b2lkIFBh
Z2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0
cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5z
aWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBpZiAobXV0ZUNvdW50ICYmIHNv
dXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
UGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmIChjYWxsU3RhY2spCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZl
bCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgZWxzZQorICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwg
c291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwg
c3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKSB8
fCBwYWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29s
ZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOworCisgICAgaWYgKCFw
YWdlLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgp
ICYmICFzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJp
bnRTb3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAgcHJpbnRNZXNzYWdlU291
cmNlQW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBwcmludGYoIiAlc1xuIiwg
bWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xl
OjptdXRlKCkKK3sKKyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VD
b25zb2xlOjp1bm11dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKKyAgICBtdXRl
Q291bnQtLTsKK30KKworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFsc2U7CisKK2Jv
b2wgUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAgcmV0dXJuIHBy
aW50RXhjZXB0aW9uczsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNl
cHRpb25zKGJvb2wgcHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42OGMwODkyNDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFlYzQyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCkBAIC0wLDAgKzEsNzEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgUGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29uc29sZV9oCisKKyNpbmNs
dWRlICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNs
dWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVu
dDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc093blB0cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFk
b3B0UHRyKG5ldyBQYWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0dWFsIH5QYWdlQ29uc29s
ZSgpOworCisgICAgc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBwcmlu
dE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwp
OworCisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0g
MCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKKworICAgIHN0YXRpYyB2
b2lkIG11dGUoKTsKKyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKworICAgIHN0YXRpYyBib29s
IHNob3VsZFByaW50RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50
RXhjZXB0aW9ucyhib29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZShQYWdlKik7CisK
KyAgICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisgICAgUGFnZSogbV9wYWdl
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZUNvbnNvbGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNTAz
ODAyYzdmZTdiNTZmNWY3MmQxNzgzYWI3YmMzMGNiNjU4MWFkZS4uOWU2ZWE5OGUzODljZmE3ZTky
NzUxNGM2NDRiMTIyZTNhYjVjN2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hT
TFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nl
c3NvckxpYnhzbHQuY3BwCkBAIC0yNywxMCArMjcsMTEgQEAKICNpbmNsdWRlICJYU0xUUHJvY2Vz
c29yLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNv
bnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25z
b2xlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFu
ZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4Myw3IEBAIHZv
aWQgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3QgY2hhciosIC4u
LikKIAogdm9pZCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwg
eG1sRXJyb3IqIGVycm9yKQogewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxD
b25zb2xlKj4odXNlckRhdGEpOworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gc3RhdGljX2Nh
c3Q8UGFnZUNvbnNvbGUqPih1c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTEzNyw5ICsxMzgsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJG
dW5jKGNvbnN0IHhtbENoYXIqIHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291cmNl
TG9hZGVyLT5wcmludEFjY2Vzc0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgfQogCi0gICAg
ICAgIENvbnNvbGUqIGNvbnNvbGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJvY2Vzc29yLT54
c2xTdHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNv
bnNvbGUgPSBnbG9iYWxQcm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgp
LT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSogY29uc29sZSA9
IDA7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVl
dCgpLT5vd25lckRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFt
ZS0+cGFnZSgpKQorICAgICAgICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUo
KTsKICAgICAgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vz
c29yOjpwYXJzZUVycm9yRnVuYyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoY29u
c29sZSwgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4IGJmOTE3NTkwMGM1OGUyYTQ2NjA2
MDY3MjFkNTIwOTY1MDZiNzU4MmMuLjA2OWFhNDc5NTMyMTY1NWI5Y2ExMDljNjFiYWFiZDIyODI2
MDA5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3Rp
Y3MubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQpA
QCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlT
dGF0aXN0aWNzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NvbnNvbGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRm9udENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0dDQ29udHJvbGxlci5oPgpAQCAtNDIsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9J
Y29uRGF0YWJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25zb2xlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1ByaW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJU
cmVlQXNUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTE2OCwxMyAr
MTY4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogKyAoQk9PTClzaG91bGRQcmludEV4
Y2VwdGlvbnMKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uSlNH
bG9iYWxEYXRhKCkpOwotICAgIHJldHVybiBDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMo
KTsKKyAgICByZXR1cm4gUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpOwogfQog
CiArICh2b2lkKXNldFNob3VsZFByaW50RXhjZXB0aW9uczooQk9PTClwcmludAogewogICAgIEpT
TG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7Ci0gICAg
Q29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKHByaW50KTsKKyAgICBQYWdlQ29uc29s
ZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKHByaW50KTsKIH0KIAogKyAodm9pZCllbXB0eUNh
Y2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193285</attachid>
            <date>2013-03-15 05:19:17 -0700</date>
            <delta_ts>2013-03-16 02:03:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130315161512.patch</filename>
            <type>text/plain</type>
            <size>47281</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmViNDczNjAxY2U2YzMw
ZjY3YjNkNzEwNTIyNDgxY2EzOGI4NTg4Yy4uNzIyODVkYWNmMWQ0M2ZhZTY3ZmQyMjc3YzllODgw
OGQwMWIyZTM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTE1ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRDb25zb2xl
TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkTWVzc2FnZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
RGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0
ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29u
c29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omlu
dGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cGFnZUNvbnNvbGUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2
ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRF
cnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpjb25zb2xlKToKKyAgICAg
ICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNv
bGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRF
eGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGUuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnBhZ2UpOgorICAgICAgICAqIHhtbC9Y
U0xUUHJvY2Vzc29yTGlieHNsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xUUHJvY2Vzc29y
OjpwYXJzZUVycm9yRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpkb2NMb2FkZXJGdW5jKToKKwog
MjAxMy0wMy0xNSAgTWFyamEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW1Y4XSBBZGQgbWFjaGluZXJ5IGZvciBnZW5lcmF0aW5nIHNwZWNpYWxpemVkIGJpbmRpbmdz
IGZvciB0aGUgbWFpbiB3b3JsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDkwZmViOWZlMWY2MDgzMmQ1
MTQ4YjA5MjRjZjYzZTgyMDA2NmZkMTguLjhhYTg2N2MzYmU2ZTU2NzliNTEwYzZiYzljODJiN2I1
OGE2MmI0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNSAg
U2VyZ2V5IFJ5YXphbm92ICA8c2VyeWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHNwbGl0IENvbnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3Vu
ZCBvYmplY3QgYW5kIHBhZ2UgY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMTU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE90aGVyd2lzZSwgYSBsb3Qgb2YgbG9nZ2luZyBpbiBXZWJDb3Jl
IG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIERPTVdpbmRvdyB3aGljaCBpcyB1bm5lY2Vzc2FyeS4K
KworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgrW1dlYkNv
cmVTdGF0aXN0aWNzIHNob3VsZFByaW50RXhjZXB0aW9uc10pOgorICAgICAgICAoK1tXZWJDb3Jl
U3RhdGlzdGljcyBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnM6XSk6CisKIDIwMTMtMDMtMTQgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IDk2Yzk0M2Q4M2JiZDUyZTg4YWZjZTM3YWExMmMwMzIyNjhm
MDI2NmMuLmNlMjVlZTY5MmE2NzRkNmRlNjE5NDY5MzQxYWQ1ZmRmYzE5ZWI2MzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0xNzg4LDYgKzE3ODgsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcGFnZS9OYXZpZ2F0b3JCYXNlLmNwcAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3Bw
CiAgICAgcGFnZS9QYWdlLmNwcAorICAgIHBhZ2UvUGFnZUNvbnNvbGUuY3BwCiAgICAgcGFnZS9Q
YWdlR3JvdXAuY3BwCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCiAgICAgcGFn
ZS9QYWdlU2VyaWFsaXplci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDNk
NGEwNzI1MzFmZjNkNzgxZTQ5MzYwNTJkNDE3OWE5MjE2N2MxYWMuLjc2YzE2MzU3MTM2OWQ4ZGFj
ZDc1MWRmNTQxZWUyNzVkZTI0NTk3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtNDIzNiw2ICs0MjM2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25zb2xlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVy
cmVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjZTY3ZDljNzJlYjU1MmRkMjkzMDExN2ZmMzNkNmY4
ZGVlMjBkZmFjLi43OWJkNDU4ZjYwNmRkNDA5YTVjMTRhZDU0MTYwYTRlOTk1YmMwM2IwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTk0Nyw2ICs5NDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL05hdmln
YXRvckJhc2UuY3BwIFwKICAgICBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCBcCiAgICAgcGFn
ZS9QYWdlLmNwcCBcCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAgXAogICAgIHBhZ2UvUGFnZUdy
b3VwLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKICAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNTI3ZDM5
NWU2ZWVkYjg3ZTg3OWM0YmVhNjI5ODdjYmMzYWEwMzVmYy4uMTMwNDFjN2ZhZmRiNTkyY2FjZmYw
MWQxYmJlZmUwNDUxODM3ZDExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTkzNCw4ICs5MzQs
NiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0OHNldEZvY3VzRWIKIF9fWk43V2ViQ29yZTZXaWRnZXQ5
c2V0UGFyZW50RVBOU18xMFNjcm9sbFZpZXdFCiBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19a
TjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQotX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNo
b3VsZFByaW50RXhjZXB0aW9uc0V2Ci1fX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJp
bnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOM1dU
RjEyQXRvbWljU3RyaW5nRVM0X1JpCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRl
RVJLTlNfMTNRdWFsaWZpZWROYW1lRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk43V2ViQ29y
ZTdFbGVtZW50MjFib3VuZHNJblJvb3RWaWV3U3BhY2VFdgpAQCAtMTcyMiw2ICsxNzIwLDggQEAg
X19aTjdXZWJDb3JlMTBoYW5kQ3Vyc29yRXYKIF9fWk43V2ViQ29yZTExQ2FjaGVkSW1hZ2U1aW1h
Z2VFdgogX19aTjdXZWJDb3JlMTFnbG9iYWxQb2ludEVSSzhfTlNQb2ludFA4TlNXaW5kb3cKIF9f
Wk43V2ViQ29yZTExdG9Vc2VyU3BhY2VFUks3X05TUmVjdFA4TlNXaW5kb3cKK19fWk43V2ViQ29y
ZTExUGFnZUNvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CitfX1pON1dlYkNvcmUxMVBh
Z2VDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlvbnNFYgogX19aTjdXZWJDb3JlMTJFdmVu
dEhhbmRsZXIxMG1vdXNlTW92ZWRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxl
cjEwd2hlZWxFdmVudEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTJtb3Vz
ZURyYWdnZWRFUDdOU0V2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWUwOGE5M2I5NWM5NzUyYzQz
YmM0OTU3M2I5NTcxMTFjMTM5ODFiZS4uNzk5ZTVmZTk2MDg2ZjU5YmJiZWY0NzhkNDMxMzkyOTkz
NGY2ODcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjI1Miw2ICsyMjUyLDcgQEAKICAgICAgICAg
ICAgICdwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9Pcmln
aW5BY2Nlc3NFbnRyeS5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2UuY3BwJywKKyAgICAgICAg
ICAgICdwYWdlL1BhZ2VDb25zb2xlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXAu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAnLAogICAg
ICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIK
aW5kZXggNzUwM2RjMjVhMTQyOWI5ZmQ3MDAwODVlNjlmNDEzYmFlZWY3N2RmZC4uMWI4MjI1NGM4
OWYyNTQ2YmM0NmFhYThlODU2ZTk5NDAwZmJmODJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0x
NTU1OSw3ICsxNTU1OSw2IEBAIF9fWk4zV1RGMjlSZWZQdHJIYXNoTWFwUmF3S2V5VHJhbnNsYXRv
cklQTjdXZWJDb3JlMTRSZXNvdXJjZUxvYWRlckVTdDRwYWlySU5TXzZSCiBfX1pOM1dURjZWZWN0
b3JJTlNfNlJlZlB0cklON1dlYkNvcmUxNUFyY2hpdmVSZXNvdXJjZUVFRUxtMEVFRDFFdgogX19a
TjdXZWJDb3JlNVRpbWVySU5TXzE0RG9jdW1lbnRMb2FkZXJFRTVmaXJlZEV2CiBfX1pON1dlYkNv
cmUxNERvY3VtZW50TG9hZGVyMzZzdWJzdGl0dXRlUmVzb3VyY2VEZWxpdmVyeVRpbWVyRmlyZWRF
UE5TXzVUaW1lcklTMF9FRQotX19aTjdXZWJDb3JlN0NvbnNvbGUyNHNldFNob3VsZFByaW50RXhj
ZXB0aW9uc0ViCiBfX1pON1dlYkNvcmUxNmpzQ2xpcGJvYXJkVHlwZXNFUE4zSlNDOUV4ZWNTdGF0
ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTks3V2ViQ29yZTExSlNDbGlw
Ym9hcmQ1dHlwZXNFUE4zSlNDOUV4ZWNTdGF0ZUUKIF9fWk5LN1dlYkNvcmUxMkNsaXBib2FyZE1h
YzV0eXBlc0V2CkBAIC0xNTY3OSw2ICsxNTY3OCw3IEBAIF9fWk43V2ViQ29yZTIzUmVuZGVyRmls
ZVVwbG9hZENvbnRyb2wxOXJlY2VpdmVEcm9wcGVkRmlsZXNFUktOM1dURjZWZWN0b3JJTlMxXzZT
CiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTlhbGxvd3NNdWx0aXBsZUZp
bGVzRXYKIF9fWk43V2ViQ29yZTExRmlsZUNob29zZXIxMGNob29zZUZpbGVFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyMTFjaG9vc2VGaWxlc0VSS04zV1RGNlZlY3Rv
cklOUzFfNlN0cmluZ0VMbTBFRUUKK19fWk43V2ViQ29yZTExUGFnZUNvbnNvbGUyNHNldFNob3Vs
ZFByaW50RXhjZXB0aW9uc0ViCiBfX1pUaG4xODRfTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2Fk
Q29udHJvbDE4Y2hvb3NlSWNvbkZvckZpbGVzRVBOU18xMUZpbGVDaG9vc2VyRVJLTjNXVEY2VmVj
dG9ySU5TM182U3RyaW5nRUxtMEVFRQogX19aTjdXZWJDb3JlNkNocm9tZTE4Y2hvb3NlSWNvbkZv
ckZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVFRVBOU18xMUZpbGVDaG9vc2Vy
RQogX19aTjdXZWJDb3JlNEljb24xOGNyZWF0ZUljb25Gb3JGaWxlc0VSS04zV1RGNlZlY3RvcklO
UzFfNlN0cmluZ0VMbTBFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggN2EzNTAzZGI3NWJhMmMzOWFkNTdlYTZhYmE4ZTRmNGJjOTIzN2M0My4u
ODc5MmVmYmI3NDVkYjllMGM1YzY2NjkwZTQyNmZlNzg5YTcxOTAyZCAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NTkwLDYgKzI3NTkwLDE0
IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2UuY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
YWdlXFBhZ2VDb25zb2xlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlQ29uc29sZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAiCiAJCQkJPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXgg
NmJlM2ZhZDZlYTM3NDZkYmVjYzJlN2Y1M2FlODA3MThhMmM3ZWU1Ny4uODYwNjYwZjgyMjY3NTYx
Yzc5MTNkZjllNDgxN2RkZWYxZWVhZjkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0yOTkyLDYgKzI5OTIsNyBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxOYXZpZ2F0b3JCYXNlLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1
ZGU9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGFnZVxQYWdlR3JvdXAuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFn
ZVxQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGFnZVxQYWdlU2VyaWFsaXplci5jcHAiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMTM2MzIxYWJj
ZGZhNWJjZDlkMmFjNTA5NGJjZjRiZmExYjE4ZTJjNy4uOTA0OWVjZDQxMmU5OGYwYzEyNTZjNzQx
MWM3MTI3MTQ0MzA4ODZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNjY5Niw2ICs2Njk2LDkgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZS5jcHAiPgogICAgICAgPEZpbHRlcj5w
YWdlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwYWdlXFBhZ2VDb25zb2xlLmNwcCI+CisgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3Vw
LmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAzNzgxZTM1MjU3ZDBmZjQwYjBhYTFmMjhmZjg4MmQwMWQ5OTY5NTY2Li5iNzk2MDYzOTM2MWEz
OGFmZTM2MDY4NDkxMzBkMjhhNTA2ZDY0YzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MTUzLDYgKzYxNTMsOCBAQAogCQlE
NzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEzQTRFMTQ3NEYxM0YwMERC
ODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlENzYxM0FDNDE0NzUzRTU2MDBE
Qjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0
TmFtZWRGbG93LmNwcCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tp
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhCNjE1
MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCURBRUQyMDMwMTZGMjQ0MkIwMDcwRUMwRiAvKiBQYWdl
Q29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQUFDQjNEOTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuY3BwICovOyB9OworCQlE
QUVEMjAzMTE2RjI0NDQ4MDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAv
KiBQYWdlQ29uc29sZS5oICovOyB9OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21t
YW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRl
bnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsg
fTsKIAkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJB
M0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM4NjMsNiArMTM4NjUsOCBAQAogCQlENzYx
M0FDMjE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlENzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJL
aXROYW1lZEZsb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRO
YW1lZEZsb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1
MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
b29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzRDkxNkYyNDE2NDAw
NjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFBhZ2VDb25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFB
Q0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhZ2VDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1h
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAy
NDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUREMDVGRTBCMEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU9iakNFeHRyYXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDgwLDYgKzE2NDg0LDggQEAKIAkJCQk5NzVD
QTI4NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2
NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5
IC8qIENyeXB0by5pZGwgKi8sCisJCQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VD
b25zb2xlLmNwcCAqLywKKwkJCQlEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNv
bGUuaCAqLywKIAkJCQlDQ0MyQjUxMDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50Lmgg
Ki8sCiAJCQkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3Bw
ICovLAogCQkJCUNDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmgg
Ki8sCkBAIC0yNjc2Nyw2ICsyNjc3Myw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5
IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMx
MzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUz
MTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREFFRDIw
MzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5
OTc1LDYgKzI5OTgyLDcgQEAKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVk
aXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzODAgLyog
WFNTQXVkaXRvckRlbGVnYXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1
MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQUVEMjAzMDE2
RjI0NDJCMDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5j
cHAKaW5kZXggYTliMzRhNjU2YzhmZmVhMWU3OWUxY2RlNmY3NmY4ZjYwZDQ3OTg0Yi4uYjZlOTdl
OTkxNDEzNmE4YzRiODk2MzVlNDliZWMyM2EzNjY4OGMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMjYs
MTIgKzI2LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogCkBA
IC03Nyw4ICs3OCw5IEBAIFN0cmluZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFt
ZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQogICAgIGlmIChjYWxsVHlwZSA9PSBDYWxs
VHlwZU5vbmUpIHsKICAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RU
YWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CiAg
ICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICAgICAgICAg
IG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUg
YSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOworICAgICAgICAgICAgUGFnZUNvbnNvbGUq
IGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+aW1wbCgpLT5wYWdlQ29uc29sZSgpOworICAgICAg
ICAgICAgaWYgKGNvbnNvbGUpCisgICAgICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShK
U01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMg
bm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOwogICAgICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogICAgICAgICB9CiAgICAgICAgIGZ1bmN0aW9uID0gbV9jdXN0b21SZXNv
bHZlci5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCmluZGV4IGI5NTRmZmVkMWVkMzY4
ZGRlYzcyZmIxMmYzZjJiN2Q4ODFjOTVhMTQuLmNhZTM0ODliNWQwMGY4OTZjODcwMDU1NjQ5ZmY3
NTZjZjlhZWE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMzAsOCArMzAsMTAg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJWOEN1c3RvbVhQYXRoTlNSZXNvbHZl
ci5oIgogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xl
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTY5LDcgKzcx
LDkgQEAgU3RyaW5nIFY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkko
Y29uc3QgU3RyaW5nJiBwcmVmaXgpCiAgICAgfQogCiAgICAgaWYgKGxvb2t1cE5hbWVzcGFjZVVS
SUZ1bmMuSXNFbXB0eSgpICYmICFtX3Jlc29sdmVyLT5Jc0Z1bmN0aW9uKCkpIHsKLSAgICAgICAg
YWN0aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSktPmNvbnNvbGUoKS0+YWRk
TWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29s
dmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOworICAgICAg
ICBGcmFtZSogZnJhbWUgPSBhY3RpdmVET01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgp
KS0+ZnJhbWUoKTsKKyAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAg
ICAgICBmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9v
a3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMzAxODNjMjZhNTM0NWFhOTc5Njg5ODc4
ODRjZmVjNTQ5ZGNkNGM0Zi4uODU0NzQ1NDRlNjg2NjQ5ZWUxYjFmZDhmYWNiNGNmY2U0Y2NhZjlm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xMjUsNiArMTI1LDcgQEAKICNpbmNsdWRl
ICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiTm9kZVdpdGhJbmRleC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5o
IgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaCIKQEAgLTQ4MTQsMTAgKzQ4MTUsOSBAQCB2b2lkIERvY3VtZW50OjphZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBj
b25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKERPTVdpbmRvdyogd2luZG93
ID0gZG9tV2luZG93KCkpIHsKLSAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ct
PmNvbnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZl
bCwgbWVzc2FnZSwgcmVxdWVzdElkZW50aWZpZXIsIHRoaXMpOwotICAgIH0KKyAgICBQYWdlKiBw
ID0gcGFnZSgpOworICAgIGlmIChwKQorICAgICAgICBwLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElkZW50aWZpZXIsIHRoaXMpOwogfQogCiB2
b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikK
QEAgLTQ4MjcsMTAgKzQ4MjcsOSBAQCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkp
IHsKLSAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAg
ICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291
cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7
Ci0gICAgfQorICAgIFBhZ2UqIHAgPSBwYWdlKCk7CisgICAgaWYgKHApCisgICAgICAgIHAtPmNv
bnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxp
bmVOdW1iZXIsIGNhbGxTdGFjaywgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAogY29u
c3QgU2VjdXJpdHlPcmlnaW4qIERvY3VtZW50Ojp0b3BPcmlnaW4oKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMTYyMjJlZTY1
MWQ3NmEwNDY5NTRiN2ZiYWU1MWM4YmZkYjAwMjdmNy4uMjAwZmIyY2Y3NDU2MGI1NWM1N2I5NGYx
MThhNjRkY2RkNmMwZmU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURl
YnVnZ2VyQWdlbnQuY3BwCkBAIC0zNCwxMSArMzQsMTEgQEAKIAogI2luY2x1ZGUgIlBhZ2VEZWJ1
Z2dlckFnZW50LmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
T3ZlcmxheS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIklu
c3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKICNpbmNsdWRlICJQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtODgsMTIgKzg4LDEyIEBAIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciYgUGFn
ZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERlYnVnU2VydmVyKCkKIAogdm9pZCBQYWdlRGVidWdnZXJB
Z2VudDo6bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6Om11dGUoKTsKKyAgICBQYWdlQ29u
c29sZTo6bXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xl
KCkKIHsKLSAgICBDb25zb2xlOjp1bm11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7
CiB9CiAKIEluamVjdGVkU2NyaXB0IFBhZ2VEZWJ1Z2dlckFnZW50OjppbmplY3RlZFNjcmlwdEZv
ckV2YWwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRl
eHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApp
bmRleCA3N2I0MGZhMzEyYTdhNGYzMWM2MzczMmZkMzc2NGUwODlmODE3MjZlLi5hODQzMWJhMGZh
NzhjYzg0MTViODQ0YzIyM2UxYjAzNGViMmU5NjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpbmNsdWRl
ICJQYWdlUnVudGltZUFnZW50LmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVj
dGVkU2NyaXB0TWFuYWdlci5oIgpAQCAtNDIsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
clN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpFeGVjdXRpb25Db250
ZXh0RGVzY3JpcHRpb247CkBAIC0xNDgsMTIgKzE0OCwxMiBAQCBJbmplY3RlZFNjcmlwdCBQYWdl
UnVudGltZUFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLAogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6Om11dGVDb25zb2xlKCkKIHsKLSAgICBDb25z
b2xlOjptdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6Om11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVu
dGltZUFnZW50Ojp1bm11dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjp1bm11dGUoKTsKKyAg
ICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6cmVw
b3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4
IGVhNTM3YzRmYjIwOTBkNDAxMGNmMGFmNjA2OWRjMDlhMjIzYjBkOWEuLjY1YzM2ZmEwNDFjZTQ1
MGFkOThlZDA1ZGFkM2NhMzEwNWEwOTg4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJNZW1vcnlJbmZvLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xl
LmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgi
CiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC02MSwxMCArNjIsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci0gICAgaW50IG11dGVDb3VudCA9IDA7Ci19
Ci0KIENvbnNvbGU6OkNvbnNvbGUoRnJhbWUqIGZyYW1lKQogICAgIDogRE9NV2luZG93UHJvcGVy
dHkoZnJhbWUpCiB7CkBAIC03NCwxMjYgKzcxLDYgQEAgQ29uc29sZTo6fkNvbnNvbGUoKQogewog
fQogCi1zdGF0aWMgdm9pZCBwcmludFNvdXJjZVVSTEFuZExpbmUoY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCi17Ci0gICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIGlmIChsaW5lTnVtYmVyID4gMCkKLSAgICAgICAgICAgIHByaW50Zigi
JXM6JWQ6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpLCBsaW5lTnVtYmVyKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcHJpbnRmKCIlczogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCkp
OwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVm
aXgoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCkKLXsKLSAgICBjb25z
dCBjaGFyKiBzb3VyY2VTdHJpbmc7Ci0gICAgc3dpdGNoIChzb3VyY2UpIHsKLSAgICBjYXNlIFhN
TE1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJYTUwiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEpTTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0g
IkpTIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZToKLSAg
ICAgICAgc291cmNlU3RyaW5nID0gIk5FVFdPUksiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IENvbnNvbGVBUElNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ09OU09M
RUFQSSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgU3RvcmFnZU1lc3NhZ2VTb3VyY2U6Ci0g
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJTVE9SQUdFIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBBcHBDYWNoZU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJBUFBDQUNI
RSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVuZGVyaW5nTWVzc2FnZVNvdXJjZToKLSAg
ICAgICAgc291cmNlU3RyaW5nID0gIlJFTkRFUklORyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQ1NTTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkNTUyI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgU2VjdXJpdHlNZXNzYWdlU291cmNlOgotICAgICAgICBzb3Vy
Y2VTdHJpbmcgPSAiU0VDVVJJVFkiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE90aGVyTWVz
c2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIk9USEVSIjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IHNvdXJjZVN0cmluZyA9ICJVTktOT1dOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAg
Y29uc3QgY2hhciogbGV2ZWxTdHJpbmc7Ci0gICAgc3dpdGNoIChsZXZlbCkgewotICAgIGNhc2Ug
RGVidWdNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkRFQlVHIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBMb2dNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5n
ID0gIkxPRyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2FybmluZ01lc3NhZ2VMZXZlbDoK
LSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiV0FSTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RXJyb3JNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkVSUk9SIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIGxldmVsU3RyaW5nID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0K
LSAgICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOwotfQotCi12
b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyLCBEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0gICAgU3RyaW5nIHVybDsKLSAgICBpZiAo
ZG9jdW1lbnQpCi0gICAgICAgIHVybCA9IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKTsKLSAgICB1
bnNpZ25lZCBsaW5lID0gMDsKLSAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnBhcnNpbmco
KSAmJiAhZG9jdW1lbnQtPmlzSW5Eb2N1bWVudFdyaXRlKCkgJiYgZG9jdW1lbnQtPnNjcmlwdGFi
bGVEb2N1bWVudFBhcnNlcigpKSB7Ci0gICAgICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciog
cGFyc2VyID0gZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpOwotICAgICAgICBp
ZiAoIXBhcnNlci0+aXNXYWl0aW5nRm9yU2NyaXB0cygpICYmICFwYXJzZXItPmlzRXhlY3V0aW5n
U2NyaXB0KCkpCi0gICAgICAgICAgICBsaW5lID0gcGFyc2VyLT5saW5lTnVtYmVyKCkub25lQmFz
ZWRJbnQoKTsKLSAgICB9Ci0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1
cmwsIGxpbmUsIDAsIDAsIHJlcXVlc3RJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBDb25zb2xlOjph
ZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykK
LXsKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBj
YWxsU3RhY2ssIDApOwotfQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVl
c3RJZGVudGlmaWVyKQotewotICAgIGlmIChtdXRlQ291bnQgJiYgc291cmNlICE9IENvbnNvbGVB
UElNZXNzYWdlU291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBQYWdlKiBwYWdlID0gdGhp
cy0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGNh
bGxTdGFjaykKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9D
b25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCBjYWxs
U3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICBlbHNlCi0gICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3Nh
Z2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElk
ZW50aWZpZXIpOwotCi0gICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpIHx8IG1fZnJhbWUtPnNl
dHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHVybCk7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNl
dHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIXNo
b3VsZFByaW50RXhjZXB0aW9ucygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwcmludFNvdXJj
ZVVSTEFuZExpbmUodXJsLCBsaW5lTnVtYmVyKTsKLSAgICBwcmludE1lc3NhZ2VTb3VyY2VBbmRM
ZXZlbFByZWZpeChzb3VyY2UsIGxldmVsKTsKLQotICAgIHByaW50ZigiICVzXG4iLCBtZXNzYWdl
LnV0ZjgoKS5kYXRhKCkpOwotfQotCiBzdGF0aWMgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFn
ZSogcGFnZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBTY3JpcHRTdGF0
ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBwcnBBcmd1bWVudHMsIGJvb2wg
YWNjZXB0Tm9Bcmd1bWVudHMgPSBmYWxzZSwgYm9vbCBwcmludFRyYWNlID0gZmFsc2UpCiB7CiAg
ICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1lbnRzID0gcHJwQXJndW1lbnRzOwpAQCAt
MjE4LDExICs5NSwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFn
ZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLAogICAgIGlmIChnb3RNZXNz
YWdlKQogICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNv
bGUoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsYXN0Q2Fs
bGVyLmxpbmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKSk7CiAKLSAgICBpZiAoIXBh
Z2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkg
JiYgIUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgIGlmICghcGFnZS0+c2V0
dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhUGFn
ZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBwcmludFNvdXJjZVVSTEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxl
ci5saW5lTnVtYmVyKCkpOwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENv
bnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50U291
cmNlVVJMQW5kTGluZShsYXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1i
ZXIoKSk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4
KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGFyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgU3RyaW5n
IGFyZ0FzU3RyaW5nID0gYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvU3RyaW5nKGFyZ3VtZW50
cy0+Z2xvYmFsU3RhdGUoKSk7CkBAIC0zODgsMTkgKzI2NSw2IEBAIHZvaWQgQ29uc29sZTo6Z3Jv
dXBFbmQoKQogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShwYWdlKCksIENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBM
b2dNZXNzYWdlTGV2ZWwsIFN0cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAKLS8vIHN0YXRpYwot
dm9pZCBDb25zb2xlOjptdXRlKCkKLXsKLSAgICBtdXRlQ291bnQrKzsKLX0KLQotLy8gc3RhdGlj
Ci12b2lkIENvbnNvbGU6OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+IDApOwot
ICAgIG11dGVDb3VudC0tOwotfQotCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1l
bW9yeSgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgY3JlYXRlIGEgbmV3IG9i
amVjdCBoZXJlIGVhY2ggdGltZSwKQEAgLTQwOCwxOCArMjcyLDYgQEAgUGFzc1JlZlB0cjxNZW1v
cnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25zdAogICAgIHJldHVybiBNZW1vcnlJbmZvOjpj
cmVhdGUobV9mcmFtZSk7CiB9CiAKLXN0YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9IGZhbHNl
OwotCi1ib29sIENvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCi17Ci0gICAgcmV0dXJu
IHByaW50RXhjZXB0aW9uczsKLX0KLQotdm9pZCBDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2Vw
dGlvbnMoYm9vbCBwcmludCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsKLX0KLQog
UGFnZSogQ29uc29sZTo6cGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnNvbGUuaAppbmRleCBhOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVjNWZjNDJm
Li5lNTc0Mzg3Yzc3N2JjYzJlMjA2N2E1YzQ4MWE3NjYzMjY3M2RkYjc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuaApAQCAtMjksMTAgKzI5LDcgQEAKICNpZm5kZWYgQ29uc29sZV9oCiAjZGVmaW5lIENv
bnNvbGVfaAogCi0jaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCi0jaW5jbHVkZSAiQ29uc29s
ZVR5cGVzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRlICJTY3Jp
cHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0U3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQyLDEyICszOSwx
MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJh
bWU7CiBjbGFzcyBNZW1vcnlJbmZvOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEFyZ3VtZW50
czsKLWNsYXNzIFNjcmlwdENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVH
R0VSKQogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+ID4gUHJvZmlsZXNBcnJh
eTsKQEAgLTU4LDEwICs1Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25z
b2xlPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29uc29sZShm
cmFtZSkpOyB9CiAgICAgdmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0
SWRlbnRpZmllciA9IDApOwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+KTsKLSAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
LCBEb2N1bWVudCogPSAwKTsKLQogICAgIHZvaWQgZGVidWcoU2NyaXB0U3RhdGUqLCBQYXNzUmVm
UHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZvaWQgZXJyb3IoU2NyaXB0U3RhdGUqLCBQYXNz
UmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZvaWQgaW5mbyhTY3JpcHRTdGF0ZSosIFBh
c3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CkBAIC05MCwxMyArODEsMTAgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKICAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKIAotICAg
IHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOwotICAgIHN0YXRpYyB2b2lkIHNl
dFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKLQogICAgIFBhc3NSZWZQdHI8TWVtb3J5SW5m
bz4gbWVtb3J5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgaW5saW5lIFBhZ2UqIHBhZ2UoKSBj
b25zdDsKKyAgICBQYWdlKiBwYWdlKCkgY29uc3Q7CiAKICAgICBleHBsaWNpdCBDb25zb2xlKEZy
YW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YjAxNTk1MTYwNWNhNWY2
YjE4OTIxZmMxYjExY2I4ZThlN2U5ODU0Li5kYzJhODBlYTEzZTNjNzY2Mzk0ZjVmMzk0MTMzYzA2
OWEyY2UyYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03NSw2ICs3NSw3IEBA
CiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdy
b3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZv
cm1hbmNlLmgiCkBAIC02OTQsNiArNjk1LDEzIEBAIENvbnNvbGUqIERPTVdpbmRvdzo6Y29uc29s
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUq
IERPTVdpbmRvdzo6cGFnZUNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghaXNDdXJyZW50bHlE
aXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2ZyYW1l
LT5wYWdlKCkgPyBtX2ZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKSA6IDA7Cit9CisKIERPTUFwcGxp
Y2F0aW9uQ2FjaGUqIERPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7CiAgICAg
aWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2
b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJp
dHlPcmlnaW4qIGludGVuZGVkVGFyZwogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2lu
LT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewog
ICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAi
ICsgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKS0+dG9TdHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5h
ZGRNZXNzYWdlKFNlY3VyaXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3Nh
Z2UsIHN0YWNrVHJhY2UpOworICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShT
ZWN1cml0eU1lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzdGFja1Ry
YWNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3OTgsNyAr
MTgwNiw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgbWVzc2FnZSk7CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRv
dzo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA0Yjc2NDM4MDk0ZDE2MGZhZDYyZmRlMTNhYjQ4
MTQ2ZjFkZGIxYjkxLi4wNzkwZWU4OThmZTQzZTBmOGMxNjc3OTI3OWZkYTNjZDJkOTZhYjE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBh
Z2U7CisgICAgY2xhc3MgUGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAg
Y2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CkBAIC0y
MzMsNiArMjM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPFdl
YktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShOb2RlKiwgY29uc3Qg
V2ViS2l0UG9pbnQqKSBjb25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUo
KSBjb25zdDsKKyAgICAgICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkgY29uc3Q7CiAKICAg
ICAgICAgdm9pZCBwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3Ry
aW5nIGNyb3NzRG9tYWluQWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGQzYmRiMGUyYzY3NmRmZWY1N2MwN2M5NjhiZGM1ZjYz
MGI5YTA5ZmQuLjQ5YjI0Y2RjZDdhNDE1ZmQ0ZWRmMmNlNGRhNzZmMjY2MzQ1YTIzYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgog
I2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgi
CisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNs
dWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0xNzYsNiAr
MTc3LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAg
ICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENs
aWVudCkKICAgICAsIG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQorICAgICwg
bV9jb25zb2xlKFBhZ2VDb25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJUKG1fZWRp
dG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBjMGM3MzE4N2I2YjgyNTU2NjlkYzI3MzM3
NmJiNjIwYzI4OTRiOTVkLi45MWZiOWVhMGNlZDE0MTE2YzlhMWJjZmFjN2Y0MTUyOTRlOWNjYjNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuaApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7
CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVy
OwogY2xhc3MgTm9kZTsKK2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFnZUdyb3VwOwogY2xh
c3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3OCw2ICszNzksNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcmIGVuZ2luZU5hbWUp
OwogICAgIHZvaWQgcmVzZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQYWdlQ29uc29sZSog
Y29uc29sZSgpIHsgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQpAQCAtNTA0LDYgKzUwNiw3IEBAIHByaXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50KiBtX2FsdGVybmF0aXZlVGV4dENsaWVudDsKIAogICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1h
dGlvbnNTdXNwZW5kZWQ7CisgICAgT3duUHRyPFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7CiAKICAg
ICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1Z2luczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9z
ZWVuTWVkaWFFbmdpbmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
c29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xOTNjYTgyZDE5NDFkOGU4Njc2ZTU0NWFjMTA2YWFhNWRiM2JlOTZiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKQEAgLTAsMCArMSwyMTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorCisjaW5j
bHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29u
c29sZUFQSVR5cGVzLmgiCisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKKyNp
bmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNl
ci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRl
IDx3dGYvVW51c2VkUGFyYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNp
bmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitu
YW1lc3BhY2UgeworICAgIGludCBtdXRlQ291bnQgPSAwOworfQorCitQYWdlQ29uc29sZTo6UGFn
ZUNvbnNvbGUoUGFnZSogcGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+
UGFnZUNvbnNvbGUoKSB7IH0KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRM
aW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoreworICAg
IGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobGluZU51bWJlciA+IDAp
CisgICAgICAgICAgICBwcmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwg
bGluZU51bWJlcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNv
dXJjZVVSTC51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnBy
aW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwpCit7CisgICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOworICAgIHN3
aXRjaCAoc291cmNlKSB7CisgICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgorICAgICAgICBzb3Vy
Y2VTdHJpbmcgPSAiWE1MIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU01lc3NhZ2VTb3Vy
Y2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJKUyI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JL
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAg
ICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNPTEVBUEkiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFN0b3JhZ2VNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFH
RSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291cmNlOgorICAg
ICAgICBzb3VyY2VTdHJpbmcgPSAiQVBQQ0FDSEUiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFJlbmRlcmluZ01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJ
TkciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6CisgICAgICAg
IHNvdXJjZVN0cmluZyA9ICJDU1MiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5
TWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0
cmluZyA9ICJPVEhFUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9XTiI7Cisg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbnN0IGNoYXIqIGxldmVsU3RyaW5nOworICAg
IHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICBs
ZXZlbFN0cmluZyA9ICJERUJVRyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9nTWVzc2Fn
ZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJMT0ciOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdhcm5pbmdNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIldBUk4i
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICBs
ZXZlbFN0cmluZyA9ICJFUlJPUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dO
IjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VT
dHJpbmcsIGxldmVsU3RyaW5nKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICBTdHJpbmcgdXJsOworICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgdXJsID0g
ZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOworICAgIHVuc2lnbmVkIGxpbmUgPSAwOworICAgIGlm
IChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3Vt
ZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKKyAg
ICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyKCk7CisgICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JT
Y3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgICAgIGxp
bmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOworICAgIH0KKyAgICBhZGRN
ZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElk
ZW50aWZpZXIpOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOworfQorCit2
b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdl
TGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ss
IFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKK3sK
KyAgICBpZiAobXV0ZUNvdW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjYWxsU3RhY2spCisgICAgICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRl
bnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFk
ZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1l
c3NhZ2UsIHVybCwgbGluZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAg
IGlmICghcGFnZS0+c2V0dGluZ3MoKSB8fCBwYWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3Np
bmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5jbGll
bnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVt
YmVyLCB1cmwpOworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2Vz
VG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJl
cik7CisgICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7
CisKKyAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKK30KKworLy8g
c3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjptdXRlKCkKK3sKKyAgICBtdXRlQ291bnQrKzsKK30K
KworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjp1bm11dGUoKQoreworICAgIEFTU0VSVCht
dXRlQ291bnQgPiAwKTsKKyAgICBtdXRlQ291bnQtLTsKK30KKworc3RhdGljIGJvb2wgcHJpbnRF
eGNlcHRpb25zID0gZmFsc2U7CisKK2Jvb2wgUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0
aW9ucygpCit7CisgICAgcmV0dXJuIHByaW50RXhjZXB0aW9uczsKK30KKwordm9pZCBQYWdlQ29u
c29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wgcHJpbnQpCit7CisgICAgcHJpbnRF
eGNlcHRpb25zID0gcHJpbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbnNvbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGMwODkyNDEyZmExNWFkNTNiOWJmMDVkYjEx
NTIwZTllOWFlYzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uc29sZS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGFnZUNvbnNvbGVfaAorI2RlZmlu
ZSBQYWdlQ29uc29sZV9oCisKKyNpbmNsdWRlICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFBhZ2VDb25z
b2xlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ29uc29sZT4gY3JlYXRl
KFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ29uc29sZShwYWdlKSk7IH0K
KyAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZSgpOworCisgICAgc3RhdGljIHZvaWQgcHJpbnRTb3Vy
Y2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVy
KTsKKyAgICBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwpOworCisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3Rh
Y2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmll
ciA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAg
ICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVu
dCogPSAwKTsKKworICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKKyAgICBzdGF0aWMgdm9pZCB1bm11
dGUoKTsKKworICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOworICAgIHN0
YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKKworcHJpdmF0ZToKKyAg
ICBQYWdlQ29uc29sZShQYWdlKik7CisKKyAgICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdl
OyB9OworCisgICAgUGFnZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gUGFnZUNvbnNvbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAKaW5kZXggNTAzODAyYzdmZTdiNTZmNWY3MmQxNzgzYWI3YmMzMGNiNjU4
MWFkZS4uOWU2ZWE5OGUzODljZmE3ZTkyNzUxNGM2NDRiMTIyZTNhYjVjN2JjYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0yNywxMCArMjcsMTEg
QEAKICNpbmNsdWRlICJYU0xUUHJvY2Vzc29yLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5o
IgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0
LmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVu
Yyh2b2lkKiwgY29uc3QgY2hhciosIC4uLikKIAogdm9pZCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVy
cm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJyb3IqIGVycm9yKQogewotICAgIENvbnNvbGUq
IGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxDb25zb2xlKj4odXNlckRhdGEpOworICAgIFBhZ2VDb25z
b2xlKiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8UGFnZUNvbnNvbGUqPih1c2VyRGF0YSk7CiAgICAg
aWYgKCFjb25zb2xlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzNyw5ICsxMzgsMTAgQEAgc3Rh
dGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbENoYXIqIHVyaSwKICAgICAgICAg
ICAgIGdsb2JhbENhY2hlZFJlc291cmNlTG9hZGVyLT5wcmludEFjY2Vzc0RlbmllZE1lc3NhZ2Uo
dXJsKTsKICAgICAgICAgfQogCi0gICAgICAgIENvbnNvbGUqIGNvbnNvbGUgPSAwOwotICAgICAg
ICBpZiAoZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+
ZnJhbWUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUgPSBnbG9iYWxQcm9jZXNzb3ItPnhzbFN0eWxl
c2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgICAg
ICBQYWdlQ29uc29sZSogY29uc29sZSA9IDA7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGdsb2Jh
bFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50KCktPmZyYW1lKCk7Cisg
ICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgY29uc29sZSA9
IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKTsKICAgICAgICAgeG1sU2V0U3RydWN0dXJlZEVycm9y
RnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyk7CiAgICAgICAgIHht
bFNldEdlbmVyaWNFcnJvckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9y
RnVuYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRp
c3RpY3MubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmlu
ZGV4IGJmOTE3NTkwMGM1OGUyYTQ2NjA2MDY3MjFkNTIwOTY1MDZiNzU4MmMuLjA2OWFhNDc5NTMy
MTY1NWI5Y2ExMDljNjFiYWFiZDIyODI2MDA5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJDb3JlU3RhdGlzdGljcy5tbQpAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCAiV2ViRnJh
bWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW1wb3J0
IDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0Nv
bnNvbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgpAQCAtNDIsNiArNDEs
NyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SlNET01XaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1BhZ2VDb25zb2xlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ByaW50Q29udGV4dC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
bmRlclZpZXcuaD4KQEAgLTE2OCwxMyArMTY4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogKyAoQk9PTClzaG91bGRQcmludEV4Y2VwdGlvbnMKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9j
ayhKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotICAgIHJldHVybiBDb25zb2xl
OjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICByZXR1cm4gUGFnZUNvbnNvbGU6OnNob3Vs
ZFByaW50RXhjZXB0aW9ucygpOwogfQogCiArICh2b2lkKXNldFNob3VsZFByaW50RXhjZXB0aW9u
czooQk9PTClwcmludAogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21t
b25KU0dsb2JhbERhdGEoKSk7Ci0gICAgQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25z
KHByaW50KTsKKyAgICBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKHByaW50
KTsKIH0KIAogKyAodm9pZCllbXB0eUNhY2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193432</attachid>
            <date>2013-03-16 02:03:40 -0700</date>
            <delta_ts>2013-03-16 15:30:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130316125934.patch</filename>
            <type>text/plain</type>
            <size>48838</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmViNDczNjAxY2U2YzMw
ZjY3YjNkNzEwNTIyNDgxY2EzOGI4NTg4Yy4uNmExOGYzYTQ5N2RlYWEyNTU3OTM4M2VhMmQxNWI3
OGQ0MGM1MWI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEzLTAzLTE2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRDb25zb2xl
TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkTWVzc2FnZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
RGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0
ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29u
c29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omlu
dGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cGFnZUNvbnNvbGUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2
ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRF
cnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpjb25zb2xlKToKKyAgICAg
ICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNv
bGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRF
eGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGUuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnBhZ2UpOgorICAgICAgICAqIHhtbC9Y
U0xTdHlsZVNoZWV0TGlieHNsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xTdHlsZVNoZWV0
OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAyMDEzLTAzLTE1ICBNYXJqYSBIw7ZsdHTD
pCAgPG1hcmphQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIEFkZCBtYWNoaW5lcnkgZm9y
IGdlbmVyYXRpbmcgc3BlY2lhbGl6ZWQgYmluZGluZ3MgZm9yIHRoZSBtYWluIHdvcmxkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKaW5kZXggOTBmZWI5ZmUxZjYwODMyZDUxNDhiMDkyNGNmNjNlODIwMDY2ZmQxOC4u
YzVhOGIxOGU2YWJmNWEwOGFlMDkxYjRkOGI3NGQ2OTc5MWQyNGE5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTE2ICBTZXJnZXkgUnlhemFub3YgIDxzZXJ5YUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc3BsaXQgQ29uc29sZSBpbnRv
IHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9iamVjdCBhbmQgcGFnZSBjb25zb2xl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTc4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3RoZXJ3
aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUg
RE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisgICAgICAgICogTWlzYy9XZWJDb3Jl
U3RhdGlzdGljcy5tbToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3RpY3Mgc2hvdWxkUHJpbnRF
eGNlcHRpb25zXSk6CisgICAgICAgICgrW1dlYkNvcmVTdGF0aXN0aWNzIHNldFNob3VsZFByaW50
RXhjZXB0aW9uczpdKToKKwogMjAxMy0wMy0xNCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTZj
OTQzZDgzYmJkNTJlODhhZmNlMzdhYTEyYzAzMjI2OGYwMjY2Yy4uY2UyNWVlNjkyYTY3NGQ2ZGU2
MTk0NjkzNDFhZDVmZGZjMTllYjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE3ODgsNiAr
MTc4OCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3Bw
CiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAKICAgICBwYWdlL1BhZ2UuY3BwCisgICAg
cGFnZS9QYWdlQ29uc29sZS5jcHAKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAKICAgICBwYWdlL1Bh
Z2VHcm91cExvYWREZWZlcnJlci5jcHAKICAgICBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggM2Q0YTA3MjUzMWZmM2Q3ODFlNDkzNjA1MmQ0
MTc5YTkyMTY3YzFhYy4uNzZjMTYzNTcxMzY5ZDhkYWNkNzUxZGY1NDFlZTI3NWRlMjQ1OTcyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MjM2LDYgKzQyMzYsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnku
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4
IGNlNjdkOWM3MmViNTUyZGQyOTMwMTE3ZmYzM2Q2ZjhkZWUyMGRmYWMuLjMwZWNkY2ViMWJhMzU3
MTEzNjBlZTNhMTZhMTQ5MmYyOTM4Y2ZlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtOTQ3LDYgKzk0Nyw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHAgXAogICAgIHBhZ2Uv
T3JpZ2luQWNjZXNzRW50cnkuY3BwIFwKICAgICBwYWdlL1BhZ2UuY3BwIFwKKyAgICBwYWdlL1Bh
Z2VDb25zb2xlLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAgICBwYWdlL1BhZ2VH
cm91cExvYWREZWZlcnJlci5jcHAgXAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlTdGF0ZS5jcHAg
XApAQCAtMjE0NCw2ICsyMTQ1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFnZS9QYWdlR3JvdXAu
aCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAgICAgcGFnZS9QYWdlLmgg
XAorICAgIHBhZ2UvUGFnZUNvbnNvbGUuaCBcCiAgICAgcGFnZS9QYWdlVmlzaWJpbGl0eVN0YXRl
LmggXAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmggXAogICAgIHBhZ2UvUG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDUyN2QzOTVlNmVlZGI4N2U4NzljNGJl
YTYyOTg3Y2JjM2FhMDM1ZmMuLjEzMDQxYzdmYWZkYjU5MmNhY2ZmMDFkMWJiZWZlMDQ1MTgzN2Qx
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05MzQsOCArOTM0LDYgQEAgX19aTjdXZWJDb3Jl
NldpZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBhcmVudEVQTlNfMTBT
Y3JvbGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2ViQ29yZTZ0b05vZGVF
TjNKU0M3SlNWYWx1ZUUKLV9fWk43V2ViQ29yZTdDb25zb2xlMjFzaG91bGRQcmludEV4Y2VwdGlv
bnNFdgotX19aTjdXZWJDb3JlN0NvbnNvbGUyNHNldFNob3VsZFByaW50RXhjZXB0aW9uc0ViCiBf
X1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0b21pY1N0cmluZ0VT
NF9SaQogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05TXzEzUXVhbGlmaWVk
TmFtZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxlbWVudDIxYm91bmRz
SW5Sb290Vmlld1NwYWNlRXYKQEAgLTE3MjIsNiArMTcyMCw4IEBAIF9fWk43V2ViQ29yZTEwaGFu
ZEN1cnNvckV2CiBfX1pON1dlYkNvcmUxMUNhY2hlZEltYWdlNWltYWdlRXYKIF9fWk43V2ViQ29y
ZTExZ2xvYmFsUG9pbnRFUks4X05TUG9pbnRQOE5TV2luZG93CiBfX1pON1dlYkNvcmUxMXRvVXNl
clNwYWNlRVJLN19OU1JlY3RQOE5TV2luZG93CitfX1pON1dlYkNvcmUxMVBhZ2VDb25zb2xlMjFz
aG91bGRQcmludEV4Y2VwdGlvbnNFdgorX19aTjdXZWJDb3JlMTFQYWdlQ29uc29sZTI0c2V0U2hv
dWxkUHJpbnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTBtb3VzZU1v
dmVkRVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMHdoZWVsRXZlbnRFUDdO
U0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjEybW91c2VEcmFnZ2VkRVA3TlNFdmVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDllMDhhOTNiOTVjOTc1MmM0M2JjNDk1NzNiOTU3MTExYzEz
OTgxYmUuLjc5OWU1ZmU5NjA4NmY1OWJiYmVmNDc4ZDQzMTM5Mjk5MzRmNjg3MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTIyNTIsNiArMjI1Miw3IEBACiAgICAgICAgICAgICAncGFnZS9PcmlnaW5B
Y2Nlc3NFbnRyeS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaCcs
CiAgICAgICAgICAgICAncGFnZS9QYWdlLmNwcCcsCisgICAgICAgICAgICAncGFnZS9QYWdlQ29u
c29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmNwcCcsCiAgICAgICAgICAg
ICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL1Bh
Z2VHcm91cExvYWREZWZlcnJlci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDc1MDNkYzI1YTE0
MjliOWZkNzAwMDg1ZTY5ZjQxM2JhZWVmNzdkZmQuLjFiODIyNTRjODlmMjU0NmJjNDZhYWE4ZTg1
NmU5OTQwMGZiZjgyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTU1NTksNyArMTU1NTksNiBA
QCBfX1pOM1dURjI5UmVmUHRySGFzaE1hcFJhd0tleVRyYW5zbGF0b3JJUE43V2ViQ29yZTE0UmVz
b3VyY2VMb2FkZXJFU3Q0cGFpcklOU182UgogX19aTjNXVEY2VmVjdG9ySU5TXzZSZWZQdHJJTjdX
ZWJDb3JlMTVBcmNoaXZlUmVzb3VyY2VFRUVMbTBFRUQxRXYKIF9fWk43V2ViQ29yZTVUaW1lcklO
U18xNERvY3VtZW50TG9hZGVyRUU1ZmlyZWRFdgogX19aTjdXZWJDb3JlMTREb2N1bWVudExvYWRl
cjM2c3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkRVBOU181VGltZXJJUzBfRUUK
LV9fWk43V2ViQ29yZTdDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlvbnNFYgogX19aTjdX
ZWJDb3JlMTZqc0NsaXBib2FyZFR5cGVzRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJL
TlMwXzEwSWRlbnRpZmllckUKIF9fWk5LN1dlYkNvcmUxMUpTQ2xpcGJvYXJkNXR5cGVzRVBOM0pT
QzlFeGVjU3RhdGVFCiBfX1pOSzdXZWJDb3JlMTJDbGlwYm9hcmRNYWM1dHlwZXNFdgpAQCAtMTU2
NzksNiArMTU2NzgsNyBAQCBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTly
ZWNlaXZlRHJvcHBlZEZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82UwogX19aTjdXZWJDb3JlMjNS
ZW5kZXJGaWxlVXBsb2FkQ29udHJvbDE5YWxsb3dzTXVsdGlwbGVGaWxlc0V2CiBfX1pON1dlYkNv
cmUxMUZpbGVDaG9vc2VyMTBjaG9vc2VGaWxlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3Jl
MTFGaWxlQ2hvb3NlcjExY2hvb3NlRmlsZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0w
RUVFCitfX1pON1dlYkNvcmUxMVBhZ2VDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlvbnNF
YgogX19aVGhuMTg0X043V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wxOGNob29zZUlj
b25Gb3JGaWxlc0VQTlNfMTFGaWxlQ2hvb3NlckVSS04zV1RGNlZlY3RvcklOUzNfNlN0cmluZ0VM
bTBFRUUKIF9fWk43V2ViQ29yZTZDaHJvbWUxOGNob29zZUljb25Gb3JGaWxlc0VSS04zV1RGNlZl
Y3RvcklOUzFfNlN0cmluZ0VMbTBFRUVQTlNfMTFGaWxlQ2hvb3NlckUKIF9fWk43V2ViQ29yZTRJ
Y29uMThjcmVhdGVJY29uRm9yRmlsZXNFUktOM1dURjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRUVF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDdh
MzUwM2RiNzViYTJjMzlhZDU3ZWE2YWJhOGU0ZjRiYzkyMzdjNDMuLjg3OTJlZmJiNzQ1ZGI5ZTBj
NWM2NjY5MGU0MjZmZTc4OWE3MTkwMmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzU5MCw2ICsyNzU5MCwxNCBAQAogCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGFnZVxQYWdlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlQ29uc29sZS5j
cHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcUGFnZUNvbnNvbGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIgogCQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDZiZTNmYWQ2ZWEzNzQ2ZGJl
Y2MyZTdmNTNhZTgwNzE4YTJjN2VlNTcuLjg2MDY2MGY4MjI2NzU2MWM3OTEzZGY5ZTQ4MTdkZGVm
MWVlYWY5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagpAQCAtMjk5Miw2ICsyOTkyLDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBhZ2VcTmF2aWdhdG9yQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxw
YWdlXE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBhZ2VcUGFnZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VD
b25zb2xlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3Vw
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdyb3VwTG9hZERl
ZmVycmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZVNlcmlh
bGl6ZXIuY3BwIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDEzNjMyMWFiY2RmYTViY2Q5ZDJhYzUwOTRi
Y2Y0YmZhMWIxOGUyYzcuLjkwNDllY2Q0MTJlOThmMGMxMjU2Yzc0MTFjNzEyNzE0NDMwODg2ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKQEAgLTY2OTYsNiArNjY5Niw5IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwYWdlXFBhZ2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAg
IDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlQ29uc29s
ZS5jcHAiPgorICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAiPgogICAgICAgPEZp
bHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzc4MWUzNTI1N2QwZmY0
MGIwYWExZjI4ZmY4ODJkMDFkOTk2OTU2Ni4uM2I0ZDI4NTI0ZDc4NDU5ZDNiNmRiMjA4YWEwNDg3
YWY5NzVmZjcxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNjE1Myw2ICs2MTUzLDggQEAKIAkJRDc2MTNBNTAxNDc0RjEzRjAw
REI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBENzYxM0E0RTE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFt
ZWRGbG93LmNwcCAqLzsgfTsKIAkJRDc2MTNBQzQxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0
TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQ3NjEzQUMyMTQ3NTNFNTYwMERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgKi87
IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0
QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFBQ0IzRDkxNkYyNDE2
NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLzsgfTsKKwkJREFFRDIwMzExNkYyNDQ0ODAw
NzBFQzBGIC8qIFBhZ2VDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQjIzQzJD
QjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkwQTUwOEQyOTAwMjQ4
OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIyM0MyQ0MwQTUwOEQy
OTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5k
ZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKIAkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZFIC8q
IFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRyYXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTM4
NjMsNiArMTM4NjUsOCBAQAogCQlENzYxM0FDMjE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXRO
YW1lZEZsb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJL
aXROYW1lZEZsb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENzYxM0FDMzE0
NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VDb25zb2xlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25z
b2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VDb25zb2xlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJ
bmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREMDVGRTBCMEI4QkEzQzYwMDlBQ0RGRSAv
KiBXZWJDb3JlT2JqQ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQ29yZU9iakNFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDgw
LDYgKzE2NDg0LDggQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmNw
cCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmggKi8sCiAJCQkJ
OTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJCQkJREFBQ0IzRDkx
NkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLywKKwkJCQlEQUFDQjNEQTE2RjI0
MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAqLywKIAkJCQlDQ0MyQjUxMDE1RjYxMzA2MDA0
OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8sCiAJCQkJQ0NDMkI1MTExNUY2MTMwNjAwNDhDREQ2
IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNDQzJCNTEyMTVGNjEzMDYwMDQ4Q0RE
NiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8sCkBAIC0yNjc2Nyw2ICsyNjc3Myw3IEBACiAJCQkJ
OTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJREFFRDIwMzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBhZ2VDb25zb2xl
LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5OTc1LDYgKzI5OTgyLDcgQEAKIAkJCQk5NzdFMkUwRTEy
RjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdF
MkUwRTEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYTliMzRhNjU2YzhmZmVhMWU3OWUxY2Rl
NmY3NmY4ZjYwZDQ3OTg0Yi4uYjZlOTdlOTkxNDEzNmE4YzRiODk2MzVlNDliZWMyM2EzNjY4OGMw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcApAQCAtMjYsMTIgKzI2LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1ZGUgIkNvbnNv
bGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5j
bHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgogCkBAIC03Nyw4ICs3OCw5IEBAIFN0cmluZyBKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQog
ICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgY2FsbFR5cGUgPSBt
X2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29s
dmVyLmdldCgpLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5v
bmUpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJlciBhbmQg
c291cmNlIFVSTC4KLSAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNvbnNvbGUo
KS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhO
U1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOwor
ICAgICAgICAgICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+aW1wbCgp
LT5wYWdlQ29uc29sZSgpOworICAgICAgICAgICAgaWYgKGNvbnNvbGUpCisgICAgICAgICAgICAg
ICAgY29uc29sZS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVs
LCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0
aG9kLiIpOwogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAgICAgICAg
IGZ1bmN0aW9uID0gbV9jdXN0b21SZXNvbHZlci5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwCmluZGV4IGI5NTRmZmVkMWVkMzY4ZGRlYzcyZmIxMmYzZjJiN2Q4ODFjOTVhMTQuLmNhZTM0
ODliNWQwMGY4OTZjODcwMDU1NjQ5ZmY3NTZjZjlhZWE2NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29s
dmVyLmNwcApAQCAtMzAsOCArMzAsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJWOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5oIgogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2lu
Y2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgi
CiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKQEAgLTY5LDcgKzcxLDkgQEAgU3RyaW5nIFY4Q3VzdG9tWFBhdGhOU1Jlc29s
dmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgpCiAgICAgfQogCiAg
ICAgaWYgKGxvb2t1cE5hbWVzcGFjZVVSSUZ1bmMuSXNFbXB0eSgpICYmICFtX3Jlc29sdmVyLT5J
c0Z1bmN0aW9uKCkpIHsKLSAgICAgICAgYWN0aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0ZTo6aW5z
dGFuY2UoKSktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVz
c2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3Bh
Y2VVUkkgbWV0aG9kLiIpOworICAgICAgICBGcmFtZSogZnJhbWUgPSBhY3RpdmVET01XaW5kb3co
QmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+ZnJhbWUoKTsKKyAgICAgICAgaWYgKGZyYW1lICYm
IGZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCktPmFk
ZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNv
bHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKTsKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
MzAxODNjMjZhNTM0NWFhOTc5Njg5ODc4ODRjZmVjNTQ5ZGNkNGM0Zi4uODU0NzQ1NDRlNjg2NjQ5
ZWUxYjFmZDhmYWNiNGNmY2U0Y2NhZjlmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0x
MjUsNiArMTI1LDcgQEAKICNpbmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiTm9k
ZVdpdGhJbmRleC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKQEAgLTQ4MTQsMTAgKzQ4MTUs
OSBAQCB2b2lkIERvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkpIHsKLSAgICAgICAgaWYgKENv
bnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUt
PmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElkZW50aWZpZXIsIHRo
aXMpOwotICAgIH0KKyAgICBQYWdlKiBwID0gcGFnZSgpOworICAgIGlmIChwKQorICAgICAgICBw
LT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElk
ZW50aWZpZXIsIHRoaXMpOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllcikKQEAgLTQ4MjcsMTAgKzQ4MjcsOSBAQCB2b2lkIERvY3Vt
ZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWws
IGNvbnN0IFN0cmluZwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKERPTVdpbmRv
dyogd2luZG93ID0gZG9tV2luZG93KCkpIHsKLSAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUg
PSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291
cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHN0
YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgfQorICAgIFBhZ2UqIHAgPSBwYWdlKCk7Cisg
ICAgaWYgKHApCisgICAgICAgIHAtPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVs
LCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxTdGFjaywgc3RhdGUsIHJlcXVl
c3RJZGVudGlmaWVyKTsKIH0KIAogY29uc3QgU2VjdXJpdHlPcmlnaW4qIERvY3VtZW50Ojp0b3BP
cmlnaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VE
ZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJB
Z2VudC5jcHAKaW5kZXggMTYyMjJlZTY1MWQ3NmEwNDY5NTRiN2ZiYWU1MWM4YmZkYjAwMjdmNy4u
MjAwZmIyY2Y3NDU2MGI1NWM1N2I5NGYxMThhNjRkY2RkNmMwZmU3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zNCwxMSArMzQsMTEg
QEAKIAogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dlckFnZW50LmgiCiAKLSNpbmNsdWRlICJDb25zb2xl
LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBh
Z2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODgsMTIgKzg4LDEyIEBAIFBh
Z2VTY3JpcHREZWJ1Z1NlcnZlciYgUGFnZURlYnVnZ2VyQWdlbnQ6OnNjcmlwdERlYnVnU2VydmVy
KCkKIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNv
bGU6Om11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VEZWJ1
Z2dlckFnZW50Ojp1bm11dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjp1bm11dGUoKTsKKyAg
ICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7CiB9CiAKIEluamVjdGVkU2NyaXB0IFBhZ2VEZWJ1Z2dl
ckFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBj
b25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCA3N2I0MGZhMzEyYTdhNGYzMWM2MzczMmZkMzc2
NGUwODlmODE3MjZlLi5hODQzMWJhMGZhNzhjYzg0MTViODQ0YzIyM2UxYjAzNGViMmU5NjYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC0z
NCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJQYWdlUnVudGltZUFnZW50LmgiCiAKLSNpbmNsdWRl
ICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNj
cmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgpAQCAtNDIsNiArNDEs
NyBAQAogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGlu
Z0FnZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVy
OjpSdW50aW1lOjpFeGVjdXRpb25Db250ZXh0RGVzY3JpcHRpb247CkBAIC0xNDgsMTIgKzE0OCwx
MiBAQCBJbmplY3RlZFNjcmlwdCBQYWdlUnVudGltZUFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2
YWwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLAogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6Om11
dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjptdXRlKCk7CisgICAgUGFnZUNvbnNvbGU6Om11
dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50Ojp1bm11dGVDb25zb2xlKCkKIHsKLSAg
ICBDb25zb2xlOjp1bm11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7CiB9CiAKIHZv
aWQgUGFnZVJ1bnRpbWVBZ2VudDo6cmVwb3J0RXhlY3V0aW9uQ29udGV4dENyZWF0aW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4IGVhNTM3YzRmYjIwOTBkNDAxMGNmMGFmNjA2OWRjMDlh
MjIzYjBkOWEuLjY1YzM2ZmEwNDFjZTQ1MGFkOThlZDA1ZGFkM2NhMzEwNWEwOTg4MTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db25zb2xlLmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3Rv
ckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJNZW1vcnlJbmZvLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5j
bHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBA
IC02MSwxMCArNjIsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5hbWVzcGFjZSB7Ci0g
ICAgaW50IG11dGVDb3VudCA9IDA7Ci19Ci0KIENvbnNvbGU6OkNvbnNvbGUoRnJhbWUqIGZyYW1l
KQogICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUpCiB7CkBAIC03NCwxMjYgKzcxLDYgQEAg
Q29uc29sZTo6fkNvbnNvbGUoKQogewogfQogCi1zdGF0aWMgdm9pZCBwcmludFNvdXJjZVVSTEFu
ZExpbmUoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCi17Ci0g
ICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlmIChsaW5lTnVtYmVyID4g
MCkKLSAgICAgICAgICAgIHByaW50ZigiJXM6JWQ6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgp
LCBsaW5lTnVtYmVyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcHJpbnRmKCIlczogIiwg
c291cmNlVVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgcHJpbnRN
ZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCkKLXsKLSAgICBjb25zdCBjaGFyKiBzb3VyY2VTdHJpbmc7Ci0gICAgc3dpdGNo
IChzb3VyY2UpIHsKLSAgICBjYXNlIFhNTE1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0
cmluZyA9ICJYTUwiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEpTTWVzc2FnZVNvdXJjZToK
LSAgICAgICAgc291cmNlU3RyaW5nID0gIkpTIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBO
ZXR3b3JrTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIk5FVFdPUksiOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbnNvbGVBUElNZXNzYWdlU291cmNlOgotICAgICAg
ICBzb3VyY2VTdHJpbmcgPSAiQ09OU09MRUFQSSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
U3RvcmFnZU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJTVE9SQUdFIjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBcHBDYWNoZU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAg
IHNvdXJjZVN0cmluZyA9ICJBUFBDQUNIRSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVu
ZGVyaW5nTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlJFTkRFUklORyI7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291
cmNlU3RyaW5nID0gIkNTUyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgU2VjdXJpdHlNZXNz
YWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU0VDVVJJVFkiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5n
ID0gIk9USEVSIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJVTktOT1dOIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotCi0gICAgY29uc3QgY2hhciogbGV2ZWxTdHJpbmc7Ci0gICAgc3dp
dGNoIChsZXZlbCkgewotICAgIGNhc2UgRGVidWdNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVs
U3RyaW5nID0gIkRFQlVHIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMb2dNZXNzYWdlTGV2
ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkxPRyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgV2FybmluZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiV0FSTiI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXJyb3JNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVs
U3RyaW5nID0gIkVSUk9SIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIlVOS05PV04iOwot
ICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBwcmludGYoIiVzICVzOiIsIHNvdXJjZVN0cmlu
ZywgbGV2ZWxTdHJpbmcpOwotfQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0g
ICAgU3RyaW5nIHVybDsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIHVybCA9IGRvY3VtZW50
LT51cmwoKS5zdHJpbmcoKTsKLSAgICB1bnNpZ25lZCBsaW5lID0gMDsKLSAgICBpZiAoZG9jdW1l
bnQgJiYgZG9jdW1lbnQtPnBhcnNpbmcoKSAmJiAhZG9jdW1lbnQtPmlzSW5Eb2N1bWVudFdyaXRl
KCkgJiYgZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpKSB7Ci0gICAgICAgIFNj
cmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1
bWVudFBhcnNlcigpOwotICAgICAgICBpZiAoIXBhcnNlci0+aXNXYWl0aW5nRm9yU2NyaXB0cygp
ICYmICFwYXJzZXItPmlzRXhlY3V0aW5nU2NyaXB0KCkpCi0gICAgICAgICAgICBsaW5lID0gcGFy
c2VyLT5saW5lTnVtYmVyKCkub25lQmFzZWRJbnQoKTsKLSAgICB9Ci0gICAgYWRkTWVzc2FnZShz
b3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIDAsIDAsIHJlcXVlc3RJZGVudGlmaWVy
KTsKLX0KLQotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKLXsKLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWws
IG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOwotfQotCi12b2lkIENvbnNvbGU6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJl
ciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQotewotICAgIGlmIChtdXRlQ291
bnQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKGNhbGxTdGFjaykKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIGxldmVsLCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICBl
bHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgdXJsLCBsaW5l
TnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwotCi0gICAgaWYgKCFtX2ZyYW1lLT5z
ZXR0aW5ncygpIHx8IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRN
ZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHVybCk7
Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3Rl
bUNvbnNvbGVFbmFibGVkKCkgJiYgIXNob3VsZFByaW50RXhjZXB0aW9ucygpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUodXJsLCBsaW5lTnVtYmVyKTsKLSAg
ICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChzb3VyY2UsIGxldmVsKTsKLQotICAg
IHByaW50ZigiICVzXG4iLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwotfQotCiBzdGF0aWMgdm9p
ZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBTY3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1l
bnRzPiBwcnBBcmd1bWVudHMsIGJvb2wgYWNjZXB0Tm9Bcmd1bWVudHMgPSBmYWxzZSwgYm9vbCBw
cmludFRyYWNlID0gZmFsc2UpCiB7CiAgICAgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gYXJndW1l
bnRzID0gcHJwQXJndW1lbnRzOwpAQCAtMjE4LDExICs5NSwxMSBAQCBzdGF0aWMgdm9pZCBpbnRl
cm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVs
IGxldmVsLAogICAgIGlmIChnb3RNZXNzYWdlKQogICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xp
ZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIHR5cGUs
IGxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3Vy
Y2VVUkwoKSk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNU
b1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9u
cygpKQorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVt
Q29uc29sZUVuYWJsZWQoKSAmJiAhUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUobGFzdENhbGxl
ci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkpOwotICAgIHByaW50TWVzc2Fn
ZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7Cisg
ICAgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShsYXN0Q2FsbGVyLnNvdXJjZVVS
TCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50TWVz
c2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7
CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgp
OyArK2kpIHsKICAgICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0gYXJndW1lbnRzLT5hcmd1bWVu
dEF0KGkpLnRvU3RyaW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUoKSk7CkBAIC0zODgsMTkgKzI2
NSw2IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNvbGVBUElNZXNzYWdlU291cmNl
LCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0cmluZygpLCBTdHJpbmco
KSwgMCk7CiB9CiAKLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjptdXRlKCkKLXsKLSAgICBtdXRl
Q291bnQrKzsKLX0KLQotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6OnVubXV0ZSgpCi17Ci0gICAg
QVNTRVJUKG11dGVDb3VudCA+IDApOwotICAgIG11dGVDb3VudC0tOwotfQotCiBQYXNzUmVmUHRy
PE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IEJl
Y2F1c2Ugd2UgY3JlYXRlIGEgbmV3IG9iamVjdCBoZXJlIGVhY2ggdGltZSwKQEAgLTQwOCwxOCAr
MjcyLDYgQEAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25zdAog
ICAgIHJldHVybiBNZW1vcnlJbmZvOjpjcmVhdGUobV9mcmFtZSk7CiB9CiAKLXN0YXRpYyBib29s
IHByaW50RXhjZXB0aW9ucyA9IGZhbHNlOwotCi1ib29sIENvbnNvbGU6OnNob3VsZFByaW50RXhj
ZXB0aW9ucygpCi17Ci0gICAgcmV0dXJuIHByaW50RXhjZXB0aW9uczsKLX0KLQotdm9pZCBDb25z
b2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmludCkKLXsKLSAgICBwcmludEV4
Y2VwdGlvbnMgPSBwcmludDsKLX0KLQogUGFnZSogQ29uc29sZTo6cGFnZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCBhOWE1ZDI3NDQ1NDVkOGI4
Nzg5M2M3ODYyNGQyMTgzOWVjNWZjNDJmLi5lNTc0Mzg3Yzc3N2JjYzJlMjA2N2E1YzQ4MWE3NjYz
MjY3M2RkYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtMjksMTAgKzI5LDcgQEAKICNpZm5k
ZWYgQ29uc29sZV9oCiAjZGVmaW5lIENvbnNvbGVfaAogCi0jaW5jbHVkZSAiQ29uc29sZUFQSVR5
cGVzLmgiCi0jaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93UHJv
cGVydHkuaCIKLSNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRQ
cm9maWxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFw
cGFibGUuaCIKQEAgLTQyLDEyICszOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBNZW1vcnlJbmZvOwogY2xhc3MgUGFn
ZTsKIGNsYXNzIFNjcmlwdEFyZ3VtZW50czsKLWNsYXNzIFNjcmlwdENhbGxTdGFjazsKIAogI2lm
IEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNjcmlw
dFByb2ZpbGU+ID4gUHJvZmlsZXNBcnJheTsKQEAgLTU4LDEwICs1Myw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+Q29uc29sZSgp
OwogCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0g
MCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZvaWQgYWRkTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKLQogICAgIHZvaWQgZGVi
dWcoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZvaWQg
ZXJyb3IoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZv
aWQgaW5mbyhTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CkBAIC05
MCwxMyArODEsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKICAgICBzdGF0
aWMgdm9pZCB1bm11dGUoKTsKIAotICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9u
cygpOwotICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKLQog
ICAgIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gbWVtb3J5KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0g
ICAgaW5saW5lIFBhZ2UqIHBhZ2UoKSBjb25zdDsKKyAgICBQYWdlKiBwYWdlKCkgY29uc3Q7CiAK
ICAgICBleHBsaWNpdCBDb25zb2xlKEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAppbmRleCA5YjAxNTk1MTYwNWNhNWY2YjE4OTIxZmMxYjExY2I4ZThlN2U5ODU0Li5kYzJhODBl
YTEzZTNjNzY2Mzk0ZjVmMzk0MTMzYzA2OWEyY2UyYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5j
bHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25z
b2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC02OTQsNiArNjk1LDEzIEBAIENv
bnNvbGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5n
ZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6cGFnZUNvbnNvbGUoKSBjb25zdAor
eworICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2ZyYW1lLT5wYWdlKCktPmNvbnNv
bGUoKSA6IDA7Cit9CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIERPTVdpbmRvdzo6YXBwbGljYXRp
b25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZl
bnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZwogICAgICAgICBp
ZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5h
YmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5n
KCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNpcGllbnQgaGFzIG9yaWdp
biAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSArICIuXG4iOwot
ICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKFNlY3VyaXR5TWVzc2FnZVNvdXJjZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2UpOworICAgICAgICAgICAgcGFn
ZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShTZWN1cml0eU1lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogICAgIH0KQEAgLTE3OTgsNyArMTgwNiw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVy
cm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNz
YWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgcGFnZUNvbnNvbGUo
KS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdl
KTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2Uo
RE9NV2luZG93KiBhY3RpdmVXaW5kb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA0Yjc2
NDM4MDk0ZDE2MGZhZDYyZmRlMTNhYjQ4MTQ2ZjFkZGIxYjkxLi4wNzkwZWU4OThmZTQzZTBmOGMx
Njc3OTI3OWZkYTNjZDJkOTZhYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU5LDYg
KzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5hdmlnYXRvcjsKICAgICBj
bGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUGFnZUNvbnNvbGU7CiAgICAg
Y2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKICAgICBjbGFz
cyBTY2hlZHVsZWRBY3Rpb247CkBAIC0yMzMsNiArMjM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9t
Tm9kZVRvUGFnZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsgICAgICAgIAogCiAg
ICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAgICAgUGFnZUNvbnNvbGUqIHBh
Z2VDb25zb2xlKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBwcmludEVycm9yTWVzc2FnZShjb25z
dCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWluQWNjZXNzRXJyb3JNZXNzYWdl
KERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGQzYmRiMGUy
YzY3NmRmZWY1N2MwN2M5NjhiZGM1ZjYzMGI5YTA5ZmQuLjQ5YjI0Y2RjZDdhNDE1ZmQ0ZWRmMmNl
NGRhNzZmMjY2MzQ1YTIzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAog
I2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgi
CiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNs
dWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQ
bHVnaW5EYXRhLmgiCkBAIC0xNzYsNiArMTc3LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYg
cGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VD
bGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1fc2NyaXB0ZWRBbmltYXRpb25z
U3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9jb25zb2xlKFBhZ2VDb25zb2xlOjpjcmVhdGUodGhp
cykpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBj
MGM3MzE4N2I2YjgyNTU2NjlkYzI3MzM3NmJiNjIwYzI4OTRiOTVkLi45MWZiOWVhMGNlZDE0MTE2
YzlhMWJjZmFjN2Y0MTUyOTRlOWNjYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQsNiArNzQsNyBA
QCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xh
c3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTm9kZTsKK2NsYXNzIFBhZ2VDb25zb2xl
OwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luRGF0
YTsKQEAgLTM3OCw2ICszNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXdNZWRpYUVuZ2luZShj
b25zdCBTdHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVzZXRTZWVuTWVkaWFFbmdpbmVz
KCk7CiAKKyAgICBQYWdlQ29uc29sZSogY29uc29sZSgpIHsgcmV0dXJuIG1fY29uc29sZS5nZXQo
KTsgfQogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtNTA0LDYgKzUwNiw3IEBAIHByaXZhdGU6
CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0aXZlVGV4dENsaWVudDsKIAog
ICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7CisgICAgT3duUHRyPFBhZ2VD
b25zb2xlPiBtX2NvbnNvbGU7CiAKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1Z2luczsK
ICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTNjYTgyZDE5NDFkOGU4Njc2ZTU0NWFjMTA2YWFh
NWRiM2JlOTZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
c29sZS5jcHAKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCisjaW5jbHVkZSAiQ29uc29s
ZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbnNw
ZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNjcmlwdEFy
Z3VtZW50cy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFja0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUg
IlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNp
ZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworICAgIGludCBtdXRlQ291bnQgPSAw
OworfQorCitQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUoUGFnZSogcGFnZSkgOiBtX3BhZ2UocGFn
ZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKSB7IH0KKwordm9pZCBQYWdlQ29u
c29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBsaW5lTnVtYmVyKQoreworICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgeworICAg
ICAgICBpZiAobGluZU51bWJlciA+IDApCisgICAgICAgICAgICBwcmludGYoIiVzOiVkOiAiLCBz
b3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9
CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1l
c3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCit7CisgICAgY29uc3QgY2hh
ciogc291cmNlU3RyaW5nOworICAgIHN3aXRjaCAoc291cmNlKSB7CisgICAgY2FzZSBYTUxNZXNz
YWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJKUyI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAgICAg
IHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb25z
b2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNPTEVBUEki
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JhZ2VNZXNzYWdlU291cmNlOgorICAgICAg
ICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFHRSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBw
Q2FjaGVNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQVBQQ0FDSEUiOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlcmluZ01lc3NhZ2VTb3VyY2U6CisgICAgICAg
IHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJTkciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJDU1MiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNlY3VyaXR5TWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3Ry
aW5nID0gIlNFQ1VSSVRZIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdGhlck1lc3NhZ2VT
b3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBzb3Vy
Y2VTdHJpbmcgPSAiVU5LTk9XTiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbnN0
IGNoYXIqIGxldmVsU3RyaW5nOworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNlIERlYnVn
TWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJERUJVRyI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTG9nTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJM
T0ciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhcm5pbmdNZXNzYWdlTGV2ZWw6CisgICAg
ICAgIGxldmVsU3RyaW5nID0gIldBUk4iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVycm9y
TWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJFUlJPUiI7CisgICAgICAgIGJy
ZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAg
ICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
cHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKK30KKwordm9pZCBQ
YWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50
aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJpbmcgdXJsOworICAgIGlmIChk
b2N1bWVudCkKKyAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOworICAgIHVu
c2lnbmVkIGxpbmUgPSAwOworICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2luZygp
ICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyKCkpIHsKKyAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBw
YXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7CisgICAgICAgIGlm
ICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRpbmdT
Y3JpcHQoKSkKKyAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNl
ZEludCgpOworICAgIH0KKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVy
bCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOworfQorCit2b2lkIFBhZ2VDb25zb2xl
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAw
LCBjYWxsU3RhY2ssIDApOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBpZiAobXV0ZUNvdW50ICYmIHNvdXJjZSAhPSBD
b25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFn
ZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChjYWxsU3RhY2spCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVz
c2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2Fn
ZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBM
b2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgc3RhdGUsIHJl
cXVlc3RJZGVudGlmaWVyKTsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKSB8fCBwYWdlLT5z
ZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2Us
IGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOworCisgICAgaWYgKCFwYWdlLT5zZXR0
aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91
bGRQcmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpbnRTb3VyY2VV
UkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2
ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51
dGY4KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjptdXRlKCkK
K3sKKyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjp1
bm11dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKKyAgICBtdXRlQ291bnQtLTsK
K30KKworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFsc2U7CisKK2Jvb2wgUGFnZUNv
bnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAgcmV0dXJuIHByaW50RXhjZXB0
aW9uczsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJv
b2wgcHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNv
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGMw
ODkyNDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFlYzQyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29uc29sZV9oCisKKyNpbmNsdWRlICJDb25z
b2xlVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3Jp
cHRTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNz
IFBhZ2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZSgpOworCisg
ICAgc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VT
b3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwpOworCisgICAg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWdu
ZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVz
dElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKKworICAgIHN0YXRpYyB2b2lkIG11dGUo
KTsKKyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKworICAgIHN0YXRpYyBib29sIHNob3VsZFBy
aW50RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9u
cyhib29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZShQYWdlKik7CisKKyAgICBQYWdl
KiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisgICAgUGFnZSogbV9wYWdlOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZUNvbnNvbGVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKaW5kZXggMGI4MzQwY2Q5NWNh
ZWJlZmY4ZTE4MWY1YTEzNWY5MWNjMGVjMzc4NS4uMzFkYmIwZTI1MTQ1NGVjZGY1ZDIxYTc2NDUz
MGZmZWFhYTRjZTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hl
ZXRMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhz
bHQuY3BwCkBAIC0yNCwxMiArMjQsMTMgQEAKIAogI2lmIEVOQUJMRShYU0xUKQogCi0jaW5jbHVk
ZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJYTUxEb2N1
bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKQEAgLTE0
NCw5ICsxNDUsMTAgQEAgYm9vbCBYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykKICAgICAgICAgeG1sRnJlZURvYyhtX3N0eWxlc2hlZXREb2MpOwogICAgIG1f
c3R5bGVzaGVldERvY1Rha2VuID0gZmFsc2U7CiAKLSAgICBDb25zb2xlKiBjb25zb2xlID0gMDsK
LSAgICBpZiAob3duZXJEb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICBjb25zb2xlID0gb3du
ZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIFBhZ2VDb25zb2xlKiBj
b25zb2xlID0gMDsKKyAgICBGcmFtZSogZnJhbWUgPSBvd25lckRvY3VtZW50KCktPmZyYW1lKCk7
CisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAgIGNvbnNvbGUgPSBmcmFt
ZS0+cGFnZSgpLT5jb25zb2xlKCk7CiAKICAgICBYTUxEb2N1bWVudFBhcnNlclNjb3BlIHNjb3Bl
KGNhY2hlZFJlc291cmNlTG9hZGVyKCksIFhTTFRQcm9jZXNzb3I6OmdlbmVyaWNFcnJvckZ1bmMs
IFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jLCBjb25zb2xlKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNTAzODAyYzdmZTdiNTZmNWY3
MmQxNzgzYWI3YmMzMGNiNjU4MWFkZS4uOWU2ZWE5OGUzODljZmE3ZTkyNzUxNGM2NDRiMTIyZTNh
YjVjN2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4
c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3Bw
CkBAIC0yNywxMCArMjcsMTEgQEAKICNpbmNsdWRlICJYU0xUUHJvY2Vzc29yLmgiCiAKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQgWFNMVFByb2Nlc3Nv
cjo6Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3QgY2hhciosIC4uLikKIAogdm9pZCBYU0xU
UHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJyb3IqIGVycm9y
KQogewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxDb25zb2xlKj4odXNlckRh
dGEpOworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8UGFnZUNvbnNvbGUq
Pih1c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEz
Nyw5ICsxMzgsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbENo
YXIqIHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291cmNlTG9hZGVyLT5wcmludEFj
Y2Vzc0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgfQogCi0gICAgICAgIENvbnNvbGUqIGNv
bnNvbGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0KCkt
Pm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUgPSBnbG9iYWxQ
cm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+
Y29uc29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IDA7CisgICAgICAgIEZy
YW1lKiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3Vt
ZW50KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAg
ICAgICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKTsKICAgICAgICAgeG1s
U2V0U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9y
RnVuYyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoY29uc29sZSwgWFNMVFByb2Nl
c3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNv
cmVTdGF0aXN0aWNzLm1tCmluZGV4IGJmOTE3NTkwMGM1OGUyYTQ2NjA2MDY3MjFkNTIwOTY1MDZi
NzU4MmMuLjA2OWFhNDc5NTMyMTY1NWI5Y2ExMDljNjFiYWFiZDIyODI2MDA5Y2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQpAQCAtMzMsNyArMzMsNiBA
QAogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUv
SlNMb2NrLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNzLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL0NvbnNvbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udENhY2hlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxl
ci5oPgpAQCAtNDIsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNh
Y2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25zb2xlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1ByaW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTE2OCwxMyArMTY4LDEzIEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogKyAoQk9PTClzaG91bGRQcmludEV4Y2VwdGlvbnMKIHsKICAg
ICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwot
ICAgIHJldHVybiBDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICByZXR1cm4g
UGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpOwogfQogCiArICh2b2lkKXNldFNo
b3VsZFByaW50RXhjZXB0aW9uczooQk9PTClwcmludAogewogICAgIEpTTG9ja0hvbGRlciBsb2Nr
KEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7Ci0gICAgQ29uc29sZTo6c2V0U2hv
dWxkUHJpbnRFeGNlcHRpb25zKHByaW50KTsKKyAgICBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJp
bnRFeGNlcHRpb25zKHByaW50KTsKIH0KIAogKyAodm9pZCllbXB0eUNhY2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193448</attachid>
            <date>2013-03-16 15:30:49 -0700</date>
            <delta_ts>2013-03-18 23:38:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130317022642.patch</filename>
            <type>text/plain</type>
            <size>49120</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhlMzZlMDNjYmVmNTVk
ODM4OWY4ODU5MGZjMzUzYmNmNWIwZmUxMy4uMTc0NWM2ZTA3NGQwMGYyYzgyMTkxMDI1YjQ4NWMw
ZTZiOWQxMDhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEzLTAzLTE2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSSk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRDb25zb2xl
TWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWRkTWVzc2FnZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
RGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0
ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29u
c29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omlu
dGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cGFnZUNvbnNvbGUpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2
ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRF
cnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpjb25zb2xlKToKKyAgICAg
ICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGUuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29uc29sZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNv
bGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6c2hvdWxkUHJpbnRF
eGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGUuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnBhZ2UpOgorICAgICAgICAqIHhtbC9Y
U0xTdHlsZVNoZWV0TGlieHNsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU0xTdHlsZVNoZWV0
OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAyMDEzLTAzLTE2ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZmxlY3RlZCB2aWRlbyBlbGVt
ZW50cyBoaXQgYXNzZXJ0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMTI5OGM5YTgwNThiYjJjNDhl
ZjYyY2RiOTRmMzExYzVhZmZkZjM4MC4uYmQ4ODljMDMxMjQyYmZiN2RmYzgyYjYzOGVhYTgxN2Y1
MTM3YWYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTE2ICBT
ZXJnZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3Rvcjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5k
IG9iamVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUg
bmVlZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5Lgor
CisgICAgICAgICogTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbToKKyAgICAgICAgKCtbV2ViQ29y
ZVN0YXRpc3RpY3Mgc2hvdWxkUHJpbnRFeGNlcHRpb25zXSk6CisgICAgICAgICgrW1dlYkNvcmVT
dGF0aXN0aWNzIHNldFNob3VsZFByaW50RXhjZXB0aW9uczpdKToKKwogMjAxMy0wMy0xNSAgVGlt
b3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBzdXBw
cmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgZm9yIHRoZSBXZWIgSW5zcGVjdG9yLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCA5NmM5NDNkODNiYmQ1MmU4OGFmY2UzN2FhMTJjMDMyMjY4ZjAyNjZj
Li5jZTI1ZWU2OTJhNjc0ZDZkZTYxOTQ2OTM0MWFkNWZkZmMxOWViNjM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtMTc4OCw2ICsxNzg4LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBh
Z2UvTmF2aWdhdG9yQmFzZS5jcHAKICAgICBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcAogICAg
IHBhZ2UvUGFnZS5jcHAKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcAogICAgIHBhZ2UvUGFnZUdy
b3VwLmNwcAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAogICAgIHBhZ2UvUGFn
ZVNlcmlhbGl6ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBlM2E0MmUy
MjYzMGY0NzgwZTg3NzhmZDJhNDM1NzY2MmY2ZDRmNzkyLi5mZjM4YzQzODQwY2E1N2Y4MzkwNjk2
ODdkZWJhMjg5M2RkMWI0MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQy
MzUsNiArNDIzNSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9PcmlnaW5BY2Nlc3NFbnRyeS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uc29sZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VHcm91cC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggNTdlYTcwNmQyNTAyZTBlOGU4YWJhMDk4NzM4ZGE0YmU3MjRj
ZGM1OC4uOTY3MjlhZmM4ZTc2NDc4MGNmZTE3NTBlMzYwMWYwMTFhOGNkYWEzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC05NDcsNiArOTQ3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFnZS9OYXZpZ2F0b3JC
YXNlLmNwcCBcCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAgXAogICAgIHBhZ2UvUGFn
ZS5jcHAgXAorICAgIHBhZ2UvUGFnZUNvbnNvbGUuY3BwIFwKICAgICBwYWdlL1BhZ2VHcm91cC5j
cHAgXAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBcCiAgICAgcGFnZS9QYWdl
VmlzaWJpbGl0eVN0YXRlLmNwcCBcCkBAIC0yMTQ0LDYgKzIxNDUsNyBAQCBIRUFERVJTICs9IFwK
ICAgICBwYWdlL1BhZ2VHcm91cC5oIFwKICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5o
IFwKICAgICBwYWdlL1BhZ2UuaCBcCisgICAgcGFnZS9QYWdlQ29uc29sZS5oIFwKICAgICBwYWdl
L1BhZ2VWaXNpYmlsaXR5U3RhdGUuaCBcCiAgICAgcGFnZS9QbHVnSW5DbGllbnQuaCBcCiAgICAg
cGFnZS9Qb3B1cE9wZW5pbmdPYnNlcnZlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMWZi
N2Q2OGEzNjc1ZTY5YTcxOWIyNjQ0Njc0YWI1ZDQ3MGIwMmQ5Ni4uMDYzMDRhNjRkNDM5NjUwYmZm
YjNlZDA4ZWI1ZDliMzIxYjM5OTQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTkzNCw4ICs5
MzQsNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0OHNldEZvY3VzRWIKIF9fWk43V2ViQ29yZTZXaWRn
ZXQ5c2V0UGFyZW50RVBOU18xMFNjcm9sbFZpZXdFCiBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgog
X19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQotX19aTjdXZWJDb3JlN0NvbnNvbGUy
MXNob3VsZFByaW50RXhjZXB0aW9uc0V2Ci1fX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktO
M1dURjEyQXRvbWljU3RyaW5nRVM0X1JpCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmli
dXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk43V2Vi
Q29yZTdFbGVtZW50MjFib3VuZHNJblJvb3RWaWV3U3BhY2VFdgpAQCAtMTcyMiw2ICsxNzIwLDgg
QEAgX19aTjdXZWJDb3JlMTBoYW5kQ3Vyc29yRXYKIF9fWk43V2ViQ29yZTExQ2FjaGVkSW1hZ2U1
aW1hZ2VFdgogX19aTjdXZWJDb3JlMTFnbG9iYWxQb2ludEVSSzhfTlNQb2ludFA4TlNXaW5kb3cK
IF9fWk43V2ViQ29yZTExdG9Vc2VyU3BhY2VFUks3X05TUmVjdFA4TlNXaW5kb3cKK19fWk43V2Vi
Q29yZTExUGFnZUNvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CitfX1pON1dlYkNvcmUx
MVBhZ2VDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlvbnNFYgogX19aTjdXZWJDb3JlMTJF
dmVudEhhbmRsZXIxMG1vdXNlTW92ZWRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFu
ZGxlcjEwd2hlZWxFdmVudEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTJt
b3VzZURyYWdnZWRFUDdOU0V2ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWUwOGE5M2I5NWM5NzUy
YzQzYmM0OTU3M2I5NTcxMTFjMTM5ODFiZS4uNzk5ZTVmZTk2MDg2ZjU5YmJiZWY0NzhkNDMxMzky
OTkzNGY2ODcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjI1Miw2ICsyMjUyLDcgQEAKICAgICAg
ICAgICAgICdwYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9P
cmlnaW5BY2Nlc3NFbnRyeS5oJywKICAgICAgICAgICAgICdwYWdlL1BhZ2UuY3BwJywKKyAgICAg
ICAgICAgICdwYWdlL1BhZ2VDb25zb2xlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlR3Jv
dXAuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmgnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3Jk
ZXIKaW5kZXggNzUwM2RjMjVhMTQyOWI5ZmQ3MDAwODVlNjlmNDEzYmFlZWY3N2RmZC4uMWI4MjI1
NGM4OWYyNTQ2YmM0NmFhYThlODU2ZTk5NDAwZmJmODJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBA
IC0xNTU1OSw3ICsxNTU1OSw2IEBAIF9fWk4zV1RGMjlSZWZQdHJIYXNoTWFwUmF3S2V5VHJhbnNs
YXRvcklQTjdXZWJDb3JlMTRSZXNvdXJjZUxvYWRlckVTdDRwYWlySU5TXzZSCiBfX1pOM1dURjZW
ZWN0b3JJTlNfNlJlZlB0cklON1dlYkNvcmUxNUFyY2hpdmVSZXNvdXJjZUVFRUxtMEVFRDFFdgog
X19aTjdXZWJDb3JlNVRpbWVySU5TXzE0RG9jdW1lbnRMb2FkZXJFRTVmaXJlZEV2CiBfX1pON1dl
YkNvcmUxNERvY3VtZW50TG9hZGVyMzZzdWJzdGl0dXRlUmVzb3VyY2VEZWxpdmVyeVRpbWVyRmly
ZWRFUE5TXzVUaW1lcklTMF9FRQotX19aTjdXZWJDb3JlN0NvbnNvbGUyNHNldFNob3VsZFByaW50
RXhjZXB0aW9uc0ViCiBfX1pON1dlYkNvcmUxNmpzQ2xpcGJvYXJkVHlwZXNFUE4zSlNDOUV4ZWNT
dGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTks3V2ViQ29yZTExSlND
bGlwYm9hcmQ1dHlwZXNFUE4zSlNDOUV4ZWNTdGF0ZUUKIF9fWk5LN1dlYkNvcmUxMkNsaXBib2Fy
ZE1hYzV0eXBlc0V2CkBAIC0xNTY3OSw2ICsxNTY3OCw3IEBAIF9fWk43V2ViQ29yZTIzUmVuZGVy
RmlsZVVwbG9hZENvbnRyb2wxOXJlY2VpdmVEcm9wcGVkRmlsZXNFUktOM1dURjZWZWN0b3JJTlMx
XzZTCiBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMTlhbGxvd3NNdWx0aXBs
ZUZpbGVzRXYKIF9fWk43V2ViQ29yZTExRmlsZUNob29zZXIxMGNob29zZUZpbGVFUktOM1dURjZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyMTFjaG9vc2VGaWxlc0VSS04zV1RGNlZl
Y3RvcklOUzFfNlN0cmluZ0VMbTBFRUUKK19fWk43V2ViQ29yZTExUGFnZUNvbnNvbGUyNHNldFNo
b3VsZFByaW50RXhjZXB0aW9uc0ViCiBfX1pUaG4xODRfTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBs
b2FkQ29udHJvbDE4Y2hvb3NlSWNvbkZvckZpbGVzRVBOU18xMUZpbGVDaG9vc2VyRVJLTjNXVEY2
VmVjdG9ySU5TM182U3RyaW5nRUxtMEVFRQogX19aTjdXZWJDb3JlNkNocm9tZTE4Y2hvb3NlSWNv
bkZvckZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVFRVBOU18xMUZpbGVDaG9v
c2VyRQogX19aTjdXZWJDb3JlNEljb24xOGNyZWF0ZUljb25Gb3JGaWxlc0VSS04zV1RGNlZlY3Rv
cklOUzFfNlN0cmluZ0VMbTBFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggN2EzNTAzZGI3NWJhMmMzOWFkNTdlYTZhYmE4ZTRmNGJjOTIzN2M0
My4uODc5MmVmYmI3NDVkYjllMGM1YzY2NjkwZTQyNmZlNzg5YTcxOTAyZCAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI3NTkwLDYgKzI3NTkw
LDE0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2UuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFBhZ2VDb25zb2xlLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlQ29uc29sZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
IAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAiCiAJCQkJ
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5k
ZXggNmJlM2ZhZDZlYTM3NDZkYmVjYzJlN2Y1M2FlODA3MThhMmM3ZWU1Ny4uODYwNjYwZjgyMjY3
NTYxYzc5MTNkZjllNDgxN2RkZWYxZWVhZjkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0yOTkyLDYgKzI5OTIsNyBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxOYXZpZ2F0b3JCYXNlLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcT3JpZ2luQWNjZXNzRW50cnkuY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGFnZVxQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccGFnZVxQYWdlU2VyaWFsaXplci5jcHAiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggMTM2MzIx
YWJjZGZhNWJjZDlkMmFjNTA5NGJjZjRiZmExYjE4ZTJjNy4uOTA0OWVjZDQxMmU5OGYwYzEyNTZj
NzQxMWM3MTI3MTQ0MzA4ODZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNjY5Niw2ICs2Njk2LDkgQEAK
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZS5jcHAiPgogICAgICAgPEZpbHRl
cj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXFBhZ2VDb25zb2xlLmNwcCI+CisgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4K
KyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUdy
b3VwLmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBjZmNlZGY3ZGNiZDEzMjJhY2RiOTg5ZWQwZDAzZTJjNDI3MDY2NWViLi42NjE0ZGUxMjNi
M2YzNDVmOWVmM2Y4YTI2ZjRhNjM0ZmE5Yjk0MzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MTUzLDYgKzYxNTMsOCBAQAog
CQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEzQTRFMTQ3NEYxM0Yw
MERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlENzYxM0FDNDE0NzUzRTU2
MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2Vi
S2l0TmFtZWRGbG93LmNwcCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENv
b2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDhC
NjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCURBRUQyMDMwMTZGMjQ0MkIwMDcwRUMwRiAvKiBQ
YWdlQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQUFDQjNEOTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuY3BwICovOyB9Owor
CQlEQUVEMjAzMTE2RjI0NDQ4MDA3MEVDMEYgLyogUGFnZUNvbnNvbGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0RBMTZGMjQxNjQwMDY2NjEz
NSAvKiBQYWdlQ29uc29sZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
QjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovOyB9
OwogCQlEQjIzQzJDQzBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkNBMEE1
MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oICovOyB9OwogCQlERDA1RkUw
RDBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRyYXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEREMDVGRTBCMEI4QkEzQzYwMDlBQ0RGRSAv
KiBXZWJDb3JlT2JqQ0V4dHJhcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xMzg2Miw2ICsxMzg2NCw4IEBACiAJCUQ3NjEzQUMyMTQ3NTNFNTYw
MERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYktpdE5hbWVkRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUQ3NjEzQUMzMTQ3NTNFNTYwMERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdE5hbWVkRmxvdy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyog
Q29va2llLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb2tpZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQUFDQjNEOTE2RjI0MTY0MDA2NjYxMzUgLyogUGFn
ZUNvbnNvbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFnZUNv
bnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQUFDQjNEQTE2RjI0MTY0
MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGFnZUNvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQzkw
QTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkNBMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRl
bnRPdXRkZW50Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5k
ZW50T3V0ZGVudENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREQwNUZF
MEIwQjhCQTNDNjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlT2JqQ0V4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTY0NzgsNiArMTY0ODIsOCBAQAogCQkJCTk3NUNBMjg3MTMwMzY1Rjgw
MEU5OUFEOSAvKiBDcnlwdG8uY3BwICovLAogCQkJCTk3NUNBMjg4MTMwMzY1RjgwMEU5OUFEOSAv
KiBDcnlwdG8uaCAqLywKIAkJCQk5NzVDQTI4OTEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRvLmlk
bCAqLywKKwkJCQlEQUFDQjNEOTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuY3BwICov
LAorCQkJCURBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5oICovLAogCQkJ
CUNDQzJCNTEwMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDbGllbnQuaCAqLywKIAkJCQlDQ0My
QjUxMTE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJQ0ND
MkI1MTIxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuaCAqLywKQEAgLTI2NzY0
LDYgKzI2NzcwLDcgQEAKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1
ZGl0b3JEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4
RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKKwkJCQlEQUVEMjAzMTE2RjI0NDQ4MDA3
MEVDMEYgLyogUGFnZUNvbnNvbGUuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjk5NzEsNiArMjk5Nzgs
NyBAQAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVs
ZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8q
IFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURBRUQyMDMwMTZGMjQ0MkIwMDcwRUMw
RiAvKiBQYWdlQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBhOWIz
NGE2NTZjOGZmZWExZTc5ZTFjZGU2Zjc2ZjhmNjBkNDc5ODRiLi5iNmU5N2U5OTE0MTM2YThjNGI4
OTYzNWU0OWJlYzIzYTM2Njg4YzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0yNiwxMiArMjYsMTMgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
IgogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSlNET01X
aW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAKQEAgLTc3LDggKzc4LDkg
QEAgU3RyaW5nIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29u
c3QgU3RyaW5nJiBwcmVmaXgpCiAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewog
ICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRhYmxlKCktPmdldENh
bGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKICAgICAgICAgaWYgKGNh
bGxUeXBlID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFBhc3MgYWN0
dWFsIGxpbmUgbnVtYmVyIGFuZCBzb3VyY2UgVVJMLgotICAgICAgICAgICAgbV9nbG9iYWxPYmpl
Y3QtPmltcGwoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVz
cGFjZVVSSSBtZXRob2QuIik7CisgICAgICAgICAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IG1f
Z2xvYmFsT2JqZWN0LT5pbXBsKCktPnBhZ2VDb25zb2xlKCk7CisgICAgICAgICAgICBpZiAoY29u
c29sZSkKKyAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxv
b2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1
c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYjk1NGZmZWQxZWQzNjhkZGVjNzJmYjEyZjNm
MmI3ZDg4MWM5NWExNC4uY2FlMzQ4OWI1ZDAwZjg5NmM4NzAwNTU2NDlmZjc1NmNmOWFlYTY0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNs
dWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRnJhbWUu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNjksNyArNzEsOSBAQCBTdHJpbmcg
VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcm
IHByZWZpeCkKICAgICB9CiAKICAgICBpZiAobG9va3VwTmFtZXNwYWNlVVJJRnVuYy5Jc0VtcHR5
KCkgJiYgIW1fcmVzb2x2ZXItPklzRnVuY3Rpb24oKSkgewotICAgICAgICBhY3RpdmVET01XaW5k
b3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVz
c2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3Qg
aGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CisgICAgICAgIEZyYW1lKiBmcmFt
ZSA9IGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLT5mcmFtZSgpOwor
ICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIGZyYW1lLT5w
YWdlKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2Fn
ZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VV
UkkgbWV0aG9kLiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCAwZjdlMmNkNTg4MmEyMTliN2RkZWY1MDFkODI1MjkzM2VjYzQw
NTllLi4wOWIwYWM3YmYwNTk0MDU5ZTY3ZDQ0NDMwZGVhNzQ1ODU0ZDViODE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTEyNCw2ICsxMjQsNyBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJz
YWwuaCIKICNpbmNsdWRlICJOb2RlV2l0aEluZGV4LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAi
UGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IgpAQCAtNDg0NCwxMCArNDg0NSw5IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3co
KSkgewotICAgICAgICBpZiAoQ29uc29sZSogY29uc29sZSA9IHdpbmRvdy0+Y29uc29sZSgpKQot
ICAgICAgICAgICAgY29uc29sZS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBy
ZXF1ZXN0SWRlbnRpZmllciwgdGhpcyk7Ci0gICAgfQorICAgIFBhZ2UqIHAgPSBwYWdlKCk7Cisg
ICAgaWYgKHApCisgICAgICAgIHAtPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVs
LCBtZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllciwgdGhpcyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGlu
ZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3Rh
dGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQpAQCAtNDg1NywxMCAr
NDg1Nyw5IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkgewotICAgICAgICBp
ZiAoQ29uc29sZSogY29uc29sZSA9IHdpbmRvdy0+Y29uc29sZSgpKQotICAgICAgICAgICAgY29u
c29sZS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVO
dW1iZXIsIGNhbGxTdGFjaywgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICB9CisgICAg
UGFnZSogcCA9IHBhZ2UoKTsKKyAgICBpZiAocCkKKyAgICAgICAgcC0+Y29uc29sZSgpLT5hZGRN
ZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2Fs
bFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBjb25zdCBTZWN1cml0eU9y
aWdpbiogRG9jdW1lbnQ6OnRvcE9yaWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxNjIyMmVlNjUxZDc2YTA0Njk1NGI3
ZmJhZTUxYzhiZmRiMDAyN2Y3Li4yMDBmYjJjZjc0NTYwYjU1YzU3Yjk0ZjExOGE2NGRjZGQ2YzBm
ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTM0LDExICszNCwxMSBAQAogCiAjaW5jbHVkZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIK
IAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2lu
Y2x1ZGUgIlBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC04OCwxMiArODgsMTIgQEAgUGFnZVNjcmlwdERlYnVnU2VydmVyJiBQYWdlRGVidWdnZXJBZ2Vu
dDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29u
c29sZSgpCiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7
CiB9CiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENv
bnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogSW5qZWN0
ZWRTY3JpcHQgUGFnZURlYnVnZ2VyQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDc3YjQwZmEz
MTJhN2E0ZjMxYzYzNzMyZmQzNzY0ZTA4OWY4MTcyNmUuLmE4NDMxYmEwZmE3OGNjODQxNWI4NDRj
MjIzZTFiMDM0ZWIyZTk2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlBhZ2VSdW50aW1l
QWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmgiCkBAIC00Miw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogdXNpbmcg
V2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlv
bjsKQEAgLTE0OCwxMiArMTQ4LDEyIEBAIEluamVjdGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6
OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsCiAKIHZvaWQg
UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6Om11dGUoKTsK
KyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnVu
bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xl
Ojp1bm11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25D
b250ZXh0Q3JlYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5kZXggZWE1MzdjNGZiMjA5
MGQ0MDEwY2YwYWY2MDY5ZGMwOWEyMjNiMGQ5YS4uNTQ0NWE2Y2Q0NWZkOWFlNDA1OGVkZDdhMTc1
MjA5MzAwZmNlZTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lbW9yeUluZm8u
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKQEAgLTYxLDEwICs2Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotbmFtZXNwYWNlIHsKLSAgICBpbnQgbXV0ZUNvdW50ID0gMDsKLX0KLQogQ29uc29sZTo6
Q29uc29sZShGcmFtZSogZnJhbWUpCiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsK
QEAgLTc0LDEyNiArNzEsNiBAQCBDb25zb2xlOjp+Q29uc29sZSgpCiB7CiB9CiAKLXN0YXRpYyB2
b2lkIHByaW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWdu
ZWQgbGluZU51bWJlcikKLXsKLSAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgaWYgKGxpbmVOdW1iZXIgPiAwKQotICAgICAgICAgICAgcHJpbnRmKCIlczolZDogIiwgc291
cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBwcmludGYoIiVzOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotfQot
Ci1zdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsKQotewotICAgIGNvbnN0IGNoYXIqIHNvdXJj
ZVN0cmluZzsKLSAgICBzd2l0Y2ggKHNvdXJjZSkgewotICAgIGNhc2UgWE1MTWVzc2FnZVNvdXJj
ZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlhNTCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSlNNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiSlMiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIE5ldHdvcmtNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiTkVUV09SSyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29uc29sZUFQSU1l
c3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJDT05TT0xFQVBJIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNl
U3RyaW5nID0gIlNUT1JBR0UiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFwcENhY2hlTWVz
c2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkFQUENBQ0hFIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJpbmdNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiUkVOREVSSU5HIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NNZXNzYWdl
U291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ1NTIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBTZWN1cml0eU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJT
RUNVUklUWSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOgot
ICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIiOwotICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgc291cmNlU3RyaW5n
ID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjb25zdCBjaGFyKiBs
ZXZlbFN0cmluZzsKLSAgICBzd2l0Y2ggKGxldmVsKSB7Ci0gICAgY2FzZSBEZWJ1Z01lc3NhZ2VM
ZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiREVCVUciOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIExvZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiTE9HIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXYXJuaW5nTWVzc2FnZUxldmVsOgotICAgICAgICBsZXZl
bFN0cmluZyA9ICJXQVJOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFcnJvck1lc3NhZ2VM
ZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRVJST1IiOwotICAgICAgICBicmVhazsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiVU5LTk9XTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHByaW50Zigi
JXMgJXM6Iiwgc291cmNlU3RyaW5nLCBsZXZlbFN0cmluZyk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3Vt
ZW50KiBkb2N1bWVudCkKLXsKLSAgICBTdHJpbmcgdXJsOwotICAgIGlmIChkb2N1bWVudCkKLSAg
ICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOwotICAgIHVuc2lnbmVkIGxpbmUg
PSAwOwotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVu
dC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKCkpIHsKLSAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1
bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7Ci0gICAgICAgIGlmICghcGFyc2VyLT5p
c1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKLSAg
ICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOwotICAg
IH0KLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwg
MCwgcmVxdWVzdElkZW50aWZpZXIpOwotfQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQotewotICAgIGFkZE1l
c3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7
Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJs
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIp
Ci17Ci0gICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3Vy
Y2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoY2FsbFN0YWNrKQotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwg
c291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVz
dElkZW50aWZpZXIpOwotICAgIGVsc2UKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVs
LCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0K
LSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkgfHwgbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCBsZXZlbCwgbWVzc2Fn
ZSwgbGluZU51bWJlciwgdXJsKTsKLQotICAgIGlmICghbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhc2hvdWxkUHJpbnRFeGNl
cHRpb25zKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1
cmwsIGxpbmVOdW1iZXIpOwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNv
dXJjZSwgbGV2ZWwpOwotCi0gICAgcHJpbnRmKCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHBycEFyZ3VtZW50cywgYm9vbCBhY2NlcHROb0FyZ3Vt
ZW50cyA9IGZhbHNlLCBib29sIHByaW50VHJhY2UgPSBmYWxzZSkKIHsKICAgICBSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMgPSBwcnBBcmd1bWVudHM7CkBAIC0yMTIsMTcgKzg5LDE3
IEBAIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsCiAgICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1l
bnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZSk7CiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc3RhdGUsIGFyZ3VtZW50cyk7CiAKLSAgICBp
ZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgcGFnZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpKQorICAgIGlmIChwYWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChnb3RNZXNzYWdlKQogICAgICAgICBw
YWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1l
c3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIo
KSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKSk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkt
PmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIUNvbnNvbGU6OnNo
b3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1Bh
Z2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhUGFnZUNvbnNvbGU6OnNob3Vs
ZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVS
TEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkp
OwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCBsZXZlbCk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShs
YXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSk7CisgICAgUGFn
ZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNz
YWdlU291cmNlLCBsZXZlbCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50
cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0g
YXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvU3RyaW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUo
KSk7CkBAIC0zODgsMTkgKzI2NSw2IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNv
bGVBUElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWws
IFN0cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAKLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjpt
dXRlKCkKLXsKLSAgICBtdXRlQ291bnQrKzsKLX0KLQotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6
OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+IDApOwotICAgIG11dGVDb3VudC0t
OwotfQotCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgY3JlYXRlIGEgbmV3IG9iamVjdCBoZXJlIGVhY2gg
dGltZSwKQEAgLTQwOCwxOCArMjcyLDYgQEAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xl
OjptZW1vcnkoKSBjb25zdAogICAgIHJldHVybiBNZW1vcnlJbmZvOjpjcmVhdGUobV9mcmFtZSk7
CiB9CiAKLXN0YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9IGZhbHNlOwotCi1ib29sIENvbnNv
bGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCi17Ci0gICAgcmV0dXJuIHByaW50RXhjZXB0aW9u
czsKLX0KLQotdm9pZCBDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmlu
dCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsKLX0KLQogUGFnZSogQ29uc29sZTo6
cGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRl
eCBhOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVjNWZjNDJmLi5lNTc0Mzg3Yzc3N2Jj
YzJlMjA2N2E1YzQ4MWE3NjYzMjY3M2RkYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtMjks
MTAgKzI5LDcgQEAKICNpZm5kZWYgQ29uc29sZV9oCiAjZGVmaW5lIENvbnNvbGVfaAogCi0jaW5j
bHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCi0jaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQyLDEyICszOSwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBNZW1v
cnlJbmZvOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEFyZ3VtZW50czsKLWNsYXNzIFNjcmlw
dENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+ID4gUHJvZmlsZXNBcnJheTsKQEAgLTU4LDEwICs1
Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJh
bWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAg
dmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0g
MCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAp
OwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lk
IGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAw
KTsKLQogICAgIHZvaWQgZGVidWcoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4pOwogICAgIHZvaWQgZXJyb3IoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwogICAgIHZvaWQgaW5mbyhTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPik7CkBAIC05MCwxMyArODEsMTAgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IG11dGUoKTsKICAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKIAotICAgIHN0YXRpYyBib29sIHNo
b3VsZFByaW50RXhjZXB0aW9ucygpOwotICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhj
ZXB0aW9ucyhib29sKTsKLQogICAgIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gbWVtb3J5KCkgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgaW5saW5lIFBhZ2UqIHBhZ2UoKSBjb25zdDsKKyAgICBQYWdl
KiBwYWdlKCkgY29uc3Q7CiAKICAgICBleHBsaWNpdCBDb25zb2xlKEZyYW1lKik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YjAxNTk1MTYwNWNhNWY2YjE4OTIxZmMxYjExY2I4
ZThlN2U5ODU0Li5kYzJhODBlYTEzZTNjNzY2Mzk0ZjVmMzk0MTMzYzA2OWEyY2UyYjFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTWVz
c2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC02
OTQsNiArNjk1LDEzIEBAIENvbnNvbGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6cGFn
ZUNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1l
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2Zy
YW1lLT5wYWdlKCktPmNvbnNvbGUoKSA6IDA7Cit9CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIERP
TVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRs
eURpc3BsYXllZEluRnJhbWUoKSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6
ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVu
ZGVkVGFyZwogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVI
b3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJn
ZXRPcmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBS
ZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9T
dHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKFNlY3Vy
aXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2Up
OworICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShTZWN1cml0eU1lc3NhZ2VT
b3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3OTgsNyArMTgwNiw3IEBAIHZvaWQg
RE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAg
aWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zb2xlKCkt
PmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7
CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVz
c2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5B
Y2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaAppbmRleCA0OWJmOGM5ODUyNDYwMWQyNjE1ZTYxODdmZjY3OTdlMWMzYWFlNzU1Li40
OWNiNmU2MTdiZjUzYmJlYjI3OWI5ODkwYWU1MDY3YmViNTcyM2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3Mg
UGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3Nh
Z2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CkBAIC0yMzMsNiArMjM0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJr
aXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBj
b25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAg
ICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBwcmlu
dEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWlu
QWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IGJhYzhjNWEyYjA5NTg5OWRlNTk5NmI5NjM0MjNmMTczNWQ2YjU1MTMuLjEzMWJm
ODg1ZDZkOThiYjM2MjA4MjJlZWJiMTZkZDZhY2VmZGE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdv
cmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnSW5DbGll
bnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0xNzYsNiArMTc3LDcgQEAgUGFnZTo6
UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fYWx0ZXJuYXRp
dmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1f
c2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9jb25zb2xlKFBhZ2VD
b25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAppbmRleCBjMGM3MzE4N2I2YjgyNTU2NjlkYzI3MzM3NmJiNjIwYzI4OTRiOTVk
Li45MWZiOWVhMGNlZDE0MTE2YzlhMWJjZmFjN2Y0MTUyOTRlOWNjYjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTm9kZTsK
K2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xpZW50
OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3OCw2ICszNzksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVz
ZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQYWdlQ29uc29sZSogY29uc29sZSgpIHsgcmV0
dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtNTA0LDYg
KzUwNiw3IEBAIHByaXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0
aXZlVGV4dENsaWVudDsKIAogICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7
CisgICAgT3duUHRyPFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7CiAKICAgICBIYXNoU2V0PFN0cmlu
Zz4gbV9zZWVuUGx1Z2luczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTBlYWExYzlhMjM0
YzQwMTYxYjRmMjQzZTlmODMyOTNhNmVlZDVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgi
CisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2
ZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworICAg
IGludCBtdXRlQ291bnQgPSAwOworfQorCitQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUoUGFnZSog
cGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKSB7
IH0KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoreworICAgIGlmICghc291cmNlVVJM
LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobGluZU51bWJlciA+IDApCisgICAgICAgICAgICBw
cmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCku
ZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJj
ZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwp
Cit7CisgICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOworICAgIHN3aXRjaCAoc291cmNlKSB7
CisgICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1M
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNv
dXJjZVN0cmluZyA9ICJKUyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmV0d29ya01lc3Nh
Z2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3Ry
aW5nID0gIkNPTlNPTEVBUEkiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JhZ2VNZXNz
YWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFHRSI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJp
bmcgPSAiQVBQQ0FDSEUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlcmluZ01lc3Nh
Z2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJTkciOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9
ICJDU1MiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5TWVzc2FnZVNvdXJjZToK
KyAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9XTiI7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGNvbnN0IGNoYXIqIGxldmVsU3RyaW5nOworICAgIHN3aXRjaCAobGV2ZWwp
IHsKKyAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJE
RUJVRyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9nTWVzc2FnZUxldmVsOgorICAgICAg
ICBsZXZlbFN0cmluZyA9ICJMT0ciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhcm5pbmdN
ZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIldBUk4iOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJF
UlJPUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3Ry
aW5nKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJp
bmcgdXJsOworICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgp
LnN0cmluZygpOworICAgIHVuc2lnbmVkIGxpbmUgPSAwOworICAgIGlmIChkb2N1bWVudCAmJiBk
b2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBk
b2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKKyAgICAgICAgU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKCk7CisgICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBh
cnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxp
bmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOworICAgIH0KKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOworfQor
Cit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1l
c3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOworfQorCit2b2lkIFBhZ2VDb25zb2xl
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBpZiAobXV0ZUNv
dW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChjYWxsU3RhY2spCisgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
ZWxzZQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGlu
ZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAgIGlmIChwYWdlLT5zZXR0
aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5n
cygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQ
cmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpbnRTb3VyY2VVUkxB
bmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQ
cmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4
KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjptdXRlKCkKK3sK
KyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjp1bm11
dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKKyAgICBtdXRlQ291bnQtLTsKK30K
Kworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFsc2U7CisKK2Jvb2wgUGFnZUNvbnNv
bGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAgcmV0dXJuIHByaW50RXhjZXB0aW9u
czsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wg
cHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGMwODky
NDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFlYzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
UGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29uc29sZV9oCisKKyNpbmNsdWRlICJDb25zb2xl
VHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRT
dGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBh
Z2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0
cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZSgpOworCisgICAg
c3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3Vy
Y2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwpOworCisgICAgdm9p
ZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKKworICAgIHN0YXRpYyB2b2lkIG11dGUoKTsK
KyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKworICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50
RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhi
b29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZShQYWdlKik7CisKKyAgICBQYWdlKiBw
YWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisgICAgUGFnZSogbV9wYWdlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZUNvbnNvbGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKaW5kZXggMGI4MzQwY2Q5NWNhZWJl
ZmY4ZTE4MWY1YTEzNWY5MWNjMGVjMzc4NS4uMzFkYmIwZTI1MTQ1NGVjZGY1ZDIxYTc2NDUzMGZm
ZWFhYTRjZTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRM
aWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQu
Y3BwCkBAIC0yNCwxMiArMjQsMTMgQEAKIAogI2lmIEVOQUJMRShYU0xUKQogCi0jaW5jbHVkZSAi
Q29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNv
bGUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVu
dFBhcnNlci5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKQEAgLTE0NCw5
ICsxNDUsMTAgQEAgYm9vbCBYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKICAgICAgICAgeG1sRnJlZURvYyhtX3N0eWxlc2hlZXREb2MpOwogICAgIG1fc3R5
bGVzaGVldERvY1Rha2VuID0gZmFsc2U7CiAKLSAgICBDb25zb2xlKiBjb25zb2xlID0gMDsKLSAg
ICBpZiAob3duZXJEb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICBjb25zb2xlID0gb3duZXJE
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIFBhZ2VDb25zb2xlKiBjb25z
b2xlID0gMDsKKyAgICBGcmFtZSogZnJhbWUgPSBvd25lckRvY3VtZW50KCktPmZyYW1lKCk7Cisg
ICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAgIGNvbnNvbGUgPSBmcmFtZS0+
cGFnZSgpLT5jb25zb2xlKCk7CiAKICAgICBYTUxEb2N1bWVudFBhcnNlclNjb3BlIHNjb3BlKGNh
Y2hlZFJlc291cmNlTG9hZGVyKCksIFhTTFRQcm9jZXNzb3I6OmdlbmVyaWNFcnJvckZ1bmMsIFhT
TFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jLCBjb25zb2xlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNTAzODAyYzdmZTdiNTZmNWY3MmQx
NzgzYWI3YmMzMGNiNjU4MWFkZS4uOWU2ZWE5OGUzODljZmE3ZTkyNzUxNGM2NDRiMTIyZTNhYjVj
N2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBA
IC0yNywxMCArMjcsMTEgQEAKICNpbmNsdWRlICJYU0xUUHJvY2Vzc29yLmgiCiAKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRl
ICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6
Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3QgY2hhciosIC4uLikKIAogdm9pZCBYU0xUUHJv
Y2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJyb3IqIGVycm9yKQog
ewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxDb25zb2xlKj4odXNlckRhdGEp
OworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8UGFnZUNvbnNvbGUqPih1
c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzNyw5
ICsxMzgsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbENoYXIq
IHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291cmNlTG9hZGVyLT5wcmludEFjY2Vz
c0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgfQogCi0gICAgICAgIENvbnNvbGUqIGNvbnNv
bGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0KCktPm93
bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUgPSBnbG9iYWxQcm9j
ZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29u
c29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IDA7CisgICAgICAgIEZyYW1l
KiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50
KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAg
ICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKTsKICAgICAgICAgeG1sU2V0
U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVu
Yyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nv
cjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ29yZVN0YXRpc3RpY3MubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tCmluZGV4IGJmOTE3NTkwMGM1OGUyYTQ2NjA2MDY3MjFkNTIwOTY1MDZiNzU4
MmMuLjA2OWFhNDc5NTMyMTY1NWI5Y2ExMDljNjFiYWFiZDIyODI2MDA5Y2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQpAQCAtMzMsNyArMzMsNiBAQAog
I2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNM
b2NrLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNzLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL0NvbnNvbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udENhY2hlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5o
PgpAQCAtNDIsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hl
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25zb2xlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1By
aW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTE2OCwxMyArMTY4LDEzIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogKyAoQk9PTClzaG91bGRQcmludEV4Y2VwdGlvbnMKIHsKICAgICBK
U0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotICAg
IHJldHVybiBDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICByZXR1cm4gUGFn
ZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpOwogfQogCiArICh2b2lkKXNldFNob3Vs
ZFByaW50RXhjZXB0aW9uczooQk9PTClwcmludAogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpT
RE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7Ci0gICAgQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKHByaW50KTsKKyAgICBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRF
eGNlcHRpb25zKHByaW50KTsKIH0KIAogKyAodm9pZCllbXB0eUNhY2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193743</attachid>
            <date>2013-03-18 23:38:10 -0700</date>
            <delta_ts>2013-03-19 09:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130319103400.patch</filename>
            <type>text/plain</type>
            <size>49576</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlmYzkyZmYwMjc4YTg1
MTQzM2FiYzIwMDU0YTg4OWMyNTQ1Y2E3NS4uOGY1OGQ5ZTRjZjViMGQ0NTJhNWY2Nzc4YTk2MGE1
OGJmZjdkOGQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTE2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJ
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5h
bWVzcGFjZVVSSSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6YWRkTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFn
ZS9Db25zb2xlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
cGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpjb25zb2xlKToKKyAgICAgICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNv
bnNvbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29u
c29sZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Ojp+UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291
cmNlVVJMQW5kTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNz
YWdlU291cmNlQW5kTGV2ZWxQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbnNvbGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OnBhZ2UpOgorICAgICAgICAqIHhtbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hT
TFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6
OnBhcnNlRXJyb3JGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAy
MDEzLTAzLTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAg
QlVJTEQgRklYIChyMTQ2MDg4KTogUmVzb3VyY2VSZXF1ZXN0OjpjZlVSTFJlcXVlc3QoKSBpcyBk
ZWZpbmVkIHR3aWNlIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDNhNTQwYzc2MDUzZGZjMGU4
NWI2ZWFhNGQzOTJkZGQyNGYyNGUzZTEuLmQyZTg0NGJmNmEwNTBmNDZmZGFhOTU3Y2ExODI5NmFh
MzIwMmUzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNiAg
U2VyZ2V5IFJ5YXphbm92ICA8c2VyeWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHNwbGl0IENvbnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3Vu
ZCBvYmplY3QgYW5kIHBhZ2UgY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMTU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE90aGVyd2lzZSwgYSBsb3Qgb2YgbG9nZ2luZyBpbiBXZWJDb3Jl
IG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIERPTVdpbmRvdyB3aGljaCBpcyB1bm5lY2Vzc2FyeS4K
KworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgrW1dlYkNv
cmVTdGF0aXN0aWNzIHNob3VsZFByaW50RXhjZXB0aW9uc10pOgorICAgICAgICAoK1tXZWJDb3Jl
U3RhdGlzdGljcyBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnM6XSk6CisKIDIwMTMtMDMtMTcgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBMZWdhY3kgQ1NTIHZlbmRv
ciBwcmVmaXhlcyBzaG91bGQgb25seSB3b3JrIGZvciBEYXNoYm9hcmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggOTZjOTQzZDgzYmJkNTJlODhhZmNlMzdhYTEyYzAzMjI2OGYwMjY2Yy4uY2UyNWVl
NjkyYTY3NGQ2ZGU2MTk0NjkzNDFhZDVmZGZjMTllYjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE3ODgsNiArMTc4OCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL05hdmln
YXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAKICAgICBwYWdlL1Bh
Z2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAK
ICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKICAgICBwYWdlL1BhZ2VTZXJpYWxp
emVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTNhNDJlMjI2MzBmNDc4
MGU4Nzc4ZmQyYTQzNTc2NjJmNmQ0Zjc5Mi4uZmYzOGM0Mzg0MGNhNTdmODM5MDY5Njg3ZGViYTI4
OTNkZDFiNDFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MjM1LDYgKzQy
MzUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvT3JpZ2lu
QWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IDU3ZWE3MDZkMjUwMmUwZThlOGFiYTA5ODczOGRhNGJlNzI0Y2RjNTguLjk2
NzI5YWZjOGU3NjQ3ODBjZmUxNzUwZTM2MDFmMDExYThjZGFhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
OTQ3LDYgKzk0Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHAg
XAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwIFwKICAgICBwYWdlL1BhZ2UuY3BwIFwK
KyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAg
ICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAogICAgIHBhZ2UvUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHAgXApAQCAtMjE0NCw2ICsyMTQ1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFn
ZS9QYWdlR3JvdXAuaCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAgICAg
cGFnZS9QYWdlLmggXAorICAgIHBhZ2UvUGFnZUNvbnNvbGUuaCBcCiAgICAgcGFnZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmggXAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmggXAogICAgIHBhZ2UvUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY1MGQ2YjQ0MjMw
YzljY2JkYjUyODRkZmE0ZWY4ZjM2MjRmMTc4YzYuLjgyMmVmYTg5NmI3NTZhYjFhYzI3NDM0OWU2
MjJmMDZhODI1MDU3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05MzYsOCArOTM2LDYgQEAg
X19aTjdXZWJDb3JlNldpZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBh
cmVudEVQTlNfMTBTY3JvbGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2Vi
Q29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUUKLV9fWk43V2ViQ29yZTdDb25zb2xlMjFzaG91bGRQ
cmludEV4Y2VwdGlvbnNFdgotX19aTjdXZWJDb3JlN0NvbnNvbGUyNHNldFNob3VsZFByaW50RXhj
ZXB0aW9uc0ViCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0
b21pY1N0cmluZ0VTNF9SaQogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05T
XzEzUXVhbGlmaWVkTmFtZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxl
bWVudDIxYm91bmRzSW5Sb290Vmlld1NwYWNlRXYKQEAgLTE3MjUsNiArMTcyMyw4IEBAIF9fWk43
V2ViQ29yZTEwaGFuZEN1cnNvckV2CiBfX1pON1dlYkNvcmUxMUNhY2hlZEltYWdlNWltYWdlRXYK
IF9fWk43V2ViQ29yZTExZ2xvYmFsUG9pbnRFUks4X05TUG9pbnRQOE5TV2luZG93CiBfX1pON1dl
YkNvcmUxMXRvVXNlclNwYWNlRVJLN19OU1JlY3RQOE5TV2luZG93CitfX1pON1dlYkNvcmUxMVBh
Z2VDb25zb2xlMjFzaG91bGRQcmludEV4Y2VwdGlvbnNFdgorX19aTjdXZWJDb3JlMTFQYWdlQ29u
c29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5k
bGVyMTBtb3VzZU1vdmVkRVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMHdo
ZWVsRXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjEybW91c2VEcmFn
Z2VkRVA3TlNFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE5MTk1Yzc3ZjZmY2QxN2Y1MzYxNDNk
OThiNDk0NWJlM2U4Y2VkOGEuLmI3M2JmODNiZWMxYWYzYjg5ZTBjM2M3MTdiYmM1MDcyMjg0ZTQ0
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyNTIsNiArMjI1Miw3IEBACiAgICAgICAgICAgICAn
cGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvT3JpZ2luQWNj
ZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlLmNwcCcsCisgICAgICAgICAgICAn
cGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4
IDc1MDNkYzI1YTE0MjliOWZkNzAwMDg1ZTY5ZjQxM2JhZWVmNzdkZmQuLjFiODIyNTRjODlmMjU0
NmJjNDZhYWE4ZTg1NmU5OTQwMGZiZjgyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTU1NTks
NyArMTU1NTksNiBAQCBfX1pOM1dURjI5UmVmUHRySGFzaE1hcFJhd0tleVRyYW5zbGF0b3JJUE43
V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXJFU3Q0cGFpcklOU182UgogX19aTjNXVEY2VmVjdG9ySU5T
XzZSZWZQdHJJTjdXZWJDb3JlMTVBcmNoaXZlUmVzb3VyY2VFRUVMbTBFRUQxRXYKIF9fWk43V2Vi
Q29yZTVUaW1lcklOU18xNERvY3VtZW50TG9hZGVyRUU1ZmlyZWRFdgogX19aTjdXZWJDb3JlMTRE
b2N1bWVudExvYWRlcjM2c3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkRVBOU181
VGltZXJJUzBfRUUKLV9fWk43V2ViQ29yZTdDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlv
bnNFYgogX19aTjdXZWJDb3JlMTZqc0NsaXBib2FyZFR5cGVzRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk5LN1dlYkNvcmUxMUpTQ2xpcGJvYXJk
NXR5cGVzRVBOM0pTQzlFeGVjU3RhdGVFCiBfX1pOSzdXZWJDb3JlMTJDbGlwYm9hcmRNYWM1dHlw
ZXNFdgpAQCAtMTU2NzksNiArMTU2NzgsNyBAQCBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxv
YWRDb250cm9sMTlyZWNlaXZlRHJvcHBlZEZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82UwogX19a
TjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDE5YWxsb3dzTXVsdGlwbGVGaWxlc0V2
CiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyMTBjaG9vc2VGaWxlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlcjExY2hvb3NlRmlsZXNFUktOM1dURjZWZWN0b3JJTlMx
XzZTdHJpbmdFTG0wRUVFCitfX1pON1dlYkNvcmUxMVBhZ2VDb25zb2xlMjRzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnNFYgogX19aVGhuMTg0X043V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wxOGNob29zZUljb25Gb3JGaWxlc0VQTlNfMTFGaWxlQ2hvb3NlckVSS04zV1RGNlZlY3RvcklO
UzNfNlN0cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTZDaHJvbWUxOGNob29zZUljb25Gb3JGaWxl
c0VSS04zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFRUVQTlNfMTFGaWxlQ2hvb3NlckUKIF9f
Wk43V2ViQ29yZTRJY29uMThjcmVhdGVJY29uRm9yRmlsZXNFUktOM1dURjZWZWN0b3JJTlMxXzZT
dHJpbmdFTG0wRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDdhMzUwM2RiNzViYTJjMzlhZDU3ZWE2YWJhOGU0ZjRiYzkyMzdjNDMuLjg3OTJl
ZmJiNzQ1ZGI5ZTBjNWM2NjY5MGU0MjZmZTc4OWE3MTkwMmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzU5MCw2ICsyNzU5MCwxNCBAQAog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQ
YWdlQ29uc29sZS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIgogCQkJCT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDZiZjU0
YzczODZlN2UyMjI3MjRjMTdjMTY1ZWUxY2JmYmI2ZDFjMmYuLjA0MDBlZTZhNjY4ZTRmNDgxN2Y0
MDhiZGIwZmEwZDdlNGMwNjViZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMzkzNyw2ICszOTM3LDcgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcTmF2aWdhdG9yQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwYWdlXE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwYWdlXFBhZ2VDb25zb2xlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZVNlcmlhbGl6ZXIuY3BwIiAvPgpAQCAtMTM2MzcsNCArMTM2MzgsNCBAQAogICA8SW1w
b3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgog
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICA8L0ltcG9ydEdyb3Vw
PgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwppbmRleCA2YmVkMTM5MDcxNjE4ZDcxODJjMTBjZjA1YzU0YTYzNDVhMzY5ZmU3Li4x
YzdlNjVjMGI5MjliMDZlMmMyZjk1ZTI5MDMwNDEwMjU1MjM1YTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBA
IC02Njk2LDYgKzY2OTYsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
LmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuY3BwIj4KKyAgICAgIDxG
aWx0ZXI+cGFnZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTUzNDIsNCArMTUzNDUsNCBAQAogICAgICAgPEZpbHRl
cj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KICAgPC9JdGVtR3Jv
dXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNmY2VkZjdkY2JkMTMyMmFjZGI5ODllZDBkMDNlMmM0MjcwNjY1ZWIuLjY2MTRkZTEyM2Iz
ZjM0NWY5ZWYzZjhhMjZmNGE2MzRmYTliOTQzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxNTMsNiArNjE1Myw4IEBACiAJ
CUQ3NjEzQTUwMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBNEUxNDc0RjEzRjAw
REI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgKi87IH07CiAJCUQ3NjEzQUM0MTQ3NTNFNTYw
MERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzYxM0FDMjE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJL
aXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29v
a2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2
MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREFFRDIwMzAxNkYyNDQyQjAwNzBFQzBGIC8qIFBh
Z2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi87IH07CisJ
CURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1
IC8qIFBhZ2VDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERC
MjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07
CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUw
OEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CiAJCUREMDVGRTBE
MEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQwNUZFMEIwQjhCQTNDNjAwOUFDREZFIC8q
IFdlYkNvcmVPYmpDRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTEzODYyLDYgKzEzODY0LDggQEAKIAkJRDc2MTNBQzIxNDc1M0U1NjAw
REI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDc2MTNBQzMxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBD
b29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdl
Q29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ29u
c29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0RBMTZGMjQxNjQw
MDY2NjEzNSAvKiBQYWdlQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYWdlQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVu
dE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRl
bnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERDA1RkUw
QjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVPYmpDRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNjQ3OCw2ICsxNjQ4Miw4IEBACiAJCQkJOTc1Q0EyODcxMzAzNjVGODAw
RTk5QUQ5IC8qIENyeXB0by5jcHAgKi8sCiAJCQkJOTc1Q0EyODgxMzAzNjVGODAwRTk5QUQ5IC8q
IENyeXB0by5oICovLAogCQkJCTk3NUNBMjg5MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaWRs
ICovLAorCQkJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi8s
CisJCQkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi8sCiAJCQkJ
Q0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovLAogCQkJCUNDQzJC
NTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywKIAkJCQlDQ0My
QjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovLApAQCAtMjY3NjQs
NiArMjY3NzAsNyBAQAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVk
aXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhE
Q0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCURBRUQyMDMxMTZGMjQ0NDgwMDcw
RUMwRiAvKiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTk3MSw2ICsyOTk3OCw3
IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxl
Z2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREFFRDIwMzAxNkYyNDQyQjAwNzBFQzBG
IC8qIFBhZ2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCmluZGV4IGE5YjM0
YTY1NmM4ZmZlYTFlNzllMWNkZTZmNzZmOGY2MGQ0Nzk4NGIuLmQwYTUwMTFlYjlkMWI2ZGIxMjk4
OThhMWY3NDc2MWU4ZjhkOGE5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTI2LDEyICsyNiwxMyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgi
CiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU0RPTVdp
bmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KIApAQCAtNzgsNyArNzksOCBA
QCBTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25z
dCBTdHJpbmcmIHByZWZpeCkKICAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5t
ZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0
YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICAg
ICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90
IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOworICAgICAgICAgICAgaWYgKFBh
Z2VDb25zb2xlKiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3QtPmltcGwoKS0+cGFnZUNvbnNvbGUo
KSkKKyAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1
cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAg
ICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYjk1NGZmZWQxZWQzNjhkZGVjNzJmYjEyZjNmMmI3
ZDg4MWM5NWExNC4uY2FlMzQ4OWI1ZDAwZjg5NmM4NzAwNTU2NDlmZjc1NmNmOWFlYTY0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhD
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRl
ICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNjksNyArNzEsOSBAQCBTdHJpbmcgVjhD
dXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHBy
ZWZpeCkKICAgICB9CiAKICAgICBpZiAobG9va3VwTmFtZXNwYWNlVVJJRnVuYy5Jc0VtcHR5KCkg
JiYgIW1fcmVzb2x2ZXItPklzRnVuY3Rpb24oKSkgewotICAgICAgICBhY3RpdmVET01XaW5kb3co
QmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2
ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9
IGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLT5mcmFtZSgpOworICAg
ICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIGZyYW1lLT5wYWdl
KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxl
dmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkg
bWV0aG9kLiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCAwZjdlMmNkNTg4MmEyMTliN2RkZWY1MDFkODI1MjkzM2VjYzQwNTll
Li5lNzU5NThjMWQwN2U2ZjBlZWFhZWU1MTdmYTIyZjY0ZTI2ODhmY2EzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCi0jaW5jbHVkZSAiQ29u
c29sZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNv
bnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgpAQCAtMTI0LDYgKzEyMyw3
IEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIk5vZGVXaXRoSW5kZXgu
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCkBAIC00ODQ0LDEwICs0ODQ0LDggQEAgdm9pZCBE
b2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChET01X
aW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0gICAgICAgIGlmIChDb25zb2xlKiBjb25z
b2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdl
KHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlzKTsKLSAgICB9
CisgICAgaWYgKHBhZ2UoKSkKKyAgICAgICAgcGFnZSgpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElkZW50aWZpZXIsIHRoaXMpOwogfQogCiB2
b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikK
QEAgLTQ4NTcsMTAgKzQ4NTUsOCBAQCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkp
IHsKLSAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAg
ICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291
cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7
Ci0gICAgfQorICAgIGlmIChwYWdlKCkpCisgICAgICAgIHBhZ2UoKS0+Y29uc29sZSgpLT5hZGRN
ZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2Fs
bFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBjb25zdCBTZWN1cml0eU9y
aWdpbiogRG9jdW1lbnQ6OnRvcE9yaWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxNjIyMmVlNjUxZDc2YTA0Njk1NGI3
ZmJhZTUxYzhiZmRiMDAyN2Y3Li4yMDBmYjJjZjc0NTYwYjU1YzU3Yjk0ZjExOGE2NGRjZGQ2YzBm
ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTM0LDExICszNCwxMSBAQAogCiAjaW5jbHVkZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIK
IAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2lu
Y2x1ZGUgIlBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC04OCwxMiArODgsMTIgQEAgUGFnZVNjcmlwdERlYnVnU2VydmVyJiBQYWdlRGVidWdnZXJBZ2Vu
dDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29u
c29sZSgpCiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7
CiB9CiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENv
bnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogSW5qZWN0
ZWRTY3JpcHQgUGFnZURlYnVnZ2VyQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDc3YjQwZmEz
MTJhN2E0ZjMxYzYzNzMyZmQzNzY0ZTA4OWY4MTcyNmUuLmE4NDMxYmEwZmE3OGNjODQxNWI4NDRj
MjIzZTFiMDM0ZWIyZTk2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlBhZ2VSdW50aW1l
QWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmgiCkBAIC00Miw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogdXNpbmcg
V2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlv
bjsKQEAgLTE0OCwxMiArMTQ4LDEyIEBAIEluamVjdGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6
OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsCiAKIHZvaWQg
UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6Om11dGUoKTsK
KyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnVu
bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xl
Ojp1bm11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25D
b250ZXh0Q3JlYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5kZXggZWE1MzdjNGZiMjA5
MGQ0MDEwY2YwYWY2MDY5ZGMwOWEyMjNiMGQ5YS4uNTQ0NWE2Y2Q0NWZkOWFlNDA1OGVkZDdhMTc1
MjA5MzAwZmNlZTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lbW9yeUluZm8u
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKQEAgLTYxLDEwICs2Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotbmFtZXNwYWNlIHsKLSAgICBpbnQgbXV0ZUNvdW50ID0gMDsKLX0KLQogQ29uc29sZTo6
Q29uc29sZShGcmFtZSogZnJhbWUpCiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsK
QEAgLTc0LDEyNiArNzEsNiBAQCBDb25zb2xlOjp+Q29uc29sZSgpCiB7CiB9CiAKLXN0YXRpYyB2
b2lkIHByaW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWdu
ZWQgbGluZU51bWJlcikKLXsKLSAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgaWYgKGxpbmVOdW1iZXIgPiAwKQotICAgICAgICAgICAgcHJpbnRmKCIlczolZDogIiwgc291
cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBwcmludGYoIiVzOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotfQot
Ci1zdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsKQotewotICAgIGNvbnN0IGNoYXIqIHNvdXJj
ZVN0cmluZzsKLSAgICBzd2l0Y2ggKHNvdXJjZSkgewotICAgIGNhc2UgWE1MTWVzc2FnZVNvdXJj
ZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlhNTCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSlNNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiSlMiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIE5ldHdvcmtNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiTkVUV09SSyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29uc29sZUFQSU1l
c3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJDT05TT0xFQVBJIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNl
U3RyaW5nID0gIlNUT1JBR0UiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFwcENhY2hlTWVz
c2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkFQUENBQ0hFIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJpbmdNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiUkVOREVSSU5HIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NNZXNzYWdl
U291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ1NTIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBTZWN1cml0eU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJT
RUNVUklUWSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOgot
ICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIiOwotICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgc291cmNlU3RyaW5n
ID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjb25zdCBjaGFyKiBs
ZXZlbFN0cmluZzsKLSAgICBzd2l0Y2ggKGxldmVsKSB7Ci0gICAgY2FzZSBEZWJ1Z01lc3NhZ2VM
ZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiREVCVUciOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIExvZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiTE9HIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXYXJuaW5nTWVzc2FnZUxldmVsOgotICAgICAgICBsZXZl
bFN0cmluZyA9ICJXQVJOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFcnJvck1lc3NhZ2VM
ZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRVJST1IiOwotICAgICAgICBicmVhazsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiVU5LTk9XTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHByaW50Zigi
JXMgJXM6Iiwgc291cmNlU3RyaW5nLCBsZXZlbFN0cmluZyk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3Vt
ZW50KiBkb2N1bWVudCkKLXsKLSAgICBTdHJpbmcgdXJsOwotICAgIGlmIChkb2N1bWVudCkKLSAg
ICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOwotICAgIHVuc2lnbmVkIGxpbmUg
PSAwOwotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVu
dC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKCkpIHsKLSAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1
bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7Ci0gICAgICAgIGlmICghcGFyc2VyLT5p
c1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKLSAg
ICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOwotICAg
IH0KLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwg
MCwgcmVxdWVzdElkZW50aWZpZXIpOwotfQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQotewotICAgIGFkZE1l
c3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7
Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJs
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIp
Ci17Ci0gICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3Vy
Y2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoY2FsbFN0YWNrKQotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwg
c291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVz
dElkZW50aWZpZXIpOwotICAgIGVsc2UKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVs
LCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0K
LSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkgfHwgbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCBsZXZlbCwgbWVzc2Fn
ZSwgbGluZU51bWJlciwgdXJsKTsKLQotICAgIGlmICghbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhc2hvdWxkUHJpbnRFeGNl
cHRpb25zKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1
cmwsIGxpbmVOdW1iZXIpOwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNv
dXJjZSwgbGV2ZWwpOwotCi0gICAgcHJpbnRmKCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHBycEFyZ3VtZW50cywgYm9vbCBhY2NlcHROb0FyZ3Vt
ZW50cyA9IGZhbHNlLCBib29sIHByaW50VHJhY2UgPSBmYWxzZSkKIHsKICAgICBSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMgPSBwcnBBcmd1bWVudHM7CkBAIC0yMTIsMTcgKzg5LDE3
IEBAIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsCiAgICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1l
bnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZSk7CiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc3RhdGUsIGFyZ3VtZW50cyk7CiAKLSAgICBp
ZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgcGFnZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpKQorICAgIGlmIChwYWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChnb3RNZXNzYWdlKQogICAgICAgICBw
YWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1l
c3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIo
KSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKSk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkt
PmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIUNvbnNvbGU6OnNo
b3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1Bh
Z2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhUGFnZUNvbnNvbGU6OnNob3Vs
ZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVS
TEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkp
OwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCBsZXZlbCk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShs
YXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSk7CisgICAgUGFn
ZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNz
YWdlU291cmNlLCBsZXZlbCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50
cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0g
YXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvU3RyaW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUo
KSk7CkBAIC0zODgsMTkgKzI2NSw2IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNv
bGVBUElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWws
IFN0cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAKLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjpt
dXRlKCkKLXsKLSAgICBtdXRlQ291bnQrKzsKLX0KLQotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6
OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+IDApOwotICAgIG11dGVDb3VudC0t
OwotfQotCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgY3JlYXRlIGEgbmV3IG9iamVjdCBoZXJlIGVhY2gg
dGltZSwKQEAgLTQwOCwxOCArMjcyLDYgQEAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xl
OjptZW1vcnkoKSBjb25zdAogICAgIHJldHVybiBNZW1vcnlJbmZvOjpjcmVhdGUobV9mcmFtZSk7
CiB9CiAKLXN0YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9IGZhbHNlOwotCi1ib29sIENvbnNv
bGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCi17Ci0gICAgcmV0dXJuIHByaW50RXhjZXB0aW9u
czsKLX0KLQotdm9pZCBDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmlu
dCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsKLX0KLQogUGFnZSogQ29uc29sZTo6
cGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRl
eCBhOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVjNWZjNDJmLi5iOGU3NTExNWIxNWFm
NDczYTkyNTg0MzNlYWU2NjA4MWM3NGNlNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtMjks
MTAgKzI5LDcgQEAKICNpZm5kZWYgQ29uc29sZV9oCiAjZGVmaW5lIENvbnNvbGVfaAogCi0jaW5j
bHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCi0jaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQyLDEyICszOSwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBNZW1v
cnlJbmZvOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEFyZ3VtZW50czsKLWNsYXNzIFNjcmlw
dENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+ID4gUHJvZmlsZXNBcnJheTsKQEAgLTU4LDEwICs1
Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJh
bWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAg
dmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0g
MCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAp
OwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lk
IGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAw
KTsKLQogICAgIHZvaWQgZGVidWcoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4pOwogICAgIHZvaWQgZXJyb3IoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwogICAgIHZvaWQgaW5mbyhTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPik7CkBAIC04NywxMiArNzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBncm91cENv
bGxhcHNlZChTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAg
dm9pZCBncm91cEVuZCgpOwogCi0gICAgc3RhdGljIHZvaWQgbXV0ZSgpOwotICAgIHN0YXRpYyB2
b2lkIHVubXV0ZSgpOwotCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7
Ci0gICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wpOwotCiAgICAg
UGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBtZW1vcnkoKSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YjAxNTk1MTYwNWNhNWY2YjE4OTIxZmMxYjExY2I4
ZThlN2U5ODU0Li5kYzJhODBlYTEzZTNjNzY2Mzk0ZjVmMzk0MTMzYzA2OWEyY2UyYjFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTWVz
c2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC02
OTQsNiArNjk1LDEzIEBAIENvbnNvbGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6cGFn
ZUNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1l
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2Zy
YW1lLT5wYWdlKCktPmNvbnNvbGUoKSA6IDA7Cit9CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIERP
TVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRs
eURpc3BsYXllZEluRnJhbWUoKSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6
ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVu
ZGVkVGFyZwogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVI
b3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJn
ZXRPcmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBS
ZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9T
dHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKFNlY3Vy
aXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2Up
OworICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShTZWN1cml0eU1lc3NhZ2VT
b3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3OTgsNyArMTgwNiw3IEBAIHZvaWQg
RE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAg
aWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zb2xlKCkt
PmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7
CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVz
c2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5B
Y2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaAppbmRleCA0OWJmOGM5ODUyNDYwMWQyNjE1ZTYxODdmZjY3OTdlMWMzYWFlNzU1Li40
OWNiNmU2MTdiZjUzYmJlYjI3OWI5ODkwYWU1MDY3YmViNTcyM2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3Mg
UGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3Nh
Z2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CkBAIC0yMzMsNiArMjM0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJr
aXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBj
b25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAg
ICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBwcmlu
dEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWlu
QWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IGJhYzhjNWEyYjA5NTg5OWRlNTk5NmI5NjM0MjNmMTczNWQ2YjU1MTMuLjEzMWJm
ODg1ZDZkOThiYjM2MjA4MjJlZWJiMTZkZDZhY2VmZGE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdv
cmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnSW5DbGll
bnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0xNzYsNiArMTc3LDcgQEAgUGFnZTo6
UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fYWx0ZXJuYXRp
dmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1f
c2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9jb25zb2xlKFBhZ2VD
b25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAppbmRleCBjMGM3MzE4N2I2YjgyNTU2NjlkYzI3MzM3NmJiNjIwYzI4OTRiOTVk
Li45MWZiOWVhMGNlZDE0MTE2YzlhMWJjZmFjN2Y0MTUyOTRlOWNjYjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTm9kZTsK
K2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xpZW50
OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3OCw2ICszNzksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVz
ZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQYWdlQ29uc29sZSogY29uc29sZSgpIHsgcmV0
dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtNTA0LDYg
KzUwNiw3IEBAIHByaXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0
aXZlVGV4dENsaWVudDsKIAogICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7
CisgICAgT3duUHRyPFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7CiAKICAgICBIYXNoU2V0PFN0cmlu
Zz4gbV9zZWVuUGx1Z2luczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTBlYWExYzlhMjM0
YzQwMTYxYjRmMjQzZTlmODMyOTNhNmVlZDVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgi
CisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2
ZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworICAg
IGludCBtdXRlQ291bnQgPSAwOworfQorCitQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUoUGFnZSog
cGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKSB7
IH0KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoreworICAgIGlmICghc291cmNlVVJM
LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobGluZU51bWJlciA+IDApCisgICAgICAgICAgICBw
cmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCku
ZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJj
ZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwp
Cit7CisgICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOworICAgIHN3aXRjaCAoc291cmNlKSB7
CisgICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1M
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNv
dXJjZVN0cmluZyA9ICJKUyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmV0d29ya01lc3Nh
Z2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3Ry
aW5nID0gIkNPTlNPTEVBUEkiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JhZ2VNZXNz
YWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFHRSI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJp
bmcgPSAiQVBQQ0FDSEUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlcmluZ01lc3Nh
Z2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJTkciOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9
ICJDU1MiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5TWVzc2FnZVNvdXJjZToK
KyAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9XTiI7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGNvbnN0IGNoYXIqIGxldmVsU3RyaW5nOworICAgIHN3aXRjaCAobGV2ZWwp
IHsKKyAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJE
RUJVRyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9nTWVzc2FnZUxldmVsOgorICAgICAg
ICBsZXZlbFN0cmluZyA9ICJMT0ciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhcm5pbmdN
ZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIldBUk4iOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJF
UlJPUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3Ry
aW5nKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJp
bmcgdXJsOworICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgp
LnN0cmluZygpOworICAgIHVuc2lnbmVkIGxpbmUgPSAwOworICAgIGlmIChkb2N1bWVudCAmJiBk
b2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBk
b2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKKyAgICAgICAgU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKCk7CisgICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBh
cnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxp
bmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOworICAgIH0KKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOworfQor
Cit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1l
c3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOworfQorCit2b2lkIFBhZ2VDb25zb2xl
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBpZiAobXV0ZUNv
dW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChjYWxsU3RhY2spCisgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
ZWxzZQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGlu
ZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAgIGlmIChwYWdlLT5zZXR0
aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5n
cygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQ
cmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpbnRTb3VyY2VVUkxB
bmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQ
cmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4
KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjptdXRlKCkKK3sK
KyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjp1bm11
dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKKyAgICBtdXRlQ291bnQtLTsKK30K
Kworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFsc2U7CisKK2Jvb2wgUGFnZUNvbnNv
bGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAgcmV0dXJuIHByaW50RXhjZXB0aW9u
czsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wg
cHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGMwODky
NDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFlYzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
UGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29uc29sZV9oCisKKyNpbmNsdWRlICJDb25zb2xl
VHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRT
dGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBh
Z2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0
cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZSgpOworCisgICAg
c3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3Vy
Y2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwpOworCisgICAgdm9p
ZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKKworICAgIHN0YXRpYyB2b2lkIG11dGUoKTsK
KyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKworICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50
RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhi
b29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZShQYWdlKik7CisKKyAgICBQYWdlKiBw
YWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisgICAgUGFnZSogbV9wYWdlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZUNvbnNvbGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKaW5kZXggMGI4MzQwY2Q5NWNhZWJl
ZmY4ZTE4MWY1YTEzNWY5MWNjMGVjMzc4NS4uMzFkYmIwZTI1MTQ1NGVjZGY1ZDIxYTc2NDUzMGZm
ZWFhYTRjZTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRM
aWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQu
Y3BwCkBAIC0yNCwxMiArMjQsMTMgQEAKIAogI2lmIEVOQUJMRShYU0xUKQogCi0jaW5jbHVkZSAi
Q29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNv
bGUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVu
dFBhcnNlci5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKQEAgLTE0NCw5
ICsxNDUsMTAgQEAgYm9vbCBYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKICAgICAgICAgeG1sRnJlZURvYyhtX3N0eWxlc2hlZXREb2MpOwogICAgIG1fc3R5
bGVzaGVldERvY1Rha2VuID0gZmFsc2U7CiAKLSAgICBDb25zb2xlKiBjb25zb2xlID0gMDsKLSAg
ICBpZiAob3duZXJEb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICBjb25zb2xlID0gb3duZXJE
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIFBhZ2VDb25zb2xlKiBjb25z
b2xlID0gMDsKKyAgICBGcmFtZSogZnJhbWUgPSBvd25lckRvY3VtZW50KCktPmZyYW1lKCk7Cisg
ICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAgIGNvbnNvbGUgPSBmcmFtZS0+
cGFnZSgpLT5jb25zb2xlKCk7CiAKICAgICBYTUxEb2N1bWVudFBhcnNlclNjb3BlIHNjb3BlKGNh
Y2hlZFJlc291cmNlTG9hZGVyKCksIFhTTFRQcm9jZXNzb3I6OmdlbmVyaWNFcnJvckZ1bmMsIFhT
TFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jLCBjb25zb2xlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNTAzODAyYzdmZTdiNTZmNWY3MmQx
NzgzYWI3YmMzMGNiNjU4MWFkZS4uOWU2ZWE5OGUzODljZmE3ZTkyNzUxNGM2NDRiMTIyZTNhYjVj
N2JjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBA
IC0yNywxMCArMjcsMTEgQEAKICNpbmNsdWRlICJYU0xUUHJvY2Vzc29yLmgiCiAKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRl
ICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6
Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3QgY2hhciosIC4uLikKIAogdm9pZCBYU0xUUHJv
Y2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJyb3IqIGVycm9yKQog
ewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxDb25zb2xlKj4odXNlckRhdGEp
OworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8UGFnZUNvbnNvbGUqPih1
c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzNyw5
ICsxMzgsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbENoYXIq
IHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291cmNlTG9hZGVyLT5wcmludEFjY2Vz
c0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgfQogCi0gICAgICAgIENvbnNvbGUqIGNvbnNv
bGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0KCktPm93
bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUgPSBnbG9iYWxQcm9j
ZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29u
c29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IDA7CisgICAgICAgIEZyYW1l
KiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50
KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAg
ICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKTsKICAgICAgICAgeG1sU2V0
U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVu
Yyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nv
cjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ29yZVN0YXRpc3RpY3MubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tCmluZGV4IGJmOTE3NTkwMGM1OGUyYTQ2NjA2MDY3MjFkNTIwOTY1MDZiNzU4
MmMuLjA2OWFhNDc5NTMyMTY1NWI5Y2ExMDljNjFiYWFiZDIyODI2MDA5Y2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQpAQCAtMzMsNyArMzMsNiBAQAog
I2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNM
b2NrLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNzLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL0NvbnNvbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udENhY2hlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5o
PgpAQCAtNDIsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hl
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25zb2xlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1By
aW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTE2OCwxMyArMTY4LDEzIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogKyAoQk9PTClzaG91bGRQcmludEV4Y2VwdGlvbnMKIHsKICAgICBK
U0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotICAg
IHJldHVybiBDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICByZXR1cm4gUGFn
ZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpOwogfQogCiArICh2b2lkKXNldFNob3Vs
ZFByaW50RXhjZXB0aW9uczooQk9PTClwcmludAogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpT
RE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7Ci0gICAgQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKHByaW50KTsKKyAgICBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRF
eGNlcHRpb25zKHByaW50KTsKIH0KIAogKyAodm9pZCllbXB0eUNhY2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193750</attachid>
            <date>2013-03-19 00:19:01 -0700</date>
            <delta_ts>2013-03-19 04:45:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130319111451.patch</filename>
            <type>text/plain</type>
            <size>49576</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlmYzkyZmYwMjc4YTg1
MTQzM2FiYzIwMDU0YTg4OWMyNTQ1Y2E3NS4uOGY1OGQ5ZTRjZjViMGQ0NTJhNWY2Nzc4YTk2MGE1
OGJmZjdkOGQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTE2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJ
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5h
bWVzcGFjZVVSSSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6YWRkTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFn
ZS9Db25zb2xlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
cGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpjb25zb2xlKToKKyAgICAgICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNv
bnNvbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29u
c29sZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Ojp+UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291
cmNlVVJMQW5kTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNz
YWdlU291cmNlQW5kTGV2ZWxQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbnNvbGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OnBhZ2UpOgorICAgICAgICAqIHhtbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hT
TFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6
OnBhcnNlRXJyb3JGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAy
MDEzLTAzLTE4ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAg
QlVJTEQgRklYIChyMTQ2MDg4KTogUmVzb3VyY2VSZXF1ZXN0OjpjZlVSTFJlcXVlc3QoKSBpcyBk
ZWZpbmVkIHR3aWNlIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDNhNTQwYzc2MDUzZGZjMGU4
NWI2ZWFhNGQzOTJkZGQyNGYyNGUzZTEuLmQyZTg0NGJmNmEwNTBmNDZmZGFhOTU3Y2ExODI5NmFh
MzIwMmUzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNiAg
U2VyZ2V5IFJ5YXphbm92ICA8c2VyeWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHNwbGl0IENvbnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3Vu
ZCBvYmplY3QgYW5kIHBhZ2UgY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMTU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE90aGVyd2lzZSwgYSBsb3Qgb2YgbG9nZ2luZyBpbiBXZWJDb3Jl
IG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIERPTVdpbmRvdyB3aGljaCBpcyB1bm5lY2Vzc2FyeS4K
KworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgrW1dlYkNv
cmVTdGF0aXN0aWNzIHNob3VsZFByaW50RXhjZXB0aW9uc10pOgorICAgICAgICAoK1tXZWJDb3Jl
U3RhdGlzdGljcyBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnM6XSk6CisKIDIwMTMtMDMtMTcgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBMZWdhY3kgQ1NTIHZlbmRv
ciBwcmVmaXhlcyBzaG91bGQgb25seSB3b3JrIGZvciBEYXNoYm9hcmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggOTZjOTQzZDgzYmJkNTJlODhhZmNlMzdhYTEyYzAzMjI2OGYwMjY2Yy4uY2UyNWVl
NjkyYTY3NGQ2ZGU2MTk0NjkzNDFhZDVmZGZjMTllYjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE3ODgsNiArMTc4OCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL05hdmln
YXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAKICAgICBwYWdlL1Bh
Z2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAK
ICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKICAgICBwYWdlL1BhZ2VTZXJpYWxp
emVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTNhNDJlMjI2MzBmNDc4
MGU4Nzc4ZmQyYTQzNTc2NjJmNmQ0Zjc5Mi4uZmYzOGM0Mzg0MGNhNTdmODM5MDY5Njg3ZGViYTI4
OTNkZDFiNDFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MjM1LDYgKzQy
MzUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvT3JpZ2lu
QWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IDU3ZWE3MDZkMjUwMmUwZThlOGFiYTA5ODczOGRhNGJlNzI0Y2RjNTguLjk2
NzI5YWZjOGU3NjQ3ODBjZmUxNzUwZTM2MDFmMDExYThjZGFhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
OTQ3LDYgKzk0Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHAg
XAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwIFwKICAgICBwYWdlL1BhZ2UuY3BwIFwK
KyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAg
ICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAogICAgIHBhZ2UvUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHAgXApAQCAtMjE0NCw2ICsyMTQ1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFn
ZS9QYWdlR3JvdXAuaCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAgICAg
cGFnZS9QYWdlLmggXAorICAgIHBhZ2UvUGFnZUNvbnNvbGUuaCBcCiAgICAgcGFnZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmggXAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmggXAogICAgIHBhZ2UvUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY1MGQ2YjQ0MjMw
YzljY2JkYjUyODRkZmE0ZWY4ZjM2MjRmMTc4YzYuLjgyMmVmYTg5NmI3NTZhYjFhYzI3NDM0OWU2
MjJmMDZhODI1MDU3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05MzYsOCArOTM2LDYgQEAg
X19aTjdXZWJDb3JlNldpZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBh
cmVudEVQTlNfMTBTY3JvbGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2Vi
Q29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUUKLV9fWk43V2ViQ29yZTdDb25zb2xlMjFzaG91bGRQ
cmludEV4Y2VwdGlvbnNFdgotX19aTjdXZWJDb3JlN0NvbnNvbGUyNHNldFNob3VsZFByaW50RXhj
ZXB0aW9uc0ViCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0
b21pY1N0cmluZ0VTNF9SaQogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05T
XzEzUXVhbGlmaWVkTmFtZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxl
bWVudDIxYm91bmRzSW5Sb290Vmlld1NwYWNlRXYKQEAgLTE3MjUsNiArMTcyMyw4IEBAIF9fWk43
V2ViQ29yZTEwaGFuZEN1cnNvckV2CiBfX1pON1dlYkNvcmUxMUNhY2hlZEltYWdlNWltYWdlRXYK
IF9fWk43V2ViQ29yZTExZ2xvYmFsUG9pbnRFUks4X05TUG9pbnRQOE5TV2luZG93CiBfX1pON1dl
YkNvcmUxMXRvVXNlclNwYWNlRVJLN19OU1JlY3RQOE5TV2luZG93CitfX1pON1dlYkNvcmUxMVBh
Z2VDb25zb2xlMjFzaG91bGRQcmludEV4Y2VwdGlvbnNFdgorX19aTjdXZWJDb3JlMTFQYWdlQ29u
c29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5k
bGVyMTBtb3VzZU1vdmVkRVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMHdo
ZWVsRXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjEybW91c2VEcmFn
Z2VkRVA3TlNFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE5MTk1Yzc3ZjZmY2QxN2Y1MzYxNDNk
OThiNDk0NWJlM2U4Y2VkOGEuLmI3M2JmODNiZWMxYWYzYjg5ZTBjM2M3MTdiYmM1MDcyMjg0ZTQ0
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyNTIsNiArMjI1Miw3IEBACiAgICAgICAgICAgICAn
cGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvT3JpZ2luQWNj
ZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlLmNwcCcsCisgICAgICAgICAgICAn
cGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4
IDc1MDNkYzI1YTE0MjliOWZkNzAwMDg1ZTY5ZjQxM2JhZWVmNzdkZmQuLjFiODIyNTRjODlmMjU0
NmJjNDZhYWE4ZTg1NmU5OTQwMGZiZjgyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTU1NTks
NyArMTU1NTksNiBAQCBfX1pOM1dURjI5UmVmUHRySGFzaE1hcFJhd0tleVRyYW5zbGF0b3JJUE43
V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXJFU3Q0cGFpcklOU182UgogX19aTjNXVEY2VmVjdG9ySU5T
XzZSZWZQdHJJTjdXZWJDb3JlMTVBcmNoaXZlUmVzb3VyY2VFRUVMbTBFRUQxRXYKIF9fWk43V2Vi
Q29yZTVUaW1lcklOU18xNERvY3VtZW50TG9hZGVyRUU1ZmlyZWRFdgogX19aTjdXZWJDb3JlMTRE
b2N1bWVudExvYWRlcjM2c3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkRVBOU181
VGltZXJJUzBfRUUKLV9fWk43V2ViQ29yZTdDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlv
bnNFYgogX19aTjdXZWJDb3JlMTZqc0NsaXBib2FyZFR5cGVzRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk5LN1dlYkNvcmUxMUpTQ2xpcGJvYXJk
NXR5cGVzRVBOM0pTQzlFeGVjU3RhdGVFCiBfX1pOSzdXZWJDb3JlMTJDbGlwYm9hcmRNYWM1dHlw
ZXNFdgpAQCAtMTU2NzksNiArMTU2NzgsNyBAQCBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxv
YWRDb250cm9sMTlyZWNlaXZlRHJvcHBlZEZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82UwogX19a
TjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDE5YWxsb3dzTXVsdGlwbGVGaWxlc0V2
CiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyMTBjaG9vc2VGaWxlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlcjExY2hvb3NlRmlsZXNFUktOM1dURjZWZWN0b3JJTlMx
XzZTdHJpbmdFTG0wRUVFCitfX1pON1dlYkNvcmUxMVBhZ2VDb25zb2xlMjRzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnNFYgogX19aVGhuMTg0X043V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wxOGNob29zZUljb25Gb3JGaWxlc0VQTlNfMTFGaWxlQ2hvb3NlckVSS04zV1RGNlZlY3RvcklO
UzNfNlN0cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTZDaHJvbWUxOGNob29zZUljb25Gb3JGaWxl
c0VSS04zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFRUVQTlNfMTFGaWxlQ2hvb3NlckUKIF9f
Wk43V2ViQ29yZTRJY29uMThjcmVhdGVJY29uRm9yRmlsZXNFUktOM1dURjZWZWN0b3JJTlMxXzZT
dHJpbmdFTG0wRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IDdhMzUwM2RiNzViYTJjMzlhZDU3ZWE2YWJhOGU0ZjRiYzkyMzdjNDMuLjg3OTJl
ZmJiNzQ1ZGI5ZTBjNWM2NjY5MGU0MjZmZTc4OWE3MTkwMmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzU5MCw2ICsyNzU5MCwxNCBAQAog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQ
YWdlQ29uc29sZS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIgogCQkJCT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDZiZjU0
YzczODZlN2UyMjI3MjRjMTdjMTY1ZWUxY2JmYmI2ZDFjMmYuLjA0MDBlZTZhNjY4ZTRmNDgxN2Y0
MDhiZGIwZmEwZDdlNGMwNjViZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMzkzNyw2ICszOTM3LDcgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcTmF2aWdhdG9yQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwYWdlXE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwYWdlXFBhZ2VDb25zb2xlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZVNlcmlhbGl6ZXIuY3BwIiAvPgpAQCAtMTM2MzcsNCArMTM2MzgsNCBAQAogICA8SW1w
b3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgog
ICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgogICA8L0ltcG9ydEdyb3Vw
PgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvUHJvamVjdD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwppbmRleCA2YmVkMTM5MDcxNjE4ZDcxODJjMTBjZjA1YzU0YTYzNDVhMzY5ZmU3Li4x
YzdlNjVjMGI5MjliMDZlMmMyZjk1ZTI5MDMwNDEwMjU1MjM1YTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBA
IC02Njk2LDYgKzY2OTYsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdl
LmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuY3BwIj4KKyAgICAgIDxG
aWx0ZXI+cGFnZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVy
PgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTUzNDIsNCArMTUzNDUsNCBAQAogICAgICAgPEZpbHRl
cj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KICAgPC9JdGVtR3Jv
dXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9Qcm9qZWN0Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNmY2VkZjdkY2JkMTMyMmFjZGI5ODllZDBkMDNlMmM0MjcwNjY1ZWIuLjY2MTRkZTEyM2Iz
ZjM0NWY5ZWYzZjhhMjZmNGE2MzRmYTliOTQzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYxNTMsNiArNjE1Myw4IEBACiAJ
CUQ3NjEzQTUwMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBNEUxNDc0RjEzRjAw
REI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgKi87IH07CiAJCUQ3NjEzQUM0MTQ3NTNFNTYw
MERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzYxM0FDMjE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJL
aXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlEOEI2MTUyRjEwMzI0OTUxMDBDODU1NEEgLyogQ29v
a2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEOEI2
MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREFFRDIwMzAxNkYyNDQyQjAwNzBFQzBGIC8qIFBh
Z2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IERBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi87IH07CisJ
CURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1
IC8qIFBhZ2VDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERC
MjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi87IH07
CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQ0EwQTUw
OEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi87IH07CiAJCUREMDVGRTBE
MEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQwNUZFMEIwQjhCQTNDNjAwOUFDREZFIC8q
IFdlYkNvcmVPYmpDRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTEzODYyLDYgKzEzODY0LDggQEAKIAkJRDc2MTNBQzIxNDc1M0U1NjAw
REI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRDc2MTNBQzMxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJFMTAzMjQ5NTEwMEM4NTU0QSAvKiBD
b29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29va2llLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdl
Q29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ29u
c29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0RBMTZGMjQxNjQw
MDY2NjEzNSAvKiBQYWdlQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQYWdlQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQjIzQzJDOTBB
NTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRlbnRDb21tYW5kLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVu
dE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmRl
bnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERDA1RkUw
QjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVPYmpDRXh0cmFzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNjQ3OCw2ICsxNjQ4Miw4IEBACiAJCQkJOTc1Q0EyODcxMzAzNjVGODAw
RTk5QUQ5IC8qIENyeXB0by5jcHAgKi8sCiAJCQkJOTc1Q0EyODgxMzAzNjVGODAwRTk5QUQ5IC8q
IENyeXB0by5oICovLAogCQkJCTk3NUNBMjg5MTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8uaWRs
ICovLAorCQkJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi8s
CisJCQkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi8sCiAJCQkJ
Q0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNsaWVudC5oICovLAogCQkJCUNDQzJC
NTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmNwcCAqLywKIAkJCQlDQ0My
QjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJvbGxlci5oICovLApAQCAtMjY3NjQs
NiArMjY3NzAsNyBAQAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVk
aXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhE
Q0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCURBRUQyMDMxMTZGMjQ0NDgwMDcw
RUMwRiAvKiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yOTk3MSw2ICsyOTk3OCw3
IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JEZWxl
Z2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0UgLyog
WmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREFFRDIwMzAxNkYyNDQyQjAwNzBFQzBG
IC8qIFBhZ2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCmluZGV4IGE5YjM0
YTY1NmM4ZmZlYTFlNzllMWNkZTZmNzZmOGY2MGQ0Nzk4NGIuLmQwYTUwMTFlYjlkMWI2ZGIxMjk4
OThhMWY3NDc2MWU4ZjhkOGE5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTI2LDEyICsyNiwxMyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgi
CiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJKU0RPTVdp
bmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KIApAQCAtNzgsNyArNzksOCBA
QCBTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25z
dCBTdHJpbmcmIHByZWZpeCkKICAgICAgICAgY2FsbFR5cGUgPSBtX2N1c3RvbVJlc29sdmVyLT5t
ZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJlc29sdmVyLmdldCgpLCBjYWxsRGF0
YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJlciBhbmQgc291cmNlIFVSTC4KLSAgICAg
ICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90
IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOworICAgICAgICAgICAgaWYgKFBh
Z2VDb25zb2xlKiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3QtPmltcGwoKS0+cGFnZUNvbnNvbGUo
KSkKKyAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1
cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAg
ICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3RvbVJlc29sdmVyLmdldCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3Rv
bVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYjk1NGZmZWQxZWQzNjhkZGVjNzJmYjEyZjNmMmI3
ZDg4MWM5NWExNC4uY2FlMzQ4OWI1ZDAwZjg5NmM4NzAwNTU2NDlmZjc1NmNmOWFlYTY0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhD
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zMCw4ICszMCwxMCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRl
ICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNjksNyArNzEsOSBAQCBTdHJpbmcgVjhD
dXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHBy
ZWZpeCkKICAgICB9CiAKICAgICBpZiAobG9va3VwTmFtZXNwYWNlVVJJRnVuYy5Jc0VtcHR5KCkg
JiYgIW1fcmVzb2x2ZXItPklzRnVuY3Rpb24oKSkgewotICAgICAgICBhY3RpdmVET01XaW5kb3co
QmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2Fn
ZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2
ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9
IGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLT5mcmFtZSgpOworICAg
ICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgIGZyYW1lLT5wYWdl
KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxl
dmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkg
bWV0aG9kLiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCAwZjdlMmNkNTg4MmEyMTliN2RkZWY1MDFkODI1MjkzM2VjYzQwNTll
Li5lNzU5NThjMWQwN2U2ZjBlZWFhZWU1MTdmYTIyZjY0ZTI2ODhmY2EzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCi0jaW5jbHVkZSAiQ29u
c29sZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkNv
bnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgpAQCAtMTI0LDYgKzEyMyw3
IEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIk5vZGVXaXRoSW5kZXgu
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCkBAIC00ODQ0LDEwICs0ODQ0LDggQEAgdm9pZCBE
b2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VM
ZXZlbCBsZXZlbCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChET01X
aW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0gICAgICAgIGlmIChDb25zb2xlKiBjb25z
b2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdl
KHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlzKTsKLSAgICB9
CisgICAgaWYgKHBhZ2UoKSkKKyAgICAgICAgcGFnZSgpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElkZW50aWZpZXIsIHRoaXMpOwogfQogCiB2
b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2
ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3Rh
Y2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikK
QEAgLTQ4NTcsMTAgKzQ4NTUsOCBAQCB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKERPTVdpbmRvdyogd2luZG93ID0gZG9tV2luZG93KCkp
IHsKLSAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3aW5kb3ctPmNvbnNvbGUoKSkKLSAg
ICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgc291
cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7
Ci0gICAgfQorICAgIGlmIChwYWdlKCkpCisgICAgICAgIHBhZ2UoKS0+Y29uc29sZSgpLT5hZGRN
ZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2Fs
bFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCiBjb25zdCBTZWN1cml0eU9y
aWdpbiogRG9jdW1lbnQ6OnRvcE9yaWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxNjIyMmVlNjUxZDc2YTA0Njk1NGI3
ZmJhZTUxYzhiZmRiMDAyN2Y3Li4yMDBmYjJjZjc0NTYwYjU1YzU3Yjk0ZjExOGE2NGRjZGQ2YzBm
ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTM0LDExICszNCwxMSBAQAogCiAjaW5jbHVkZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIK
IAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAj
aW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2lu
Y2x1ZGUgIlBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC04OCwxMiArODgsMTIgQEAgUGFnZVNjcmlwdERlYnVnU2VydmVyJiBQYWdlRGVidWdnZXJBZ2Vu
dDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29u
c29sZSgpCiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7
CiB9CiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENv
bnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogSW5qZWN0
ZWRTY3JpcHQgUGFnZURlYnVnZ2VyQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IGludCogZXhlY3V0aW9uQ29udGV4dElkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IDc3YjQwZmEz
MTJhN2E0ZjMxYzYzNzMyZmQzNzY0ZTA4OWY4MTcyNmUuLmE4NDMxYmEwZmE3OGNjODQxNWI4NDRj
MjIzZTFiMDM0ZWIyZTk2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1
bnRpbWVBZ2VudC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIlBhZ2VSdW50aW1l
QWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyLmgiCkBAIC00Miw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1
ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIAogdXNpbmcg
V2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlv
bjsKQEAgLTE0OCwxMiArMTQ4LDEyIEBAIEluamVjdGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6
OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsCiAKIHZvaWQg
UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6Om11dGUoKTsK
KyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwogfQogCiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnVu
bXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xl
Ojp1bm11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25D
b250ZXh0Q3JlYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAKaW5kZXggZWE1MzdjNGZiMjA5
MGQ0MDEwY2YwYWY2MDY5ZGMwOWEyMjNiMGQ5YS4uNTQ0NWE2Y2Q0NWZkOWFlNDA1OGVkZDdhMTc1
MjA5MzAwZmNlZTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCkBAIC00MSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIk1lbW9yeUluZm8u
aCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2suaCIKQEAgLTYxLDEwICs2Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotbmFtZXNwYWNlIHsKLSAgICBpbnQgbXV0ZUNvdW50ID0gMDsKLX0KLQogQ29uc29sZTo6
Q29uc29sZShGcmFtZSogZnJhbWUpCiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsK
QEAgLTc0LDEyNiArNzEsNiBAQCBDb25zb2xlOjp+Q29uc29sZSgpCiB7CiB9CiAKLXN0YXRpYyB2
b2lkIHByaW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWdu
ZWQgbGluZU51bWJlcikKLXsKLSAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgaWYgKGxpbmVOdW1iZXIgPiAwKQotICAgICAgICAgICAgcHJpbnRmKCIlczolZDogIiwgc291
cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBwcmludGYoIiVzOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotfQot
Ci1zdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsKQotewotICAgIGNvbnN0IGNoYXIqIHNvdXJj
ZVN0cmluZzsKLSAgICBzd2l0Y2ggKHNvdXJjZSkgewotICAgIGNhc2UgWE1MTWVzc2FnZVNvdXJj
ZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlhNTCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSlNNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiSlMiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIE5ldHdvcmtNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiTkVUV09SSyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ29uc29sZUFQSU1l
c3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJDT05TT0xFQVBJIjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNl
U3RyaW5nID0gIlNUT1JBR0UiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFwcENhY2hlTWVz
c2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkFQUENBQ0hFIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJpbmdNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiUkVOREVSSU5HIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NNZXNzYWdl
U291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ1NTIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBTZWN1cml0eU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJT
RUNVUklUWSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOgot
ICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIiOwotICAgICAgICBicmVhazsKLSAgICBkZWZh
dWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgc291cmNlU3RyaW5n
ID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjb25zdCBjaGFyKiBs
ZXZlbFN0cmluZzsKLSAgICBzd2l0Y2ggKGxldmVsKSB7Ci0gICAgY2FzZSBEZWJ1Z01lc3NhZ2VM
ZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiREVCVUciOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIExvZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiTE9HIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXYXJuaW5nTWVzc2FnZUxldmVsOgotICAgICAgICBsZXZl
bFN0cmluZyA9ICJXQVJOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFcnJvck1lc3NhZ2VM
ZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRVJST1IiOwotICAgICAgICBicmVhazsKLSAg
ICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiVU5LTk9XTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHByaW50Zigi
JXMgJXM6Iiwgc291cmNlU3RyaW5nLCBsZXZlbFN0cmluZyk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3Vt
ZW50KiBkb2N1bWVudCkKLXsKLSAgICBTdHJpbmcgdXJsOwotICAgIGlmIChkb2N1bWVudCkKLSAg
ICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOwotICAgIHVuc2lnbmVkIGxpbmUg
PSAwOwotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVu
dC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKCkpIHsKLSAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1
bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7Ci0gICAgICAgIGlmICghcGFyc2VyLT5p
c1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKLSAg
ICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOwotICAg
IH0KLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwg
MCwgcmVxdWVzdElkZW50aWZpZXIpOwotfQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKQotewotICAgIGFkZE1l
c3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7
Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJs
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0
YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIp
Ci17Ci0gICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3Vy
Y2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoY2FsbFN0YWNrKQotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwg
c291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVz
dElkZW50aWZpZXIpOwotICAgIGVsc2UKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVs
LCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0K
LSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkgfHwgbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5jaHJv
bWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCBsZXZlbCwgbWVzc2Fn
ZSwgbGluZU51bWJlciwgdXJsKTsKLQotICAgIGlmICghbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhc2hvdWxkUHJpbnRFeGNl
cHRpb25zKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1
cmwsIGxpbmVOdW1iZXIpOwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNv
dXJjZSwgbGV2ZWwpOwotCi0gICAgcHJpbnRmKCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNz
YWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFz
c1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHBycEFyZ3VtZW50cywgYm9vbCBhY2NlcHROb0FyZ3Vt
ZW50cyA9IGZhbHNlLCBib29sIHByaW50VHJhY2UgPSBmYWxzZSkKIHsKICAgICBSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPiBhcmd1bWVudHMgPSBwcnBBcmd1bWVudHM7CkBAIC0yMTIsMTcgKzg5LDE3
IEBAIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlw
ZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsCiAgICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1l
bnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2FnZSk7CiAgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc3RhdGUsIGFyZ3VtZW50cyk7CiAKLSAgICBp
ZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgcGFnZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpKQorICAgIGlmIChwYWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChnb3RNZXNzYWdlKQogICAgICAgICBw
YWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1l
c3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIo
KSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKSk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkt
PmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIUNvbnNvbGU6OnNo
b3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgIGlmICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1Bh
Z2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhUGFnZUNvbnNvbGU6OnNob3Vs
ZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVS
TEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkp
OwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdl
U291cmNlLCBsZXZlbCk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShs
YXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSk7CisgICAgUGFn
ZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNz
YWdlU291cmNlLCBsZXZlbCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50
cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0g
YXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvU3RyaW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUo
KSk7CkBAIC0zODgsMTkgKzI2NSw2IEBAIHZvaWQgQ29uc29sZTo6Z3JvdXBFbmQoKQogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNv
bGVBUElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWws
IFN0cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAKLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjpt
dXRlKCkKLXsKLSAgICBtdXRlQ291bnQrKzsKLX0KLQotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6
OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+IDApOwotICAgIG11dGVDb3VudC0t
OwotfQotCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiB7
CiAgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgY3JlYXRlIGEgbmV3IG9iamVjdCBoZXJlIGVhY2gg
dGltZSwKQEAgLTQwOCwxOCArMjcyLDYgQEAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xl
OjptZW1vcnkoKSBjb25zdAogICAgIHJldHVybiBNZW1vcnlJbmZvOjpjcmVhdGUobV9mcmFtZSk7
CiB9CiAKLXN0YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9IGZhbHNlOwotCi1ib29sIENvbnNv
bGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCi17Ci0gICAgcmV0dXJuIHByaW50RXhjZXB0aW9u
czsKLX0KLQotdm9pZCBDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmlu
dCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsKLX0KLQogUGFnZSogQ29uc29sZTo6
cGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRl
eCBhOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVjNWZjNDJmLi5iOGU3NTExNWIxNWFm
NDczYTkyNTg0MzNlYWU2NjA4MWM3NGNlNjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaApAQCAtMjks
MTAgKzI5LDcgQEAKICNpZm5kZWYgQ29uc29sZV9oCiAjZGVmaW5lIENvbnNvbGVfaAogCi0jaW5j
bHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCi0jaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNp
bmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQyLDEyICszOSwxMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBNZW1v
cnlJbmZvOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEFyZ3VtZW50czsKLWNsYXNzIFNjcmlw
dENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogdHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+ID4gUHJvZmlsZXNBcnJheTsKQEAgLTU4LDEwICs1
Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJh
bWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAg
dmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Us
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0g
MCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAp
OwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lk
IGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAw
KTsKLQogICAgIHZvaWQgZGVidWcoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4pOwogICAgIHZvaWQgZXJyb3IoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwogICAgIHZvaWQgaW5mbyhTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPik7CkBAIC04NywxMiArNzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBncm91cENv
bGxhcHNlZChTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAg
dm9pZCBncm91cEVuZCgpOwogCi0gICAgc3RhdGljIHZvaWQgbXV0ZSgpOwotICAgIHN0YXRpYyB2
b2lkIHVubXV0ZSgpOwotCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7
Ci0gICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wpOwotCiAgICAg
UGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBtZW1vcnkoKSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YjAxNTk1MTYwNWNhNWY2YjE4OTIxZmMxYjExY2I4
ZThlN2U5ODU0Li5kYzJhODBlYTEzZTNjNzY2Mzk0ZjVmMzk0MTMzYzA2OWEyY2UyYjFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTWVz
c2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC02
OTQsNiArNjk1LDEzIEBAIENvbnNvbGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAorUGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6cGFn
ZUNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1l
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2Zy
YW1lLT5wYWdlKCktPmNvbnNvbGUoKSA6IDA7Cit9CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIERP
TVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRs
eURpc3BsYXllZEluRnJhbWUoKSkKQEAgLTg4NCw3ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6
ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVu
ZGVkVGFyZwogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVI
b3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJn
ZXRPcmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiBS
ZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9T
dHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAgY29uc29sZSgpLT5hZGRNZXNzYWdlKFNlY3Vy
aXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2Up
OworICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShTZWN1cml0eU1lc3NhZ2VT
b3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3OTgsNyArMTgwNiw3IEBAIHZvaWQg
RE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAg
aWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zb2xlKCkt
PmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7
CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVz
c2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5B
Y2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVXaW5kb3cpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaAppbmRleCA0OWJmOGM5ODUyNDYwMWQyNjE1ZTYxODdmZjY3OTdlMWMzYWFlNzU1Li40
OWNiNmU2MTdiZjUzYmJlYjI3OWI5ODkwYWU1MDY3YmViNTcyM2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3Mg
UGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3Nh
Z2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CkBAIC0yMzMsNiArMjM0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJr
aXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShOb2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBj
b25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNvbGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAg
ICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBwcmlu
dEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWlu
QWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCmluZGV4IGJhYzhjNWEyYjA5NTg5OWRlNTk5NmI5NjM0MjNmMTczNWQ2YjU1MTMuLjEzMWJm
ODg1ZDZkOThiYjM2MjA4MjJlZWJiMTZkZDZhY2VmZGE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApA
QCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdv
cmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQbHVnSW5DbGll
bnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0xNzYsNiArMTc3LDcgQEAgUGFnZTo6
UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5kaWYKICAgICAsIG1fYWx0ZXJuYXRp
dmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1f
c2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQorICAgICwgbV9jb25zb2xlKFBhZ2VD
b25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAppbmRleCBjMGM3MzE4N2I2YjgyNTU2NjlkYzI3MzM3NmJiNjIwYzI4OTRiOTVk
Li45MWZiOWVhMGNlZDE0MTE2YzlhMWJjZmFjN2Y0MTUyOTRlOWNjYjNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNwZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0
b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTm9kZTsK
K2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFnZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xpZW50
OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3OCw2ICszNzksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcmIGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVz
ZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQYWdlQ29uc29sZSogY29uc29sZSgpIHsgcmV0
dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtNTA0LDYg
KzUwNiw3IEBAIHByaXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0
aXZlVGV4dENsaWVudDsKIAogICAgIGJvb2wgbV9zY3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7
CisgICAgT3duUHRyPFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7CiAKICAgICBIYXNoU2V0PFN0cmlu
Zz4gbV9zZWVuUGx1Z2luczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTBlYWExYzlhMjM0
YzQwMTYxYjRmMjQzZTlmODMyOTNhNmVlZDVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKQEAgLTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgi
CisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgor
I2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5o
IgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUg
IlNldHRpbmdzLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2
ZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworICAg
IGludCBtdXRlQ291bnQgPSAwOworfQorCitQYWdlQ29uc29sZTo6UGFnZUNvbnNvbGUoUGFnZSog
cGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CisKK1BhZ2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKSB7
IH0KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQoreworICAgIGlmICghc291cmNlVVJM
LmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobGluZU51bWJlciA+IDApCisgICAgICAgICAgICBw
cmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRhdGEoKSwgbGluZU51bWJlcik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCku
ZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJj
ZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwp
Cit7CisgICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOworICAgIHN3aXRjaCAoc291cmNlKSB7
CisgICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1M
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNv
dXJjZVN0cmluZyA9ICJKUyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmV0d29ya01lc3Nh
Z2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJORVRXT1JLIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3Ry
aW5nID0gIkNPTlNPTEVBUEkiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0b3JhZ2VNZXNz
YWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU1RPUkFHRSI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJp
bmcgPSAiQVBQQ0FDSEUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJlbmRlcmluZ01lc3Nh
Z2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJSRU5ERVJJTkciOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9
ICJDU1MiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNlY3VyaXR5TWVzc2FnZVNvdXJjZToK
KyAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9XTiI7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworICAgIGNvbnN0IGNoYXIqIGxldmVsU3RyaW5nOworICAgIHN3aXRjaCAobGV2ZWwp
IHsKKyAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJE
RUJVRyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9nTWVzc2FnZUxldmVsOgorICAgICAg
ICBsZXZlbFN0cmluZyA9ICJMT0ciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdhcm5pbmdN
ZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0gIldBUk4iOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJF
UlJPUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICBsZXZlbFN0cmluZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgcHJpbnRmKCIlcyAlczoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3Ry
aW5nKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJp
bmcgdXJsOworICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgp
LnN0cmluZygpOworICAgIHVuc2lnbmVkIGxpbmUgPSAwOworICAgIGlmIChkb2N1bWVudCAmJiBk
b2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBk
b2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKKyAgICAgICAgU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKCk7CisgICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBh
cnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxp
bmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOworICAgIH0KKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwg
bGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOworfQor
Cit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNz
YWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1l
c3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOworfQorCit2b2lkIFBhZ2VDb25zb2xl
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBpZiAobXV0ZUNv
dW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNvdXJjZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChjYWxsU3RhY2spCisgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VU
eXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAg
ZWxzZQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNv
bGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGlu
ZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKKworICAgIGlmIChwYWdlLT5zZXR0
aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5n
cygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQ
cmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpbnRTb3VyY2VVUkxB
bmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQ
cmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBwcmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4
KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjptdXRlKCkKK3sK
KyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2b2lkIFBhZ2VDb25zb2xlOjp1bm11
dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKKyAgICBtdXRlQ291bnQtLTsKK30K
Kworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFsc2U7CisKK2Jvb2wgUGFnZUNvbnNv
bGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAgcmV0dXJuIHByaW50RXhjZXB0aW9u
czsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wg
cHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OGMwODky
NDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFlYzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
UGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29uc29sZV9oCisKKyNpbmNsdWRlICJDb25zb2xl
VHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRT
dGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBh
Z2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0
cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBQ
YWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZSgpOworCisgICAg
c3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJM
LCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3Vy
Y2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwpOworCisgICAgdm9p
ZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKKworICAgIHN0YXRpYyB2b2lkIG11dGUoKTsK
KyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKworICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50
RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhi
b29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZShQYWdlKik7CisKKyAgICBQYWdlKiBw
YWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisgICAgUGFnZSogbV9wYWdlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFnZUNvbnNvbGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKaW5kZXggMGI4MzQwY2Q5NWNhZWJl
ZmY4ZTE4MWY1YTEzNWY5MWNjMGVjMzc4NS4uOGUyNGI3NDIxNmY4OWM3YmRjNTFiYjU0YjlmZjk1
NTFhY2MxNzdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRM
aWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQu
Y3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogI2lmIEVOQUJMRShYU0xUKQogCi0jaW5jbHVkZSAi
Q29uc29sZS5oIgotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNv
bGUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVu
dFBhcnNlci5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKQEAgLTE0NCw5
ICsxNDQsMTAgQEAgYm9vbCBYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKICAgICAgICAgeG1sRnJlZURvYyhtX3N0eWxlc2hlZXREb2MpOwogICAgIG1fc3R5
bGVzaGVldERvY1Rha2VuID0gZmFsc2U7CiAKLSAgICBDb25zb2xlKiBjb25zb2xlID0gMDsKLSAg
ICBpZiAob3duZXJEb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICBjb25zb2xlID0gb3duZXJE
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgIFBhZ2VDb25zb2xlKiBjb25z
b2xlID0gMDsKKyAgICBGcmFtZSogZnJhbWUgPSBvd25lckRvY3VtZW50KCktPmZyYW1lKCk7Cisg
ICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAgICAgIGNvbnNvbGUgPSBmcmFtZS0+
cGFnZSgpLT5jb25zb2xlKCk7CiAKICAgICBYTUxEb2N1bWVudFBhcnNlclNjb3BlIHNjb3BlKGNh
Y2hlZFJlc291cmNlTG9hZGVyKCksIFhTTFRQcm9jZXNzb3I6OmdlbmVyaWNFcnJvckZ1bmMsIFhT
TFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jLCBjb25zb2xlKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggNTAzODAyYzdmZTdiNTZmNWY3MmQx
NzgzYWI3YmMzMGNiNjU4MWFkZS4uOWQ1NTY3MWNmYzhjOWFiNGQ3N2I3OWYyYjlmYWYxMThjMzFm
ZjI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBA
IC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJYU0xUUHJvY2Vzc29yLmgiCiAKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIkNvbnNvbGUuaCIKLSNpbmNsdWRl
ICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6
Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3QgY2hhciosIC4uLikKIAogdm9pZCBYU0xUUHJv
Y2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0YSwgeG1sRXJyb3IqIGVycm9yKQog
ewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2FzdDxDb25zb2xlKj4odXNlckRhdGEp
OworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8UGFnZUNvbnNvbGUqPih1
c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzNyw5
ICsxMzcsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2FkZXJGdW5jKGNvbnN0IHhtbENoYXIq
IHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291cmNlTG9hZGVyLT5wcmludEFjY2Vz
c0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgfQogCi0gICAgICAgIENvbnNvbGUqIGNvbnNv
bGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJvY2Vzc29yLT54c2xTdHlsZXNoZWV0KCktPm93
bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUgPSBnbG9iYWxQcm9j
ZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29u
c29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IDA7CisgICAgICAgIEZyYW1l
KiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50
KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAg
ICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKTsKICAgICAgICAgeG1sU2V0
U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVu
Yyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nv
cjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ29yZVN0YXRpc3RpY3MubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVT
dGF0aXN0aWNzLm1tCmluZGV4IGJmOTE3NTkwMGM1OGUyYTQ2NjA2MDY3MjFkNTIwOTY1MDZiNzU4
MmMuLjA2OWFhNDc5NTMyMTY1NWI5Y2ExMDljNjFiYWFiZDIyODI2MDA5Y2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQpAQCAtMzMsNyArMzMsNiBAQAog
I2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNM
b2NrLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNzLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL0NvbnNvbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRm9udENhY2hlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5o
PgpAQCAtNDIsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hl
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25zb2xlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1By
aW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTE2OCwxMyArMTY4LDEzIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogKyAoQk9PTClzaG91bGRQcmludEV4Y2VwdGlvbnMKIHsKICAgICBK
U0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotICAg
IHJldHVybiBDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKKyAgICByZXR1cm4gUGFn
ZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpOwogfQogCiArICh2b2lkKXNldFNob3Vs
ZFByaW50RXhjZXB0aW9uczooQk9PTClwcmludAogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpT
RE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7Ci0gICAgQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKHByaW50KTsKKyAgICBQYWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRF
eGNlcHRpb25zKHByaW50KTsKIH0KIAogKyAodm9pZCllbXB0eUNhY2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193791</attachid>
            <date>2013-03-19 04:45:47 -0700</date>
            <delta_ts>2013-03-19 05:56:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130319154137.patch</filename>
            <type>text/plain</type>
            <size>49369</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2VkYTg5MDU5MGZjMzFk
YzUwNGFlZjY3MGQyZjczOWViYzc1ZmM3ZC4uMWEyYzg1N2VmNWMyN2VjZTVlZTVhNjMzYjEwMWZl
YmFkODM0NWUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTE2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJ
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5h
bWVzcGFjZVVSSSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6YWRkTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFn
ZS9Db25zb2xlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
cGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpjb25zb2xlKToKKyAgICAgICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNv
bnNvbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29u
c29sZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Ojp+UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291
cmNlVVJMQW5kTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNz
YWdlU291cmNlQW5kTGV2ZWxQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbnNvbGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OnBhZ2UpOgorICAgICAgICAqIHhtbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hT
TFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6
OnBhcnNlRXJyb3JGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAy
MDEzLTAzLTE5ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW0dUS10gV3JvbmcgZ3VhcmQgVVNFKEdMWCkgaW4gUmVkaXJlY3RlZFhDb21w
b3NpdGVXaW5kb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzYTU0MGM3NjA1M2RmYzBlODViNmVhYTRk
MzkyZGRkMjRmMjRlM2UxLi5kMmU4NDRiZjZhMDUwZjQ2ZmRhYTk1N2NhMTgyOTZhYTMyMDJlM2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDMtMTYgIFNlcmdleSBS
eWF6YW5vdiAgPHNlcnlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBz
cGxpdCBDb25zb2xlIGludG8gdHdvIGVudGl0aWVzLCBhIHdlYi1mYWNpbmcgYm91bmQgb2JqZWN0
IGFuZCBwYWdlIGNvbnNvbGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTE1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBPdGhlcndpc2UsIGEgbG90IG9mIGxvZ2dpbmcgaW4gV2ViQ29yZSBuZWVkcyB0
byBnbyB0aHJvdWdoIHRoZSBET01XaW5kb3cgd2hpY2ggaXMgdW5uZWNlc3NhcnkuCisKKyAgICAg
ICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAgICAoK1tXZWJDb3JlU3RhdGlz
dGljcyBzaG91bGRQcmludEV4Y2VwdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3Rp
Y3Mgc2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zOl0pOgorCiAyMDEzLTAzLTE3ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGVnYWN5IENTUyB2ZW5kb3IgcHJlZml4
ZXMgc2hvdWxkIG9ubHkgd29yayBmb3IgRGFzaGJvYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk2Yzk0M2Q4M2JiZDUyZTg4YWZjZTM3YWExMmMwMzIyNjhmMDI2NmMuLmNlMjVlZTY5MmE2NzRk
NmRlNjE5NDY5MzQxYWQ1ZmRmYzE5ZWI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzg4
LDYgKzE3ODgsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9OYXZpZ2F0b3JCYXNl
LmNwcAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwCiAgICAgcGFnZS9QYWdlLmNwcAor
ICAgIHBhZ2UvUGFnZUNvbnNvbGUuY3BwCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwCiAgICAgcGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCiAgICAgcGFnZS9QYWdlU2VyaWFsaXplci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGUzYTQyZTIyNjMwZjQ3ODBlODc3OGZk
MmE0MzU3NjYyZjZkNGY3OTIuLmZmMzhjNDM4NDBjYTU3ZjgzOTA2OTY4N2RlYmEyODkzZGQxYjQx
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDIzNSw2ICs0MjM1LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL09yaWdpbkFjY2Vzc0Vu
dHJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VHcm91cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCA1N2VhNzA2ZDI1MDJlMGU4ZThhYmEwOTg3MzhkYTRiZTcyNGNkYzU4Li45NjcyOWFmYzhl
NzY0NzgwY2ZlMTc1MGUzNjAxZjAxMWE4Y2RhYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk0Nyw2ICs5
NDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3BwIFwKICAgICBw
YWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCBcCiAgICAgcGFnZS9QYWdlLmNwcCBcCisgICAgcGFn
ZS9QYWdlQ29uc29sZS5jcHAgXAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcCBcCiAgICAgcGFnZS9Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKICAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUu
Y3BwIFwKQEAgLTIxNDQsNiArMjE0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvUGFnZUdy
b3VwLmggXAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmggXAogICAgIHBhZ2UvUGFn
ZS5oIFwKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmggXAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlT
dGF0ZS5oIFwKICAgICBwYWdlL1BsdWdJbkNsaWVudC5oIFwKICAgICBwYWdlL1BvcHVwT3Blbmlu
Z09ic2VydmVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA2NTBkNmI0NDIzMGM5Y2NiZGI1
Mjg0ZGZhNGVmOGYzNjI0ZjE3OGM2Li44MjJlZmE4OTZiNzU2YWIxYWMyNzQzNDllNjIyZjA2YTgy
NTA1N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTM2LDggKzkzNiw2IEBAIF9fWk43V2Vi
Q29yZTZXaWRnZXQ4c2V0Rm9jdXNFYgogX19aTjdXZWJDb3JlNldpZGdldDlzZXRQYXJlbnRFUE5T
XzEwU2Nyb2xsVmlld0UKIF9fWk43V2ViQ29yZTZXaWRnZXREMkV2CiBfX1pON1dlYkNvcmU2dG9O
b2RlRU4zSlNDN0pTVmFsdWVFCi1fX1pON1dlYkNvcmU3Q29uc29sZTIxc2hvdWxkUHJpbnRFeGNl
cHRpb25zRXYKLV9fWk43V2ViQ29yZTdDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlvbnNF
YgogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS04zV1RGMTJBdG9taWNTdHJp
bmdFUzRfUmkKIF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOU18xM1F1YWxp
ZmllZE5hbWVFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlN0VsZW1lbnQyMWJv
dW5kc0luUm9vdFZpZXdTcGFjZUV2CkBAIC0xNzI1LDYgKzE3MjMsOCBAQCBfX1pON1dlYkNvcmUx
MGhhbmRDdXJzb3JFdgogX19aTjdXZWJDb3JlMTFDYWNoZWRJbWFnZTVpbWFnZUV2CiBfX1pON1dl
YkNvcmUxMWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3JlMTF0
b1VzZXJTcGFjZUVSSzdfTlNSZWN0UDhOU1dpbmRvdworX19aTjdXZWJDb3JlMTFQYWdlQ29uc29s
ZTIxc2hvdWxkUHJpbnRFeGNlcHRpb25zRXYKK19fWk43V2ViQ29yZTExUGFnZUNvbnNvbGUyNHNl
dFNob3VsZFByaW50RXhjZXB0aW9uc0ViCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjEwbW91
c2VNb3ZlZEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTB3aGVlbEV2ZW50
RVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMm1vdXNlRHJhZ2dlZEVQN05T
RXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0ZWI5Yjg1OTQ0MmI0YjU5NGQyMTdkMWJkN2FmMTU5
NTFjZjYxMzFkLi44NmRjNGVmMDUwM2M2NDU1MzVjOTM2YjNlNmE2Yzc4YjdmZTE2MGU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0yMjUyLDYgKzIyNTIsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvT3Jp
Z2luQWNjZXNzRW50cnkuY3BwJywKICAgICAgICAgICAgICdwYWdlL09yaWdpbkFjY2Vzc0VudHJ5
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvUGFn
ZUNvbnNvbGUuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cC5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCcsCiAgICAgICAgICAgICAncGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA3NTAzZGMy
NWExNDI5YjlmZDcwMDA4NWU2OWY0MTNiYWVlZjc3ZGZkLi4xYjgyMjU0Yzg5ZjI1NDZiYzQ2YWFh
OGU4NTZlOTk0MDBmYmY4MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE1NTU5LDcgKzE1NTU5
LDYgQEAgX19aTjNXVEYyOVJlZlB0ckhhc2hNYXBSYXdLZXlUcmFuc2xhdG9ySVBON1dlYkNvcmUx
NFJlc291cmNlTG9hZGVyRVN0NHBhaXJJTlNfNlIKIF9fWk4zV1RGNlZlY3RvcklOU182UmVmUHRy
SU43V2ViQ29yZTE1QXJjaGl2ZVJlc291cmNlRUVFTG0wRUVEMUV2CiBfX1pON1dlYkNvcmU1VGlt
ZXJJTlNfMTREb2N1bWVudExvYWRlckVFNWZpcmVkRXYKIF9fWk43V2ViQ29yZTE0RG9jdW1lbnRM
b2FkZXIzNnN1YnN0aXR1dGVSZXNvdXJjZURlbGl2ZXJ5VGltZXJGaXJlZEVQTlNfNVRpbWVySVMw
X0VFCi1fX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKIF9f
Wk43V2ViQ29yZTE2anNDbGlwYm9hcmRUeXBlc0VQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1
ZUVSS05TMF8xMElkZW50aWZpZXJFCiBfX1pOSzdXZWJDb3JlMTFKU0NsaXBib2FyZDV0eXBlc0VQ
TjNKU0M5RXhlY1N0YXRlRQogX19aTks3V2ViQ29yZTEyQ2xpcGJvYXJkTWFjNXR5cGVzRXYKQEAg
LTE1Njc5LDYgKzE1Njc4LDcgQEAgX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDE5cmVjZWl2ZURyb3BwZWRGaWxlc0VSS04zV1RGNlZlY3RvcklOUzFfNlMKIF9fWk43V2ViQ29y
ZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wxOWFsbG93c011bHRpcGxlRmlsZXNFdgogX19aTjdX
ZWJDb3JlMTFGaWxlQ2hvb3NlcjEwY2hvb3NlRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2Vi
Q29yZTExRmlsZUNob29zZXIxMWNob29zZUZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5n
RUxtMEVFRQorX19aTjdXZWJDb3JlMTFQYWdlQ29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRp
b25zRWIKIF9fWlRobjE4NF9ON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMThjaG9v
c2VJY29uRm9yRmlsZXNFUE5TXzExRmlsZUNob29zZXJFUktOM1dURjZWZWN0b3JJTlMzXzZTdHJp
bmdFTG0wRUVFCiBfX1pON1dlYkNvcmU2Q2hyb21lMThjaG9vc2VJY29uRm9yRmlsZXNFUktOM1dU
RjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRUVFUE5TXzExRmlsZUNob29zZXJFCiBfX1pON1dlYkNv
cmU0SWNvbjE4Y3JlYXRlSWNvbkZvckZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxt
MEVFRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBhN2M0OTNmZDg1ZTMwZWM1NTY5YzZkNzViZWY3MmM2NTRmYTY2MjYyLi5lNjhlNjcyYmM4OWM1
YjhjZGQyMWYzZmE2M2ExNmUwZmVjNGMzMDA0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc1OTAsNiArMjc1OTAsMTQgQEAKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZUNvbnNv
bGUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFBhZ2VDb25zb2xlLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIKIAkJCQk+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhYWYxZWQyYWRjNmVj
YjhiOTg4M2I5Y2JjNzZmMWE4YmQ0YjQyMTJmLi42YTUwNTJkZjI5M2IzMGI5YjhkYWM4MTU5MmEw
NTk4YzEyOTE0ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKQEAgLTM5MzcsNiArMzkzNyw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXE5hdmlnYXRvckJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGFnZVxPcmlnaW5BY2Nlc3NFbnRyeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXFBhZ2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQ
YWdlQ29uc29sZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VH
cm91cC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VHcm91cExv
YWREZWZlcnJlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VT
ZXJpYWxpemVyLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA5ZGEzZjVlNjFmMzMyNDEzZmMzNjU3
NDAwZGQ3N2M3Mzc0MzY1MmNlLi5lMGVhNTA1NWFmMDgyZDA2OGQwYzE1ZTBiYjQzMDFlMTFhMTE2
ZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC02Njk2LDYgKzY2OTYsOSBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUNv
bnNvbGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIj4KICAgICAg
IDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTUzNDUsNCArMTUz
NDgsNCBAQAogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4KICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNmY2VkZjdkY2JkMTMyMmFjZGI5ODllZDBkMDNlMmM0
MjcwNjY1ZWIuLjY2MTRkZTEyM2IzZjM0NWY5ZWYzZjhhMjZmNGE2MzRmYTliOTQzMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTYxNTMsNiArNjE1Myw4IEBACiAJCUQ3NjEzQTUwMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXRO
YW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDc2MTNBNEUxNDc0RjEzRjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgKi87IH07
CiAJCUQ3NjEzQUM0MTQ3NTNFNTYwMERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzYxM0FDMjE0NzUz
RTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlEOEI2MTUyRjEw
MzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREFFRDIwMzAx
NkYyNDQyQjAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdl
Q29uc29sZS5jcHAgKi87IH07CisJCURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29u
c29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFB
Q0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVC
IC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRl
bnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmggKi87IH07CiAJCUREMDVGRTBEMEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJh
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQwNUZF
MEIwQjhCQTNDNjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzODYyLDYgKzEzODY0LDggQEAK
IAkJRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDc2MTNBQzMxNDc1M0U1NjAwREI4NjA2IC8q
IEpTV2ViS2l0TmFtZWRGbG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViS2l0TmFtZWRGbG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJF
MTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0Q5MTZG
MjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYWdlQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCURBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRl
bnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUw
OEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRy
YXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVPYmpDRXh0cmFz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ3OCw2ICsxNjQ4Miw4IEBACiAJ
CQkJOTc1Q0EyODcxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5jcHAgKi8sCiAJCQkJOTc1Q0Ey
ODgxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5oICovLAogCQkJCTk3NUNBMjg5MTMwMzY1Rjgw
MEU5OUFEOSAvKiBDcnlwdG8uaWRsICovLAorCQkJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAv
KiBQYWdlQ29uc29sZS5jcHAgKi8sCisJCQkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBh
Z2VDb25zb2xlLmggKi8sCiAJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNs
aWVudC5oICovLAogCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9s
bGVyLmNwcCAqLywKIAkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJv
bGxlci5oICovLApAQCAtMjY3NjQsNiArMjY3NzAsNyBAQAogCQkJCTk3N0UyRTBGMTJGMEZDOUMw
MEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBG
QzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yOTk3MSw2ICsyOTk3OCw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8q
IFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEz
MzgwIC8qIFhTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1
MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREFF
RDIwMzAxNkYyNDQyQjAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuY3BwCmluZGV4IGE5YjM0YTY1NmM4ZmZlYTFlNzllMWNkZTZmNzZmOGY2MGQ0Nzk4NGIu
LmQwYTUwMTFlYjlkMWI2ZGIxMjk4OThhMWY3NDc2MWU4ZjhkOGE5NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAK
QEAgLTI2LDEyICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KIApAQCAtNzgsNyArNzksOCBAQCBTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxv
b2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKICAgICAgICAgY2FsbFR5cGUg
PSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJl
c29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlw
ZU5vbmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJlciBh
bmQgc291cmNlIFVSTC4KLSAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNvbnNv
bGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBh
dGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIp
OworICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlKiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3Qt
PmltcGwoKS0+cGFnZUNvbnNvbGUoKSkKKyAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIg
ZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAgICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3Rv
bVJlc29sdmVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYjk1NGZmZWQx
ZWQzNjhkZGVjNzJmYjEyZjNmMmI3ZDg4MWM5NWExNC4uY2FlMzQ4OWI1ZDAwZjg5NmM4NzAwNTU2
NDlmZjc1NmNmOWFlYTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zMCw4ICsz
MCwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNjks
NyArNzEsOSBAQCBTdHJpbmcgVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFj
ZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKICAgICB9CiAKICAgICBpZiAobG9va3VwTmFtZXNw
YWNlVVJJRnVuYy5Jc0VtcHR5KCkgJiYgIW1fcmVzb2x2ZXItPklzRnVuY3Rpb24oKSkgewotICAg
ICAgICBhY3RpdmVET01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+Y29uc29sZSgp
LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5T
UmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7Cisg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3Rh
bmNlKCkpLT5mcmFtZSgpOworICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAg
ICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUg
YSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwZjdlMmNkNTg4MmEyMTliN2Rk
ZWY1MDFkODI1MjkzM2VjYzQwNTllLi5lNzU5NThjMWQwN2U2ZjBlZWFhZWU1MTdmYTIyZjY0ZTI2
ODhmY2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb21t
ZW50LmgiCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkNvb2tpZUph
ci5oIgpAQCAtMTI0LDYgKzEyMyw3IEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2lu
Y2x1ZGUgIk5vZGVXaXRoSW5kZXguaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNp
dGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCkBAIC00ODQ0
LDEwICs0ODQ0LDggQEAgdm9pZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0gICAg
ICAgIGlmIChDb25zb2xlKiBjb25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAg
ICBjb25zb2xlLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVu
dGlmaWVyLCB0aGlzKTsKLSAgICB9CisgICAgaWYgKHBhZ2UoKSkKKyAgICAgICAgcGFnZSgpLT5j
b25zb2xlKCktPmFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElkZW50
aWZpZXIsIHRoaXMpOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9u
ZyByZXF1ZXN0SWRlbnRpZmllcikKQEAgLTQ4NTcsMTAgKzQ4NTUsOCBAQCB2b2lkIERvY3VtZW50
OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNv
bnN0IFN0cmluZwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKERPTVdpbmRvdyog
d2luZG93ID0gZG9tV2luZG93KCkpIHsKLSAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3
aW5kb3ctPmNvbnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNl
LCBsZXZlbCwgbWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjYWxsU3RhY2ssIHN0YXRl
LCByZXF1ZXN0SWRlbnRpZmllcik7Ci0gICAgfQorICAgIGlmIChwYWdlKCkpCisgICAgICAgIHBh
Z2UoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHNvdXJj
ZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwog
fQogCiBjb25zdCBTZWN1cml0eU9yaWdpbiogRG9jdW1lbnQ6OnRvcE9yaWdpbigpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAx
NjIyMmVlNjUxZDc2YTA0Njk1NGI3ZmJhZTUxYzhiZmRiMDAyN2Y3Li4yMDBmYjJjZjc0NTYwYjU1
YzU3Yjk0ZjExOGE2NGRjZGQ2YzBmZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM0LDExICszNCwxMSBAQAogCiAjaW5jbHVkZSAi
UGFnZURlYnVnZ2VyQWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5j
bHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04OCwxMiArODgsMTIgQEAgUGFnZVNjcmlwdERlYnVnU2Vy
dmVyJiBQYWdlRGVidWdnZXJBZ2VudDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQogCiB2b2lkIFBhZ2VE
ZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgpOworICAg
IFBhZ2VDb25zb2xlOjptdXRlKCk7CiB9CiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6OnVubXV0
ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1
bm11dGUoKTsKIH0KIAogSW5qZWN0ZWRTY3JpcHQgUGFnZURlYnVnZ2VyQWdlbnQ6OmluamVjdGVk
U2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IGludCogZXhlY3V0
aW9uQ29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VS
dW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdl
bnQuY3BwCmluZGV4IDc3YjQwZmEzMTJhN2E0ZjMxYzYzNzMyZmQzNzY0ZTA4OWY4MTcyNmUuLmE4
NDMxYmEwZmE3OGNjODQxNWI4NDRjMjIzZTFiMDM0ZWIyZTk2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAog
I2luY2x1ZGUgIlBhZ2VSdW50aW1lQWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCkBAIC00Miw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
SW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKIAogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkV4ZWN1
dGlvbkNvbnRleHREZXNjcmlwdGlvbjsKQEAgLTE0OCwxMiArMTQ4LDEyIEBAIEluamVjdGVkU2Ny
aXB0IFBhZ2VSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsCiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUoKQogewot
ICAgIENvbnNvbGU6Om11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwogfQogCiB2b2lk
IFBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0
ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFn
ZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5j
cHAKaW5kZXggZWE1MzdjNGZiMjA5MGQ0MDEwY2YwYWY2MDY5ZGMwOWEyMjNiMGQ5YS4uNTQ0NWE2
Y2Q0NWZkOWFlNDA1OGVkZDdhMTc1MjA5MzAwZmNlZTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUu
Y3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIk1lbW9yeUluZm8uaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1
bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKQEAgLTYxLDEwICs2Miw2IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotbmFtZXNwYWNlIHsKLSAgICBpbnQgbXV0ZUNvdW50
ID0gMDsKLX0KLQogQ29uc29sZTo6Q29uc29sZShGcmFtZSogZnJhbWUpCiAgICAgOiBET01XaW5k
b3dQcm9wZXJ0eShmcmFtZSkKIHsKQEAgLTc0LDEyNiArNzEsNiBAQCBDb25zb2xlOjp+Q29uc29s
ZSgpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIHByaW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlcikKLXsKLSAgICBpZiAoIXNvdXJjZVVS
TC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiAwKQotICAgICAgICAgICAg
cHJpbnRmKCIlczolZDogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcmludGYoIiVzOiAiLCBzb3VyY2VVUkwudXRmOCgp
LmRhdGEoKSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRM
ZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsKQotewot
ICAgIGNvbnN0IGNoYXIqIHNvdXJjZVN0cmluZzsKLSAgICBzd2l0Y2ggKHNvdXJjZSkgewotICAg
IGNhc2UgWE1MTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlhNTCI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSlNNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VT
dHJpbmcgPSAiSlMiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE5ldHdvcmtNZXNzYWdlU291
cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiTkVUV09SSyI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJDT05TT0xFQVBJIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlTWVzc2FnZVNv
dXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlNUT1JBR0UiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEFwcENhY2hlTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0g
IkFQUENBQ0hFIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJpbmdNZXNzYWdlU291
cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiUkVOREVSSU5HIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBDU1NNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ1NT
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTZWN1cml0eU1lc3NhZ2VTb3VyY2U6Ci0gICAg
ICAgIHNvdXJjZVN0cmluZyA9ICJTRUNVUklUWSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
T3RoZXJNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIiOwotICAg
ICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgc291cmNlU3RyaW5nID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9
Ci0KLSAgICBjb25zdCBjaGFyKiBsZXZlbFN0cmluZzsKLSAgICBzd2l0Y2ggKGxldmVsKSB7Ci0g
ICAgY2FzZSBEZWJ1Z01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiREVCVUci
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExvZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2
ZWxTdHJpbmcgPSAiTE9HIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXYXJuaW5nTWVzc2Fn
ZUxldmVsOgotICAgICAgICBsZXZlbFN0cmluZyA9ICJXQVJOIjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBFcnJvck1lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRVJST1Ii
OwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiVU5LTk9XTiI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLQotICAgIHByaW50ZigiJXMgJXM6Iiwgc291cmNlU3RyaW5nLCBsZXZlbFN0cmluZyk7
Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVz
c2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBTdHJpbmcgdXJsOwot
ICAgIGlmIChkb2N1bWVudCkKLSAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygp
OwotICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+
cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+
c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKLSAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50
UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7Ci0g
ICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNF
eGVjdXRpbmdTY3JpcHQoKSkKLSAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIo
KS5vbmVCYXNlZEludCgpOwotICAgIH0KLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1l
c3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOwotfQotCi12b2lkIENv
bnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2Fs
bFN0YWNrKQotewotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgU3RyaW5n
KCksIDAsIGNhbGxTdGFjaywgMCk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNz
YWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIpCi17Ci0gICAgaWYgKG11dGVDb3VudCAmJiBzb3VyY2UgIT0g
Q29uc29sZUFQSU1lc3NhZ2VTb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFBhZ2UqIHBh
Z2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoY2FsbFN0YWNrKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1l
c3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWwsIG1lc3Nh
Z2UsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIGVsc2UKLSAgICAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0YXRlLCBy
ZXF1ZXN0SWRlbnRpZmllcik7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkgfHwgbV9m
cmFtZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgdXJsKTsKLQotICAgIGlmICghbV9m
cmFtZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQo
KSAmJiAhc2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBy
aW50U291cmNlVVJMQW5kTGluZSh1cmwsIGxpbmVOdW1iZXIpOwotICAgIHByaW50TWVzc2FnZVNv
dXJjZUFuZExldmVsUHJlZml4KHNvdXJjZSwgbGV2ZWwpOwotCi0gICAgcHJpbnRmKCIgJXNcbiIs
IG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVz
c2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIFNj
cmlwdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHBycEFyZ3VtZW50
cywgYm9vbCBhY2NlcHROb0FyZ3VtZW50cyA9IGZhbHNlLCBib29sIHByaW50VHJhY2UgPSBmYWxz
ZSkKIHsKICAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMgPSBwcnBBcmd1bWVu
dHM7CkBAIC0yMTIsMTcgKzg5LDE3IEBAIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVzc2FnZShQ
YWdlKiBwYWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsCiAgICAgYm9v
bCBnb3RNZXNzYWdlID0gYXJndW1lbnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmcobWVzc2Fn
ZSk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBh
Z2UsIENvbnNvbGVBUElNZXNzYWdlU291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgc3RhdGUs
IGFyZ3VtZW50cyk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgcGFnZS0+c2V0dGlu
Z3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgIGlmIChwYWdlLT5zZXR0aW5ncygp
LT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChn
b3RNZXNzYWdlKQogICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VU
b0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNzYWdlLCBs
YXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKSk7CiAKLSAgICBp
ZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFi
bGVkKCkgJiYgIUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgIGlmICghcGFn
ZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAm
JiAhUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VVUkwoKSwgbGFz
dENhbGxlci5saW5lTnVtYmVyKCkpOwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJl
Zml4KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7CisgICAgUGFnZUNvbnNvbGU6OnBy
aW50U291cmNlVVJMQW5kTGluZShsYXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2FsbGVyLmxp
bmVOdW1iZXIoKSk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVs
UHJlZml4KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7CiAKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGFyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAg
U3RyaW5nIGFyZ0FzU3RyaW5nID0gYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvU3RyaW5nKGFy
Z3VtZW50cy0+Z2xvYmFsU3RhdGUoKSk7CkBAIC0zODgsMTkgKzI2NSw2IEBAIHZvaWQgQ29uc29s
ZTo6Z3JvdXBFbmQoKQogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRv
Q29uc29sZShwYWdlKCksIENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1lc3NhZ2VU
eXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAKLS8vIHN0
YXRpYwotdm9pZCBDb25zb2xlOjptdXRlKCkKLXsKLSAgICBtdXRlQ291bnQrKzsKLX0KLQotLy8g
c3RhdGljCi12b2lkIENvbnNvbGU6OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVDb3VudCA+
IDApOwotICAgIG11dGVDb3VudC0tOwotfQotCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+IENvbnNv
bGU6Om1lbW9yeSgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgY3JlYXRlIGEg
bmV3IG9iamVjdCBoZXJlIGVhY2ggdGltZSwKQEAgLTQwOCwxOCArMjcyLDYgQEAgUGFzc1JlZlB0
cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25zdAogICAgIHJldHVybiBNZW1vcnlJ
bmZvOjpjcmVhdGUobV9mcmFtZSk7CiB9CiAKLXN0YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9
IGZhbHNlOwotCi1ib29sIENvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCi17Ci0gICAg
cmV0dXJuIHByaW50RXhjZXB0aW9uczsKLX0KLQotdm9pZCBDb25zb2xlOjpzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnMoYm9vbCBwcmludCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBwcmludDsK
LX0KLQogUGFnZSogQ29uc29sZTo6cGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnNvbGUuaAppbmRleCBhOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQyMTgzOWVj
NWZjNDJmLi5iOGU3NTExNWIxNWFmNDczYTkyNTg0MzNlYWU2NjA4MWM3NGNlNjNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnNvbGUuaApAQCAtMjksMTAgKzI5LDcgQEAKICNpZm5kZWYgQ29uc29sZV9oCiAjZGVm
aW5lIENvbnNvbGVfaAogCi0jaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCi0jaW5jbHVkZSAi
Q29uc29sZVR5cGVzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTQyLDEy
ICszOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50OwogY2xh
c3MgRnJhbWU7CiBjbGFzcyBNZW1vcnlJbmZvOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNjcmlwdEFy
Z3VtZW50czsKLWNsYXNzIFNjcmlwdENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBU
X0RFQlVHR0VSKQogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+ID4gUHJvZmls
ZXNBcnJheTsKQEAgLTU4LDEwICs1Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxDb25zb2xlPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihuZXcgQ29u
c29sZShmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAgdm9pZCBhZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0
cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyBy
ZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+KTsKLSAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZp
ZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKLQogICAgIHZvaWQgZGVidWcoU2NyaXB0U3RhdGUqLCBQ
YXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZvaWQgZXJyb3IoU2NyaXB0U3RhdGUq
LCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZvaWQgaW5mbyhTY3JpcHRTdGF0
ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CkBAIC04NywxMiArNzgsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBncm91cENvbGxhcHNlZChTY3JpcHRTdGF0ZSosIFBhc3NSZWZQdHI8U2Ny
aXB0QXJndW1lbnRzPik7CiAgICAgdm9pZCBncm91cEVuZCgpOwogCi0gICAgc3RhdGljIHZvaWQg
bXV0ZSgpOwotICAgIHN0YXRpYyB2b2lkIHVubXV0ZSgpOwotCi0gICAgc3RhdGljIGJvb2wgc2hv
dWxkUHJpbnRFeGNlcHRpb25zKCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUHJpbnRFeGNl
cHRpb25zKGJvb2wpOwotCiAgICAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBtZW1vcnkoKSBjb25z
dDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YjAxNTk1MTYw
NWNhNWY2YjE4OTIxZmMxYjExY2I4ZThlN2U5ODU0Li5kYzJhODBlYTEzZTNjNzY2Mzk0ZjVmMzk0
MTMzYzA2OWEyY2UyYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03NSw2ICs3
NSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAi
UGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUg
IlBlcmZvcm1hbmNlLmgiCkBAIC02OTQsNiArNjk1LDEzIEBAIENvbnNvbGUqIERPTVdpbmRvdzo6
Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAorUGFnZUNv
bnNvbGUqIERPTVdpbmRvdzo6cGFnZUNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICghaXNDdXJy
ZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBt
X2ZyYW1lLT5wYWdlKCkgPyBtX2ZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKSA6IDA7Cit9CisKIERP
TUFwcGxpY2F0aW9uQ2FjaGUqIERPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7
CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKQEAgLTg4NCw3ICs4OTIs
NyBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2so
U2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZwogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0
T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
KSkgewogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3QgbWVzc2Fn
ZSB0byAiICsgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAgY29uc29s
ZSgpLT5hZGRNZXNzYWdlKFNlY3VyaXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWws
IG1lc3NhZ2UsIHN0YWNrVHJhY2UpOworICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVz
c2FnZShTZWN1cml0eU1lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBz
dGFja1RyYWNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE3
OTgsNyArMTgwNiw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3RyaW5nIERP
TVdpbmRvdzo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBhY3RpdmVX
aW5kb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA0OWJmOGM5ODUyNDYwMWQyNjE1ZTYx
ODdmZjY3OTdlMWMzYWFlNzU1Li40OWNiNmU2MTdiZjUzYmJlYjI3OWI5ODkwYWU1MDY3YmViNTcy
M2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwogICAgIGNs
YXNzIFBhZ2U7CisgICAgY2xhc3MgUGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9ybWFuY2U7
CiAgICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRBY3Rpb247
CkBAIC0yMzMsNiArMjM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQYXNzUmVm
UHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShOb2RlKiwg
Y29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNvbGUqIGNv
bnNvbGUoKSBjb25zdDsKKyAgICAgICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkgY29uc3Q7
CiAKICAgICAgICAgdm9pZCBwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsKICAgICAg
ICAgU3RyaW5nIGNyb3NzRG9tYWluQWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZl
V2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGJhYzhjNWEyYjA5NTg5OWRlNTk5NmI5NjM0
MjNmMTczNWQ2YjU1MTMuLjEzMWJmODg1ZDZkOThiYjM2MjA4MjJlZWJiMTZkZDZhY2VmZGE3YWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRv
ci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUGFnZUNh
Y2hlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIK
ICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0x
NzYsNiArMTc3LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCiAjZW5k
aWYKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVybmF0aXZl
VGV4dENsaWVudCkKICAgICAsIG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZhbHNlKQor
ICAgICwgbV9jb25zb2xlKFBhZ2VDb25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJU
KG1fZWRpdG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBjMGM3MzE4N2I2YjgyNTU2Njlk
YzI3MzM3NmJiNjIwYzI4OTRiOTVkLi45MWZiOWVhMGNlZDE0MTE2YzlhMWJjZmFjN2Y0MTUyOTRl
OWNjYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNwZWN0b3JD
bGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5TdGFydExp
c3RlbmVyOwogY2xhc3MgTm9kZTsKK2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFnZUdyb3Vw
OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3OCw2ICszNzks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcmIGVuZ2lu
ZU5hbWUpOwogICAgIHZvaWQgcmVzZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQYWdlQ29u
c29sZSogY29uc29sZSgpIHsgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiAjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQpAQCAtNTA0LDYgKzUwNiw3IEBAIHByaXZhdGU6CiAgICAgQWx0ZXJuYXRpdmVU
ZXh0Q2xpZW50KiBtX2FsdGVybmF0aXZlVGV4dENsaWVudDsKIAogICAgIGJvb2wgbV9zY3JpcHRl
ZEFuaW1hdGlvbnNTdXNwZW5kZWQ7CisgICAgT3duUHRyPFBhZ2VDb25zb2xlPiBtX2NvbnNvbGU7
CiAKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1Z2luczsKICAgICBIYXNoU2V0PFN0cmlu
Zz4gbV9zZWVuTWVkaWFFbmdpbmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zOTBlYWExYzlhMjM0YzQwMTYxYjRmMjQzZTlmODMyOTNhNmVlZDVhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKQEAgLTAsMCAr
MSwyMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgor
CisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVk
ZSAiQ29uc29sZUFQSVR5cGVzLmgiCisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNv
bnNvbGVJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgorI2luY2x1
ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3Rvcnku
aCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVu
dFBhcnNlci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNp
bmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShDSFJPTUlV
TSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCituYW1lc3BhY2UgeworICAgIGludCBtdXRlQ291bnQgPSAwOworfQorCitQYWdlQ29uc29s
ZTo6UGFnZUNvbnNvbGUoUGFnZSogcGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CisKK1BhZ2VDb25z
b2xlOjp+UGFnZUNvbnNvbGUoKSB7IH0KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRTb3VyY2VV
UkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKQor
eworICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobGluZU51bWJl
ciA+IDApCisgICAgICAgICAgICBwcmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRh
dGEoKSwgbGluZU51bWJlcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50ZigiJXM6
ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUGFnZUNvbnNv
bGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ugc291cmNl
LCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCit7CisgICAgY29uc3QgY2hhciogc291cmNlU3RyaW5nOwor
ICAgIHN3aXRjaCAoc291cmNlKSB7CisgICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgorICAgICAg
ICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBKU01lc3Nh
Z2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJKUyI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJO
RVRXT1JLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb25zb2xlQVBJTWVzc2FnZVNvdXJj
ZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNPTEVBUEkiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFN0b3JhZ2VNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAi
U1RPUkFHRSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdlU291cmNl
OgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQVBQQ0FDSEUiOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJlbmRlcmluZ01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJS
RU5ERVJJTkciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU01lc3NhZ2VTb3VyY2U6Cisg
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJDU1MiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNl
Y3VyaXR5TWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VSSVRZIjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNv
dXJjZVN0cmluZyA9ICJPVEhFUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBzb3VyY2VTdHJpbmcgPSAiVU5LTk9X
TiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbnN0IGNoYXIqIGxldmVsU3RyaW5n
OworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVsOgorICAg
ICAgICBsZXZlbFN0cmluZyA9ICJERUJVRyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTG9n
TWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJMT0ciOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdhcm5pbmdNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3RyaW5nID0g
IldBUk4iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVsOgorICAg
ICAgICBsZXZlbFN0cmluZyA9ICJFUlJPUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBsZXZlbFN0cmluZyA9ICJV
TktOT1dOIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcHJpbnRmKCIlcyAlczoiLCBz
b3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6YWRkTWVz
c2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICBTdHJpbmcgdXJsOworICAgIGlmIChkb2N1bWVudCkKKyAgICAgICAg
dXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOworICAgIHVuc2lnbmVkIGxpbmUgPSAwOwor
ICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJ
bkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkp
IHsKKyAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+
c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7CisgICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRp
bmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAgICAgICAg
ICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOworICAgIH0KKyAg
ICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVx
dWVzdElkZW50aWZpZXIpOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBhZGRNZXNz
YWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOwor
fQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBN
ZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1
cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjYWxs
U3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmll
cikKK3sKKyAgICBpZiAobXV0ZUNvdW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVzc2FnZVNv
dXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjYWxsU3RhY2spCisg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdl
LCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNrLCByZXF1
ZXN0SWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2
ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsK
KworICAgIGlmIChwYWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRkTWVzc2Fn
ZVRvQ29uc29sZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwpOworCisg
ICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xl
RW5hYmxlZCgpICYmICFzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAgcHJpbnRN
ZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBwcmludGYo
IiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2b2lkIFBh
Z2VDb25zb2xlOjptdXRlKCkKK3sKKyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3RhdGljCit2
b2lkIFBhZ2VDb25zb2xlOjp1bm11dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsK
KyAgICBtdXRlQ291bnQtLTsKK30KKworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25zID0gZmFs
c2U7CisKK2Jvb2wgUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7CisgICAg
cmV0dXJuIHByaW50RXhjZXB0aW9uczsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0U2hvdWxk
UHJpbnRFeGNlcHRpb25zKGJvb2wgcHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25zID0gcHJp
bnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42OGMwODkyNDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFlYzQyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oCkBAIC0w
LDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29uc29sZV9o
CisKKyNpbmNsdWRlICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2su
aCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBhZ2UpIHsg
cmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0dWFsIH5Q
YWdlQ29uc29sZSgpOworCisgICAgc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBzdGF0aWMg
dm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlLCBNZXNz
YWdlTGV2ZWwpOworCisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5z
aWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0
U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOworICAgIHZv
aWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFkZE1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKKworICAg
IHN0YXRpYyB2b2lkIG11dGUoKTsKKyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKworICAgIHN0
YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lkIHNldFNo
b3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29uc29sZShQ
YWdlKik7CisKKyAgICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisgICAgUGFn
ZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUGFn
ZUNvbnNvbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRM
aWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAK
aW5kZXggMGI4MzQwY2Q5NWNhZWJlZmY4ZTE4MWY1YTEzNWY5MWNjMGVjMzc4NS4uOGUyNGI3NDIx
NmY4OWM3YmRjNTFiYjU0YjlmZjk1NTFhY2MxNzdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogI2lmIEVOQUJM
RShYU0xUKQogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3VyY2UuaCIK
ICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFy
c2VyU2NvcGUuaCIKQEAgLTE0NCw5ICsxNDQsMTAgQEAgYm9vbCBYU0xTdHlsZVNoZWV0OjpwYXJz
ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAgeG1sRnJlZURvYyhtX3N0eWxl
c2hlZXREb2MpOwogICAgIG1fc3R5bGVzaGVldERvY1Rha2VuID0gZmFsc2U7CiAKLSAgICBDb25z
b2xlKiBjb25zb2xlID0gMDsKLSAgICBpZiAob3duZXJEb2N1bWVudCgpLT5mcmFtZSgpKQotICAg
ICAgICBjb25zb2xlID0gb3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOwor
ICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gMDsKKyAgICBGcmFtZSogZnJhbWUgPSBvd25lckRv
Y3VtZW50KCktPmZyYW1lKCk7CisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCisgICAg
ICAgIGNvbnNvbGUgPSBmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCk7CiAKICAgICBYTUxEb2N1bWVu
dFBhcnNlclNjb3BlIHNjb3BlKGNhY2hlZFJlc291cmNlTG9hZGVyKCksIFhTTFRQcm9jZXNzb3I6
OmdlbmVyaWNFcnJvckZ1bmMsIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jLCBjb25zb2xl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXgg
NTAzODAyYzdmZTdiNTZmNWY3MmQxNzgzYWI3YmMzMGNiNjU4MWFkZS4uOWQ1NTY3MWNmYzhjOWFi
NGQ3N2I3OWYyYjlmYWYxMThjMzFmZjI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFBy
b2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJYU0xUUHJv
Y2Vzc29yLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUg
IkNvbnNvbGUuaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VD
b25zb2xlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNl
SGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4Miw3IEBA
IHZvaWQgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3QgY2hhcios
IC4uLikKIAogdm9pZCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1c2VyRGF0
YSwgeG1sRXJyb3IqIGVycm9yKQogewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0aWNfY2Fz
dDxDb25zb2xlKj4odXNlckRhdGEpOworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gc3RhdGlj
X2Nhc3Q8UGFnZUNvbnNvbGUqPih1c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTEzNyw5ICsxMzcsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBkb2NMb2Fk
ZXJGdW5jKGNvbnN0IHhtbENoYXIqIHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hlZFJlc291
cmNlTG9hZGVyLT5wcmludEFjY2Vzc0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAgfQogCi0g
ICAgICAgIENvbnNvbGUqIGNvbnNvbGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJvY2Vzc29y
LT54c2xTdHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgICAg
IGNvbnNvbGUgPSBnbG9iYWxQcm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVu
dCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSogY29uc29s
ZSA9IDA7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVz
aGVldCgpLT5vd25lckRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCktPmNvbnNv
bGUoKTsKICAgICAgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBYU0xUUHJv
Y2Vzc29yOjpwYXJzZUVycm9yRnVuYyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJvckZ1bmMo
Y29uc29sZSwgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4IGJmOTE3NTkwMGM1OGUyYTQ2
NjA2MDY3MjFkNTIwOTY1MDZiNzU4MmMuLjA2OWFhNDc5NTMyMTY1NWI5Y2ExMDljNjFiYWFiZDIy
ODI2MDA5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRp
c3RpY3MubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5t
bQpAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgogI2ltcG9y
dCA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9NZW1v
cnlTdGF0aXN0aWNzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NvbnNvbGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRm9udENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0dDQ29udHJvbGxlci5oPgpAQCAtNDIsNiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9JY29uRGF0YWJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25zb2xlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1ByaW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5k
ZXJUcmVlQXNUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAgLTE2OCwx
MyArMTY4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogKyAoQk9PTClzaG91bGRQcmlu
dEV4Y2VwdGlvbnMKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6Y29tbW9u
SlNHbG9iYWxEYXRhKCkpOwotICAgIHJldHVybiBDb25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlv
bnMoKTsKKyAgICByZXR1cm4gUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpOwog
fQogCiArICh2b2lkKXNldFNob3VsZFByaW50RXhjZXB0aW9uczooQk9PTClwcmludAogewogICAg
IEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7Ci0g
ICAgQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKHByaW50KTsKKyAgICBQYWdlQ29u
c29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKHByaW50KTsKIH0KIAogKyAodm9pZCllbXB0
eUNhY2hlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193804</attachid>
            <date>2013-03-19 05:56:25 -0700</date>
            <delta_ts>2013-03-19 08:13:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130319165215.patch</filename>
            <type>text/plain</type>
            <size>49403</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2VkYTg5MDU5MGZjMzFk
YzUwNGFlZjY3MGQyZjczOWViYzc1ZmM3ZC4uMWEyYzg1N2VmNWMyN2VjZTVlZTVhNjMzYjEwMWZl
YmFkODM0NWUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTE2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJ
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5h
bWVzcGFjZVVSSSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6YWRkTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFn
ZS9Db25zb2xlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
cGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpjb25zb2xlKToKKyAgICAgICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNv
bnNvbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29u
c29sZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Ojp+UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291
cmNlVVJMQW5kTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNz
YWdlU291cmNlQW5kTGV2ZWxQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbnNvbGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OnBhZ2UpOgorICAgICAgICAqIHhtbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hT
TFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6
OnBhcnNlRXJyb3JGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAy
MDEzLTAzLTE5ICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW0dUS10gV3JvbmcgZ3VhcmQgVVNFKEdMWCkgaW4gUmVkaXJlY3RlZFhDb21w
b3NpdGVXaW5kb3cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCAzYTU0MGM3NjA1M2RmYzBlODViNmVhYTRk
MzkyZGRkMjRmMjRlM2UxLi5kMmU4NDRiZjZhMDUwZjQ2ZmRhYTk1N2NhMTgyOTZhYTMyMDJlM2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDMtMTYgIFNlcmdleSBS
eWF6YW5vdiAgPHNlcnlhQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBz
cGxpdCBDb25zb2xlIGludG8gdHdvIGVudGl0aWVzLCBhIHdlYi1mYWNpbmcgYm91bmQgb2JqZWN0
IGFuZCBwYWdlIGNvbnNvbGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTE1NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBPdGhlcndpc2UsIGEgbG90IG9mIGxvZ2dpbmcgaW4gV2ViQ29yZSBuZWVkcyB0
byBnbyB0aHJvdWdoIHRoZSBET01XaW5kb3cgd2hpY2ggaXMgdW5uZWNlc3NhcnkuCisKKyAgICAg
ICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAgICAoK1tXZWJDb3JlU3RhdGlz
dGljcyBzaG91bGRQcmludEV4Y2VwdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3Rp
Y3Mgc2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zOl0pOgorCiAyMDEzLTAzLTE3ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTGVnYWN5IENTUyB2ZW5kb3IgcHJlZml4
ZXMgc2hvdWxkIG9ubHkgd29yayBmb3IgRGFzaGJvYXJkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDk2Yzk0M2Q4M2JiZDUyZTg4YWZjZTM3YWExMmMwMzIyNjhmMDI2NmMuLmNlMjVlZTY5MmE2NzRk
NmRlNjE5NDY5MzQxYWQ1ZmRmYzE5ZWI2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzg4
LDYgKzE3ODgsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9OYXZpZ2F0b3JCYXNl
LmNwcAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwCiAgICAgcGFnZS9QYWdlLmNwcAor
ICAgIHBhZ2UvUGFnZUNvbnNvbGUuY3BwCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwCiAgICAgcGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCiAgICAgcGFnZS9QYWdlU2VyaWFsaXplci5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGUzYTQyZTIyNjMwZjQ3ODBlODc3OGZk
MmE0MzU3NjYyZjZkNGY3OTIuLmZmMzhjNDM4NDBjYTU3ZjgzOTA2OTY4N2RlYmEyODkzZGQxYjQx
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDIzNSw2ICs0MjM1LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL09yaWdpbkFjY2Vzc0Vu
dHJ5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VHcm91cC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpp
bmRleCA1N2VhNzA2ZDI1MDJlMGU4ZThhYmEwOTg3MzhkYTRiZTcyNGNkYzU4Li45NjcyOWFmYzhl
NzY0NzgwY2ZlMTc1MGUzNjAxZjAxMWE4Y2RhYTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTk0Nyw2ICs5
NDcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL05hdmlnYXRvckJhc2UuY3BwIFwKICAgICBw
YWdlL09yaWdpbkFjY2Vzc0VudHJ5LmNwcCBcCiAgICAgcGFnZS9QYWdlLmNwcCBcCisgICAgcGFn
ZS9QYWdlQ29uc29sZS5jcHAgXAogICAgIHBhZ2UvUGFnZUdyb3VwLmNwcCBcCiAgICAgcGFnZS9Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKICAgICBwYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUu
Y3BwIFwKQEAgLTIxNDQsNiArMjE0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBhZ2UvUGFnZUdy
b3VwLmggXAogICAgIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmggXAogICAgIHBhZ2UvUGFn
ZS5oIFwKKyAgICBwYWdlL1BhZ2VDb25zb2xlLmggXAogICAgIHBhZ2UvUGFnZVZpc2liaWxpdHlT
dGF0ZS5oIFwKICAgICBwYWdlL1BsdWdJbkNsaWVudC5oIFwKICAgICBwYWdlL1BvcHVwT3Blbmlu
Z09ic2VydmVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA2NTBkNmI0NDIzMGM5Y2NiZGI1
Mjg0ZGZhNGVmOGYzNjI0ZjE3OGM2Li44MjJlZmE4OTZiNzU2YWIxYWMyNzQzNDllNjIyZjA2YTgy
NTA1N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTM2LDggKzkzNiw2IEBAIF9fWk43V2Vi
Q29yZTZXaWRnZXQ4c2V0Rm9jdXNFYgogX19aTjdXZWJDb3JlNldpZGdldDlzZXRQYXJlbnRFUE5T
XzEwU2Nyb2xsVmlld0UKIF9fWk43V2ViQ29yZTZXaWRnZXREMkV2CiBfX1pON1dlYkNvcmU2dG9O
b2RlRU4zSlNDN0pTVmFsdWVFCi1fX1pON1dlYkNvcmU3Q29uc29sZTIxc2hvdWxkUHJpbnRFeGNl
cHRpb25zRXYKLV9fWk43V2ViQ29yZTdDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlvbnNF
YgogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS04zV1RGMTJBdG9taWNTdHJp
bmdFUzRfUmkKIF9fWk43V2ViQ29yZTdFbGVtZW50MTJzZXRBdHRyaWJ1dGVFUktOU18xM1F1YWxp
ZmllZE5hbWVFUktOM1dURjEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlN0VsZW1lbnQyMWJv
dW5kc0luUm9vdFZpZXdTcGFjZUV2CkBAIC0xNzI1LDYgKzE3MjMsOCBAQCBfX1pON1dlYkNvcmUx
MGhhbmRDdXJzb3JFdgogX19aTjdXZWJDb3JlMTFDYWNoZWRJbWFnZTVpbWFnZUV2CiBfX1pON1dl
YkNvcmUxMWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdXZWJDb3JlMTF0
b1VzZXJTcGFjZUVSSzdfTlNSZWN0UDhOU1dpbmRvdworX19aTjdXZWJDb3JlMTFQYWdlQ29uc29s
ZTIxc2hvdWxkUHJpbnRFeGNlcHRpb25zRXYKK19fWk43V2ViQ29yZTExUGFnZUNvbnNvbGUyNHNl
dFNob3VsZFByaW50RXhjZXB0aW9uc0ViCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjEwbW91
c2VNb3ZlZEVQN05TRXZlbnQKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTB3aGVlbEV2ZW50
RVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMm1vdXNlRHJhZ2dlZEVQN05T
RXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0ZWI5Yjg1OTQ0MmI0YjU5NGQyMTdkMWJkN2FmMTU5
NTFjZjYxMzFkLi44NmRjNGVmMDUwM2M2NDU1MzVjOTM2YjNlNmE2Yzc4YjdmZTE2MGU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0yMjUyLDYgKzIyNTIsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvT3Jp
Z2luQWNjZXNzRW50cnkuY3BwJywKICAgICAgICAgICAgICdwYWdlL09yaWdpbkFjY2Vzc0VudHJ5
LmgnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZS5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvUGFn
ZUNvbnNvbGUuY3BwJywKICAgICAgICAgICAgICdwYWdlL1BhZ2VHcm91cC5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCcsCiAgICAgICAgICAgICAncGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLm9yZGVyIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgppbmRleCA3NTAzZGMy
NWExNDI5YjlmZDcwMDA4NWU2OWY0MTNiYWVlZjc3ZGZkLi4xYjgyMjU0Yzg5ZjI1NDZiYzQ2YWFh
OGU4NTZlOTk0MDBmYmY4MmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9y
ZGVyCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKQEAgLTE1NTU5LDcgKzE1NTU5
LDYgQEAgX19aTjNXVEYyOVJlZlB0ckhhc2hNYXBSYXdLZXlUcmFuc2xhdG9ySVBON1dlYkNvcmUx
NFJlc291cmNlTG9hZGVyRVN0NHBhaXJJTlNfNlIKIF9fWk4zV1RGNlZlY3RvcklOU182UmVmUHRy
SU43V2ViQ29yZTE1QXJjaGl2ZVJlc291cmNlRUVFTG0wRUVEMUV2CiBfX1pON1dlYkNvcmU1VGlt
ZXJJTlNfMTREb2N1bWVudExvYWRlckVFNWZpcmVkRXYKIF9fWk43V2ViQ29yZTE0RG9jdW1lbnRM
b2FkZXIzNnN1YnN0aXR1dGVSZXNvdXJjZURlbGl2ZXJ5VGltZXJGaXJlZEVQTlNfNVRpbWVySVMw
X0VFCi1fX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKIF9f
Wk43V2ViQ29yZTE2anNDbGlwYm9hcmRUeXBlc0VQTjNKU0M5RXhlY1N0YXRlRU5TMF83SlNWYWx1
ZUVSS05TMF8xMElkZW50aWZpZXJFCiBfX1pOSzdXZWJDb3JlMTFKU0NsaXBib2FyZDV0eXBlc0VQ
TjNKU0M5RXhlY1N0YXRlRQogX19aTks3V2ViQ29yZTEyQ2xpcGJvYXJkTWFjNXR5cGVzRXYKQEAg
LTE1Njc5LDYgKzE1Njc4LDcgQEAgX19aTjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJv
bDE5cmVjZWl2ZURyb3BwZWRGaWxlc0VSS04zV1RGNlZlY3RvcklOUzFfNlMKIF9fWk43V2ViQ29y
ZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wxOWFsbG93c011bHRpcGxlRmlsZXNFdgogX19aTjdX
ZWJDb3JlMTFGaWxlQ2hvb3NlcjEwY2hvb3NlRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2Vi
Q29yZTExRmlsZUNob29zZXIxMWNob29zZUZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5n
RUxtMEVFRQorX19aTjdXZWJDb3JlMTFQYWdlQ29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRp
b25zRWIKIF9fWlRobjE4NF9ON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxvYWRDb250cm9sMThjaG9v
c2VJY29uRm9yRmlsZXNFUE5TXzExRmlsZUNob29zZXJFUktOM1dURjZWZWN0b3JJTlMzXzZTdHJp
bmdFTG0wRUVFCiBfX1pON1dlYkNvcmU2Q2hyb21lMThjaG9vc2VJY29uRm9yRmlsZXNFUktOM1dU
RjZWZWN0b3JJTlMxXzZTdHJpbmdFTG0wRUVFUE5TXzExRmlsZUNob29zZXJFCiBfX1pON1dlYkNv
cmU0SWNvbjE4Y3JlYXRlSWNvbkZvckZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxt
MEVFRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRl
eCBhN2M0OTNmZDg1ZTMwZWM1NTY5YzZkNzViZWY3MmM2NTRmYTY2MjYyLi5lNjhlNjcyYmM4OWM1
YjhjZGQyMWYzZmE2M2ExNmUwZmVjNGMzMDA0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc1OTAsNiArMjc1OTAsMTQgQEAKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAg
ICAgICAgICAgICAgICAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZUNvbnNv
bGUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXFBhZ2VDb25zb2xlLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcUGFnZUdyb3VwLmNwcCIKIAkJCQk+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhYWYxZWQyYWRjNmVj
YjhiOTg4M2I5Y2JjNzZmMWE4YmQ0YjQyMTJmLi42YTUwNTJkZjI5M2IzMGI5YjhkYWM4MTU5MmEw
NTk4YzEyOTE0ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2oKQEAgLTM5MzcsNiArMzkzNyw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXE5hdmlnYXRvckJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGFnZVxPcmlnaW5BY2Nlc3NFbnRyeS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwYWdlXFBhZ2UuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQ
YWdlQ29uc29sZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VH
cm91cC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VHcm91cExv
YWREZWZlcnJlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VT
ZXJpYWxpemVyLmNwcCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA5ZGEzZjVlNjFmMzMyNDEzZmMzNjU3
NDAwZGQ3N2M3Mzc0MzY1MmNlLi5lMGVhNTA1NWFmMDgyZDA2OGQwYzE1ZTBiYjQzMDFlMTFhMTE2
ZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC02Njk2LDYgKzY2OTYsOSBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccGFnZVxQYWdlLmNwcCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZUNv
bnNvbGUuY3BwIj4KKyAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxl
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIj4KICAgICAg
IDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMTUzNDUsNCArMTUz
NDgsNCBAQAogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0N1c3RvbUJ1
aWxkU3RlcD4KICAgPC9JdGVtR3JvdXA+Ci08L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQorPC9Qcm9qZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNmY2VkZjdkY2JkMTMyMmFjZGI5ODllZDBkMDNlMmM0
MjcwNjY1ZWIuLjY2MTRkZTEyM2IzZjM0NWY5ZWYzZjhhMjZmNGE2MzRmYTliOTQzMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTYxNTMsNiArNjE1Myw4IEBACiAJCUQ3NjEzQTUwMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXRO
YW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDc2MTNBNEUxNDc0RjEzRjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgKi87IH07
CiAJCUQ3NjEzQUM0MTQ3NTNFNTYwMERCODYwNiAvKiBKU1dlYktpdE5hbWVkRmxvdy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzYxM0FDMjE0NzUz
RTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlEOEI2MTUyRjEw
MzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEOEI2MTUyRTEwMzI0OTUxMDBDODU1NEEgLyogQ29va2llLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJREFFRDIwMzAx
NkYyNDQyQjAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdl
Q29uc29sZS5jcHAgKi87IH07CisJCURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29u
c29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFB
Q0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREIyM0MyQ0IwQTUwOEQyOTAwMjQ4OUVC
IC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERCMjNDMkM5MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRk
ZW50Q29tbWFuZC5jcHAgKi87IH07CiAJCURCMjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRl
bnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREIyM0MyQ0EwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5k
LmggKi87IH07CiAJCUREMDVGRTBEMEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJh
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREQwNUZF
MEIwQjhCQTNDNjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzODYyLDYgKzEzODY0LDggQEAK
IAkJRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0TmFtZWRGbG93LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDc2MTNBQzMxNDc1M0U1NjAwREI4NjA2IC8q
IEpTV2ViS2l0TmFtZWRGbG93LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
V2ViS2l0TmFtZWRGbG93Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ4QjYxNTJF
MTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ29va2llLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURBQUNCM0Q5MTZG
MjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQYWdlQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCURBQUNCM0RBMTZGMjQxNjQwMDY2NjEzNSAvKiBQYWdlQ29uc29sZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEQjIzQzJDOTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGVudE91dGRl
bnRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREIyM0MyQ0EwQTUw
OEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmRlbnRPdXRkZW50Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRy
YXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVPYmpDRXh0cmFz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjQ3OCw2ICsxNjQ4Miw4IEBACiAJ
CQkJOTc1Q0EyODcxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5jcHAgKi8sCiAJCQkJOTc1Q0Ey
ODgxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5oICovLAogCQkJCTk3NUNBMjg5MTMwMzY1Rjgw
MEU5OUFEOSAvKiBDcnlwdG8uaWRsICovLAorCQkJCURBQUNCM0Q5MTZGMjQxNjQwMDY2NjEzNSAv
KiBQYWdlQ29uc29sZS5jcHAgKi8sCisJCQkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1IC8qIFBh
Z2VDb25zb2xlLmggKi8sCiAJCQkJQ0NDMkI1MTAxNUY2MTMwNjAwNDhDREQ2IC8qIERldmljZUNs
aWVudC5oICovLAogCQkJCUNDQzJCNTExMTVGNjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9s
bGVyLmNwcCAqLywKIAkJCQlDQ0MyQjUxMjE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ29udHJv
bGxlci5oICovLApAQCAtMjY3NjQsNiArMjY3NzAsNyBAQAogCQkJCTk3N0UyRTBGMTJGMEZDOUMw
MEMxMzM3OSAvKiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBG
QzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CURBRUQyMDMxMTZGMjQ0NDgwMDcwRUMwRiAvKiBQYWdlQ29uc29sZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yOTk3MSw2ICsyOTk3OCw3IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8q
IFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEz
MzgwIC8qIFhTU0F1ZGl0b3JEZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1
MjEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREFF
RDIwMzAxNkYyNDQyQjAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVz
b2x2ZXIuY3BwCmluZGV4IGE5YjM0YTY1NmM4ZmZlYTFlNzllMWNkZTZmNzZmOGY2MGQ0Nzk4NGIu
LmQwYTUwMTFlYjlkMWI2ZGIxMjk4OThhMWY3NDc2MWU4ZjhkOGE5NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAK
QEAgLTI2LDEyICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUu
aCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KIApAQCAtNzgsNyArNzksOCBAQCBTdHJpbmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxv
b2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKICAgICAgICAgY2FsbFR5cGUg
PSBtX2N1c3RvbVJlc29sdmVyLT5tZXRob2RUYWJsZSgpLT5nZXRDYWxsRGF0YShtX2N1c3RvbVJl
c29sdmVyLmdldCgpLCBjYWxsRGF0YSk7CiAgICAgICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlw
ZU5vbmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBQYXNzIGFjdHVhbCBsaW5lIG51bWJlciBh
bmQgc291cmNlIFVSTC4KLSAgICAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5pbXBsKCktPmNvbnNv
bGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBh
dGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUgYSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIp
OworICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlKiBjb25zb2xlID0gbV9nbG9iYWxPYmplY3Qt
PmltcGwoKS0+cGFnZUNvbnNvbGUoKSkKKyAgICAgICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIg
ZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CiAgICAgICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gPSBtX2N1c3Rv
bVJlc29sdmVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYjk1NGZmZWQx
ZWQzNjhkZGVjNzJmYjEyZjNmMmI3ZDg4MWM5NWExNC4uY2FlMzQ4OWI1ZDAwZjg5NmM4NzAwNTU2
NDlmZjc1NmNmOWFlYTY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zMCw4ICsz
MCwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93Lmgi
CisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNv
bnNvbGUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtNjks
NyArNzEsOSBAQCBTdHJpbmcgVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFj
ZVVSSShjb25zdCBTdHJpbmcmIHByZWZpeCkKICAgICB9CiAKICAgICBpZiAobG9va3VwTmFtZXNw
YWNlVVJJRnVuYy5Jc0VtcHR5KCkgJiYgIW1fcmVzb2x2ZXItPklzRnVuY3Rpb24oKSkgewotICAg
ICAgICBhY3RpdmVET01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKS0+Y29uc29sZSgp
LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5T
UmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7Cisg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3Rh
bmNlKCkpLT5mcmFtZSgpOworICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAg
ICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCAiWFBhdGhOU1Jlc29sdmVyIGRvZXMgbm90IGhhdmUg
YSBsb29rdXBOYW1lc3BhY2VVUkkgbWV0aG9kLiIpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwZjdlMmNkNTg4MmEyMTliN2Rk
ZWY1MDFkODI1MjkzM2VjYzQwNTllLi4wYzk4MTgxNzE2NmUwZTllYTQ0YjlhZWNhMjU2YTJjYjA2
NzdiNjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQyLDcgKzQyLDYgQEAKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDb21t
ZW50LmgiCi0jaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkNvb2tpZUph
ci5oIgpAQCAtMTI0LDYgKzEyMyw3IEBACiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2lu
Y2x1ZGUgIk5vZGVXaXRoSW5kZXguaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFn
ZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJQYWdlVHJhbnNp
dGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCkBAIC00ODQ0
LDEwICs0ODQ0LDggQEAgdm9pZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRvbVdpbmRvdygpKSB7Ci0gICAg
ICAgIGlmIChDb25zb2xlKiBjb25zb2xlID0gd2luZG93LT5jb25zb2xlKCkpCi0gICAgICAgICAg
ICBjb25zb2xlLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVu
dGlmaWVyLCB0aGlzKTsKLSAgICB9CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkp
CisgICAgICAgIHBhZ2UtPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNz
YWdlLCByZXF1ZXN0SWRlbnRpZmllciwgdGhpcyk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJl
ciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaywgU2NyaXB0U3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQpAQCAtNDg1NywxMCArNDg1NSw4
IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoRE9NV2luZG93KiB3aW5kb3cgPSBkb21XaW5kb3coKSkgewotICAgICAgICBpZiAoQ29u
c29sZSogY29uc29sZSA9IHdpbmRvdy0+Y29uc29sZSgpKQotICAgICAgICAgICAgY29uc29sZS0+
YWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIs
IGNhbGxTdGFjaywgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKLSAgICB9CisgICAgaWYgKFBh
Z2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmNvbnNvbGUoKS0+YWRkTWVz
c2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNhbGxT
dGFjaywgc3RhdGUsIHJlcXVlc3RJZGVudGlmaWVyKTsKIH0KIAogY29uc3QgU2VjdXJpdHlPcmln
aW4qIERvY3VtZW50Ojp0b3BPcmlnaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMTYyMjJlZTY1MWQ3NmEwNDY5NTRiN2Zi
YWU1MWM4YmZkYjAwMjdmNy4uMjAwZmIyY2Y3NDU2MGI1NWM1N2I5NGYxMThhNjRkY2RkNmMwZmU3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3Bw
CkBAIC0zNCwxMSArMzQsMTEgQEAKIAogI2luY2x1ZGUgIlBhZ2VEZWJ1Z2dlckFnZW50LmgiCiAK
LSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgogI2lu
Y2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2Vu
dHMuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNs
dWRlICJQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
ODgsMTIgKzg4LDEyIEBAIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlciYgUGFnZURlYnVnZ2VyQWdlbnQ6
OnNjcmlwdERlYnVnU2VydmVyKCkKIAogdm9pZCBQYWdlRGVidWdnZXJBZ2VudDo6bXV0ZUNvbnNv
bGUoKQogewotICAgIENvbnNvbGU6Om11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwog
fQogCiB2b2lkIFBhZ2VEZWJ1Z2dlckFnZW50Ojp1bm11dGVDb25zb2xlKCkKIHsKLSAgICBDb25z
b2xlOjp1bm11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6dW5tdXRlKCk7CiB9CiAKIEluamVjdGVk
U2NyaXB0IFBhZ2VEZWJ1Z2dlckFnZW50OjppbmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBpbnQqIGV4ZWN1dGlvbkNvbnRleHRJZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCA3N2I0MGZhMzEy
YTdhNGYzMWM2MzczMmZkMzc2NGUwODlmODE3MjZlLi5hODQzMWJhMGZhNzhjYzg0MTViODQ0YzIy
M2UxYjAzNGViMmU5NjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJQYWdlUnVudGltZUFn
ZW50LmgiCiAKLSNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdl
ci5oIgpAQCAtNDIsNiArNDEsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvclN0YXRlLmgiCiAjaW5j
bHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRl
ICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKIHVzaW5nIFdl
YkNvcmU6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpFeGVjdXRpb25Db250ZXh0RGVzY3JpcHRpb247
CkBAIC0xNDgsMTIgKzE0OCwxMiBAQCBJbmplY3RlZFNjcmlwdCBQYWdlUnVudGltZUFnZW50Ojpp
bmplY3RlZFNjcmlwdEZvckV2YWwoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLAogCiB2b2lkIFBh
Z2VSdW50aW1lQWdlbnQ6Om11dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjptdXRlKCk7Cisg
ICAgUGFnZUNvbnNvbGU6Om11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVudGltZUFnZW50Ojp1bm11
dGVDb25zb2xlKCkKIHsKLSAgICBDb25zb2xlOjp1bm11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6
dW5tdXRlKCk7CiB9CiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6cmVwb3J0RXhlY3V0aW9uQ29u
dGV4dENyZWF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuY3BwCmluZGV4IGVhNTM3YzRmYjIwOTBk
NDAxMGNmMGFmNjA2OWRjMDlhMjIzYjBkOWEuLjU0NDVhNmNkNDVmZDlhZTQwNThlZGQ3YTE3NTIw
OTMwMGZjZWU1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29uc29sZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcApAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJNZW1vcnlJbmZvLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAi
UGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCkBAIC02MSwxMCArNjIsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLW5hbWVzcGFjZSB7Ci0gICAgaW50IG11dGVDb3VudCA9IDA7Ci19Ci0KIENvbnNvbGU6OkNv
bnNvbGUoRnJhbWUqIGZyYW1lKQogICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUpCiB7CkBA
IC03NCwxMjYgKzcxLDYgQEAgQ29uc29sZTo6fkNvbnNvbGUoKQogewogfQogCi1zdGF0aWMgdm9p
ZCBwcmludFNvdXJjZVVSTEFuZExpbmUoY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVk
IGxpbmVOdW1iZXIpCi17Ci0gICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGlmIChsaW5lTnVtYmVyID4gMCkKLSAgICAgICAgICAgIHByaW50ZigiJXM6JWQ6ICIsIHNvdXJj
ZVVSTC51dGY4KCkuZGF0YSgpLCBsaW5lTnVtYmVyKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcHJpbnRmKCIlczogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLX0KLQot
c3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCkKLXsKLSAgICBjb25zdCBjaGFyKiBzb3VyY2VT
dHJpbmc7Ci0gICAgc3dpdGNoIChzb3VyY2UpIHsKLSAgICBjYXNlIFhNTE1lc3NhZ2VTb3VyY2U6
Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJYTUwiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEpTTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkpTIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBOZXR3b3JrTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3Ry
aW5nID0gIk5FVFdPUksiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENvbnNvbGVBUElNZXNz
YWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQ09OU09MRUFQSSI7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgU3RvcmFnZU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0
cmluZyA9ICJTVE9SQUdFIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBcHBDYWNoZU1lc3Nh
Z2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJBUFBDQUNIRSI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgUmVuZGVyaW5nTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3Ry
aW5nID0gIlJFTkRFUklORyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTTWVzc2FnZVNv
dXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIkNTUyI7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgU2VjdXJpdHlNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiU0VD
VVJJVFkiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE90aGVyTWVzc2FnZVNvdXJjZToKLSAg
ICAgICAgc291cmNlU3RyaW5nID0gIk9USEVSIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9
ICJVTktOT1dOIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgY29uc3QgY2hhciogbGV2
ZWxTdHJpbmc7Ci0gICAgc3dpdGNoIChsZXZlbCkgewotICAgIGNhc2UgRGVidWdNZXNzYWdlTGV2
ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkRFQlVHIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBMb2dNZXNzYWdlTGV2ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkxPRyI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgV2FybmluZ01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxT
dHJpbmcgPSAiV0FSTiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRXJyb3JNZXNzYWdlTGV2
ZWw6Ci0gICAgICAgIGxldmVsU3RyaW5nID0gIkVSUk9SIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGxldmVsU3Ry
aW5nID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBwcmludGYoIiVz
ICVzOiIsIHNvdXJjZVN0cmluZywgbGV2ZWxTdHJpbmcpOwotfQotCi12b2lkIENvbnNvbGU6OmFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyLCBEb2N1bWVu
dCogZG9jdW1lbnQpCi17Ci0gICAgU3RyaW5nIHVybDsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAg
ICAgIHVybCA9IGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKTsKLSAgICB1bnNpZ25lZCBsaW5lID0g
MDsKLSAgICBpZiAoZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnBhcnNpbmcoKSAmJiAhZG9jdW1lbnQt
PmlzSW5Eb2N1bWVudFdyaXRlKCkgJiYgZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNl
cigpKSB7Ci0gICAgICAgIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1l
bnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpOwotICAgICAgICBpZiAoIXBhcnNlci0+aXNX
YWl0aW5nRm9yU2NyaXB0cygpICYmICFwYXJzZXItPmlzRXhlY3V0aW5nU2NyaXB0KCkpCi0gICAg
ICAgICAgICBsaW5lID0gcGFyc2VyLT5saW5lTnVtYmVyKCkub25lQmFzZWRJbnQoKTsKLSAgICB9
Ci0gICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIDAsIDAs
IHJlcXVlc3RJZGVudGlmaWVyKTsKLX0KLQotdm9pZCBDb25zb2xlOjphZGRNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKLXsKLSAgICBhZGRNZXNz
YWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ssIDApOwot
fQotCi12b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3Nh
Z2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHVybCwg
dW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
aywgU2NyaXB0U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyKQot
ewotICAgIGlmIChtdXRlQ291bnQgJiYgc291cmNlICE9IENvbnNvbGVBUElNZXNzYWdlU291cmNl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAg
IGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGNhbGxTdGFjaykKLSAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCBjYWxsU3RhY2ssIHJlcXVlc3RJ
ZGVudGlmaWVyKTsKLSAgICBlbHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwg
bWVzc2FnZSwgdXJsLCBsaW5lTnVtYmVyLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZpZXIpOwotCi0g
ICAgaWYgKCFtX2ZyYW1lLT5zZXR0aW5ncygpIHx8IG1fZnJhbWUtPnNldHRpbmdzKCktPnByaXZh
dGVCcm93c2luZ0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFnZS0+Y2hyb21l
KCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2Us
IGxpbmVOdW1iZXIsIHVybCk7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCktPmxvZ3NQ
YWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIXNob3VsZFByaW50RXhjZXB0
aW9ucygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUodXJs
LCBsaW5lTnVtYmVyKTsKLSAgICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChzb3Vy
Y2UsIGxldmVsKTsKLQotICAgIHByaW50ZigiICVzXG4iLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkp
OwotfQotCiBzdGF0aWMgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2Fn
ZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLCBTY3JpcHRTdGF0ZSogc3RhdGUsIFBhc3NS
ZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBwcnBBcmd1bWVudHMsIGJvb2wgYWNjZXB0Tm9Bcmd1bWVu
dHMgPSBmYWxzZSwgYm9vbCBwcmludFRyYWNlID0gZmFsc2UpCiB7CiAgICAgUmVmUHRyPFNjcmlw
dEFyZ3VtZW50cz4gYXJndW1lbnRzID0gcHJwQXJndW1lbnRzOwpAQCAtMjEyLDE3ICs4OSwxNyBA
QCBzdGF0aWMgdm9pZCBpbnRlcm5hbEFkZE1lc3NhZ2UoUGFnZSogcGFnZSwgTWVzc2FnZVR5cGUg
dHlwZSwgTWVzc2FnZUxldmVsIGxldmVsLAogICAgIGJvb2wgZ290TWVzc2FnZSA9IGFyZ3VtZW50
cy0+Z2V0Rmlyc3RBcmd1bWVudEFzU3RyaW5nKG1lc3NhZ2UpOwogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29sZShwYWdlLCBDb25zb2xlQVBJTWVzc2FnZVNv
dXJjZSwgdHlwZSwgbGV2ZWwsIG1lc3NhZ2UsIHN0YXRlLCBhcmd1bWVudHMpOwogCi0gICAgaWYg
KCFwYWdlLT5zZXR0aW5ncygpIHx8IHBhZ2UtPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0Vu
YWJsZWQoKSkKKyAgICBpZiAocGFnZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoZ290TWVzc2FnZSkKICAgICAgICAgcGFn
ZS0+Y2hyb21lKCktPmNsaWVudCgpLT5hZGRNZXNzYWdlVG9Db25zb2xlKENvbnNvbGVBUElNZXNz
YWdlU291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCks
IGxhc3RDYWxsZXIuc291cmNlVVJMKCkpOwogCi0gICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5s
b2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpICYmICFDb25zb2xlOjpzaG91
bGRQcmludEV4Y2VwdGlvbnMoKSkKKyAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCkgJiYgIVBhZ2VDb25zb2xlOjpzaG91bGRQ
cmludEV4Y2VwdGlvbnMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpbnRTb3VyY2VVUkxB
bmRMaW5lKGxhc3RDYWxsZXIuc291cmNlVVJMKCksIGxhc3RDYWxsZXIubGluZU51bWJlcigpKTsK
LSAgICBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChDb25zb2xlQVBJTWVzc2FnZVNv
dXJjZSwgbGV2ZWwpOworICAgIFBhZ2VDb25zb2xlOjpwcmludFNvdXJjZVVSTEFuZExpbmUobGFz
dENhbGxlci5zb3VyY2VVUkwoKSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkpOworICAgIFBhZ2VD
b25zb2xlOjpwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChDb25zb2xlQVBJTWVzc2Fn
ZVNvdXJjZSwgbGV2ZWwpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBhcmd1bWVudHMt
PmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CiAgICAgICAgIFN0cmluZyBhcmdBc1N0cmluZyA9IGFy
Z3VtZW50cy0+YXJndW1lbnRBdChpKS50b1N0cmluZyhhcmd1bWVudHMtPmdsb2JhbFN0YXRlKCkp
OwpAQCAtMzg4LDE5ICsyNjUsNiBAQCB2b2lkIENvbnNvbGU6Omdyb3VwRW5kKCkKICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSgpLCBDb25zb2xl
QVBJTWVzc2FnZVNvdXJjZSwgRW5kR3JvdXBNZXNzYWdlVHlwZSwgTG9nTWVzc2FnZUxldmVsLCBT
dHJpbmcoKSwgU3RyaW5nKCksIDApOwogfQogCi0vLyBzdGF0aWMKLXZvaWQgQ29uc29sZTo6bXV0
ZSgpCi17Ci0gICAgbXV0ZUNvdW50Kys7Ci19Ci0KLS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjp1
bm11dGUoKQotewotICAgIEFTU0VSVChtdXRlQ291bnQgPiAwKTsKLSAgICBtdXRlQ291bnQtLTsK
LX0KLQogUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBCZWNhdXNlIHdlIGNyZWF0ZSBhIG5ldyBvYmplY3QgaGVyZSBlYWNoIHRp
bWUsCkBAIC00MDgsMTggKzI3Miw2IEBAIFBhc3NSZWZQdHI8TWVtb3J5SW5mbz4gQ29uc29sZTo6
bWVtb3J5KCkgY29uc3QKICAgICByZXR1cm4gTWVtb3J5SW5mbzo6Y3JlYXRlKG1fZnJhbWUpOwog
fQogCi1zdGF0aWMgYm9vbCBwcmludEV4Y2VwdGlvbnMgPSBmYWxzZTsKLQotYm9vbCBDb25zb2xl
OjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKQotewotICAgIHJldHVybiBwcmludEV4Y2VwdGlvbnM7
Ci19Ci0KLXZvaWQgQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wgcHJpbnQp
Ci17Ci0gICAgcHJpbnRFeGNlcHRpb25zID0gcHJpbnQ7Ci19Ci0KIFBhZ2UqIENvbnNvbGU6OnBh
Z2UoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29uc29sZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKaW5kZXgg
YTlhNWQyNzQ0NTQ1ZDhiODc4OTNjNzg2MjRkMjE4MzllYzVmYzQyZi4uYjhlNzUxMTViMTVhZjQ3
M2E5MjU4NDMzZWFlNjYwODFjNzRjZTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db25zb2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmgKQEAgLTI5LDEw
ICsyOSw3IEBACiAjaWZuZGVmIENvbnNvbGVfaAogI2RlZmluZSBDb25zb2xlX2gKIAotI2luY2x1
ZGUgIkNvbnNvbGVBUElUeXBlcy5oIgotI2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgogI2luY2x1
ZGUgIkRPTVdpbmRvd1Byb3BlcnR5LmgiCi0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAj
aW5jbHVkZSAiU2NyaXB0UHJvZmlsZS5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC00MiwxMiArMzksMTAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgTWVtb3J5
SW5mbzsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBTY3JpcHRBcmd1bWVudHM7Ci1jbGFzcyBTY3JpcHRD
YWxsU3RhY2s7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKIHR5cGVkZWYgVmVj
dG9yPFJlZlB0cjxTY3JpcHRQcm9maWxlPiA+IFByb2ZpbGVzQXJyYXk7CkBAIC01OCwxMCArNTMs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29uc29sZT4gY3JlYXRlKEZyYW1l
KiBmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENvbnNvbGUoZnJhbWUpKTsgfQogICAgIHZp
cnR1YWwgfkNvbnNvbGUoKTsKIAotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDAs
IFNjcmlwdFN0YXRlKiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsK
LSAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7Ci0gICAgdm9pZCBh
ZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCwgRG9jdW1lbnQqID0gMCk7
Ci0KICAgICB2b2lkIGRlYnVnKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVu
dHM+KTsKICAgICB2b2lkIGVycm9yKFNjcmlwdFN0YXRlKiwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1
bWVudHM+KTsKICAgICB2b2lkIGluZm8oU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4pOwpAQCAtODcsMTIgKzc4LDYgQEAgcHVibGljOgogICAgIHZvaWQgZ3JvdXBDb2xs
YXBzZWQoU2NyaXB0U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZv
aWQgZ3JvdXBFbmQoKTsKIAotICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKLSAgICBzdGF0aWMgdm9p
ZCB1bm11dGUoKTsKLQotICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOwot
ICAgIHN0YXRpYyB2b2lkIHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKLQogICAgIFBh
c3NSZWZQdHI8TWVtb3J5SW5mbz4gbWVtb3J5KCkgY29uc3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOWIwMTU5NTE2MDVjYTVmNmIxODkyMWZjMWIxMWNiOGU4
ZTdlOTg1NC4uZGMyYTgwZWExM2UzYzc2NjM5NGY1ZjM5NDEzM2MwNjlhMmNlMmIxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgIk1lc3Nh
Z2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUg
IlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgpAQCAtNjk0
LDYgKzY5NSwxMyBAQCBDb25zb2xlKiBET01XaW5kb3c6OmNvbnNvbGUoKSBjb25zdAogICAgIHJl
dHVybiBtX2NvbnNvbGUuZ2V0KCk7CiB9CiAKK1BhZ2VDb25zb2xlKiBET01XaW5kb3c6OnBhZ2VD
b25zb2xlKCkgY29uc3QKK3sKKyAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgp
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpID8gbV9mcmFt
ZS0+cGFnZSgpLT5jb25zb2xlKCkgOiAwOworfQorCiBET01BcHBsaWNhdGlvbkNhY2hlKiBET01X
aW5kb3c6OmFwcGxpY2F0aW9uQ2FjaGUoKSBjb25zdAogewogICAgIGlmICghaXNDdXJyZW50bHlE
aXNwbGF5ZWRJbkZyYW1lKCkpCkBAIC04ODQsNyArODkyLDcgQEAgdm9pZCBET01XaW5kb3c6OmRp
c3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKFNlY3VyaXR5T3JpZ2luKiBpbnRlbmRl
ZFRhcmcKICAgICAgICAgaWYgKCFpbnRlbmRlZFRhcmdldE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9z
dFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsKICAgICAgICAgICAgIFN0cmlu
ZyBtZXNzYWdlID0gIlVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiArIGludGVuZGVkVGFyZ2V0
T3JpZ2luLT50b1N0cmluZygpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4gUmVj
aXBpZW50IGhhcyBvcmlnaW4gIiArIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3Ry
aW5nKCkgKyAiLlxuIjsKLSAgICAgICAgICAgIGNvbnNvbGUoKS0+YWRkTWVzc2FnZShTZWN1cml0
eU1lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsK
KyAgICAgICAgICAgIHBhZ2VDb25zb2xlKCktPmFkZE1lc3NhZ2UoU2VjdXJpdHlNZXNzYWdlU291
cmNlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgc3RhY2tUcmFjZSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xNzk4LDcgKzE4MDYsNyBAQCB2b2lkIERP
TVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIGlm
IChtZXNzYWdlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc29sZSgpLT5h
ZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UpOwor
ICAgIHBhZ2VDb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3Nh
Z2VMZXZlbCwgbWVzc2FnZSk7CiB9CiAKIFN0cmluZyBET01XaW5kb3c6OmNyb3NzRG9tYWluQWNj
ZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyogYWN0aXZlV2luZG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKaW5kZXggNDliZjhjOTg1MjQ2MDFkMjYxNWU2MTg3ZmY2Nzk3ZTFjM2FhZTc1NS4uNDlj
YjZlNjE3YmY1M2JiZWIyNzliOTg5MGFlNTA2N2JlYjU3MjNjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5oCkBAIC01OSw2ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBO
YXZpZ2F0b3I7CiAgICAgY2xhc3MgTm9kZTsKICAgICBjbGFzcyBQYWdlOworICAgIGNsYXNzIFBh
Z2VDb25zb2xlOwogICAgIGNsYXNzIFBlcmZvcm1hbmNlOwogICAgIGNsYXNzIFBvc3RNZXNzYWdl
VGltZXI7CiAgICAgY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwpAQCAtMjMzLDYgKzIzNCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxXZWJLaXRQb2ludD4gd2Via2l0
Q29udmVydFBvaW50RnJvbU5vZGVUb1BhZ2UoTm9kZSosIGNvbnN0IFdlYktpdFBvaW50KikgY29u
c3Q7ICAgICAgICAKIAogICAgICAgICBDb25zb2xlKiBjb25zb2xlKCkgY29uc3Q7CisgICAgICAg
IFBhZ2VDb25zb2xlKiBwYWdlQ29uc29sZSgpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgcHJpbnRF
cnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJik7CiAgICAgICAgIFN0cmluZyBjcm9zc0RvbWFpbkFj
Y2Vzc0Vycm9yTWVzc2FnZShET01XaW5kb3cqIGFjdGl2ZVdpbmRvdyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAppbmRleCBiYWM4YzVhMmIwOTU4OTlkZTU5OTZiOTYzNDIzZjE3MzVkNmI1NTEzLi4xMzFiZjg4
NWQ2ZDk4YmIzNjIwODIyZWViYjE2ZGQ2YWNlZmRhN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAg
LTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKICNpbmNsdWRlICJOZXR3b3Jr
U3RhdGVOb3RpZmllci5oIgogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgorI2luY2x1ZGUgIlBhZ2VD
b25zb2xlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGx1Z0luQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgpAQCAtMTc2LDYgKzE3Nyw3IEBAIFBhZ2U6OlBh
Z2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogI2VuZGlmCiAgICAgLCBtX2FsdGVybmF0aXZl
VGV4dENsaWVudChwYWdlQ2xpZW50cy5hbHRlcm5hdGl2ZVRleHRDbGllbnQpCiAgICAgLCBtX3Nj
cmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZChmYWxzZSkKKyAgICAsIG1fY29uc29sZShQYWdlQ29u
c29sZTo6Y3JlYXRlKHRoaXMpKQogewogICAgIEFTU0VSVChtX2VkaXRvckNsaWVudCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgKaW5kZXggYzBjNzMxODdiNmI4MjU1NjY5ZGMyNzMzNzZiYjYyMGMyODk0Yjk1ZC4u
OTFmYjllYTBjZWQxNDExNmM5YTFiY2ZhYzdmNDE1Mjk0ZTljY2IzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgK
QEAgLTc0LDYgKzc0LDcgQEAgY2xhc3MgSW5zcGVjdG9yQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9y
Q29udHJvbGxlcjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKIGNsYXNzIE5vZGU7Citj
bGFzcyBQYWdlQ29uc29sZTsKIGNsYXNzIFBhZ2VHcm91cDsKIGNsYXNzIFBsdWdJbkNsaWVudDsK
IGNsYXNzIFBsdWdpbkRhdGE7CkBAIC0zNzgsNiArMzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2F3TWVkaWFFbmdpbmUoY29uc3QgU3RyaW5nJiBlbmdpbmVOYW1lKTsKICAgICB2b2lkIHJlc2V0
U2Vlbk1lZGlhRW5naW5lcygpOwogCisgICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUoKSB7IHJldHVy
biBtX2NvbnNvbGUuZ2V0KCk7IH0KICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdDsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKQEAgLTUwNCw2ICs1
MDYsNyBAQCBwcml2YXRlOgogICAgIEFsdGVybmF0aXZlVGV4dENsaWVudCogbV9hbHRlcm5hdGl2
ZVRleHRDbGllbnQ7CiAKICAgICBib29sIG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkOwor
ICAgIE93blB0cjxQYWdlQ29uc29sZT4gbV9jb25zb2xlOwogCiAgICAgSGFzaFNldDxTdHJpbmc+
IG1fc2VlblBsdWdpbnM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2Vlbk1lZGlhRW5naW5lczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkwZWFhMWM5YTIzNGM0
MDE2MWI0ZjI0M2U5ZjgzMjkzYTZlZWQ1YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGUuY3BwCkBAIC0wLDAgKzEsMjExIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnNvbGVBUElUeXBlcy5oIgor
I2luY2x1ZGUgIkNvbnNvbGVUeXBlcy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgi
CisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
KyNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCisjaW5jbHVkZSAiU2NyaXB0VmFs
dWUuaCIKKyNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKKyNpbmNsdWRlICJT
ZXR0aW5ncy5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFt
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaW5jbHVkZSAiVHJhY2VFdmVu
dC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKyAgICBp
bnQgbXV0ZUNvdW50ID0gMDsKK30KKworUGFnZUNvbnNvbGU6OlBhZ2VDb25zb2xlKFBhZ2UqIHBh
Z2UpIDogbV9wYWdlKHBhZ2UpIHsgfQorCitQYWdlQ29uc29sZTo6flBhZ2VDb25zb2xlKCkgeyB9
CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnByaW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcm
IHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlcikKK3sKKyAgICBpZiAoIXNvdXJjZVVSTC5p
c0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiAwKQorICAgICAgICAgICAgcHJp
bnRmKCIlczolZDogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1iZXIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBwcmludGYoIiVzOiAiLCBzb3VyY2VVUkwudXRmOCgpLmRh
dGEoKSk7CisgICAgfQorfQorCit2b2lkIFBhZ2VDb25zb2xlOjpwcmludE1lc3NhZ2VTb3VyY2VB
bmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsKQor
eworICAgIGNvbnN0IGNoYXIqIHNvdXJjZVN0cmluZzsKKyAgICBzd2l0Y2ggKHNvdXJjZSkgewor
ICAgIGNhc2UgWE1MTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlhNTCI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSlNNZXNzYWdlU291cmNlOgorICAgICAgICBzb3Vy
Y2VTdHJpbmcgPSAiSlMiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5ldHdvcmtNZXNzYWdl
U291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiTkVUV09SSyI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmlu
ZyA9ICJDT05TT0xFQVBJIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdG9yYWdlTWVzc2Fn
ZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlNUT1JBR0UiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEFwcENhY2hlTWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5n
ID0gIkFQUENBQ0hFIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSZW5kZXJpbmdNZXNzYWdl
U291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiUkVOREVSSU5HIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDU1NNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAi
Q1NTIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTZWN1cml0eU1lc3NhZ2VTb3VyY2U6Cisg
ICAgICAgIHNvdXJjZVN0cmluZyA9ICJTRUNVUklUWSI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgT3RoZXJNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIiOwor
ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlVOS05PV04iOworICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBjb25zdCBjaGFyKiBsZXZlbFN0cmluZzsKKyAgICBzd2l0Y2ggKGxldmVsKSB7
CisgICAgY2FzZSBEZWJ1Z01lc3NhZ2VMZXZlbDoKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiREVC
VUciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExvZ01lc3NhZ2VMZXZlbDoKKyAgICAgICAg
bGV2ZWxTdHJpbmcgPSAiTE9HIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXYXJuaW5nTWVz
c2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJXQVJOIjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBFcnJvck1lc3NhZ2VMZXZlbDoKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiRVJS
T1IiOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgbGV2ZWxTdHJpbmcgPSAiVU5LTk9XTiI7CisgICAgICAgIGJyZWFr
OworICAgIH0KKworICAgIHByaW50ZigiJXMgJXM6Iiwgc291cmNlU3RyaW5nLCBsZXZlbFN0cmlu
Zyk7Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBs
b25nIHJlcXVlc3RJZGVudGlmaWVyLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgU3RyaW5n
IHVybDsKKyAgICBpZiAoZG9jdW1lbnQpCisgICAgICAgIHVybCA9IGRvY3VtZW50LT51cmwoKS5z
dHJpbmcoKTsKKyAgICB1bnNpZ25lZCBsaW5lID0gMDsKKyAgICBpZiAoZG9jdW1lbnQgJiYgZG9j
dW1lbnQtPnBhcnNpbmcoKSAmJiAhZG9jdW1lbnQtPmlzSW5Eb2N1bWVudFdyaXRlKCkgJiYgZG9j
dW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNlcigpKSB7CisgICAgICAgIFNjcmlwdGFibGVE
b2N1bWVudFBhcnNlciogcGFyc2VyID0gZG9jdW1lbnQtPnNjcmlwdGFibGVEb2N1bWVudFBhcnNl
cigpOworICAgICAgICBpZiAoIXBhcnNlci0+aXNXYWl0aW5nRm9yU2NyaXB0cygpICYmICFwYXJz
ZXItPmlzRXhlY3V0aW5nU2NyaXB0KCkpCisgICAgICAgICAgICBsaW5lID0gcGFyc2VyLT5saW5l
TnVtYmVyKCkub25lQmFzZWRJbnQoKTsKKyAgICB9CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIDAsIDAsIHJlcXVlc3RJZGVudGlmaWVyKTsKK30KKwor
dm9pZCBQYWdlQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2Fn
ZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiBjYWxsU3RhY2spCit7CisgICAgYWRkTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNz
YWdlLCBTdHJpbmcoKSwgMCwgY2FsbFN0YWNrLCAwKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3Rh
dGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCit7CisgICAgaWYgKG11dGVDb3Vu
dCAmJiBzb3VyY2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UpCisgICAgICAgIHJldHVybjsK
KworICAgIFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoY2FsbFN0YWNrKQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOworICAgIGVs
c2UKKyAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xl
KHBhZ2UsIHNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVO
dW1iZXIsIHN0YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7CisKKyAgICBpZiAocGFnZS0+c2V0dGlu
Z3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBw
YWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0NvbnNvbGUoc291cmNlLCBsZXZl
bCwgbWVzc2FnZSwgbGluZU51bWJlciwgdXJsKTsKKworICAgIGlmICghcGFnZS0+c2V0dGluZ3Mo
KS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoKSAmJiAhc2hvdWxkUHJp
bnRFeGNlcHRpb25zKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHByaW50U291cmNlVVJMQW5k
TGluZSh1cmwsIGxpbmVOdW1iZXIpOworICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJl
Zml4KHNvdXJjZSwgbGV2ZWwpOworCisgICAgcHJpbnRmKCIgJXNcbiIsIG1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7Cit9CisKKy8vIHN0YXRpYwordm9pZCBQYWdlQ29uc29sZTo6bXV0ZSgpCit7Cisg
ICAgbXV0ZUNvdW50Kys7Cit9CisKKy8vIHN0YXRpYwordm9pZCBQYWdlQ29uc29sZTo6dW5tdXRl
KCkKK3sKKyAgICBBU1NFUlQobXV0ZUNvdW50ID4gMCk7CisgICAgbXV0ZUNvdW50LS07Cit9CisK
K3N0YXRpYyBib29sIHByaW50RXhjZXB0aW9ucyA9IGZhbHNlOworCitib29sIFBhZ2VDb25zb2xl
OjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKQoreworICAgIHJldHVybiBwcmludEV4Y2VwdGlvbnM7
Cit9CisKK3ZvaWQgUGFnZUNvbnNvbGU6OnNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sIHBy
aW50KQoreworICAgIHByaW50RXhjZXB0aW9ucyA9IHByaW50OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjhjMDg5MjQx
MmZhMTVhZDUzYjliZjA1ZGIxMTUyMGU5ZTlhZWM0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBh
Z2VDb25zb2xlX2gKKyNkZWZpbmUgUGFnZUNvbnNvbGVfaAorCisjaW5jbHVkZSAiQ29uc29sZVR5
cGVzLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCisjaW5jbHVkZSAiU2NyaXB0U3Rh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdl
OworCitjbGFzcyBQYWdlQ29uc29sZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8
UGFnZUNvbnNvbGU+IGNyZWF0ZShQYWdlKiBwYWdlKSB7IHJldHVybiBhZG9wdFB0cihuZXcgUGFn
ZUNvbnNvbGUocGFnZSkpOyB9CisgICAgdmlydHVhbCB+UGFnZUNvbnNvbGUoKTsKKworICAgIHN0
YXRpYyB2b2lkIHByaW50U291cmNlVVJMQW5kTGluZShjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
dW5zaWduZWQgbGluZU51bWJlcik7CisgICAgc3RhdGljIHZvaWQgcHJpbnRNZXNzYWdlU291cmNl
QW5kTGV2ZWxQcmVmaXgoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsKTsKKworICAgIHZvaWQg
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiA9IDAsIFNjcmlwdFN0YXRlKiA9IDAsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFBhc3NSZWZQdHI8U2Ny
aXB0Q2FsbFN0YWNrPik7CisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVu
dGlmaWVyID0gMCwgRG9jdW1lbnQqID0gMCk7CisKKyAgICBzdGF0aWMgdm9pZCBtdXRlKCk7Cisg
ICAgc3RhdGljIHZvaWQgdW5tdXRlKCk7CisKKyAgICBzdGF0aWMgYm9vbCBzaG91bGRQcmludEV4
Y2VwdGlvbnMoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMoYm9v
bCk7CisKK3ByaXZhdGU6CisgICAgUGFnZUNvbnNvbGUoUGFnZSopOworCisgICAgUGFnZSogcGFn
ZSgpIHsgcmV0dXJuIG1fcGFnZTsgfTsKKworICAgIFBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBhZ2VDb25zb2xlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCmluZGV4IDBiODM0MGNkOTVjYWViZWZm
OGUxODFmNWExMzVmOTFjYzBlYzM3ODUuLjhlMjRiNzQyMTZmODljN2JkYzUxYmI1NGI5ZmY5NTUx
YWNjMTc3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGli
eHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNw
cApAQCAtMjQsMTIgKzI0LDEyIEBACiAKICNpZiBFTkFCTEUoWFNMVCkKIAotI2luY2x1ZGUgIkNv
bnNvbGUuaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xl
LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU291cmNlLmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnRQ
YXJzZXIuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlclNjb3BlLmgiCkBAIC0xNDQsOSAr
MTQ0LDEwIEBAIGJvb2wgWFNMU3R5bGVTaGVldDo6cGFyc2VTdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiAgICAgICAgIHhtbEZyZWVEb2MobV9zdHlsZXNoZWV0RG9jKTsKICAgICBtX3N0eWxl
c2hlZXREb2NUYWtlbiA9IGZhbHNlOwogCi0gICAgQ29uc29sZSogY29uc29sZSA9IDA7Ci0gICAg
aWYgKG93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAgICAgY29uc29sZSA9IG93bmVyRG9j
dW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKTsKKyAgICBQYWdlQ29uc29sZSogY29uc29s
ZSA9IDA7CisgICAgRnJhbWUqIGZyYW1lID0gb3duZXJEb2N1bWVudCgpLT5mcmFtZSgpOworICAg
IGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAgICBjb25zb2xlID0gZnJhbWUtPnBh
Z2UoKS0+Y29uc29sZSgpOwogCiAgICAgWE1MRG9jdW1lbnRQYXJzZXJTY29wZSBzY29wZShjYWNo
ZWRSZXNvdXJjZUxvYWRlcigpLCBYU0xUUHJvY2Vzc29yOjpnZW5lcmljRXJyb3JGdW5jLCBYU0xU
UHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYywgY29uc29sZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCmluZGV4IDUwMzgwMmM3ZmU3YjU2ZjVmNzJkMTc4
M2FiN2JjMzBjYjY1ODFhZGUuLjlkNTU2NzFjZmM4YzlhYjRkNzdiNzlmMmI5ZmFmMTE4YzMxZmYy
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcApAQCAt
MjcsMTAgKzI3LDEwIEBACiAjaW5jbHVkZSAiWFNMVFByb2Nlc3Nvci5oIgogCiAjaW5jbHVkZSAi
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJDb25zb2xlLmgiCi0jaW5jbHVkZSAi
RE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlJl
c291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgpAQCAtODIsNyArODIsNyBAQCB2b2lkIFhTTFRQcm9jZXNzb3I6Omdl
bmVyaWNFcnJvckZ1bmModm9pZCosIGNvbnN0IGNoYXIqLCAuLi4pCiAKIHZvaWQgWFNMVFByb2Nl
c3Nvcjo6cGFyc2VFcnJvckZ1bmModm9pZCogdXNlckRhdGEsIHhtbEVycm9yKiBlcnJvcikKIHsK
LSAgICBDb25zb2xlKiBjb25zb2xlID0gc3RhdGljX2Nhc3Q8Q29uc29sZSo+KHVzZXJEYXRhKTsK
KyAgICBQYWdlQ29uc29sZSogY29uc29sZSA9IHN0YXRpY19jYXN0PFBhZ2VDb25zb2xlKj4odXNl
ckRhdGEpOwogICAgIGlmICghY29uc29sZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzcsOSAr
MTM3LDEwIEBAIHN0YXRpYyB4bWxEb2NQdHIgZG9jTG9hZGVyRnVuYyhjb25zdCB4bWxDaGFyKiB1
cmksCiAgICAgICAgICAgICBnbG9iYWxDYWNoZWRSZXNvdXJjZUxvYWRlci0+cHJpbnRBY2Nlc3NE
ZW5pZWRNZXNzYWdlKHVybCk7CiAgICAgICAgIH0KIAotICAgICAgICBDb25zb2xlKiBjb25zb2xl
ID0gMDsKLSAgICAgICAgaWYgKGdsb2JhbFByb2Nlc3Nvci0+eHNsU3R5bGVzaGVldCgpLT5vd25l
ckRvY3VtZW50KCktPmZyYW1lKCkpCi0gICAgICAgICAgICBjb25zb2xlID0gZ2xvYmFsUHJvY2Vz
c29yLT54c2xTdHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPmNvbnNv
bGUoKTsKKyAgICAgICAgUGFnZUNvbnNvbGUqIGNvbnNvbGUgPSAwOworICAgICAgICBGcmFtZSog
ZnJhbWUgPSBnbG9iYWxQcm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJEb2N1bWVudCgp
LT5mcmFtZSgpOworICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAg
ICAgIGNvbnNvbGUgPSBmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCk7CiAgICAgICAgIHhtbFNldFN0
cnVjdHVyZWRFcnJvckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nvcjo6cGFyc2VFcnJvckZ1bmMp
OwogICAgICAgICB4bWxTZXRHZW5lcmljRXJyb3JGdW5jKGNvbnNvbGUsIFhTTFRQcm9jZXNzb3I6
OmdlbmVyaWNFcnJvckZ1bmMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNvcmVTdGF0aXN0aWNzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbQppbmRleCBiZjkxNzU5MDBjNThlMmE0NjYwNjA2NzIxZDUyMDk2NTA2Yjc1ODJj
Li4wNjlhYTQ3OTUzMjE2NTViOWNhMTA5YzYxYmFhYmQyMjgyNjAwOWNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KQEAgLTMzLDcgKzMzLDYgQEAKICNp
bXBvcnQgIldlYkZyYW1lSW50ZXJuYWwuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTTG9j
ay5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvTWVtb3J5U3RhdGlzdGljcy5oPgotI2ltcG9y
dCA8V2ViQ29yZS9Db25zb2xlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZvbnRDYWNoZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4K
QEAgLTQyLDYgKzQxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSWNvbkRhdGFiYXNlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0pTRE9NV2luZG93Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDYWNoZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlQ29uc29sZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qcmlu
dENvbnRleHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CkBAIC0xNjgsMTMgKzE2OCwxMyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKICsgKEJPT0wpc2hvdWxkUHJpbnRFeGNlcHRpb25zCiB7CiAgICAgSlNM
b2NrSG9sZGVyIGxvY2soSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpKTsKLSAgICBy
ZXR1cm4gQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7CisgICAgcmV0dXJuIFBhZ2VD
b25zb2xlOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKTsKIH0KIAogKyAodm9pZClzZXRTaG91bGRQ
cmludEV4Y2VwdGlvbnM6KEJPT0wpcHJpbnQKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RP
TVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotICAgIENvbnNvbGU6OnNldFNob3VsZFBy
aW50RXhjZXB0aW9ucyhwcmludCk7CisgICAgUGFnZUNvbnNvbGU6OnNldFNob3VsZFByaW50RXhj
ZXB0aW9ucyhwcmludCk7CiB9CiAKICsgKHZvaWQpZW1wdHlDYWNoZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193833</attachid>
            <date>2013-03-19 08:13:14 -0700</date>
            <delta_ts>2013-03-19 08:56:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111578-20130319190904.patch</filename>
            <type>text/plain</type>
            <size>49261</size>
            <attacher name="Sergey Ryazanov">serya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDA3MGUwNmRkYTM4MGNi
MWMxMDI4NTQ0ZTYxY2EzOWMyNzg1OTVjNC4uMWQ2Nzc5OGVlN2FlNWFlMjkwOTZjNWRjMzFhOWY3
NTM1MzQzZjUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTE2ICBTZXJn
ZXkgUnlhemFub3YgIDxzZXJ5YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogc3BsaXQgQ29uc29sZSBpbnRvIHR3byBlbnRpdGllcywgYSB3ZWItZmFjaW5nIGJvdW5kIG9i
amVjdCBhbmQgcGFnZSBjb25zb2xlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTExNTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3RoZXJ3aXNlLCBhIGxvdCBvZiBsb2dnaW5nIGluIFdlYkNvcmUgbmVl
ZHMgdG8gZ28gdGhyb3VnaCB0aGUgRE9NV2luZG93IHdoaWNoIGlzIHVubmVjZXNzYXJ5LgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJ
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5h
bWVzcGFjZVVSSSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6YWRkTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6dW5tdXRlQ29uc29sZSk6Cisg
ICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZVJ1bnRpbWVBZ2VudDo6dW5tdXRlQ29uc29sZSk6CisgICAgICAgICogcGFnZS9Db25zb2xlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmludGVybmFsQWRkTWVzc2FnZSk6CisgICAgICAgICogcGFn
ZS9Db25zb2xlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnNvbGUpOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
cGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6cHJpbnRFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvRE9N
V2luZG93Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERPTVdpbmRvdyk6CisgICAg
ICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OlBhZ2UpOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlOjpjb25zb2xlKToKKyAgICAgICAgKFBhZ2UpOgorICAgICAgICAqIHBhZ2UvUGFnZUNv
bnNvbGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlOjpQYWdlQ29u
c29sZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xl
Ojp+UGFnZUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnByaW50U291
cmNlVVJMQW5kTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZTo6cHJpbnRNZXNz
YWdlU291cmNlQW5kTGV2ZWxQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OmFkZE1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6Om11dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6OnVubXV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uc29sZTo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDb25zb2xlOjpzZXRTaG91bGRQcmludEV4Y2VwdGlvbnMpOgorICAgICAgICAqIHBhZ2UvUGFn
ZUNvbnNvbGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmguCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFBhZ2VDb25zb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OlBhZ2VDb25zb2xlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNvbGU6
OnBhZ2UpOgorICAgICAgICAqIHhtbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU0xTdHlsZVNoZWV0OjpwYXJzZVN0cmluZyk6CisgICAgICAgICogeG1sL1hT
TFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTTFRQcm9jZXNzb3I6
OnBhcnNlRXJyb3JGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OmRvY0xvYWRlckZ1bmMpOgorCiAy
MDEzLTAzLTE5ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIE92ZXJ2aWV3R3JpZCBhbmQgT3ZlcnZpZXdXaW5kb3cg
aW50byBzZXBhcmF0ZSBmaWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDNhNTQwYzc2MDUzZGZjMGU4
NWI2ZWFhNGQzOTJkZGQyNGYyNGUzZTEuLmQyZTg0NGJmNmEwNTBmNDZmZGFhOTU3Y2ExODI5NmFh
MzIwMmUzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0xNiAg
U2VyZ2V5IFJ5YXphbm92ICA8c2VyeWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHNwbGl0IENvbnNvbGUgaW50byB0d28gZW50aXRpZXMsIGEgd2ViLWZhY2luZyBib3Vu
ZCBvYmplY3QgYW5kIHBhZ2UgY29uc29sZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExMTU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE90aGVyd2lzZSwgYSBsb3Qgb2YgbG9nZ2luZyBpbiBXZWJDb3Jl
IG5lZWRzIHRvIGdvIHRocm91Z2ggdGhlIERPTVdpbmRvdyB3aGljaCBpcyB1bm5lY2Vzc2FyeS4K
KworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgrW1dlYkNv
cmVTdGF0aXN0aWNzIHNob3VsZFByaW50RXhjZXB0aW9uc10pOgorICAgICAgICAoK1tXZWJDb3Jl
U3RhdGlzdGljcyBzZXRTaG91bGRQcmludEV4Y2VwdGlvbnM6XSk6CisKIDIwMTMtMDMtMTcgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBMZWdhY3kgQ1NTIHZlbmRv
ciBwcmVmaXhlcyBzaG91bGQgb25seSB3b3JrIGZvciBEYXNoYm9hcmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggOTZjOTQzZDgzYmJkNTJlODhhZmNlMzdhYTEyYzAzMjI2OGYwMjY2Yy4uY2UyNWVl
NjkyYTY3NGQ2ZGU2MTk0NjkzNDFhZDVmZGZjMTllYjYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE3ODgsNiArMTc4OCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBwYWdlL05hdmln
YXRvckJhc2UuY3BwCiAgICAgcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAKICAgICBwYWdlL1Bh
Z2UuY3BwCisgICAgcGFnZS9QYWdlQ29uc29sZS5jcHAKICAgICBwYWdlL1BhZ2VHcm91cC5jcHAK
ICAgICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKICAgICBwYWdlL1BhZ2VTZXJpYWxp
emVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZTNhNDJlMjI2MzBmNDc4
MGU4Nzc4ZmQyYTQzNTc2NjJmNmQ0Zjc5Mi4uZmYzOGM0Mzg0MGNhNTdmODM5MDY5Njg3ZGViYTI4
OTNkZDFiNDFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00MjM1LDYgKzQy
MzUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvT3JpZ2lu
QWNjZXNzRW50cnkuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCmluZGV4IDU3ZWE3MDZkMjUwMmUwZThlOGFiYTA5ODczOGRhNGJlNzI0Y2RjNTguLjk2
NzI5YWZjOGU3NjQ3ODBjZmUxNzUwZTM2MDFmMDExYThjZGFhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
OTQ3LDYgKzk0Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvTmF2aWdhdG9yQmFzZS5jcHAg
XAogICAgIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuY3BwIFwKICAgICBwYWdlL1BhZ2UuY3BwIFwK
KyAgICBwYWdlL1BhZ2VDb25zb2xlLmNwcCBcCiAgICAgcGFnZS9QYWdlR3JvdXAuY3BwIFwKICAg
ICBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgXAogICAgIHBhZ2UvUGFnZVZpc2liaWxp
dHlTdGF0ZS5jcHAgXApAQCAtMjE0NCw2ICsyMTQ1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGFn
ZS9QYWdlR3JvdXAuaCBcCiAgICAgcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCBcCiAgICAg
cGFnZS9QYWdlLmggXAorICAgIHBhZ2UvUGFnZUNvbnNvbGUuaCBcCiAgICAgcGFnZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmggXAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmggXAogICAgIHBhZ2UvUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY1MGQ2YjQ0MjMw
YzljY2JkYjUyODRkZmE0ZWY4ZjM2MjRmMTc4YzYuLjgyMmVmYTg5NmI3NTZhYjFhYzI3NDM0OWU2
MjJmMDZhODI1MDU3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05MzYsOCArOTM2LDYgQEAg
X19aTjdXZWJDb3JlNldpZGdldDhzZXRGb2N1c0ViCiBfX1pON1dlYkNvcmU2V2lkZ2V0OXNldFBh
cmVudEVQTlNfMTBTY3JvbGxWaWV3RQogX19aTjdXZWJDb3JlNldpZGdldEQyRXYKIF9fWk43V2Vi
Q29yZTZ0b05vZGVFTjNKU0M3SlNWYWx1ZUUKLV9fWk43V2ViQ29yZTdDb25zb2xlMjFzaG91bGRQ
cmludEV4Y2VwdGlvbnNFdgotX19aTjdXZWJDb3JlN0NvbnNvbGUyNHNldFNob3VsZFByaW50RXhj
ZXB0aW9uc0ViCiBfX1pON1dlYkNvcmU3RWxlbWVudDEyc2V0QXR0cmlidXRlRVJLTjNXVEYxMkF0
b21pY1N0cmluZ0VTNF9SaQogX19aTjdXZWJDb3JlN0VsZW1lbnQxMnNldEF0dHJpYnV0ZUVSS05T
XzEzUXVhbGlmaWVkTmFtZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU3RWxl
bWVudDIxYm91bmRzSW5Sb290Vmlld1NwYWNlRXYKQEAgLTE3MjUsNiArMTcyMyw4IEBAIF9fWk43
V2ViQ29yZTEwaGFuZEN1cnNvckV2CiBfX1pON1dlYkNvcmUxMUNhY2hlZEltYWdlNWltYWdlRXYK
IF9fWk43V2ViQ29yZTExZ2xvYmFsUG9pbnRFUks4X05TUG9pbnRQOE5TV2luZG93CiBfX1pON1dl
YkNvcmUxMXRvVXNlclNwYWNlRVJLN19OU1JlY3RQOE5TV2luZG93CitfX1pON1dlYkNvcmUxMVBh
Z2VDb25zb2xlMjFzaG91bGRQcmludEV4Y2VwdGlvbnNFdgorX19aTjdXZWJDb3JlMTFQYWdlQ29u
c29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5k
bGVyMTBtb3VzZU1vdmVkRVA3TlNFdmVudAogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMHdo
ZWVsRXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjEybW91c2VEcmFn
Z2VkRVA3TlNFdmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDE1ZWI0MTE5YjAyNGU1OGViYjc2OTAz
OGMwYTFmOWUwNTk3ZmFhMjQuLjM1YTUxNjU0NmE2ZTM2YTBjZjI5M2I3MmFlMzljYzA3ZDk2ZGYz
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyNTIsNiArMjI1Miw3IEBACiAgICAgICAgICAgICAn
cGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvT3JpZ2luQWNj
ZXNzRW50cnkuaCcsCiAgICAgICAgICAgICAncGFnZS9QYWdlLmNwcCcsCisgICAgICAgICAgICAn
cGFnZS9QYWdlQ29uc29sZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvUGFnZUdyb3VwLmNwcCcs
CiAgICAgICAgICAgICAncGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4
IDc1MDNkYzI1YTE0MjliOWZkNzAwMDg1ZTY5ZjQxM2JhZWVmNzdkZmQuLjFiODIyNTRjODlmMjU0
NmJjNDZhYWE4ZTg1NmU5OTQwMGZiZjgyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAtMTU1NTks
NyArMTU1NTksNiBAQCBfX1pOM1dURjI5UmVmUHRySGFzaE1hcFJhd0tleVRyYW5zbGF0b3JJUE43
V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXJFU3Q0cGFpcklOU182UgogX19aTjNXVEY2VmVjdG9ySU5T
XzZSZWZQdHJJTjdXZWJDb3JlMTVBcmNoaXZlUmVzb3VyY2VFRUVMbTBFRUQxRXYKIF9fWk43V2Vi
Q29yZTVUaW1lcklOU18xNERvY3VtZW50TG9hZGVyRUU1ZmlyZWRFdgogX19aTjdXZWJDb3JlMTRE
b2N1bWVudExvYWRlcjM2c3Vic3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkRVBOU181
VGltZXJJUzBfRUUKLV9fWk43V2ViQ29yZTdDb25zb2xlMjRzZXRTaG91bGRQcmludEV4Y2VwdGlv
bnNFYgogX19aTjdXZWJDb3JlMTZqc0NsaXBib2FyZFR5cGVzRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk5LN1dlYkNvcmUxMUpTQ2xpcGJvYXJk
NXR5cGVzRVBOM0pTQzlFeGVjU3RhdGVFCiBfX1pOSzdXZWJDb3JlMTJDbGlwYm9hcmRNYWM1dHlw
ZXNFdgpAQCAtMTU2NzksNiArMTU2NzgsNyBAQCBfX1pON1dlYkNvcmUyM1JlbmRlckZpbGVVcGxv
YWRDb250cm9sMTlyZWNlaXZlRHJvcHBlZEZpbGVzRVJLTjNXVEY2VmVjdG9ySU5TMV82UwogX19a
TjdXZWJDb3JlMjNSZW5kZXJGaWxlVXBsb2FkQ29udHJvbDE5YWxsb3dzTXVsdGlwbGVGaWxlc0V2
CiBfX1pON1dlYkNvcmUxMUZpbGVDaG9vc2VyMTBjaG9vc2VGaWxlRVJLTjNXVEY2U3RyaW5nRQog
X19aTjdXZWJDb3JlMTFGaWxlQ2hvb3NlcjExY2hvb3NlRmlsZXNFUktOM1dURjZWZWN0b3JJTlMx
XzZTdHJpbmdFTG0wRUVFCitfX1pON1dlYkNvcmUxMVBhZ2VDb25zb2xlMjRzZXRTaG91bGRQcmlu
dEV4Y2VwdGlvbnNFYgogX19aVGhuMTg0X043V2ViQ29yZTIzUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wxOGNob29zZUljb25Gb3JGaWxlc0VQTlNfMTFGaWxlQ2hvb3NlckVSS04zV1RGNlZlY3RvcklO
UzNfNlN0cmluZ0VMbTBFRUUKIF9fWk43V2ViQ29yZTZDaHJvbWUxOGNob29zZUljb25Gb3JGaWxl
c0VSS04zV1RGNlZlY3RvcklOUzFfNlN0cmluZ0VMbTBFRUVQTlNfMTFGaWxlQ2hvb3NlckUKIF9f
Wk43V2ViQ29yZTRJY29uMThjcmVhdGVJY29uRm9yRmlsZXNFUktOM1dURjZWZWN0b3JJTlMxXzZT
dHJpbmdFTG0wRUVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IGIwYWViNGVjM2NmZWI2MDU2MzRjMjViOGYxZjA0ZTNjYzVmZjAyODguLmQxMTg2
M2Q3MDQ0ZWU5MDBlOTc3YTU5NjRlMGZlZTI0MTZkNDVjOGYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzU5MCw2ICsyNzU5MCwxNCBAQAog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQ
YWdlQ29uc29sZS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBhZ2VcUGFnZUNvbnNvbGUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxQYWdlR3JvdXAuY3BwIgogCQkJCT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDFiMTFl
YzZkNGZmMzQ2ODM0ZjJhMzQwOWFiNWQ1ZGZkMWFmOWQ3YjMuLjNjMDI5YWQ5YTA0NWUyNGI1ZTZj
MTI5NzQzMTU4MGI4YmY1Y2VhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMzkzNyw2ICszOTM3LDcgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcTmF2aWdhdG9yQmFzZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwYWdlXE9yaWdpbkFjY2Vzc0VudHJ5LmNwcCIgLz4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHBhZ2VcUGFnZS5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwYWdlXFBhZ2VDb25zb2xlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZUdyb3VwLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBh
Z2VcUGFnZVNlcmlhbGl6ZXIuY3BwIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGU3YTdiMjhmYzg5ZmRi
MmExNjMwYjRlY2I3NDZkZGRmMzg1MDA0M2EuLjc4NGM2ZTU3NWU0NGVmZTI3M2E3MTEyMmM0N2Ni
OWU5ZGQ5OTU5MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTY2OTYsNiArNjY5Niw5IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2UuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwv
RmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFn
ZVxQYWdlQ29uc29sZS5jcHAiPgorICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXFBhZ2VHcm91cC5jcHAi
PgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2Zj
ZWRmN2RjYmQxMzIyYWNkYjk4OWVkMGQwM2UyYzQyNzA2NjVlYi4uNjYxNGRlMTIzYjNmMzQ1Zjll
ZjNmOGEyNmY0YTYzNGZhOWI5NDMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjE1Myw2ICs2MTUzLDggQEAKIAkJRDc2MTNB
NTAxNDc0RjEzRjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzYxM0E0RTE0NzRGMTNGMDBEQjg2MDYg
LyogV2ViS2l0TmFtZWRGbG93LmNwcCAqLzsgfTsKIAkJRDc2MTNBQzQxNDc1M0U1NjAwREI4NjA2
IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEQ3NjEzQUMyMTQ3NTNFNTYwMERCODYwNiAvKiBKU1dlYktpdE5hbWVk
Rmxvdy5jcHAgKi87IH07CiAJCUQ4QjYxNTJGMTAzMjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ4QjYxNTJFMTAz
MjQ5NTEwMEM4NTU0QSAvKiBDb29raWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVDMEYgLyogUGFnZUNvbnNv
bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREFB
Q0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLzsgfTsKKwkJREFFRDIw
MzExNkYyNDQ0ODAwNzBFQzBGIC8qIFBhZ2VDb25zb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFn
ZUNvbnNvbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlEQjIzQzJDQjBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREIyM0MyQzkw
QTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmNwcCAqLzsgfTsKIAkJREIy
M0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91dGRlbnRDb21tYW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQjIzQzJDQTBBNTA4RDI5MDAy
NDg5RUIgLyogSW5kZW50T3V0ZGVudENvbW1hbmQuaCAqLzsgfTsKIAkJREQwNUZFMEQwQjhCQTND
NjAwOUFDREZFIC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29y
ZU9iakNFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTM4NjIsNiArMTM4NjQsOCBAQAogCQlENzYxM0FDMjE0NzUzRTU2MDBEQjg2MDYg
LyogSlNXZWJLaXROYW1lZEZsb3cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXZWJLaXROYW1lZEZsb3cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlENzYxM0FDMzE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXROYW1lZEZsb3cuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29raWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VDb25zb2xlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREFBQ0IzREExNkYyNDE2NDAwNjY2MTM1
IC8qIFBhZ2VDb25zb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhZ2VD
b25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURCMjNDMkM5MEE1MDhEMjkw
MDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5kZW50T3V0ZGVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlEQjIzQzJDQTBBNTA4RDI5MDAyNDg5RUIgLyogSW5kZW50T3V0ZGVu
dENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGVudE91dGRl
bnRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUREMDVGRTBCMEI4QkEz
QzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU9iakNFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE2NDc4LDYgKzE2NDgyLDggQEAKIAkJCQk5NzVDQTI4NzEzMDM2NUY4MDBFOTlBRDkg
LyogQ3J5cHRvLmNwcCAqLywKIAkJCQk5NzVDQTI4ODEzMDM2NUY4MDBFOTlBRDkgLyogQ3J5cHRv
LmggKi8sCiAJCQkJOTc1Q0EyODkxMzAzNjVGODAwRTk5QUQ5IC8qIENyeXB0by5pZGwgKi8sCisJ
CQkJREFBQ0IzRDkxNkYyNDE2NDAwNjY2MTM1IC8qIFBhZ2VDb25zb2xlLmNwcCAqLywKKwkJCQlE
QUFDQjNEQTE2RjI0MTY0MDA2NjYxMzUgLyogUGFnZUNvbnNvbGUuaCAqLywKIAkJCQlDQ0MyQjUx
MDE1RjYxMzA2MDA0OENERDYgLyogRGV2aWNlQ2xpZW50LmggKi8sCiAJCQkJQ0NDMkI1MTExNUY2
MTMwNjAwNDhDREQ2IC8qIERldmljZUNvbnRyb2xsZXIuY3BwICovLAogCQkJCUNDQzJCNTEyMTVG
NjEzMDYwMDQ4Q0RENiAvKiBEZXZpY2VDb250cm9sbGVyLmggKi8sCkBAIC0yNjc2NCw2ICsyNjc3
MCw3IEBACiAJCQkJOTc3RTJFMEYxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0UyRTBGMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBa
ZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREFFRDIwMzExNkYyNDQ0ODAwNzBFQzBGIC8q
IFBhZ2VDb25zb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI5OTcxLDYgKzI5OTc4LDcgQEAKIAkJ
CQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9s
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQUVEMjAzMDE2RjI0NDJCMDA3MEVDMEYgLyogUGFn
ZUNvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYTliMzRhNjU2Yzhm
ZmVhMWU3OWUxY2RlNmY3NmY4ZjYwZDQ3OTg0Yi4uZDBhNTAxMWViOWQxYjZkYjEyOTg5OGExZjc0
NzYxZThmOGQ4YTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMjYsMTIgKzI2LDEzIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2lu
Y2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3Vz
dG9tLmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogCkBAIC03OCw3ICs3OSw4IEBAIFN0cmlu
ZyBKU0N1c3RvbVhQYXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmlu
ZyYgcHJlZml4KQogICAgICAgICBjYWxsVHlwZSA9IG1fY3VzdG9tUmVzb2x2ZXItPm1ldGhvZFRh
YmxlKCktPmdldENhbGxEYXRhKG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCksIGNhbGxEYXRhKTsKICAg
ICAgICAgaWYgKGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewogICAgICAgICAgICAgLy8gRklY
TUU6IFBhc3MgYWN0dWFsIGxpbmUgbnVtYmVyIGFuZCBzb3VyY2UgVVJMLgotICAgICAgICAgICAg
bV9nbG9iYWxPYmplY3QtPmltcGwoKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNv
dXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJYUGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBh
IGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2QuIik7CisgICAgICAgICAgICBpZiAoUGFnZUNvbnNv
bGUqIGNvbnNvbGUgPSBtX2dsb2JhbE9iamVjdC0+aW1wbCgpLT5wYWdlQ29uc29sZSgpKQorICAg
ICAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9va3VwTmFtZXNw
YWNlVVJJIG1ldGhvZC4iKTsKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAg
fQogICAgICAgICBmdW5jdGlvbiA9IG1fY3VzdG9tUmVzb2x2ZXIuZ2V0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tWFBhdGhO
U1Jlc29sdmVyLmNwcAppbmRleCBiOTU0ZmZlZDFlZDM2OGRkZWM3MmZiMTJmM2YyYjdkODgxYzk1
YTE0Li5jYWUzNDg5YjVkMDBmODk2Yzg3MDA1NTY0OWZmNzU2Y2Y5YWVhNjQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHAKQEAgLTMwLDggKzMwLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiVjhDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCIKIAotI2luY2x1ZGUgIkNvbnNv
bGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC02OSw3ICs3MSw5IEBAIFN0cmluZyBWOEN1c3RvbVhQ
YXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQog
ICAgIH0KIAogICAgIGlmIChsb29rdXBOYW1lc3BhY2VVUklGdW5jLklzRW1wdHkoKSAmJiAhbV9y
ZXNvbHZlci0+SXNGdW5jdGlvbigpKSB7Ci0gICAgICAgIGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5n
U3RhdGU6Omluc3RhbmNlKCkpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBFcnJvck1lc3NhZ2VMZXZlbCwgIlhQYXRoTlNSZXNvbHZlciBkb2VzIG5vdCBoYXZlIGEgbG9v
a3VwTmFtZXNwYWNlVVJJIG1ldGhvZC4iKTsKKyAgICAgICAgRnJhbWUqIGZyYW1lID0gYWN0aXZl
RE9NV2luZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSktPmZyYW1lKCk7CisgICAgICAgIGlm
IChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y29u
c29sZSgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJY
UGF0aE5TUmVzb2x2ZXIgZG9lcyBub3QgaGF2ZSBhIGxvb2t1cE5hbWVzcGFjZVVSSSBtZXRob2Qu
Iik7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCmluZGV4IDBmN2UyY2Q1ODgyYTIxOWI3ZGRlZjUwMWQ4MjUyOTMzZWNjNDA1OWUuLjBjOTgx
ODE3MTY2ZTBlOWVhNDRiOWFlY2EyNTZhMmNiMDY3N2I2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcApAQCAtNDIsNyArNDIsNiBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbW1lbnQuaCIKLSNpbmNsdWRlICJDb25zb2xlLmgi
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiQ29udGV4dEZl
YXR1cmVzLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCkBAIC0xMjQsNiArMTIzLDcgQEAKICNp
bmNsdWRlICJOb2RlVHJhdmVyc2FsLmgiCiAjaW5jbHVkZSAiTm9kZVdpdGhJbmRleC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VH
cm91cC5oIgogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKQEAgLTQ4NDQsMTAgKzQ4NDQsOCBAQCB2b2lkIERvY3VtZW50
OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKERPTVdpbmRvdyog
d2luZG93ID0gZG9tV2luZG93KCkpIHsKLSAgICAgICAgaWYgKENvbnNvbGUqIGNvbnNvbGUgPSB3
aW5kb3ctPmNvbnNvbGUoKSkKLSAgICAgICAgICAgIGNvbnNvbGUtPmFkZE1lc3NhZ2Uoc291cmNl
LCBsZXZlbCwgbWVzc2FnZSwgcmVxdWVzdElkZW50aWZpZXIsIHRoaXMpOwotICAgIH0KKyAgICBp
ZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y29uc29sZSgpLT5h
ZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlz
KTsKIH0KIAogdm9pZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwg
TWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIpCkBAIC00ODU3LDEwICs0ODU1LDggQEAgdm9pZCBEb2N1bWVudDo6YWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChET01XaW5kb3cqIHdpbmRvdyA9IGRv
bVdpbmRvdygpKSB7Ci0gICAgICAgIGlmIChDb25zb2xlKiBjb25zb2xlID0gd2luZG93LT5jb25z
b2xlKCkpCi0gICAgICAgICAgICBjb25zb2xlLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1l
c3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElk
ZW50aWZpZXIpOwotICAgIH0KKyAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAg
ICAgICAgcGFnZS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2Us
IHNvdXJjZVVSTCwgbGluZU51bWJlciwgY2FsbFN0YWNrLCBzdGF0ZSwgcmVxdWVzdElkZW50aWZp
ZXIpOwogfQogCiBjb25zdCBTZWN1cml0eU9yaWdpbiogRG9jdW1lbnQ6OnRvcE9yaWdpbigpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcApp
bmRleCAxNjIyMmVlNjUxZDc2YTA0Njk1NGI3ZmJhZTUxYzhiZmRiMDAyN2Y3Li4yMDBmYjJjZjc0
NTYwYjU1YzU3Yjk0ZjExOGE2NGRjZGQ2YzBmZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM0LDExICszNCwxMSBAQAogCiAjaW5j
bHVkZSAiUGFnZURlYnVnZ2VyQWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JPdmVybGF5LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNp
bmNsdWRlICJQYWdlQ29uc29sZS5oIgogI2luY2x1ZGUgIlBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04OCwxMiArODgsMTIgQEAgUGFnZVNjcmlwdERl
YnVnU2VydmVyJiBQYWdlRGVidWdnZXJBZ2VudDo6c2NyaXB0RGVidWdTZXJ2ZXIoKQogCiB2b2lk
IFBhZ2VEZWJ1Z2dlckFnZW50OjptdXRlQ29uc29sZSgpCiB7Ci0gICAgQ29uc29sZTo6bXV0ZSgp
OworICAgIFBhZ2VDb25zb2xlOjptdXRlKCk7CiB9CiAKIHZvaWQgUGFnZURlYnVnZ2VyQWdlbnQ6
OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6OnVubXV0ZSgpOworICAgIFBhZ2VDb25z
b2xlOjp1bm11dGUoKTsKIH0KIAogSW5qZWN0ZWRTY3JpcHQgUGFnZURlYnVnZ2VyQWdlbnQ6Omlu
amVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IGludCog
ZXhlY3V0aW9uQ29udGV4dElkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwCmluZGV4IDc3YjQwZmEzMTJhN2E0ZjMxYzYzNzMyZmQzNzY0ZTA4OWY4MTcy
NmUuLmE4NDMxYmEwZmE3OGNjODQxNWI4NDRjMjIzZTFiMDM0ZWIyZTk2NjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTM0LDcgKzM0LDYg
QEAKIAogI2luY2x1ZGUgIlBhZ2VSdW50aW1lQWdlbnQuaCIKIAotI2luY2x1ZGUgIkNvbnNvbGUu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAj
aW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCkBAIC00Miw2ICs0MSw3IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9yU3RhdGUuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKIAogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6
OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlvbjsKQEAgLTE0OCwxMiArMTQ4LDEyIEBAIEluamVj
dGVkU2NyaXB0IFBhZ2VSdW50aW1lQWdlbnQ6OmluamVjdGVkU2NyaXB0Rm9yRXZhbChFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsCiAKIHZvaWQgUGFnZVJ1bnRpbWVBZ2VudDo6bXV0ZUNvbnNvbGUo
KQogewotICAgIENvbnNvbGU6Om11dGUoKTsKKyAgICBQYWdlQ29uc29sZTo6bXV0ZSgpOwogfQog
CiB2b2lkIFBhZ2VSdW50aW1lQWdlbnQ6OnVubXV0ZUNvbnNvbGUoKQogewotICAgIENvbnNvbGU6
OnVubXV0ZSgpOworICAgIFBhZ2VDb25zb2xlOjp1bm11dGUoKTsKIH0KIAogdm9pZCBQYWdlUnVu
dGltZUFnZW50OjpyZXBvcnRFeGVjdXRpb25Db250ZXh0Q3JlYXRpb24oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
c29sZS5jcHAKaW5kZXggZWE1MzdjNGZiMjA5MGQ0MDEwY2YwYWY2MDY5ZGMwOWEyMjNiMGQ5YS4u
NTQ0NWE2Y2Q0NWZkOWFlNDA1OGVkZDdhMTc1MjA5MzAwZmNlZTUxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnNvbGUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIk1lbW9yeUluZm8uaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVk
ZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJTY3Jp
cHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKQEAgLTYxLDEwICs2
Miw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotbmFtZXNwYWNlIHsKLSAgICBpbnQgbXV0
ZUNvdW50ID0gMDsKLX0KLQogQ29uc29sZTo6Q29uc29sZShGcmFtZSogZnJhbWUpCiAgICAgOiBE
T01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKIHsKQEAgLTc0LDEyNiArNzEsNiBAQCBDb25zb2xlOjp+
Q29uc29sZSgpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIHByaW50U291cmNlVVJMQW5kTGluZShjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlcikKLXsKLSAgICBpZiAoIXNv
dXJjZVVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKGxpbmVOdW1iZXIgPiAwKQotICAgICAg
ICAgICAgcHJpbnRmKCIlczolZDogIiwgc291cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGxpbmVOdW1i
ZXIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcmludGYoIiVzOiAiLCBzb3VyY2VVUkwu
dXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3Vy
Y2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVs
KQotewotICAgIGNvbnN0IGNoYXIqIHNvdXJjZVN0cmluZzsKLSAgICBzd2l0Y2ggKHNvdXJjZSkg
ewotICAgIGNhc2UgWE1MTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlhN
TCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSlNNZXNzYWdlU291cmNlOgotICAgICAgICBz
b3VyY2VTdHJpbmcgPSAiSlMiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE5ldHdvcmtNZXNz
YWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiTkVUV09SSyI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6Ci0gICAgICAgIHNvdXJjZVN0
cmluZyA9ICJDT05TT0xFQVBJIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTdG9yYWdlTWVz
c2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlNUT1JBR0UiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEFwcENhY2hlTWVzc2FnZVNvdXJjZToKLSAgICAgICAgc291cmNlU3Ry
aW5nID0gIkFQUENBQ0hFIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZW5kZXJpbmdNZXNz
YWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiUkVOREVSSU5HIjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBDU1NNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcg
PSAiQ1NTIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBTZWN1cml0eU1lc3NhZ2VTb3VyY2U6
Ci0gICAgICAgIHNvdXJjZVN0cmluZyA9ICJTRUNVUklUWSI7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgT3RoZXJNZXNzYWdlU291cmNlOgotICAgICAgICBzb3VyY2VTdHJpbmcgPSAiT1RIRVIi
OwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgc291cmNlU3RyaW5nID0gIlVOS05PV04iOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0KLSAgICBjb25zdCBjaGFyKiBsZXZlbFN0cmluZzsKLSAgICBzd2l0Y2ggKGxldmVs
KSB7Ci0gICAgY2FzZSBEZWJ1Z01lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAi
REVCVUciOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExvZ01lc3NhZ2VMZXZlbDoKLSAgICAg
ICAgbGV2ZWxTdHJpbmcgPSAiTE9HIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXYXJuaW5n
TWVzc2FnZUxldmVsOgotICAgICAgICBsZXZlbFN0cmluZyA9ICJXQVJOIjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBFcnJvck1lc3NhZ2VMZXZlbDoKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAi
RVJST1IiOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgbGV2ZWxTdHJpbmcgPSAiVU5LTk9XTiI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KLQotICAgIHByaW50ZigiJXMgJXM6Iiwgc291cmNlU3RyaW5nLCBsZXZlbFN0
cmluZyk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJj
ZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBTdHJpbmcg
dXJsOwotICAgIGlmIChkb2N1bWVudCkKLSAgICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0
cmluZygpOwotICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1
bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVudC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1
bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkpIHsKLSAgICAgICAgU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2Vy
KCk7Ci0gICAgICAgIGlmICghcGFyc2VyLT5pc1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNl
ci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKLSAgICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVO
dW1iZXIoKS5vbmVCYXNlZEludCgpOwotICAgIH0KLSAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2
ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwgMCwgcmVxdWVzdElkZW50aWZpZXIpOwotfQotCi12
b2lkIENvbnNvbGU6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZl
bCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKQotewotICAgIGFkZE1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwg
U3RyaW5nKCksIDAsIGNhbGxTdGFjaywgMCk7Ci19Ci0KLXZvaWQgQ29uc29sZTo6YWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrLCBTY3JpcHRTdGF0ZSogc3RhdGUsIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCi17Ci0gICAgaWYgKG11dGVDb3VudCAmJiBzb3Vy
Y2UgIT0gQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIFBh
Z2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoY2FsbFN0YWNrKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlwZSwgbGV2ZWws
IG1lc3NhZ2UsIGNhbGxTdGFjaywgcmVxdWVzdElkZW50aWZpZXIpOwotICAgIGVsc2UKLSAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25zb2xlKHBhZ2UsIHNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmVOdW1iZXIsIHN0
YXRlLCByZXF1ZXN0SWRlbnRpZmllcik7Ci0KLSAgICBpZiAoIW1fZnJhbWUtPnNldHRpbmdzKCkg
fHwgbV9mcmFtZS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgdXJsKTsKLQotICAgIGlm
ICghbV9mcmFtZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVu
YWJsZWQoKSAmJiAhc2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHByaW50U291cmNlVVJMQW5kTGluZSh1cmwsIGxpbmVOdW1iZXIpOwotICAgIHByaW50TWVz
c2FnZVNvdXJjZUFuZExldmVsUHJlZml4KHNvdXJjZSwgbGV2ZWwpOwotCi0gICAgcHJpbnRmKCIg
JXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVybmFs
QWRkTWVzc2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxTY3JpcHRBcmd1bWVudHM+IHBycEFy
Z3VtZW50cywgYm9vbCBhY2NlcHROb0FyZ3VtZW50cyA9IGZhbHNlLCBib29sIHByaW50VHJhY2Ug
PSBmYWxzZSkKIHsKICAgICBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMgPSBwcnBB
cmd1bWVudHM7CkBAIC0yMTIsMTcgKzg5LDE3IEBAIHN0YXRpYyB2b2lkIGludGVybmFsQWRkTWVz
c2FnZShQYWdlKiBwYWdlLCBNZXNzYWdlVHlwZSB0eXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsCiAg
ICAgYm9vbCBnb3RNZXNzYWdlID0gYXJndW1lbnRzLT5nZXRGaXJzdEFyZ3VtZW50QXNTdHJpbmco
bWVzc2FnZSk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRNZXNzYWdlVG9Db25z
b2xlKHBhZ2UsIENvbnNvbGVBUElNZXNzYWdlU291cmNlLCB0eXBlLCBsZXZlbCwgbWVzc2FnZSwg
c3RhdGUsIGFyZ3VtZW50cyk7CiAKLSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCkgfHwgcGFnZS0+
c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgIGlmIChwYWdlLT5zZXR0
aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChnb3RNZXNzYWdlKQogICAgICAgICBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmFkZE1l
c3NhZ2VUb0NvbnNvbGUoQ29uc29sZUFQSU1lc3NhZ2VTb3VyY2UsIHR5cGUsIGxldmVsLCBtZXNz
YWdlLCBsYXN0Q2FsbGVyLmxpbmVOdW1iZXIoKSwgbGFzdENhbGxlci5zb3VyY2VVUkwoKSk7CiAK
LSAgICBpZiAoIXBhZ2UtPnNldHRpbmdzKCktPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkKCkgJiYgIUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpKQorICAgIGlm
ICghcGFnZS0+c2V0dGluZ3MoKS0+bG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJs
ZWQoKSAmJiAhUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBwcmludFNvdXJjZVVSTEFuZExpbmUobGFzdENhbGxlci5zb3VyY2VVUkwo
KSwgbGFzdENhbGxlci5saW5lTnVtYmVyKCkpOwotICAgIHByaW50TWVzc2FnZVNvdXJjZUFuZExl
dmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7CisgICAgUGFnZUNvbnNv
bGU6OnByaW50U291cmNlVVJMQW5kTGluZShsYXN0Q2FsbGVyLnNvdXJjZVVSTCgpLCBsYXN0Q2Fs
bGVyLmxpbmVOdW1iZXIoKSk7CisgICAgUGFnZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFu
ZExldmVsUHJlZml4KENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBsZXZlbCk7CiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGFyZ3VtZW50cy0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAg
ICAgICAgU3RyaW5nIGFyZ0FzU3RyaW5nID0gYXJndW1lbnRzLT5hcmd1bWVudEF0KGkpLnRvU3Ry
aW5nKGFyZ3VtZW50cy0+Z2xvYmFsU3RhdGUoKSk7CkBAIC0zODgsMTkgKzI2NSw2IEBAIHZvaWQg
Q29uc29sZTo6Z3JvdXBFbmQoKQogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVz
c2FnZVRvQ29uc29sZShwYWdlKCksIENvbnNvbGVBUElNZXNzYWdlU291cmNlLCBFbmRHcm91cE1l
c3NhZ2VUeXBlLCBMb2dNZXNzYWdlTGV2ZWwsIFN0cmluZygpLCBTdHJpbmcoKSwgMCk7CiB9CiAK
LS8vIHN0YXRpYwotdm9pZCBDb25zb2xlOjptdXRlKCkKLXsKLSAgICBtdXRlQ291bnQrKzsKLX0K
LQotLy8gc3RhdGljCi12b2lkIENvbnNvbGU6OnVubXV0ZSgpCi17Ci0gICAgQVNTRVJUKG11dGVD
b3VudCA+IDApOwotICAgIG11dGVDb3VudC0tOwotfQotCiBQYXNzUmVmUHRyPE1lbW9yeUluZm8+
IENvbnNvbGU6Om1lbW9yeSgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IEJlY2F1c2Ugd2UgY3Jl
YXRlIGEgbmV3IG9iamVjdCBoZXJlIGVhY2ggdGltZSwKQEAgLTQwOCwxOCArMjcyLDYgQEAgUGFz
c1JlZlB0cjxNZW1vcnlJbmZvPiBDb25zb2xlOjptZW1vcnkoKSBjb25zdAogICAgIHJldHVybiBN
ZW1vcnlJbmZvOjpjcmVhdGUobV9mcmFtZSk7CiB9CiAKLXN0YXRpYyBib29sIHByaW50RXhjZXB0
aW9ucyA9IGZhbHNlOwotCi1ib29sIENvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCi17
Ci0gICAgcmV0dXJuIHByaW50RXhjZXB0aW9uczsKLX0KLQotdm9pZCBDb25zb2xlOjpzZXRTaG91
bGRQcmludEV4Y2VwdGlvbnMoYm9vbCBwcmludCkKLXsKLSAgICBwcmludEV4Y2VwdGlvbnMgPSBw
cmludDsKLX0KLQogUGFnZSogQ29uc29sZTo6cGFnZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Zy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db25zb2xlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnNvbGUuaAppbmRleCBhOWE1ZDI3NDQ1NDVkOGI4Nzg5M2M3ODYyNGQy
MTgzOWVjNWZjNDJmLi5iOGU3NTExNWIxNWFmNDczYTkyNTg0MzNlYWU2NjA4MWM3NGNlNjNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnNvbGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnNvbGUuaApAQCAtMjksMTAgKzI5LDcgQEAKICNpZm5kZWYgQ29uc29sZV9o
CiAjZGVmaW5lIENvbnNvbGVfaAogCi0jaW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCi0jaW5j
bHVkZSAiQ29uc29sZVR5cGVzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93UHJvcGVydHkuaCIKLSNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAj
aW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKQEAg
LTQyLDEyICszOSwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERvY3VtZW50
OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBNZW1vcnlJbmZvOwogY2xhc3MgUGFnZTsKIGNsYXNzIFNj
cmlwdEFyZ3VtZW50czsKLWNsYXNzIFNjcmlwdENhbGxTdGFjazsKIAogI2lmIEVOQUJMRShKQVZB
U0NSSVBUX0RFQlVHR0VSKQogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNjcmlwdFByb2ZpbGU+ID4g
UHJvZmlsZXNBcnJheTsKQEAgLTU4LDEwICs1Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDb25zb2xlPiBjcmVhdGUoRnJhbWUqIGZyYW1lKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgQ29uc29sZShmcmFtZSkpOyB9CiAgICAgdmlydHVhbCB+Q29uc29sZSgpOwogCi0gICAgdm9p
ZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwgU2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQg
bG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwotICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+KTsKLSAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElk
ZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsKLQogICAgIHZvaWQgZGVidWcoU2NyaXB0U3Rh
dGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZvaWQgZXJyb3IoU2NyaXB0
U3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogICAgIHZvaWQgaW5mbyhTY3Jp
cHRTdGF0ZSosIFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPik7CkBAIC04NywxMiArNzgsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBncm91cENvbGxhcHNlZChTY3JpcHRTdGF0ZSosIFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPik7CiAgICAgdm9pZCBncm91cEVuZCgpOwogCi0gICAgc3RhdGlj
IHZvaWQgbXV0ZSgpOwotICAgIHN0YXRpYyB2b2lkIHVubXV0ZSgpOwotCi0gICAgc3RhdGljIGJv
b2wgc2hvdWxkUHJpbnRFeGNlcHRpb25zKCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkUHJp
bnRFeGNlcHRpb25zKGJvb2wpOwotCiAgICAgUGFzc1JlZlB0cjxNZW1vcnlJbmZvPiBtZW1vcnko
KSBjb25zdDsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCA5YjAx
NTk1MTYwNWNhNWY2YjE4OTIxZmMxYjExY2I4ZThlN2U5ODU0Li5kYzJhODBlYTEzZTNjNzY2Mzk0
ZjVmMzk0MTMzYzA2OWEyY2UyYjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC03
NSw2ICs3NSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdh
dG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VDb25zb2xlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUGFnZVRyYW5zaXRpb25FdmVudC5oIgogI2lu
Y2x1ZGUgIlBlcmZvcm1hbmNlLmgiCkBAIC02OTQsNiArNjk1LDEzIEBAIENvbnNvbGUqIERPTVdp
bmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsKIH0KIAor
UGFnZUNvbnNvbGUqIERPTVdpbmRvdzo6cGFnZUNvbnNvbGUoKSBjb25zdAoreworICAgIGlmICgh
aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJl
dHVybiBtX2ZyYW1lLT5wYWdlKCkgPyBtX2ZyYW1lLT5wYWdlKCktPmNvbnNvbGUoKSA6IDA7Cit9
CisKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIERPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNv
bnN0CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKQEAgLTg4NCw3
ICs4OTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2lu
Q2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZwogICAgICAgICBpZiAoIWludGVuZGVk
VGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpKSkgewogICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSAiVW5hYmxlIHRvIHBvc3Qg
bWVzc2FnZSB0byAiICsgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5nKCkgKwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiICsgZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSArICIuXG4iOwotICAgICAgICAgICAg
Y29uc29sZSgpLT5hZGRNZXNzYWdlKFNlY3VyaXR5TWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdl
TGV2ZWwsIG1lc3NhZ2UsIHN0YWNrVHJhY2UpOworICAgICAgICAgICAgcGFnZUNvbnNvbGUoKS0+
YWRkTWVzc2FnZShTZWN1cml0eU1lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNz
YWdlLCBzdGFja1RyYWNlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0K
QEAgLTE3OTgsNyArMTgwNiw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludEVycm9yTWVzc2FnZShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgaWYgKG1lc3NhZ2UuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBjb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBF
cnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSk7CisgICAgcGFnZUNvbnNvbGUoKS0+YWRkTWVzc2Fn
ZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlKTsKIH0KIAogU3Ry
aW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoRE9NV2luZG93KiBh
Y3RpdmVXaW5kb3cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCA0OWJmOGM5ODUyNDYwMWQy
NjE1ZTYxODdmZjY3OTdlMWMzYWFlNzU1Li40OWNiNmU2MTdiZjUzYmJlYjI3OWI5ODkwYWU1MDY3
YmViNTcyM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTU5LDYgKzU5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5hdmlnYXRvcjsKICAgICBjbGFzcyBOb2RlOwog
ICAgIGNsYXNzIFBhZ2U7CisgICAgY2xhc3MgUGFnZUNvbnNvbGU7CiAgICAgY2xhc3MgUGVyZm9y
bWFuY2U7CiAgICAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKICAgICBjbGFzcyBTY2hlZHVsZWRB
Y3Rpb247CkBAIC0yMzMsNiArMjM0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQ
YXNzUmVmUHRyPFdlYktpdFBvaW50PiB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShO
b2RlKiwgY29uc3QgV2ViS2l0UG9pbnQqKSBjb25zdDsgICAgICAgIAogCiAgICAgICAgIENvbnNv
bGUqIGNvbnNvbGUoKSBjb25zdDsKKyAgICAgICAgUGFnZUNvbnNvbGUqIHBhZ2VDb25zb2xlKCkg
Y29uc3Q7CiAKICAgICAgICAgdm9pZCBwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmKTsK
ICAgICAgICAgU3RyaW5nIGNyb3NzRG9tYWluQWNjZXNzRXJyb3JNZXNzYWdlKERPTVdpbmRvdyog
YWN0aXZlV2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGJhYzhjNWEyYjA5NTg5OWRlNTk5
NmI5NjM0MjNmMTczNWQ2YjU1MTMuLjEzMWJmODg1ZDZkOThiYjM2MjA4MjJlZWJiMTZkZDZhY2Vm
ZGE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIk5h
dmlnYXRvci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAi
UGFnZUNhY2hlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJQYWdlR3Jv
dXAuaCIKICNpbmNsdWRlICJQbHVnSW5DbGllbnQuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhLmgi
CkBAIC0xNzYsNiArMTc3LDcgQEAgUGFnZTo6UGFnZShQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMp
CiAjZW5kaWYKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KHBhZ2VDbGllbnRzLmFsdGVy
bmF0aXZlVGV4dENsaWVudCkKICAgICAsIG1fc2NyaXB0ZWRBbmltYXRpb25zU3VzcGVuZGVkKGZh
bHNlKQorICAgICwgbV9jb25zb2xlKFBhZ2VDb25zb2xlOjpjcmVhdGUodGhpcykpCiB7CiAgICAg
QVNTRVJUKG1fZWRpdG9yQ2xpZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBjMGM3MzE4N2I2Yjgy
NTU2NjlkYzI3MzM3NmJiNjIwYzI4OTRiOTVkLi45MWZiOWVhMGNlZDE0MTE2YzlhMWJjZmFjN2Y0
MTUyOTRlOWNjYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNzQsNiArNzQsNyBAQCBjbGFzcyBJbnNw
ZWN0b3JDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgTWVkaWFDYW5T
dGFydExpc3RlbmVyOwogY2xhc3MgTm9kZTsKK2NsYXNzIFBhZ2VDb25zb2xlOwogY2xhc3MgUGFn
ZUdyb3VwOwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luRGF0YTsKQEAgLTM3OCw2
ICszNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzYXdNZWRpYUVuZ2luZShjb25zdCBTdHJpbmcm
IGVuZ2luZU5hbWUpOwogICAgIHZvaWQgcmVzZXRTZWVuTWVkaWFFbmdpbmVzKCk7CiAKKyAgICBQ
YWdlQ29uc29sZSogY29uc29sZSgpIHsgcmV0dXJuIG1fY29uc29sZS5nZXQoKTsgfQogICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQpAQCAtNTA0LDYgKzUwNiw3IEBAIHByaXZhdGU6CiAgICAgQWx0ZXJu
YXRpdmVUZXh0Q2xpZW50KiBtX2FsdGVybmF0aXZlVGV4dENsaWVudDsKIAogICAgIGJvb2wgbV9z
Y3JpcHRlZEFuaW1hdGlvbnNTdXNwZW5kZWQ7CisgICAgT3duUHRyPFBhZ2VDb25zb2xlPiBtX2Nv
bnNvbGU7CiAKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zZWVuUGx1Z2luczsKICAgICBIYXNoU2V0
PFN0cmluZz4gbV9zZWVuTWVkaWFFbmdpbmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uc29sZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zOTBlYWExYzlhMjM0YzQwMTYxYjRmMjQzZTlmODMyOTNhNmVlZDVhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5jcHAKQEAg
LTAsMCArMSwyMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlQ29uc29s
ZS5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisj
aW5jbHVkZSAiQ29uc29sZUFQSVR5cGVzLmgiCisjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkluc3Bl
Y3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgor
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgorI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlNjcmlwdGFibGVE
b2N1bWVudFBhcnNlci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpZiBQTEFURk9STShD
SFJPTUlVTSkKKyNpbmNsdWRlICJUcmFjZUV2ZW50LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCituYW1lc3BhY2UgeworICAgIGludCBtdXRlQ291bnQgPSAwOworfQorCitQYWdl
Q29uc29sZTo6UGFnZUNvbnNvbGUoUGFnZSogcGFnZSkgOiBtX3BhZ2UocGFnZSkgeyB9CisKK1Bh
Z2VDb25zb2xlOjp+UGFnZUNvbnNvbGUoKSB7IH0KKwordm9pZCBQYWdlQ29uc29sZTo6cHJpbnRT
b3VyY2VVUkxBbmRMaW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVt
YmVyKQoreworICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAobGlu
ZU51bWJlciA+IDApCisgICAgICAgICAgICBwcmludGYoIiVzOiVkOiAiLCBzb3VyY2VVUkwudXRm
OCgpLmRhdGEoKSwgbGluZU51bWJlcik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW50
ZigiJXM6ICIsIHNvdXJjZVVSTC51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgUGFn
ZUNvbnNvbGU6OnByaW50TWVzc2FnZVNvdXJjZUFuZExldmVsUHJlZml4KE1lc3NhZ2VTb3VyY2Ug
c291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCit7CisgICAgY29uc3QgY2hhciogc291cmNlU3Ry
aW5nOworICAgIHN3aXRjaCAoc291cmNlKSB7CisgICAgY2FzZSBYTUxNZXNzYWdlU291cmNlOgor
ICAgICAgICBzb3VyY2VTdHJpbmcgPSAiWE1MIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBK
U01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJKUyI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgTmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmlu
ZyA9ICJORVRXT1JLIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDb25zb2xlQVBJTWVzc2Fn
ZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIkNPTlNPTEVBUEkiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0b3JhZ2VNZXNzYWdlU291cmNlOgorICAgICAgICBzb3VyY2VTdHJp
bmcgPSAiU1RPUkFHRSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXBwQ2FjaGVNZXNzYWdl
U291cmNlOgorICAgICAgICBzb3VyY2VTdHJpbmcgPSAiQVBQQ0FDSEUiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFJlbmRlcmluZ01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHNvdXJjZVN0cmlu
ZyA9ICJSRU5ERVJJTkciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU01lc3NhZ2VTb3Vy
Y2U6CisgICAgICAgIHNvdXJjZVN0cmluZyA9ICJDU1MiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFNlY3VyaXR5TWVzc2FnZVNvdXJjZToKKyAgICAgICAgc291cmNlU3RyaW5nID0gIlNFQ1VS
SVRZIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAg
ICAgIHNvdXJjZVN0cmluZyA9ICJPVEhFUiI7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBzb3VyY2VTdHJpbmcgPSAi
VU5LTk9XTiI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGNvbnN0IGNoYXIqIGxldmVs
U3RyaW5nOworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNlIERlYnVnTWVzc2FnZUxldmVs
OgorICAgICAgICBsZXZlbFN0cmluZyA9ICJERUJVRyI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgTG9nTWVzc2FnZUxldmVsOgorICAgICAgICBsZXZlbFN0cmluZyA9ICJMT0ciOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIFdhcm5pbmdNZXNzYWdlTGV2ZWw6CisgICAgICAgIGxldmVsU3Ry
aW5nID0gIldBUk4iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVycm9yTWVzc2FnZUxldmVs
OgorICAgICAgICBsZXZlbFN0cmluZyA9ICJFUlJPUiI7CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBsZXZlbFN0cmlu
ZyA9ICJVTktOT1dOIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcHJpbnRmKCIlcyAl
czoiLCBzb3VyY2VTdHJpbmcsIGxldmVsU3RyaW5nKTsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBTdHJpbmcgdXJsOworICAgIGlmIChkb2N1bWVudCkKKyAg
ICAgICAgdXJsID0gZG9jdW1lbnQtPnVybCgpLnN0cmluZygpOworICAgIHVuc2lnbmVkIGxpbmUg
PSAwOworICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+cGFyc2luZygpICYmICFkb2N1bWVu
dC0+aXNJbkRvY3VtZW50V3JpdGUoKSAmJiBkb2N1bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyKCkpIHsKKyAgICAgICAgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBkb2N1
bWVudC0+c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCk7CisgICAgICAgIGlmICghcGFyc2VyLT5p
c1dhaXRpbmdGb3JTY3JpcHRzKCkgJiYgIXBhcnNlci0+aXNFeGVjdXRpbmdTY3JpcHQoKSkKKyAg
ICAgICAgICAgIGxpbmUgPSBwYXJzZXItPmxpbmVOdW1iZXIoKS5vbmVCYXNlZEludCgpOworICAg
IH0KKyAgICBhZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZSwgMCwg
MCwgcmVxdWVzdElkZW50aWZpZXIpOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdl
KE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFjaykKK3sKKyAgICBh
ZGRNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIFN0cmluZygpLCAwLCBjYWxsU3RhY2ss
IDApOworfQorCit2b2lkIFBhZ2VDb25zb2xlOjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291
cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiB1cmwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjYWxsU3RhY2ssIFNjcmlwdFN0YXRlKiBzdGF0ZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRl
bnRpZmllcikKK3sKKyAgICBpZiAobXV0ZUNvdW50ICYmIHNvdXJjZSAhPSBDb25zb2xlQVBJTWVz
c2FnZVNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjYWxsU3Rh
Y2spCisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkTWVzc2FnZVRvQ29uc29s
ZShwYWdlLCBzb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBsZXZlbCwgbWVzc2FnZSwgY2FsbFN0YWNr
LCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgZWxzZQorICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmFkZE1lc3NhZ2VUb0NvbnNvbGUocGFnZSwgc291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgbGV2ZWwsIG1lc3NhZ2UsIHVybCwgbGluZU51bWJlciwgc3RhdGUsIHJlcXVlc3RJZGVudGlm
aWVyKTsKKworICAgIGlmIChwYWdlLT5zZXR0aW5ncygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVk
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+YWRk
TWVzc2FnZVRvQ29uc29sZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCB1cmwp
OworCisgICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1D
b25zb2xlRW5hYmxlZCgpICYmICFzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgcHJpbnRTb3VyY2VVUkxBbmRMaW5lKHVybCwgbGluZU51bWJlcik7CisgICAg
cHJpbnRNZXNzYWdlU291cmNlQW5kTGV2ZWxQcmVmaXgoc291cmNlLCBsZXZlbCk7CisKKyAgICBw
cmludGYoIiAlc1xuIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKK30KKworLy8gc3RhdGljCit2
b2lkIFBhZ2VDb25zb2xlOjptdXRlKCkKK3sKKyAgICBtdXRlQ291bnQrKzsKK30KKworLy8gc3Rh
dGljCit2b2lkIFBhZ2VDb25zb2xlOjp1bm11dGUoKQoreworICAgIEFTU0VSVChtdXRlQ291bnQg
PiAwKTsKKyAgICBtdXRlQ291bnQtLTsKK30KKworc3RhdGljIGJvb2wgcHJpbnRFeGNlcHRpb25z
ID0gZmFsc2U7CisKK2Jvb2wgUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9ucygpCit7
CisgICAgcmV0dXJuIHByaW50RXhjZXB0aW9uczsKK30KKwordm9pZCBQYWdlQ29uc29sZTo6c2V0
U2hvdWxkUHJpbnRFeGNlcHRpb25zKGJvb2wgcHJpbnQpCit7CisgICAgcHJpbnRFeGNlcHRpb25z
ID0gcHJpbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bnNvbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42OGMwODkyNDEyZmExNWFkNTNiOWJmMDVkYjExNTIwZTllOWFl
YzQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZS5o
CkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
KyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUGFnZUNvbnNvbGVfaAorI2RlZmluZSBQYWdlQ29u
c29sZV9oCisKKyNpbmNsdWRlICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRDYWxs
U3RhY2suaCIKKyNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIFBhZ2VDb25zb2xlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ29uc29sZT4gY3JlYXRlKFBhZ2UqIHBh
Z2UpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ29uc29sZShwYWdlKSk7IH0KKyAgICB2aXJ0
dWFsIH5QYWdlQ29uc29sZSgpOworCisgICAgc3RhdGljIHZvaWQgcHJpbnRTb3VyY2VVUkxBbmRM
aW5lKGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyKTsKKyAgICBz
dGF0aWMgdm9pZCBwcmludE1lc3NhZ2VTb3VyY2VBbmRMZXZlbFByZWZpeChNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwpOworCisgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCwgdW5zaWduZWQgbGluZU51bWJlciwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+ID0gMCwg
U2NyaXB0U3RhdGUqID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwor
ICAgIHZvaWQgYWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKKyAgICB2b2lkIGFk
ZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSAwKTsK
KworICAgIHN0YXRpYyB2b2lkIG11dGUoKTsKKyAgICBzdGF0aWMgdm9pZCB1bm11dGUoKTsKKwor
ICAgIHN0YXRpYyBib29sIHNob3VsZFByaW50RXhjZXB0aW9ucygpOworICAgIHN0YXRpYyB2b2lk
IHNldFNob3VsZFByaW50RXhjZXB0aW9ucyhib29sKTsKKworcHJpdmF0ZToKKyAgICBQYWdlQ29u
c29sZShQYWdlKik7CisKKyAgICBQYWdlKiBwYWdlKCkgeyByZXR1cm4gbV9wYWdlOyB9OworCisg
ICAgUGFnZSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gUGFnZUNvbnNvbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxl
U2hlZXRMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNs
dC5jcHAKaW5kZXggMGI4MzQwY2Q5NWNhZWJlZmY4ZTE4MWY1YTEzNWY5MWNjMGVjMzc4NS4uOGUy
NGI3NDIxNmY4OWM3YmRjNTFiYjU0YjlmZjk1NTFhY2MxNzdkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogI2lm
IEVOQUJMRShYU0xUKQogCi0jaW5jbHVkZSAiQ29uc29sZS5oIgotI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJQ
YWdlLmgiCisjaW5jbHVkZSAiUGFnZUNvbnNvbGUuaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1Tb3Vy
Y2UuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIlhNTERvY3Vt
ZW50UGFyc2VyU2NvcGUuaCIKQEAgLTE0NCw5ICsxNDQsMTAgQEAgYm9vbCBYU0xTdHlsZVNoZWV0
OjpwYXJzZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAgICAgeG1sRnJlZURvYyht
X3N0eWxlc2hlZXREb2MpOwogICAgIG1fc3R5bGVzaGVldERvY1Rha2VuID0gZmFsc2U7CiAKLSAg
ICBDb25zb2xlKiBjb25zb2xlID0gMDsKLSAgICBpZiAob3duZXJEb2N1bWVudCgpLT5mcmFtZSgp
KQotICAgICAgICBjb25zb2xlID0gb3duZXJEb2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29s
ZSgpOworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0gMDsKKyAgICBGcmFtZSogZnJhbWUgPSBv
d25lckRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkp
CisgICAgICAgIGNvbnNvbGUgPSBmcmFtZS0+cGFnZSgpLT5jb25zb2xlKCk7CiAKICAgICBYTUxE
b2N1bWVudFBhcnNlclNjb3BlIHNjb3BlKGNhY2hlZFJlc291cmNlTG9hZGVyKCksIFhTTFRQcm9j
ZXNzb3I6OmdlbmVyaWNFcnJvckZ1bmMsIFhTTFRQcm9jZXNzb3I6OnBhcnNlRXJyb3JGdW5jLCBj
b25zb2xlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JM
aWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAK
aW5kZXggNTAzODAyYzdmZTdiNTZmNWY3MmQxNzgzYWI3YmMzMGNiNjU4MWFkZS4uOWQ1NTY3MWNm
YzhjOWFiNGQ3N2I3OWYyYjlmYWYxMThjMzFmZjI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC0yNywxMCArMjcsMTAgQEAKICNpbmNsdWRlICJY
U0xUUHJvY2Vzc29yLmgiCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgotI2lu
Y2x1ZGUgIkNvbnNvbGUuaCIKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUg
IlBhZ2VDb25zb2xlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJl
c291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC04Miw3ICs4
Miw3IEBAIHZvaWQgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyh2b2lkKiwgY29uc3Qg
Y2hhciosIC4uLikKIAogdm9pZCBYU0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyh2b2lkKiB1
c2VyRGF0YSwgeG1sRXJyb3IqIGVycm9yKQogewotICAgIENvbnNvbGUqIGNvbnNvbGUgPSBzdGF0
aWNfY2FzdDxDb25zb2xlKj4odXNlckRhdGEpOworICAgIFBhZ2VDb25zb2xlKiBjb25zb2xlID0g
c3RhdGljX2Nhc3Q8UGFnZUNvbnNvbGUqPih1c2VyRGF0YSk7CiAgICAgaWYgKCFjb25zb2xlKQog
ICAgICAgICByZXR1cm47CiAKQEAgLTEzNyw5ICsxMzcsMTAgQEAgc3RhdGljIHhtbERvY1B0ciBk
b2NMb2FkZXJGdW5jKGNvbnN0IHhtbENoYXIqIHVyaSwKICAgICAgICAgICAgIGdsb2JhbENhY2hl
ZFJlc291cmNlTG9hZGVyLT5wcmludEFjY2Vzc0RlbmllZE1lc3NhZ2UodXJsKTsKICAgICAgICAg
fQogCi0gICAgICAgIENvbnNvbGUqIGNvbnNvbGUgPSAwOwotICAgICAgICBpZiAoZ2xvYmFsUHJv
Y2Vzc29yLT54c2xTdHlsZXNoZWV0KCktPm93bmVyRG9jdW1lbnQoKS0+ZnJhbWUoKSkKLSAgICAg
ICAgICAgIGNvbnNvbGUgPSBnbG9iYWxQcm9jZXNzb3ItPnhzbFN0eWxlc2hlZXQoKS0+b3duZXJE
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+Y29uc29sZSgpOworICAgICAgICBQYWdlQ29uc29sZSog
Y29uc29sZSA9IDA7CisgICAgICAgIEZyYW1lKiBmcmFtZSA9IGdsb2JhbFByb2Nlc3Nvci0+eHNs
U3R5bGVzaGVldCgpLT5vd25lckRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgICAgIGlmIChmcmFt
ZSAmJiBmcmFtZS0+cGFnZSgpKQorICAgICAgICAgICAgY29uc29sZSA9IGZyYW1lLT5wYWdlKCkt
PmNvbnNvbGUoKTsKICAgICAgICAgeG1sU2V0U3RydWN0dXJlZEVycm9yRnVuYyhjb25zb2xlLCBY
U0xUUHJvY2Vzc29yOjpwYXJzZUVycm9yRnVuYyk7CiAgICAgICAgIHhtbFNldEdlbmVyaWNFcnJv
ckZ1bmMoY29uc29sZSwgWFNMVFByb2Nlc3Nvcjo6Z2VuZXJpY0Vycm9yRnVuYyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCmluZGV4IGJmOTE3NTkwMGM1
OGUyYTQ2NjA2MDY3MjFkNTIwOTY1MDZiNzU4MmMuLjA2OWFhNDc5NTMyMTY1NWI5Y2ExMDljNjFi
YWFiZDIyODI2MDA5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29y
ZVN0YXRpc3RpY3MubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlz
dGljcy5tbQpAQCAtMzMsNyArMzMsNiBAQAogI2ltcG9ydCAiV2ViRnJhbWVJbnRlcm5hbC5oIgog
I2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29y
ZS9NZW1vcnlTdGF0aXN0aWNzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NvbnNvbGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRm9udENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgpAQCAtNDIsNiArNDEsNyBAQAogI2ltcG9ydCA8
V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25z
b2xlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ByaW50Q29udGV4dC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KQEAg
LTE2OCwxMyArMTY4LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogKyAoQk9PTClzaG91
bGRQcmludEV4Y2VwdGlvbnMKIHsKICAgICBKU0xvY2tIb2xkZXIgbG9jayhKU0RPTVdpbmRvdzo6
Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotICAgIHJldHVybiBDb25zb2xlOjpzaG91bGRQcmludEV4
Y2VwdGlvbnMoKTsKKyAgICByZXR1cm4gUGFnZUNvbnNvbGU6OnNob3VsZFByaW50RXhjZXB0aW9u
cygpOwogfQogCiArICh2b2lkKXNldFNob3VsZFByaW50RXhjZXB0aW9uczooQk9PTClwcmludAog
ewogICAgIEpTTG9ja0hvbGRlciBsb2NrKEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEo
KSk7Ci0gICAgQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKHByaW50KTsKKyAgICBQ
YWdlQ29uc29sZTo6c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zKHByaW50KTsKIH0KIAogKyAodm9p
ZCllbXB0eUNhY2hlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>