<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>275168</bug_id>
          
          <creation_ts>2011-06-07 23:50:06 +0000</creation_ts>
          <short_desc>Make Valgrind work for MacOSX 10.7 Lion</short_desc>
          <delta_ts>2011-10-13 09:07:06 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Developer tools</classification>
          <product>valgrind</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>Compiled Sources</rep_platform>
          <op_sys>macOS</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="WSK">Wolf.St.Kappesser</reporter>
          <assigned_to name="Julian Seward">jseward</assigned_to>
          <cc>ajgilbert</cc>
    
    <cc>benjamin</cc>
    
    <cc>cwatson</cc>
    
    <cc>DonaldEGrimes</cc>
    
    <cc>glider</cc>
    
    <cc>jackjost</cc>
    
    <cc>othiman</cc>
    
    <cc>oystein</cc>
    
    <cc>peter</cc>
    
    <cc>siegel</cc>
    
    <cc>tim</cc>
    
    <cc>wilane</cc>
    
    <cc>Wolf.St.Kappesser</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>123</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1128689</commentid>
    <comment_count>0</comment_count>
      <attachid>60767</attachid>
    <who name="WSK">Wolf.St.Kappesser</who>
    <bug_when>2011-06-07 23:50:06 +0000</bug_when>
    <thetext>Created attachment 60767
output of make

Version:           unspecified
OS:                OS X

After editing the ./configure to run on Darwin 11.0.0 instead of 10.x.x and running &quot;make&quot; I get the attached error (second build without clean).

Reproducible: Always

Steps to Reproduce:
edit ./configure to something like the attachment
./configure
make


Actual Results:  
see make.log

Expected Results:  
clean build

Using OS X 10.7 &quot;Lion&quot; newest developer-preview.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1128691</commentid>
    <comment_count>1</comment_count>
      <attachid>60768</attachid>
    <who name="WSK">Wolf.St.Kappesser</who>
    <bug_when>2011-06-07 23:51:44 +0000</bug_when>
    <thetext>Created attachment 60768
Adapted configure file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145063</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Le Bek">peter</who>
    <bug_when>2011-07-24 16:08:11 +0000</bug_when>
    <thetext>After hacking the config to accept darwin 11 I get the same build error. This is on the release version of 10.7, using i686-apple-darwin11-llvm-gcc-4.2 (i.e. the gcc that comes with Xcode 4.2).

I was able to &quot;fix&quot; the build error by specifying --enable-only64bit. Adding &apos;-lgcc -L/usr/lib/gcc/i686-apple-darwin11/4.2.1/&apos; to the failing linker command also seems to work.

I think this will need some interest from people more familiar with the valgrind build process.

The built valgrind appears to work. I&apos;ve got no idea how reliable it actually is at this point - presumably it will require a similar effort to the 10.5 &gt; 10.6 work.. #205241</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145244</commentid>
    <comment_count>3</comment_count>
    <who name="Peter Le Bek">peter</who>
    <bug_when>2011-07-25 10:01:31 +0000</bug_when>
    <thetext>The XNU sources came out a few days ago http://opensource.apple.com/tarballs/xnu/xnu-1699.22.73.tar.gz

I&apos;m starting to come across unhandled syscalls - better that these are posted as separate bugs I assume.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150080</commentid>
    <comment_count>4</comment_count>
    <who name="">justincase</who>
    <bug_when>2011-08-05 04:23:11 +0000</bug_when>
    <thetext>*** This bug has been confirmed by popular vote. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156241</commentid>
    <comment_count>5</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-08-23 07:41:47 +0000</bug_when>
    <thetext>&gt; After editing the ./configure to run on Darwin 11.0.0 instead of 10.x.x and
&gt; running &quot;make&quot; I get the attached error (second build without clean).
&gt; [link error w.r.t. __fixunsdfdi for the 32-bit builds]

Fixed, r12000.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156242</commentid>
    <comment_count>6</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-08-23 07:43:12 +0000</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;m starting to come across unhandled syscalls - better that these are posted
&gt; as separate bugs I assume.

Did any of these get posted?  As a minimum, I see this even with the
simplest programs (eg, /bin/date):

--71249-- WARNING: unhandled syscall: unix:357</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156267</commentid>
    <comment_count>7</comment_count>
    <who name="Peter Le Bek">peter</who>
    <bug_when>2011-08-23 08:32:06 +0000</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; After editing the ./configure to run on Darwin 11.0.0 instead of 10.x.x and
&gt; &gt; running &quot;make&quot; I get the attached error (second build without clean).
&gt; &gt; [link error w.r.t. __fixunsdfdi for the 32-bit builds]
&gt; 
&gt; Fixed, r12000.

Thanks.

(In reply to comment #6)
&gt; Did any of these get posted?  As a minimum, I see this even with the
&gt; simplest programs (eg, /bin/date):
&gt; 
&gt; --71249-- WARNING: unhandled syscall: unix:357

No, I got puzzled after reading the contents of coregrind/m_syswrap/priv_syswrap-darwin.h. 357, for example, is listed there as &quot;wrapper not yet implemented in Valgrind&quot; - suggesting this call isn&apos;t new to darwin11. Is it the case that this call just wasn&apos;t used very often in past versions of darwin? Is it appropriate to report syscalls missing even when priv_syswrap-darwin.h indicates they&apos;re known missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156272</commentid>
    <comment_count>8</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-08-23 08:44:01 +0000</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; --71249-- WARNING: unhandled syscall: unix:357
&gt; 
&gt; No, I got puzzled after reading the contents of
&gt; coregrind/m_syswrap/priv_syswrap-darwin.h. 357, for example, is listed there as
&gt; &quot;wrapper not yet implemented in Valgrind&quot; - suggesting this call isn&apos;t new to
&gt; darwin11. Is it the case that this call just wasn&apos;t used very often in past
&gt; versions of darwin?

Either it was never used, or it was used and Valgrind complained, but
nobody reported this, or at least it never got fixed.

&gt; Is it appropriate to report syscalls missing even when
&gt; priv_syswrap-darwin.h indicates they&apos;re known missing?

Yes.  It&apos;s appropriate to report them whenever you get the &quot;WARNING:
unhandled syscall&quot; message.

I fixed this just now, but haven&apos;t committed the fix yet.  Am looking
at some Memcheck-related issues at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156732</commentid>
    <comment_count>9</comment_count>
      <attachid>63118</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-24 15:47:18 +0000</bug_when>
    <thetext>Created attachment 63118
Patch for configure.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1156734</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-24 15:50:28 +0000</bug_when>
    <thetext>I patched configure.in and everything seem to build fine in 64 bits for me.
Next fix those warnings I guess :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157615</commentid>
    <comment_count>11</comment_count>
      <attachid>63181</attachid>
    <who name="Jack Jost">jackjost</who>
    <bug_when>2011-08-27 19:57:46 +0000</bug_when>
    <thetext>Created attachment 63181
Patch to implement 2 missing taskmsgs, a syscall and __pthread_sigmask

This patch implements syscall 357: getaudit_addr(), taskmsg 3414: task_get_exception_ports(), taskmsg 3229: mach_port_set_context(), and extends __pthread_sigmask().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157618</commentid>
    <comment_count>12</comment_count>
    <who name="Jack Jost">jackjost</who>
    <bug_when>2011-08-27 20:00:34 +0000</bug_when>
    <thetext>With the last patch valgrind seems to work for simple programs. However there are many false-positive messages. All ncurses-based programs cause troubles (including a simple /bin/ls), programs using pthreads mark many memory segments allocated with calloc() as &quot;uninitialized&quot; when they are used. Don&apos;t know whether these two problems are related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157634</commentid>
    <comment_count>13</comment_count>
      <attachid>63186</attachid>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-08-27 21:21:22 +0000</bug_when>
    <thetext>Created attachment 63186
WI{P patch, 27 Aug 2011

Here&apos;s my current work-in-progress patch.  It&apos;s not pretty, it only
works for 64 bit processes, and the resulting tree won&apos;t work on any
other platform.  However, it does work well enough to run Firefox on
Memcheck, that is to say, you can run at least one complex threaded
application on it.

It needs to be applied to Valgrind trunk of a few minutes ago, that is
to say, valgrind &gt;= r12003 and vex &gt;= r2197.  There&apos;s some debug
printing to do with wqthread_hijack that you&apos;ll probably want to
comment out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159505</commentid>
    <comment_count>14</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-09-03 12:46:21 +0000</bug_when>
    <thetext>*** Bug 275165 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159507</commentid>
    <comment_count>15</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-09-03 12:47:05 +0000</bug_when>
    <thetext>*** Bug 281241 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159512</commentid>
    <comment_count>16</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-09-03 12:49:48 +0000</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=63186) [details]
&gt; WIP patch, 27 Aug 2011

Feedback on this patch is welcomed.  AFAIK it makes 64-bit 10.7
support work at least approximately as well as it does on 10.6.
32-bit is still broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159565</commentid>
    <comment_count>17</comment_count>
      <attachid>63360</attachid>
    <who name="Jack Jost">jackjost</who>
    <bug_when>2011-09-03 18:38:08 +0000</bug_when>
    <thetext>Created attachment 63360
Programs using getaddrinfo() cause warning. Suppression required?

Programs using getaddrinfo() expose leaks when using the reference code from the manpage (added as attachment). If these are not false alerts, they maybe have to be suppressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159567</commentid>
    <comment_count>18</comment_count>
    <who name="Jack Jost">jackjost</who>
    <bug_when>2011-09-03 18:46:17 +0000</bug_when>
    <thetext>I am not sure whether this is a problem in valgrind or the tested code, but calling pthread_mutex_destroy() on when maybe some other thread is waiting causes this warning:

--27446:0:schedule VG_(sema_down): read returned -4

valgrind on Linux won&apos;t print a warning, and my intuition says that it shall be allowed to destroy a semaphore when someone is waiting for it... however I cannot say for sure what&apos;s the correct behavior without reading the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159572</commentid>
    <comment_count>19</comment_count>
    <who name="Jack Jost">jackjost</who>
    <bug_when>2011-09-03 19:38:56 +0000</bug_when>
    <thetext>clarification: the &quot;read returned -4&quot; message occurs right after calling pthread_cancel() for a running thread, some time before any mutex actually becomes destroyed (btw: -EINTR = -4, if that&apos;s the message, the warning is probably harmless, but annoying).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161454</commentid>
    <comment_count>20</comment_count>
      <attachid>63545</attachid>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-09-10 12:53:00 +0000</bug_when>
    <thetext>Created attachment 63545
WIP patch, vs current trunk revision 12025

Revised patch for current svn trunk; no functional changes.

One thing I forgot to point out is that you need to build this
with gcc-4.2 on Xcode 4.1, not with plain &quot;gcc&quot;.  The latter will
appear to work, but the resulting Valgrind asserts in complex
threaded code, when worker queue threads exit (or something like that).

All you need to do is set CC=gcc-4.2 and do a from-distclean build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1161455</commentid>
    <comment_count>21</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-09-10 12:55:11 +0000</bug_when>
    <thetext>Re comment 20, see comment 13 for expectations of what this patch
can/can&apos;t do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165164</commentid>
    <comment_count>22</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-09-21 08:52:12 +0000</bug_when>
    <thetext>Initial support for OSX 10.7 (an enhanced version of the comment 20
patch) was committed in r12043.  Both 32- and 64-bit processes are
now supported.  You still need to set CC=gcc-4.2 before building,
though.  Feedback is welcomed, as these changes have only been lightly
tested so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167268</commentid>
    <comment_count>23</comment_count>
    <who name="Tim Jarratt">tim</who>
    <bug_when>2011-09-26 18:52:12 +0000</bug_when>
    <thetext>Really great to see some 10.7 support 

I checked out revision 12043, configured and build valgrind (with CC=gcc-4.2) and had no problems running memcheck on most simple processes (such as `ls -l` or `cat` or even Firefox, but when I tried it with some other programs (that worked fine with valgrind on 10.6.8), the valgrind process would hang and not produce any output. Additionally, trying to kill the process in certain ways fails - `kill -9 &lt;pid&gt;` works, but most other signals fail.

dtruss did not produce much meaningful output, other than the following:

tjarratt:~ tjarratt$ ps aux | grep valgrind
tjarratt       86342  88.7  3.6  2639824 151060 s000  R+   11:39AM   0:03.75 valgrind --log-file=/tmp/testrunner.valgrind --error-exitcode=1 --suppressions=.suppressions --gen-suppressions=all --show-possibly-lost=yes ./testrunner
tjarratt:~ tjarratt$ sudo dtruss -p 86342
SYSCALL(args) 		 = return

I&apos;m not entirely sure where to start debugging this issue. The executable I&apos;m trying to run memcheck against is a fairly simple C++ process - a testrunner that forks off some child processes to run some unit tests. I wouldn&apos;t be entirely surprised if this were related to my executable, but what other information can I gather that would illustrate the cause of this bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167288</commentid>
    <comment_count>24</comment_count>
    <who name="Jack Jost">jackjost</who>
    <bug_when>2011-09-26 19:38:17 +0000</bug_when>
    <thetext>Hello Tim,
does &apos;valgrind --leak-check=full --show-reachable=yes ls&apos; reports any leaks for you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167306</commentid>
    <comment_count>25</comment_count>
      <attachid>63991</attachid>
    <who name="Tim Jarratt">tim</who>
    <bug_when>2011-09-26 20:07:24 +0000</bug_when>
    <thetext>Created attachment 63991
debug log of valgrind memcheck on 10.7.1

Built valgrind from trunk revision 12043, simple programs still show reachable blocks, more complicated programs hang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167309</commentid>
    <comment_count>26</comment_count>
    <who name="Tim Jarratt">tim</who>
    <bug_when>2011-09-26 20:12:10 +0000</bug_when>
    <thetext>(Sorry for the spam, I didn&apos;t realize that attaching a file would use the description field to post a new comment). 

Yes, running &apos;valgrind --leak-check=full --show-reachable=yes ls&apos; does report a lot of leaks. Am I correct in assuming that the following steps are correct for running valgrind on 10.7 right now?

export CC=gcc-4.2
build valgrind from trunk, revision 12043 as usual (autoconf, configure, make, make install)
valgrind &lt;options&gt; &lt;executable&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167355</commentid>
    <comment_count>27</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-09-26 22:22:34 +0000</bug_when>
    <thetext>(In reply to comment #23)
&gt; I&apos;m not entirely sure where to start debugging this issue. The executable I&apos;m
&gt; trying to run memcheck against is a fairly simple C++ process - a testrunner
&gt; that forks off some child processes to run some unit tests.

From the look of the log file you attached, I&apos;d guess that SIGCHLD is not 
getting back to the parent, or some such.  So, the signal handling in 10.6
Valgrind support was pretty borked, so I am totally not surprised to hear
it might be borked in 10.7 too.

I think the most effective thing you can do is to cut this down into the
smallest possible test case, and attach it here.  You&apos;re of course welcome
to chase this directly, but the signals and syscalls stuff is complex and,
well, not a lot of fun.  If you choose the latter route, it might be a good
idea to compare the output of &quot;--trace-syscalls=yes --trace-signals=yes&quot;
on 10.6 and 10.7, to see where things diverge.

Oh .. and is this a 32- or 64-bit process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167358</commentid>
    <comment_count>28</comment_count>
    <who name="Tim Jarratt">tim</who>
    <bug_when>2011-09-26 22:29:57 +0000</bug_when>
    <thetext>Thanks for responding so swiftly, Julian.

It is indeed a 64-bit process. When I was reading through comments here earlier, I noticed that the original patch you were working on was for 64-bit only, so it&apos;s hopefully not that.

Sounds like chasing this down directly is the way of madness, so I&apos;ll see if I can&apos;t find a small reproducible test case. Either way, I&apos;ll keep watching the progress on this bug, hoping it will improve :-D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1170241</commentid>
    <comment_count>29</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-10-05 08:15:52 +0000</bug_when>
    <thetext>Status update as per current svn trunk (rev 12101):

* some further fixes for 32 bit apps were committed, so it no longer
  asserts in wqthread_hijack for complex threaded apps using worker
  thread queues.

* building with the default gcc in Xcode 4.1 is now supported, so you
  no longer need &quot;CC=gcc-4.2&quot; at configure time (or at any other time).

* handling of signals may or may not have improved; I don&apos;t know.

* 32-bit complex threaded apps using worker thread queues sometimes
  appear to hang whilst a 64-bit build of them works ok.  I don&apos;t
  know why this is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172392</commentid>
    <comment_count>30</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-10-12 11:00:17 +0000</bug_when>
    <thetext>I&apos;m inclined to close this now, since it at least minimally works
on 10.7.  Any followup problems should be filed as new bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172686</commentid>
    <comment_count>31</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-10-13 09:05:36 +0000</bug_when>
    <thetext>*** Bug 281304 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172688</commentid>
    <comment_count>32</comment_count>
    <who name="Julian Seward">jseward</who>
    <bug_when>2011-10-13 09:07:06 +0000</bug_when>
    <thetext>*** Bug 281305 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>60767</attachid>
            <date>2011-06-07 23:50:06 +0000</date>
            <delta_ts>2011-06-07 23:50:06 +0000</delta_ts>
            <desc>output of make</desc>
            <filename>make.log</filename>
            <type>application/octet-stream</type>
            <size>3849</size>
            <attacher name="WSK">Wolf.St.Kappesser</attacher>
            
              <data encoding="base64">dmFsZ3JpbmQtMy42LjEgd29sZiQgbWFrZQptYWtlICBhbGwtcmVjdXJzaXZlCk1ha2luZyBhbGwg
aW4gaW5jbHVkZQptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yIGBhbGwnLgpNYWtpbmcg
YWxsIGluIFZFWAptYWtlICBhbGwtYW0KbWFrZVszXTogTm90aGluZyB0byBiZSBkb25lIGZvciBg
YWxsLWFtJy4KTWFraW5nIGFsbCBpbiBjb3JlZ3JpbmQKbWFrZSAgYWxsLWFtCm1rZGlyIC1wIC4u
Ly5pbl9wbGFjZTsgXAoJZm9yIGYgaW4gdmdwcmVsb2FkX2NvcmUtYW1kNjQtZGFyd2luLnNvIHZn
cHJlbG9hZF9jb3JlLXg4Ni1kYXJ3aW4uc28gOyBkbyBcCgkgIHJtIC1mIC4uLy5pbl9wbGFjZS8k
ZjsgXAoJICBsbiAtZiAtcyAuLi9jb3JlZ3JpbmQvJGYgLi4vLmluX3BsYWNlOyBcCglkb25lCmZv
ciBmIGluIHZncHJlbG9hZF9jb3JlLWFtZDY0LWRhcndpbi5zbyB2Z3ByZWxvYWRfY29yZS14ODYt
ZGFyd2luLnNvOyBkbyBcCgkgIGlmIFsgISAtZSAkZi5kU1lNICAtbyAgJGYgLW50ICRmLmRTWU0g
XSA7IHRoZW4gXAoJICAgICAgZWNobyAiZHN5bXV0aWwgJGYiOyBcCgkgICAgICBkc3ltdXRpbCAk
ZjsgXAoJICBmaTsgXAoJZG9uZQpta2RpciAtcCAuLi8uaW5fcGxhY2U7IFwKCWZvciBmIGluIHZn
cHJlbG9hZF9jb3JlLWFtZDY0LWRhcndpbi5zbyB2Z3ByZWxvYWRfY29yZS14ODYtZGFyd2luLnNv
OyBkbyBcCgkgIHJtIC1mIC4uLy5pbl9wbGFjZS8kZi5kU1lNOyBcCgkgIGxuIC1mIC1zIC4uL2Nv
cmVncmluZC8kZi5kU1lNIC4uLy5pbl9wbGFjZTsgXAoJZG9uZQpNYWtpbmcgYWxsIGluIC4KbWtk
aXIgLXAgLi8uaW5fcGxhY2UKcm0gLWYgLi8uaW5fcGxhY2UvZGVmYXVsdC5zdXBwCmxuIC1zIC4u
L2RlZmF1bHQuc3VwcCAuLy5pbl9wbGFjZQpNYWtpbmcgYWxsIGluIG1lbWNoZWNrCk1ha2luZyBh
bGwgaW4gLgpta2RpciAtcCAuLi8uaW5fcGxhY2U7IFwKCWZvciBmIGluIG1lbWNoZWNrLWFtZDY0
LWRhcndpbiBtZW1jaGVjay14ODYtZGFyd2luIHZncHJlbG9hZF9tZW1jaGVjay1hbWQ2NC1kYXJ3
aW4uc28gdmdwcmVsb2FkX21lbWNoZWNrLXg4Ni1kYXJ3aW4uc28gOyBkbyBcCgkgIHJtIC1mIC4u
Ly5pbl9wbGFjZS8kZjsgXAoJICBsbiAtZiAtcyAuLi9tZW1jaGVjay8kZiAuLi8uaW5fcGxhY2U7
IFwKCWRvbmUKZm9yIGYgaW4gbWVtY2hlY2stYW1kNjQtZGFyd2luIG1lbWNoZWNrLXg4Ni1kYXJ3
aW4gdmdwcmVsb2FkX21lbWNoZWNrLWFtZDY0LWRhcndpbi5zbyB2Z3ByZWxvYWRfbWVtY2hlY2st
eDg2LWRhcndpbi5zbzsgZG8gXAoJICBpZiBbICEgLWUgJGYuZFNZTSAgLW8gICRmIC1udCAkZi5k
U1lNIF0gOyB0aGVuIFwKCSAgICAgIGVjaG8gImRzeW11dGlsICRmIjsgXAoJICAgICAgZHN5bXV0
aWwgJGY7IFwKCSAgZmk7IFwKCWRvbmUKbWtkaXIgLXAgLi4vLmluX3BsYWNlOyBcCglmb3IgZiBp
biBtZW1jaGVjay1hbWQ2NC1kYXJ3aW4gbWVtY2hlY2steDg2LWRhcndpbiB2Z3ByZWxvYWRfbWVt
Y2hlY2stYW1kNjQtZGFyd2luLnNvIHZncHJlbG9hZF9tZW1jaGVjay14ODYtZGFyd2luLnNvOyBk
byBcCgkgIHJtIC1mIC4uLy5pbl9wbGFjZS8kZi5kU1lNOyBcCgkgIGxuIC1mIC1zIC4uL21lbWNo
ZWNrLyRmLmRTWU0gLi4vLmluX3BsYWNlOyBcCglkb25lCk1ha2luZyBhbGwgaW4gdGVzdHMKTWFr
aW5nIGFsbCBpbiAuCm1ha2VbNF06IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgYGFsbC1hbScuCk1h
a2luZyBhbGwgaW4geDg2Cm1ha2VbNF06IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgYGFsbCcuCk1h
a2luZyBhbGwgaW4gYW1kNjQKbWFrZVs0XTogTm90aGluZyB0byBiZSBkb25lIGZvciBgYWxsJy4K
TWFraW5nIGFsbCBpbiBkYXJ3aW4KbWFrZVs0XTogTm90aGluZyB0byBiZSBkb25lIGZvciBgYWxs
Jy4KTWFraW5nIGFsbCBpbiBwZXJmCm1ha2VbM106IE5vdGhpbmcgdG8gYmUgZG9uZSBmb3IgYGFs
bCcuCk1ha2luZyBhbGwgaW4gY2FjaGVncmluZApNYWtpbmcgYWxsIGluIC4KbWtkaXIgLXAgLi4v
LmluX3BsYWNlOyBcCglmb3IgZiBpbiBjYWNoZWdyaW5kLWFtZDY0LWRhcndpbiBjYWNoZWdyaW5k
LXg4Ni1kYXJ3aW4gOyBkbyBcCgkgIHJtIC1mIC4uLy5pbl9wbGFjZS8kZjsgXAoJICBsbiAtZiAt
cyAuLi9jYWNoZWdyaW5kLyRmIC4uLy5pbl9wbGFjZTsgXAoJZG9uZQpmb3IgZiBpbiA7IGRvIFwK
CSAgaWYgWyAhIC1lICRmLmRTWU0gIC1vICAkZiAtbnQgJGYuZFNZTSBdIDsgdGhlbiBcCgkgICAg
ICBlY2hvICJkc3ltdXRpbCAkZiI7IFwKCSAgICAgIGRzeW11dGlsICRmOyBcCgkgIGZpOyBcCglk
b25lCm1rZGlyIC1wIC4uLy5pbl9wbGFjZTsgXAoJZm9yIGYgaW4gOyBkbyBcCgkgIHJtIC1mIC4u
Ly5pbl9wbGFjZS8kZi5kU1lNOyBcCgkgIGxuIC1mIC1zIC4uL2NhY2hlZ3JpbmQvJGYuZFNZTSAu
Li8uaW5fcGxhY2U7IFwKCWRvbmUKTWFraW5nIGFsbCBpbiB0ZXN0cwpNYWtpbmcgYWxsIGluIC4K
bWFrZVs0XTogTm90aGluZyB0byBiZSBkb25lIGZvciBgYWxsLWFtJy4KTWFraW5nIGFsbCBpbiB4
ODYKbWFrZVs0XTogTm90aGluZyB0byBiZSBkb25lIGZvciBgYWxsJy4KTWFraW5nIGFsbCBpbiBj
YWxsZ3JpbmQKTWFraW5nIGFsbCBpbiAuCm1rZGlyIC1wIC4uLy5pbl9wbGFjZTsgXAoJZm9yIGYg
aW4gY2FsbGdyaW5kLWFtZDY0LWRhcndpbiBjYWxsZ3JpbmQteDg2LWRhcndpbiA7IGRvIFwKCSAg
cm0gLWYgLi4vLmluX3BsYWNlLyRmOyBcCgkgIGxuIC1mIC1zIC4uL2NhbGxncmluZC8kZiAuLi8u
aW5fcGxhY2U7IFwKCWRvbmUKZm9yIGYgaW4gOyBkbyBcCgkgIGlmIFsgISAtZSAkZi5kU1lNICAt
byAgJGYgLW50ICRmLmRTWU0gXSA7IHRoZW4gXAoJICAgICAgZWNobyAiZHN5bXV0aWwgJGYiOyBc
CgkgICAgICBkc3ltdXRpbCAkZjsgXAoJICBmaTsgXAoJZG9uZQpta2RpciAtcCAuLi8uaW5fcGxh
Y2U7IFwKCWZvciBmIGluIDsgZG8gXAoJICBybSAtZiAuLi8uaW5fcGxhY2UvJGYuZFNZTTsgXAoJ
ICBsbiAtZiAtcyAuLi9jYWxsZ3JpbmQvJGYuZFNZTSAuLi8uaW5fcGxhY2U7IFwKCWRvbmUKTWFr
aW5nIGFsbCBpbiB0ZXN0cwpNYWtpbmcgYWxsIGluIC4KbWFrZVs0XTogTm90aGluZyB0byBiZSBk
b25lIGZvciBgYWxsLWFtJy4KTWFraW5nIGFsbCBpbiBtYXNzaWYKTWFraW5nIGFsbCBpbiAuCi4u
L2NvcmVncmluZC9saW5rX3Rvb2xfZXhlX2RhcndpbiAweDM4MDAwMDAwIGdjYyAgLVduby1sb25n
LWxvbmcgIC1Xbm8tcG9pbnRlci1zaWduIC1mbm8tc3RhY2stcHJvdGVjdG9yICAgLW8gbWFzc2lm
LXg4Ni1kYXJ3aW4gIC1hcmNoIGkzODYgLU8yIC1nIC1XYWxsIC1XbWlzc2luZy1wcm90b3R5cGVz
IC1Xc2hhZG93IC1XcG9pbnRlci1hcml0aCAtV3N0cmljdC1wcm90b3R5cGVzIC1XbWlzc2luZy1k
ZWNsYXJhdGlvbnMgLVduby1mb3JtYXQtemVyby1sZW5ndGggLWZuby1zdHJpY3QtYWxpYXNpbmcg
LW1tYWNvc3gtdmVyc2lvbi1taW49MTAuNSAtZm5vLXN0YWNrLXByb3RlY3RvciAtZm5vLXBpYyAt
Zm5vLVBJQyAtbm9kZWZhdWx0bGlicyAtbm9zdGFydGZpbGVzIC1XbCwtdSxfX3N0YXJ0IC1XbCwt
ZSxfX3N0YXJ0IC1hcmNoIGkzODYgbWFzc2lmX3g4Nl9kYXJ3aW4tbXNfbWFpbi5vIC4uL2NvcmVn
cmluZC9saWJjb3JlZ3JpbmQteDg2LWRhcndpbi5hIC4uL1ZFWC9saWJ2ZXgteDg2LWRhcndpbi5h
IC1sZ2NjIAovdXNyL2Jpbi9sZF9jbGFzc2ljOiBVbmRlZmluZWQgc3ltYm9sczoKX19fZml4dW5z
ZGZkaQptYWtlWzNdOiAqKiogW21hc3NpZi14ODYtZGFyd2luXSBFcnJvciAxCm1ha2VbMl06ICoq
KiBbYWxsLXJlY3Vyc2l2ZV0gRXJyb3IgMQptYWtlWzFdOiAqKiogW2FsbC1yZWN1cnNpdmVdIEVy
cm9yIDEKbWFrZTogKioqIFthbGxdIEVycm9yIDIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>60768</attachid>
            <date>2011-06-07 23:51:44 +0000</date>
            <delta_ts>2011-06-07 23:51:44 +0000</delta_ts>
            <desc>Adapted configure file</desc>
            <filename>configure</filename>
            <type>application/octet-stream</type>
            <size>318875</size>
            <attacher name="WSK">Wolf.St.Kappesser</attacher>
            
              <data encoding="base64">IyEgL2Jpbi9zaAojIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMg
YW5kIGNyZWF0ZSBNYWtlZmlsZXMuCiMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY1IGZv
ciBWYWxncmluZCAzLjYuMS4KIwojIFJlcG9ydCBidWdzIHRvIDx2YWxncmluZC11c2Vyc0BsaXN0
cy5zb3VyY2Vmb3JnZS5uZXQ+LgojCiMKIyBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQs
IDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCiMgMjAwMiwgMjAwMywgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCiMg
SW5jLgojCiMKIyBUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbgojIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv
cHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK
IyMgTTRzaCBJbml0aWFsaXphdGlvbi4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKCiMg
QmUgbW9yZSBCb3VybmUgY29tcGF0aWJsZQpEVUFMQ0FTRT0xOyBleHBvcnQgRFVBTENBU0UgIyBm
b3IgTUtTIHNoCmlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gp
ID4vZGV2L251bGwgMj4mMTsgdGhlbiA6CiAgZW11bGF0ZSBzaAogIE5VTExDTUQ9OgogICMgUHJl
LTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGlj
aAogICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCiAg
YWxpYXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCiAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKZWxzZQog
IGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAjKAogICpwb3NpeCopIDoKICAgIHNldCAt
byBwb3NpeCA7OyAjKAogICopIDoKICAgICA7Owplc2FjCmZpCgoKYXNfbmw9JwonCmV4cG9ydCBh
c19ubAojIFByaW50aW5nIGEgbG9uZyBzdHJpbmcgY3Jhc2hlcyBTb2xhcmlzIDcgL3Vzci9iaW4v
cHJpbnRmLgphc19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc
XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc
XFxcXFxcJwphc19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8K
YXNfZWNobz0kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8K
IyBQcmVmZXIgYSBrc2ggc2hlbGwgYnVpbHRpbiBvdmVyIGFuIGV4dGVybmFsIHByaW50ZiBwcm9n
cmFtIG9uIFNvbGFyaXMsCiMgYnV0IHdpdGhvdXQgd2FzdGluZyBmb3JrcyBmb3IgYmFzaCBvciB6
c2guCmlmIHRlc3QgLXogIiRCQVNIX1ZFUlNJT04kWlNIX1ZFUlNJT04iIFwKICAgICYmICh0ZXN0
ICJYYHByaW50IC1yIC0tICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRo
ZW4KICBhc19lY2hvPSdwcmludCAtciAtLScKICBhc19lY2hvX249J3ByaW50IC1ybiAtLScKZWxp
ZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVs
bDsgdGhlbgogIGFzX2VjaG89J3ByaW50ZiAlc1xuJwogIGFzX2VjaG9fbj0ncHJpbnRmICVzJwpl
bHNlCiAgaWYgdGVzdCAiWGAoL3Vzci91Y2IvZWNobyAtbiAtbiAkYXNfZWNobykgMj4vZGV2L251
bGxgIiA9ICJYLW4gJGFzX2VjaG8iOyB0aGVuCiAgICBhc19lY2hvX2JvZHk9J2V2YWwgL3Vzci91
Y2IvZWNobyAtbiAiJDEkYXNfbmwiJwogICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJwog
IGVsc2UKICAgIGFzX2VjaG9fYm9keT0nZXZhbCBleHByICJYJDEiIDogIlhcXCguKlxcKSInCiAg
ICBhc19lY2hvX25fYm9keT0nZXZhbAogICAgICBhcmc9JDE7CiAgICAgIGNhc2UgJGFyZyBpbiAj
KAogICAgICAqIiRhc19ubCIqKQoJZXhwciAiWCRhcmciIDogIlhcXCguKlxcKSRhc19ubCI7Cglh
cmc9YGV4cHIgIlgkYXJnIiA6ICIuKiRhc19ubFxcKC4qXFwpImA7OwogICAgICBlc2FjOwogICAg
ICBleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpIiB8IHRyIC1kICIkYXNfbmwiCiAgICAnCiAgICBl
eHBvcnQgYXNfZWNob19uX2JvZHkKICAgIGFzX2VjaG9fbj0nc2ggLWMgJGFzX2VjaG9fbl9ib2R5
IGFzX2VjaG8nCiAgZmkKICBleHBvcnQgYXNfZWNob19ib2R5CiAgYXNfZWNobz0nc2ggLWMgJGFz
X2VjaG9fYm9keSBhc19lY2hvJwpmaQoKIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCmlmIHRl
c3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCiAgUEFUSF9TRVBBUkFUT1I9
OgogIChQQVRIPScvYmluOy9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9kZXYvbnVsbCAy
PiYxICYmIHsKICAgIChQQVRIPScvYmluOi9iaW4nOyBGUEFUSD0kUEFUSDsgc2ggLWMgOikgPi9k
ZXYvbnVsbCAyPiYxIHx8CiAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JwogIH0KZmkKCgojIElGUwoj
IFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVy
LiAgUXVvdGluZyBpcwojIHRoZXJlIHRvIHByZXZlbnQgZWRpdG9ycyBmcm9tIGNvbXBsYWluaW5n
IGFib3V0IHNwYWNlLXRhYi4KIyAoSWYgX0FTX1BBVEhfV0FMSyB3ZXJlIGNhbGxlZCB3aXRoIElG
UyB1bnNldCwgaXQgd291bGQgZGlzYWJsZSB3b3JkCiMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZT
IHRvIGVtcHR5IHZhbHVlLikKSUZTPSIgIiIJJGFzX25sIgoKIyBGaW5kIHdobyB3ZSBhcmUuICBM
b29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KY2Fz
ZSAkMCBpbiAjKCgKICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7CiAgKikgYXNfc2F2ZV9JRlM9
JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRh
c19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgICB0ZXN0IC1yICIk
YXNfZGlyLyQwIiAmJiBhc19teXNlbGY9JGFzX2Rpci8kMCAmJiBicmVhawogIGRvbmUKSUZTPSRh
c19zYXZlX0lGUwoKICAgICA7Owplc2FjCiMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9z
dCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKIyBpbiB3aGljaCBjYXNlIHdl
IGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCmlmIHRlc3QgIngkYXNfbXlzZWxmIiA9
IHg7IHRoZW4KICBhc19teXNlbGY9JDAKZmkKaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhl
bgogICRhc19lY2hvICIkYXNfbXlzZWxmOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1
biB3aXRoIGFuIGFic29sdXRlIGZpbGUgbmFtZSIgPiYyCiAgZXhpdCAxCmZpCgojIFVuc2V0IHZh
cmlhYmxlcyB0aGF0IHdlIGRvIG5vdCBuZWVkIGFuZCB3aGljaCBjYXVzZSBidWdzIChlLmcuIGlu
CiMgcHJlLTMuMCBVV0lOIGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3MgaW4gYmFzaCAyLjAx
OyB0aGUgInx8IGV4aXQgMSIKIyBzdXBwcmVzc2VzIGFueSAiU2VnbWVudGF0aW9uIGZhdWx0IiBt
ZXNzYWdlIHRoZXJlLiAgJygoJyBjb3VsZAojIHRyaWdnZXIgYSBidWcgaW4gcGRrc2ggNS4yLjE0
Lgpmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICmRvIGV2YWwgdGVzdCB4
XCR7JGFzX3ZhcitzZXR9ID0geHNldCBcCiAgJiYgKCAodW5zZXQgJGFzX3ZhcikgfHwgZXhpdCAx
KSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgJGFzX3ZhciB8fCA6CmRvbmUKUFMxPSckICcKUFMy
PSc+ICcKUFM0PScrICcKCiMgTkxTIG51aXNhbmNlcy4KTENfQUxMPUMKZXhwb3J0IExDX0FMTApM
QU5HVUFHRT1DCmV4cG9ydCBMQU5HVUFHRQoKIyBDRFBBVEguCih1bnNldCBDRFBBVEgpID4vZGV2
L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKCmlmIHRlc3QgIngkQ09ORklHX1NIRUxMIiA9IHg7
IHRoZW4KICBhc19ib3VybmVfY29tcGF0aWJsZT0iaWYgdGVzdCAtbiBcIlwke1pTSF9WRVJTSU9O
K3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoKICBlbXVsYXRl
IHNoCiAgTlVMTENNRD06CiAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0
dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAogICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdl
LiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCiAgYWxpYXMgLWcgJ1wkezErXCJcJEBcIn0nPSdcIlwk
QFwiJwogIHNldG9wdCBOT19HTE9CX1NVQlNUCmVsc2UKICBjYXNlIFxgKHNldCAtbykgMj4vZGV2
L251bGxcYCBpbiAjKAogICpwb3NpeCopIDoKICAgIHNldCAtbyBwb3NpeCA7OyAjKAogICopIDoK
ICAgICA7Owplc2FjCmZpCiIKICBhc19yZXF1aXJlZD0iYXNfZm5fcmV0dXJuICgpIHsgKGV4aXQg
XCQxKTsgfQphc19mbl9zdWNjZXNzICgpIHsgYXNfZm5fcmV0dXJuIDA7IH0KYXNfZm5fZmFpbHVy
ZSAoKSB7IGFzX2ZuX3JldHVybiAxOyB9CmFzX2ZuX3JldF9zdWNjZXNzICgpIHsgcmV0dXJuIDA7
IH0KYXNfZm5fcmV0X2ZhaWx1cmUgKCkgeyByZXR1cm4gMTsgfQoKZXhpdGNvZGU9MAphc19mbl9z
dWNjZXNzIHx8IHsgZXhpdGNvZGU9MTsgZWNobyBhc19mbl9zdWNjZXNzIGZhaWxlZC47IH0KYXNf
Zm5fZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fZmFpbHVyZSBzdWNjZWVkZWQu
OyB9CmFzX2ZuX3JldF9zdWNjZXNzIHx8IHsgZXhpdGNvZGU9MTsgZWNobyBhc19mbl9yZXRfc3Vj
Y2VzcyBmYWlsZWQuOyB9CmFzX2ZuX3JldF9mYWlsdXJlICYmIHsgZXhpdGNvZGU9MTsgZWNobyBh
c19mbl9yZXRfZmFpbHVyZSBzdWNjZWVkZWQuOyB9CmlmICggc2V0IHg7IGFzX2ZuX3JldF9zdWNj
ZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuIDoKCmVsc2UKICBleGl0Y29kZT0xOyBl
Y2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4KZmkKdGVzdCB4XCRleGl0
Y29kZSA9IHgwIHx8IGV4aXQgMSIKICBhc19zdWdnZXN0ZWQ9IiAgYXNfbGluZW5vXzE9Ijthc19z
dWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87YXNfc3VnZ2VzdGVkPSRhc19zdWdnZXN0ZWQi
IGFzX2xpbmVub18xYT1cJExJTkVOTwogIGFzX2xpbmVub18yPSI7YXNfc3VnZ2VzdGVkPSRhc19z
dWdnZXN0ZWQkTElORU5PO2FzX3N1Z2dlc3RlZD0kYXNfc3VnZ2VzdGVkIiBhc19saW5lbm9fMmE9
XCRMSU5FTk8KICBldmFsICd0ZXN0IFwieFwkYXNfbGluZW5vXzEnXCRhc19ydW4nXCIgIT0gXCJ4
XCRhc19saW5lbm9fMidcJGFzX3J1bidcIiAmJgogIHRlc3QgXCJ4XGBleHByIFwkYXNfbGluZW5v
XzEnXCRhc19ydW4nICsgMVxgXCIgPSBcInhcJGFzX2xpbmVub18yJ1wkYXNfcnVuJ1wiJyB8fCBl
eGl0IDEKdGVzdCBcJCgoIDEgKyAxICkpID0gMiB8fCBleGl0IDEiCiAgaWYgKGV2YWwgIiRhc19y
ZXF1aXJlZCIpIDI+L2Rldi9udWxsOyB0aGVuIDoKICBhc19oYXZlX3JlcXVpcmVkPXllcwplbHNl
CiAgYXNfaGF2ZV9yZXF1aXJlZD1ubwpmaQogIGlmIHRlc3QgeCRhc19oYXZlX3JlcXVpcmVkID0g
eHllcyAmJiAoZXZhbCAiJGFzX3N1Z2dlc3RlZCIpIDI+L2Rldi9udWxsOyB0aGVuIDoKCmVsc2UK
ICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmFzX2ZvdW5kPWZhbHNlCmZv
ciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFSQVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBB
VEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K
ICBhc19mb3VuZD06CiAgY2FzZSAkYXNfZGlyIGluICMoCgkgLyopCgkgICBmb3IgYXNfYmFzZSBp
biBzaCBiYXNoIGtzaCBzaDU7IGRvCgkgICAgICMgVHJ5IG9ubHkgc2hlbGxzIHRoYXQgZXhpc3Qs
IHRvIHNhdmUgc2V2ZXJhbCBmb3Jrcy4KCSAgICAgYXNfc2hlbGw9JGFzX2Rpci8kYXNfYmFzZQoJ
ICAgICBpZiB7IHRlc3QgLWYgIiRhc19zaGVsbCIgfHwgdGVzdCAtZiAiJGFzX3NoZWxsLmV4ZSI7
IH0gJiYKCQkgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfcmVxdWly
ZWQiIHwgYXNfcnVuPWEgIiRhc19zaGVsbCI7IH0gMj4vZGV2L251bGw7IHRoZW4gOgogIENPTkZJ
R19TSEVMTD0kYXNfc2hlbGwgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKCQkgICBpZiB7ICRhc19lY2hv
ICIkYXNfYm91cm5lX2NvbXBhdGlibGUiIiRhc19zdWdnZXN0ZWQiIHwgYXNfcnVuPWEgIiRhc19z
aGVsbCI7IH0gMj4vZGV2L251bGw7IHRoZW4gOgogIGJyZWFrIDIKZmkKZmkKCSAgIGRvbmU7Owog
ICAgICAgZXNhYwogIGFzX2ZvdW5kPWZhbHNlCmRvbmUKJGFzX2ZvdW5kIHx8IHsgaWYgeyB0ZXN0
IC1mICIkU0hFTEwiIHx8IHRlc3QgLWYgIiRTSEVMTC5leGUiOyB9ICYmCgkgICAgICB7ICRhc19l
Y2hvICIkYXNfYm91cm5lX2NvbXBhdGlibGUiIiRhc19yZXF1aXJlZCIgfCBhc19ydW49YSAiJFNI
RUxMIjsgfSAyPi9kZXYvbnVsbDsgdGhlbiA6CiAgQ09ORklHX1NIRUxMPSRTSEVMTCBhc19oYXZl
X3JlcXVpcmVkPXllcwpmaTsgfQpJRlM9JGFzX3NhdmVfSUZTCgoKICAgICAgaWYgdGVzdCAieCRD
T05GSUdfU0hFTEwiICE9IHg7IHRoZW4gOgogICMgV2UgY2Fubm90IHlldCBhc3N1bWUgYSBkZWNl
bnQgc2hlbGwsIHNvIHdlIGhhdmUgdG8gcHJvdmlkZSBhCgkjIG5ldXRyYWxpemF0aW9uIHZhbHVl
IGZvciBzaGVsbHMgd2l0aG91dCB1bnNldDsgYW5kIHRoaXMgYWxzbwoJIyB3b3JrcyBhcm91bmQg
c2hlbGxzIHRoYXQgY2Fubm90IHVuc2V0IG5vbmV4aXN0ZW50IHZhcmlhYmxlcy4KCUJBU0hfRU5W
PS9kZXYvbnVsbAoJRU5WPS9kZXYvbnVsbAoJKHVuc2V0IEJBU0hfRU5WKSA+L2Rldi9udWxsIDI+
JjEgJiYgdW5zZXQgQkFTSF9FTlYgRU5WCglleHBvcnQgQ09ORklHX1NIRUxMCglleGVjICIkQ09O
RklHX1NIRUxMIiAiJGFzX215c2VsZiIgJHsxKyIkQCJ9CmZpCgogICAgaWYgdGVzdCB4JGFzX2hh
dmVfcmVxdWlyZWQgPSB4bm87IHRoZW4gOgogICRhc19lY2hvICIkMDogVGhpcyBzY3JpcHQgcmVx
dWlyZXMgYSBzaGVsbCBtb3JlIG1vZGVybiB0aGFuIGFsbCIKICAkYXNfZWNobyAiJDA6IHRoZSBz
aGVsbHMgdGhhdCBJIGZvdW5kIG9uIHlvdXIgc3lzdGVtLiIKICBpZiB0ZXN0IHgke1pTSF9WRVJT
SU9OK3NldH0gPSB4c2V0IDsgdGhlbgogICAgJGFzX2VjaG8gIiQwOiBJbiBwYXJ0aWN1bGFyLCB6
c2ggJFpTSF9WRVJTSU9OIGhhcyBidWdzIGFuZCBzaG91bGQiCiAgICAkYXNfZWNobyAiJDA6IGJl
IHVwZ3JhZGVkIHRvIHpzaCA0LjMuNCBvciBsYXRlci4iCiAgZWxzZQogICAgJGFzX2VjaG8gIiQw
OiBQbGVhc2UgdGVsbCBidWctYXV0b2NvbmZAZ251Lm9yZyBhbmQKJDA6IHZhbGdyaW5kLXVzZXJz
QGxpc3RzLnNvdXJjZWZvcmdlLm5ldCBhYm91dCB5b3VyIHN5c3RlbSwKJDA6IGluY2x1ZGluZyBh
bnkgZXJyb3IgcG9zc2libHkgb3V0cHV0IGJlZm9yZSB0aGlzCiQwOiBtZXNzYWdlLiBUaGVuIGlu
c3RhbGwgYSBtb2Rlcm4gc2hlbGwsIG9yIG1hbnVhbGx5IHJ1bgokMDogdGhlIHNjcmlwdCB1bmRl
ciBzdWNoIGEgc2hlbGwgaWYgeW91IGRvIGhhdmUgb25lLiIKICBmaQogIGV4aXQgMQpmaQpmaQpm
aQpTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQpleHBvcnQgU0hFTEwKIyBVbnNldCBtb3Jl
IHZhcmlhYmxlcyBrbm93biB0byBpbnRlcmZlcmUgd2l0aCBiZWhhdmlvciBvZiBjb21tb24gdG9v
bHMuCkNMSUNPTE9SX0ZPUkNFPSBHUkVQX09QVElPTlM9CnVuc2V0IENMSUNPTE9SX0ZPUkNFIEdS
RVBfT1BUSU9OUwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiMjIE00c2ggU2hlbGwgRnVu
Y3Rpb25zLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyBhc19mbl91bnNldCBWQVIK
IyAtLS0tLS0tLS0tLS0tLS0KIyBQb3J0YWJseSB1bnNldCBWQVIuCmFzX2ZuX3Vuc2V0ICgpCnsK
ICB7IGV2YWwgJDE9OyB1bnNldCAkMTt9Cn0KYXNfdW5zZXQ9YXNfZm5fdW5zZXQKCiMgYXNfZm5f
c2V0X3N0YXR1cyBTVEFUVVMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNldCAkPyB0byBT
VEFUVVMsIHdpdGhvdXQgZm9ya2luZy4KYXNfZm5fc2V0X3N0YXR1cyAoKQp7CiAgcmV0dXJuICQx
Cn0gIyBhc19mbl9zZXRfc3RhdHVzCgojIGFzX2ZuX2V4aXQgU1RBVFVTCiMgLS0tLS0tLS0tLS0t
LS0tLS0KIyBFeGl0IHRoZSBzaGVsbCB3aXRoIFNUQVRVUywgZXZlbiBpbiBhICJ0cmFwIDAiIG9y
ICJzZXQgLWUiIGNvbnRleHQuCmFzX2ZuX2V4aXQgKCkKewogIHNldCArZQogIGFzX2ZuX3NldF9z
dGF0dXMgJDEKICBleGl0ICQxCn0gIyBhc19mbl9leGl0CgojIGFzX2ZuX21rZGlyX3AKIyAtLS0t
LS0tLS0tLS0tCiMgQ3JlYXRlICIkYXNfZGlyIiBhcyBhIGRpcmVjdG9yeSwgaW5jbHVkaW5nIHBh
cmVudHMgaWYgbmVjZXNzYXJ5Lgphc19mbl9ta2Rpcl9wICgpCnsKCiAgY2FzZSAkYXNfZGlyIGlu
ICMoCiAgLSopIGFzX2Rpcj0uLyRhc19kaXI7OwogIGVzYWMKICB0ZXN0IC1kICIkYXNfZGlyIiB8
fCBldmFsICRhc19ta2Rpcl9wIHx8IHsKICAgIGFzX2RpcnM9CiAgICB3aGlsZSA6OyBkbwogICAg
ICBjYXNlICRhc19kaXIgaW4gIygKICAgICAgKlwnKikgYXNfcWRpcj1gJGFzX2VjaG8gIiRhc19k
aXIiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsgIycoCiAgICAgICopIGFzX3FkaXI9JGFz
X2Rpcjs7CiAgICAgIGVzYWMKICAgICAgYXNfZGlycz0iJyRhc19xZGlyJyAkYXNfZGlycyIKICAg
ICAgYXNfZGlyPWAkYXNfZGlybmFtZSAtLSAiJGFzX2RpciIgfHwKJGFzX2V4cHIgWCIkYXNfZGly
IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAoJIFgiJGFzX2RpciIgOiAnWFwo
Ly9cKVteL10nIFx8IFwKCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCgkgWCIkYXNfZGly
IiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKJGFzX2VjaG8gWCIkYXNfZGlyIiB8CiAg
ICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewoJICAgIHMvL1wxLwoJICAg
IHEKCSAgfQoJICAvXlhcKFwvXC9cKVteL10uKi97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9Cgkg
IC9eWFwoXC9cL1wpJC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cKS4qL3sK
CSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgcy8uKi8uLzsgcSdgCiAgICAgIHRlc3QgLWQgIiRh
c19kaXIiICYmIGJyZWFrCiAgICBkb25lCiAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAi
bWtkaXIgJGFzX2RpcnMiCiAgfSB8fCB0ZXN0IC1kICIkYXNfZGlyIiB8fCBhc19mbl9lcnJvciAi
Y2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgJGFzX2RpciIKCgp9ICMgYXNfZm5fbWtkaXJfcAojIGFz
X2ZuX2FwcGVuZCBWQVIgVkFMVUUKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQXBwZW5kIHRo
ZSB0ZXh0IGluIFZBTFVFIHRvIHRoZSBlbmQgb2YgdGhlIGRlZmluaXRpb24gY29udGFpbmVkIGlu
IFZBUi4gVGFrZQojIGFkdmFudGFnZSBvZiBhbnkgc2hlbGwgb3B0aW1pemF0aW9ucyB0aGF0IGFs
bG93IGFtb3J0aXplZCBsaW5lYXIgZ3Jvd3RoIG92ZXIKIyByZXBlYXRlZCBhcHBlbmRzLCBpbnN0
ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRyYXRpYyBncm93dGggcHJlc2VudCBpbiBuYWl2ZQojIGlt
cGxlbWVudGF0aW9ucy4KaWYgKGV2YWwgImFzX3Zhcj0xOyBhc192YXIrPTI7IHRlc3QgeFwkYXNf
dmFyID0geDEyIikgMj4vZGV2L251bGw7IHRoZW4gOgogIGV2YWwgJ2FzX2ZuX2FwcGVuZCAoKQog
IHsKICAgIGV2YWwgJDErPVwkMgogIH0nCmVsc2UKICBhc19mbl9hcHBlbmQgKCkKICB7CiAgICBl
dmFsICQxPVwkJDFcJDIKICB9CmZpICMgYXNfZm5fYXBwZW5kCgojIGFzX2ZuX2FyaXRoIEFSRy4u
LgojIC0tLS0tLS0tLS0tLS0tLS0tLQojIFBlcmZvcm0gYXJpdGhtZXRpYyBldmFsdWF0aW9uIG9u
IHRoZSBBUkdzLCBhbmQgc3RvcmUgdGhlIHJlc3VsdCBpbiB0aGUKIyBnbG9iYWwgJGFzX3ZhbC4g
VGFrZSBhZHZhbnRhZ2Ugb2Ygc2hlbGxzIHRoYXQgY2FuIGF2b2lkIGZvcmtzLiBUaGUgYXJndW1l
bnRzCiMgbXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIuCmlmIChldmFsICJ0
ZXN0IFwkKCggMSArIDEgKSkgPSAyIikgMj4vZGV2L251bGw7IHRoZW4gOgogIGV2YWwgJ2FzX2Zu
X2FyaXRoICgpCiAgewogICAgYXNfdmFsPSQoKCAkKiApKQogIH0nCmVsc2UKICBhc19mbl9hcml0
aCAoKQogIHsKICAgIGFzX3ZhbD1gZXhwciAiJEAiIHx8IHRlc3QgJD8gLWVxIDFgCiAgfQpmaSAj
IGFzX2ZuX2FyaXRoCgoKIyBhc19mbl9lcnJvciBFUlJPUiBbTElORU5PIExPR19GRF0KIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBPdXRwdXQgImBiYXNlbmFtZSAkMGA6IGVy
cm9yOiBFUlJPUiIgdG8gc3RkZXJyLiBJZiBMSU5FTk8gYW5kIExPR19GRCBhcmUKIyBwcm92aWRl
ZCwgYWxzbyBvdXRwdXQgdGhlIGVycm9yIHRvIExPR19GRCwgcmVmZXJlbmNpbmcgTElORU5PLiBU
aGVuIGV4aXQgdGhlCiMgc2NyaXB0IHdpdGggc3RhdHVzICQ/LCB1c2luZyAxIGlmIHRoYXQgd2Fz
IDAuCmFzX2ZuX2Vycm9yICgpCnsKICBhc19zdGF0dXM9JD87IHRlc3QgJGFzX3N0YXR1cyAtZXEg
MCAmJiBhc19zdGF0dXM9MQogIGlmIHRlc3QgIiQzIjsgdGhlbgogICAgYXNfbGluZW5vPSR7YXNf
bGluZW5vLSIkMiJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19z
dGFjawogICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6ICQx
IiA+JiQzCiAgZmkKICAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJDEiID4mMgogIGFzX2ZuX2V4
aXQgJGFzX3N0YXR1cwp9ICMgYXNfZm5fZXJyb3IKCmlmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYv
bnVsbCAyPiYxICYmCiAgIHRlc3QgIlhgZXhwciAwMDAwMSA6ICcuKlwoLi4uXCknYCIgPSBYMDAx
OyB0aGVuCiAgYXNfZXhwcj1leHByCmVsc2UKICBhc19leHByPWZhbHNlCmZpCgppZiAoYmFzZW5h
bWUgLS0gLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLS0gLyAyPiYxYCIg
PSAiWC8iOyB0aGVuCiAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKZWxzZQogIGFzX2Jhc2VuYW1lPWZh
bHNlCmZpCgppZiAoYXNfZGlyPWBkaXJuYW1lIC0tIC9gICYmIHRlc3QgIlgkYXNfZGlyIiA9IFgv
KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICBhc19kaXJuYW1lPWRpcm5hbWUKZWxzZQogIGFzX2Rp
cm5hbWU9ZmFsc2UKZmkKCmFzX21lPWAkYXNfYmFzZW5hbWUgLS0gIiQwIiB8fAokYXNfZXhwciBY
LyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwgXAoJIFgiJDAiIDogJ1hcKC8vXCkkJyBc
fCBcCgkgWCIkMCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CiRhc19lY2hvIFgvIiQw
IiB8CiAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKCSAgICBzLy9cMS8KCSAgICBx
CgkgIH0KCSAgL15YXC9cKFwvXC9cKSQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhc
L1woXC9cKS4qL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgcy8uKi8uLzsgcSdgCgojIEF2
b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCmFzX2NyX2xldHRlcnM9J2FiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6Jwphc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJT
VFVWV1hZWicKYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRURVJTCmFzX2Ny
X2RpZ2l0cz0nMDEyMzQ1Njc4OScKYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGln
aXRzCgoKICBhc19saW5lbm9fMT0kTElORU5PIGFzX2xpbmVub18xYT0kTElORU5PCiAgYXNfbGlu
ZW5vXzI9JExJTkVOTyBhc19saW5lbm9fMmE9JExJTkVOTwogIGV2YWwgJ3Rlc3QgIngkYXNfbGlu
ZW5vXzEnJGFzX3J1biciICE9ICJ4JGFzX2xpbmVub18yJyRhc19ydW4nIiAmJgogIHRlc3QgInhg
ZXhwciAkYXNfbGluZW5vXzEnJGFzX3J1bicgKyAxYCIgPSAieCRhc19saW5lbm9fMickYXNfcnVu
JyInIHx8IHsKICAjIEJsYW1lIExlZSBFLiBNY01haG9uICgxOTMxLTE5ODkpIGZvciBzZWQncyBz
eW50YXguICA6LSkKICBzZWQgLW4gJwogICAgcAogICAgL1skXUxJTkVOTy89CiAgJyA8JGFzX215
c2VsZiB8CiAgICBzZWQgJwogICAgICBzL1skXUxJTkVOTy4qLyYtLwogICAgICB0IGxpbmVubwog
ICAgICBiCiAgICAgIDpsaW5lbm8KICAgICAgTgogICAgICA6bG9vcAogICAgICBzL1skXUxJTkVO
T1woW14nJGFzX2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KICAgICAgdCBsb29wCiAg
ICAgIHMvLVxuLiovLwogICAgJyA+JGFzX21lLmxpbmVubyAmJgogIGNobW9kICt4ICIkYXNfbWUu
bGluZW5vIiB8fAogICAgeyAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAk
YXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMjsgYXNfZm5fZXhpdCAx
OyB9CgogICMgRG9uJ3QgdHJ5IHRvIGV4ZWMgYXMgaXQgY2hhbmdlcyAkWzBdLCBjYXVzaW5nIGFs
bCBzb3J0IG9mIHByb2JsZW1zCiAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBs
YWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCiAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRv
Y29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4KICAuICIuLyRhc19tZS5saW5l
bm8iCiAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCiAgZXhpdAp9
CgpFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQpjYXNlIGBlY2hvIC1uIHhgIGluICMoKCgoKAotbiop
CiAgY2FzZSBgZWNobyAneHlcYydgIGluCiAgKmMqKSBFQ0hPX1Q9JwknOzsJIyBFQ0hPX1QgaXMg
c2luZ2xlIHRhYiBjaGFyYWN0ZXIuCiAgeHkpICBFQ0hPX0M9J1xjJzs7CiAgKikgICBlY2hvIGBl
Y2hvIGtzaDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAogICAgICAgRUNIT19UPScJJzs7
CiAgZXNhYzs7CiopCiAgRUNIT19OPSctbic7Owplc2FjCgpybSAtZiBjb25mJCQgY29uZiQkLmV4
ZSBjb25mJCQuZmlsZQppZiB0ZXN0IC1kIGNvbmYkJC5kaXI7IHRoZW4KICBybSAtZiBjb25mJCQu
ZGlyL2NvbmYkJC5maWxlCmVsc2UKICBybSAtZiBjb25mJCQuZGlyCiAgbWtkaXIgY29uZiQkLmRp
ciAyPi9kZXYvbnVsbApmaQppZiAoZWNobyA+Y29uZiQkLmZpbGUpIDI+L2Rldi9udWxsOyB0aGVu
CiAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCiAgICBhc19s
bl9zPSdsbiAtcycKICAgICMgLi4uIGJ1dCB0aGVyZSBhcmUgdHdvIGdvdGNoYXM6CiAgICAjIDEp
IE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgog
ICAgIyAyKSBESkdQUCA8IDIuMDQgaGFzIG5vIHN5bWxpbmtzOyBgbG4gLXMnIGNyZWF0ZXMgYSB3
cmFwcGVyIGV4ZWN1dGFibGUuCiAgICAjIEluIGJvdGggY2FzZXMsIHdlIGhhdmUgdG8gZGVmYXVs
dCB0byBgY3AgLXAnLgogICAgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVs
bCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAogICAgICBhc19sbl9zPSdjcCAtcCcKICBlbGlm
IGxuIGNvbmYkJC5maWxlIGNvbmYkJCAyPi9kZXYvbnVsbDsgdGhlbgogICAgYXNfbG5fcz1sbgog
IGVsc2UKICAgIGFzX2xuX3M9J2NwIC1wJwogIGZpCmVsc2UKICBhc19sbl9zPSdjcCAtcCcKZmkK
cm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmRpci9jb25mJCQuZmlsZSBjb25mJCQuZmls
ZQpybWRpciBjb25mJCQuZGlyIDI+L2Rldi9udWxsCgppZiBta2RpciAtcCAuIDI+L2Rldi9udWxs
OyB0aGVuCiAgYXNfbWtkaXJfcD0nbWtkaXIgLXAgIiRhc19kaXIiJwplbHNlCiAgdGVzdCAtZCAu
Ly1wICYmIHJtZGlyIC4vLXAKICBhc19ta2Rpcl9wPWZhbHNlCmZpCgppZiB0ZXN0IC14IC8gPi9k
ZXYvbnVsbCAyPiYxOyB0aGVuCiAgYXNfdGVzdF94PSd0ZXN0IC14JwplbHNlCiAgaWYgbHMgLWRM
IC8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICBhc19sc19MX29wdGlvbj1MCiAgZWxzZQogICAg
YXNfbHNfTF9vcHRpb249CiAgZmkKICBhc190ZXN0X3g9JwogICAgZXZhbCBzaCAtYyAnXCcnCiAg
ICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgoJdGVzdCAtZCAiJDEvLiI7CiAgICAgIGVsc2UKCWNh
c2UgJDEgaW4gIygKCS0qKXNldCAiLi8kMSI7OwoJZXNhYzsKCWNhc2UgYGxzIC1sZCckYXNfbHNf
TF9vcHRpb24nICIkMSIgMj4vZGV2L251bGxgIGluICMoKAoJPz8/W3N4XSopOjs7KilmYWxzZTs7
ZXNhYztmaQogICAgJ1wnJyBzaAogICcKZmkKYXNfZXhlY3V0YWJsZV9wPSRhc190ZXN0X3gKCiMg
U2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBDUFAgbmFtZS4KYXNf
dHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVte
XyRhc19jcl9hbG51bV0lXyVnJyIKCiMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9u
dG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgphc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3Ml
W15fJGFzX2NyX2FsbnVtXSVfJWcnIgoKCnRlc3QgLW4gIiRESkRJUiIgfHwgZXhlYyA3PCYwIDwv
ZGV2L251bGwKZXhlYyA2PiYxCgojIE5hbWUgb2YgdGhlIGhvc3QuCiMgaG9zdG5hbWUgb24gc29t
ZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4KSByZXR1cm5zIGEgYm9ndXMgZXhpdCBzdGF0dXMsCiMg
c28gdW5hbWUgZ2V0cyBydW4gdG9vLgphY19ob3N0bmFtZT1gKGhvc3RuYW1lIHx8IHVuYW1lIC1u
KSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKCiMKIyBJbml0aWFsaXphdGlvbnMuCiMKYWNfZGVmYXVs
dF9wcmVmaXg9L3Vzci9sb2NhbAphY19jbGVhbl9maWxlcz0KYWNfY29uZmlnX2xpYm9ial9kaXI9
LgpMSUJPQkpTPQpjcm9zc19jb21waWxpbmc9bm8Kc3ViZGlycz0KTUZMQUdTPQpNQUtFRkxBR1M9
CgojIElkZW50aXR5IG9mIHRoaXMgcGFja2FnZS4KUEFDS0FHRV9OQU1FPSdWYWxncmluZCcKUEFD
S0FHRV9UQVJOQU1FPSd2YWxncmluZCcKUEFDS0FHRV9WRVJTSU9OPSczLjYuMScKUEFDS0FHRV9T
VFJJTkc9J1ZhbGdyaW5kIDMuNi4xJwpQQUNLQUdFX0JVR1JFUE9SVD0ndmFsZ3JpbmQtdXNlcnNA
bGlzdHMuc291cmNlZm9yZ2UubmV0JwpQQUNLQUdFX1VSTD0nJwoKYWNfdW5pcXVlX2ZpbGU9ImNv
cmVncmluZC9tX21haW4uYyIKIyBGYWN0b3JpbmcgZGVmYXVsdCBoZWFkZXJzIGZvciBtb3N0IHRl
c3RzLgphY19pbmNsdWRlc19kZWZhdWx0PSJcCiNpbmNsdWRlIDxzdGRpby5oPgojaWZkZWYgSEFW
RV9TWVNfVFlQRVNfSAojIGluY2x1ZGUgPHN5cy90eXBlcy5oPgojZW5kaWYKI2lmZGVmIEhBVkVf
U1lTX1NUQVRfSAojIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CiNlbmRpZgojaWZkZWYgU1REQ19IRUFE
RVJTCiMgaW5jbHVkZSA8c3RkbGliLmg+CiMgaW5jbHVkZSA8c3RkZGVmLmg+CiNlbHNlCiMgaWZk
ZWYgSEFWRV9TVERMSUJfSAojICBpbmNsdWRlIDxzdGRsaWIuaD4KIyBlbmRpZgojZW5kaWYKI2lm
ZGVmIEhBVkVfU1RSSU5HX0gKIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBI
QVZFX01FTU9SWV9ICiMgIGluY2x1ZGUgPG1lbW9yeS5oPgojIGVuZGlmCiMgaW5jbHVkZSA8c3Ry
aW5nLmg+CiNlbmRpZgojaWZkZWYgSEFWRV9TVFJJTkdTX0gKIyBpbmNsdWRlIDxzdHJpbmdzLmg+
CiNlbmRpZgojaWZkZWYgSEFWRV9JTlRUWVBFU19ICiMgaW5jbHVkZSA8aW50dHlwZXMuaD4KI2Vu
ZGlmCiNpZmRlZiBIQVZFX1NURElOVF9ICiMgaW5jbHVkZSA8c3RkaW50Lmg+CiNlbmRpZgojaWZk
ZWYgSEFWRV9VTklTVERfSAojIGluY2x1ZGUgPHVuaXN0ZC5oPgojZW5kaWYiCgphY19oZWFkZXJf
bGlzdD0KYWNfc3Vic3RfdmFycz0nYW1fX0VYRUVYVF9GQUxTRQphbV9fRVhFRVhUX1RSVUUKTFRM
SUJPQkpTCkhBVkVfQlVJTFRJTl9BVE9NSUNfRkFMU0UKSEFWRV9CVUlMVElOX0FUT01JQ19UUlVF
CkhBVkVfT1BFTk1QX0ZBTFNFCkhBVkVfT1BFTk1QX1RSVUUKSEFWRV9CT09TVF8xXzM1X0ZBTFNF
CkhBVkVfQk9PU1RfMV8zNV9UUlVFCkJPT1NUX0xJQlMKQk9PU1RfQ0ZMQUdTCkhBVkVfUVRDT1JF
X1FBVE9NSUNJTlRfRkFMU0UKSEFWRV9RVENPUkVfUUFUT01JQ0lOVF9UUlVFCkhBVkVfUVRDT1JF
X0ZBTFNFCkhBVkVfUVRDT1JFX1RSVUUKUVRDT1JFX0xJQlMKUVRDT1JFX0NGTEFHUwpQS0dfQ09O
RklHCkJVSUxEX01QSVdSQVBfU0VDX0ZBTFNFCkJVSUxEX01QSVdSQVBfU0VDX1RSVUUKQlVJTERf
TVBJV1JBUF9QUklfRkFMU0UKQlVJTERfTVBJV1JBUF9QUklfVFJVRQpNUElfQ0MKSEFWRV9QVEhS
RUFEX1NQSU5MT0NLX0ZBTFNFCkhBVkVfUFRIUkVBRF9TUElOTE9DS19UUlVFCkhBVkVfUFRIUkVB
RF9NVVRFWF9USU1FRExPQ0tfRkFMU0UKSEFWRV9QVEhSRUFEX01VVEVYX1RJTUVETE9DS19UUlVF
CkhBVkVfUFRIUkVBRF9CQVJSSUVSX0ZBTFNFCkhBVkVfUFRIUkVBRF9CQVJSSUVSX1RSVUUKTElC
T0JKUwpCVUlMRF9MWkNOVF9URVNUU19GQUxTRQpCVUlMRF9MWkNOVF9URVNUU19UUlVFCkJVSUxE
X1BDTE1VTFFEUV9URVNUU19GQUxTRQpCVUlMRF9QQ0xNVUxRRFFfVEVTVFNfVFJVRQpCVUlMRF9T
U1NFM19URVNUU19GQUxTRQpCVUlMRF9TU1NFM19URVNUU19UUlVFCkJVSUxEX1NTRTNfVEVTVFNf
RkFMU0UKQlVJTERfU1NFM19URVNUU19UUlVFCkZMQUdfTk9fQlVJTERfSUQKRkxBR19VTkxJTUlU
RURfSU5MSU5FX1VOSVRfR1JPV1RICkZMQUdfRk5PX1NUQUNLX1BST1RFQ1RPUgpGTEFHX1dfRVhU
UkEKRkxBR19XX05PX1VOSU5JVElBTElaRUQKRkxBR19XX05PX0ZPUk1BVF9aRVJPX0xFTkdUSApG
TEFHX1dfTk9fRU1QVFlfQk9EWQpQUkVGRVJSRURfU1RBQ0tfQk9VTkRBUlkKRkxBR19NU1NFCkZM
QUdfTU1NWApGTEFHX01BSVg2NApGTEFHX002NApGTEFHX01BSVgzMgpGTEFHX00zMgpIQVZFX1BU
SFJFQURfQ1JFQVRFX0dMSUJDXzJfMF9GQUxTRQpIQVZFX1BUSFJFQURfQ1JFQVRFX0dMSUJDXzJf
MF9UUlVFCkhBU19BTFRJVkVDX0ZBTFNFCkhBU19BTFRJVkVDX1RSVUUKR0xJQkNfVkVSU0lPTgpF
R1JFUApHUkVQCkRFRkFVTFRfU1VQUApWQUxUX0xPQURfQUREUkVTU19TRUMKVkFMVF9MT0FEX0FE
RFJFU1NfUFJJClZHQ09ORl9IQVZFX1BMQVRGT1JNX1NFQ19GQUxTRQpWR0NPTkZfSEFWRV9QTEFU
Rk9STV9TRUNfVFJVRQpWR0NPTkZfT1NfSVNfREFSV0lOX0ZBTFNFClZHQ09ORl9PU19JU19EQVJX
SU5fVFJVRQpWR0NPTkZfT1NfSVNfQUlYNV9GQUxTRQpWR0NPTkZfT1NfSVNfQUlYNV9UUlVFClZH
Q09ORl9PU19JU19MSU5VWF9GQUxTRQpWR0NPTkZfT1NfSVNfTElOVVhfVFJVRQpWR0NPTkZfUExB
VEZPUk1TX0lOQ0xVREVfQU1ENjRfREFSV0lOX0ZBTFNFClZHQ09ORl9QTEFURk9STVNfSU5DTFVE
RV9BTUQ2NF9EQVJXSU5fVFJVRQpWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X0RBUldJTl9G
QUxTRQpWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X0RBUldJTl9UUlVFClZHQ09ORl9QTEFU
Rk9STVNfSU5DTFVERV9QUEM2NF9BSVg1X0ZBTFNFClZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9Q
UEM2NF9BSVg1X1RSVUUKVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1BQQzMyX0FJWDVfRkFMU0UK
VkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1BQQzMyX0FJWDVfVFJVRQpWR0NPTkZfUExBVEZPUk1T
X0lOQ0xVREVfQVJNX0xJTlVYX0ZBTFNFClZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9BUk1fTElO
VVhfVFJVRQpWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBDNjRfTElOVVhfRkFMU0UKVkdDT05G
X1BMQVRGT1JNU19JTkNMVURFX1BQQzY0X0xJTlVYX1RSVUUKVkdDT05GX1BMQVRGT1JNU19JTkNM
VURFX1BQQzMyX0xJTlVYX0ZBTFNFClZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9QUEMzMl9MSU5V
WF9UUlVFClZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9BTUQ2NF9MSU5VWF9GQUxTRQpWR0NPTkZf
UExBVEZPUk1TX0lOQ0xVREVfQU1ENjRfTElOVVhfVFJVRQpWR0NPTkZfUExBVEZPUk1TX0lOQ0xV
REVfWDg2X0xJTlVYX0ZBTFNFClZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9YODZfTElOVVhfVFJV
RQpWR0NPTkZfQVJDSFNfSU5DTFVERV9BUk1fRkFMU0UKVkdDT05GX0FSQ0hTX0lOQ0xVREVfQVJN
X1RSVUUKVkdDT05GX0FSQ0hTX0lOQ0xVREVfUFBDNjRfRkFMU0UKVkdDT05GX0FSQ0hTX0lOQ0xV
REVfUFBDNjRfVFJVRQpWR0NPTkZfQVJDSFNfSU5DTFVERV9QUEMzMl9GQUxTRQpWR0NPTkZfQVJD
SFNfSU5DTFVERV9QUEMzMl9UUlVFClZHQ09ORl9BUkNIU19JTkNMVURFX0FNRDY0X0ZBTFNFClZH
Q09ORl9BUkNIU19JTkNMVURFX0FNRDY0X1RSVUUKVkdDT05GX0FSQ0hTX0lOQ0xVREVfWDg2X0ZB
TFNFClZHQ09ORl9BUkNIU19JTkNMVURFX1g4Nl9UUlVFClZHQ09ORl9QTEFURk9STV9TRUNfQ0FQ
UwpWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMKVkdDT05GX0FSQ0hfU0VDClZHQ09ORl9BUkNIX1BS
SQpWR0NPTkZfT1MKaG9zdF9vcwpob3N0X3ZlbmRvcgpob3N0X2NwdQpob3N0CmJ1aWxkX29zCmJ1
aWxkX3ZlbmRvcgpidWlsZF9jcHUKYnVpbGQKRElGRgphbV9fZmFzdGRlcENDQVNfRkFMU0UKYW1f
X2Zhc3RkZXBDQ0FTX1RSVUUKQ0NBU0RFUE1PREUKQ0NBU0ZMQUdTCkNDQVMKR0RCClBFUkwKQVIK
U0VEClJBTkxJQgphbV9fZmFzdGRlcENYWF9GQUxTRQphbV9fZmFzdGRlcENYWF9UUlVFCkNYWERF
UE1PREUKYWNfY3RfQ1hYCkNYWEZMQUdTCkNYWApDUFAKYW1fX2Zhc3RkZXBDQ19GQUxTRQphbV9f
ZmFzdGRlcENDX1RSVUUKQ0NERVBNT0RFCkFNREVQQkFDS1NMQVNICkFNREVQX0ZBTFNFCkFNREVQ
X1RSVUUKYW1fX3F1b3RlCmFtX19pbmNsdWRlCkRFUERJUgpPQkpFWFQKRVhFRVhUCmFjX2N0X0ND
CkNQUEZMQUdTCkxERkxBR1MKQ0ZMQUdTCkNDCkxOX1MKTUFJTlQKTUFJTlRBSU5FUl9NT0RFX0ZB
TFNFCk1BSU5UQUlORVJfTU9ERV9UUlVFCmFtX191bnRhcgphbV9fdGFyCkFNVEFSCmFtX19sZWFk
aW5nX2RvdApTRVRfTUFLRQpBV0sKbWtkaXJfcApNS0RJUl9QCklOU1RBTExfU1RSSVBfUFJPR1JB
TQpTVFJJUAppbnN0YWxsX3NoCk1BS0VJTkZPCkFVVE9IRUFERVIKQVVUT01BS0UKQVVUT0NPTkYK
QUNMT0NBTApWRVJTSU9OClBBQ0tBR0UKQ1lHUEFUSF9XCmFtX19pc3JjCklOU1RBTExfREFUQQpJ
TlNUQUxMX1NDUklQVApJTlNUQUxMX1BST0dSQU0KdGFyZ2V0X2FsaWFzCmhvc3RfYWxpYXMKYnVp
bGRfYWxpYXMKTElCUwpFQ0hPX1QKRUNIT19OCkVDSE9fQwpERUZTCm1hbmRpcgpsb2NhbGVkaXIK
bGliZGlyCnBzZGlyCnBkZmRpcgpkdmlkaXIKaHRtbGRpcgppbmZvZGlyCmRvY2RpcgpvbGRpbmNs
dWRlZGlyCmluY2x1ZGVkaXIKbG9jYWxzdGF0ZWRpcgpzaGFyZWRzdGF0ZWRpcgpzeXNjb25mZGly
CmRhdGFkaXIKZGF0YXJvb3RkaXIKbGliZXhlY2RpcgpzYmluZGlyCmJpbmRpcgpwcm9ncmFtX3Ry
YW5zZm9ybV9uYW1lCnByZWZpeApleGVjX3ByZWZpeApQQUNLQUdFX1VSTApQQUNLQUdFX0JVR1JF
UE9SVApQQUNLQUdFX1NUUklORwpQQUNLQUdFX1ZFUlNJT04KUEFDS0FHRV9UQVJOQU1FClBBQ0tB
R0VfTkFNRQpQQVRIX1NFUEFSQVRPUgpTSEVMTCcKYWNfc3Vic3RfZmlsZXM9JycKYWNfdXNlcl9v
cHRzPScKZW5hYmxlX29wdGlvbl9jaGVja2luZwplbmFibGVfbWFpbnRhaW5lcl9tb2RlCmVuYWJs
ZV9kZXBlbmRlbmN5X3RyYWNraW5nCmVuYWJsZV9vbmx5NjRiaXQKZW5hYmxlX29ubHkzMmJpdApl
bmFibGVfaW5uZXIKZW5hYmxlX3Rscwp3aXRoX21waWNjCicKICAgICAgYWNfcHJlY2lvdXNfdmFy
cz0nYnVpbGRfYWxpYXMKaG9zdF9hbGlhcwp0YXJnZXRfYWxpYXMKQ0MKQ0ZMQUdTCkxERkxBR1MK
TElCUwpDUFBGTEFHUwpDUFAKQ1hYCkNYWEZMQUdTCkNDQwpBUgpDQ0FTCkNDQVNGTEFHUwpQS0df
Q09ORklHClFUQ09SRV9DRkxBR1MKUVRDT1JFX0xJQlMnCgoKIyBJbml0aWFsaXplIHNvbWUgdmFy
aWFibGVzIHNldCBieSBvcHRpb25zLgphY19pbml0X2hlbHA9CmFjX2luaXRfdmVyc2lvbj1mYWxz
ZQphY191bnJlY29nbml6ZWRfb3B0cz0KYWNfdW5yZWNvZ25pemVkX3NlcD0KIyBUaGUgdmFyaWFi
bGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMsIHdpdGgKIyBkYXNoZXMgY2hh
bmdlZCB0byB1bmRlcmxpbmVzLgpjYWNoZV9maWxlPS9kZXYvbnVsbApleGVjX3ByZWZpeD1OT05F
Cm5vX2NyZWF0ZT0Kbm9fcmVjdXJzaW9uPQpwcmVmaXg9Tk9ORQpwcm9ncmFtX3ByZWZpeD1OT05F
CnByb2dyYW1fc3VmZml4PU5PTkUKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1zLHgseCwKc2lsZW50
PQpzaXRlPQpzcmNkaXI9CnZlcmJvc2U9CnhfaW5jbHVkZXM9Tk9ORQp4X2xpYnJhcmllcz1OT05F
CgojIEluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgb3B0aW9ucy4KIyBUaGVzZSBhcmUgbGVmdCB1bmV4
cGFuZGVkIHNvIHVzZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4PS9mb28iCiMgYW5k
IGFsbCB0aGUgdmFyaWFibGVzIHRoYXQgYXJlIHN1cHBvc2VkIHRvIGJlIGJhc2VkIG9uIGV4ZWNf
cHJlZml4CiMgYnkgZGVmYXVsdCB3aWxsIGFjdHVhbGx5IGNoYW5nZS4KIyBVc2UgYnJhY2VzIGlu
c3RlYWQgb2YgcGFyZW5zIGJlY2F1c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBhY2NlcHQgdGhlbS4K
IyAoVGhlIGxpc3QgZm9sbG93cyB0aGUgc2FtZSBvcmRlciBhcyB0aGUgR05VIENvZGluZyBTdGFu
ZGFyZHMuKQpiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKc2JpbmRpcj0nJHtleGVjX3ByZWZp
eH0vc2JpbicKbGliZXhlY2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKZGF0YXJvb3RkaXI9
JyR7cHJlZml4fS9zaGFyZScKZGF0YWRpcj0nJHtkYXRhcm9vdGRpcn0nCnN5c2NvbmZkaXI9JyR7
cHJlZml4fS9ldGMnCnNoYXJlZHN0YXRlZGlyPScke3ByZWZpeH0vY29tJwpsb2NhbHN0YXRlZGly
PScke3ByZWZpeH0vdmFyJwppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKb2xkaW5jbHVk
ZWRpcj0nL3Vzci9pbmNsdWRlJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tBR0Vf
VEFSTkFNRX0nCmluZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCmh0bWxkaXI9JyR7ZG9jZGly
fScKZHZpZGlyPScke2RvY2Rpcn0nCnBkZmRpcj0nJHtkb2NkaXJ9Jwpwc2Rpcj0nJHtkb2NkaXJ9
JwpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9s
b2NhbGUnCm1hbmRpcj0nJHtkYXRhcm9vdGRpcn0vbWFuJwoKYWNfcHJldj0KYWNfZGFzaGRhc2g9
CmZvciBhY19vcHRpb24KZG8KICAjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZHMgYW4gYXJn
dW1lbnQsIGFzc2lnbiBpdC4KICBpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KICAgIGV2YWwg
JGFjX3ByZXY9XCRhY19vcHRpb24KICAgIGFjX3ByZXY9CiAgICBjb250aW51ZQogIGZpCgogIGNh
c2UgJGFjX29wdGlvbiBpbgogICo9KikJYWNfb3B0YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAn
W149XSo9XCguKlwpJ2AgOzsKICAqKQlhY19vcHRhcmc9eWVzIDs7CiAgZXNhYwoKICAjIEFjY2Vw
dCB0aGUgaW1wb3J0YW50IEN5Z251cyBjb25maWd1cmUgb3B0aW9ucywgc28gd2UgY2FuIGRpYWdu
b3NlIHR5cG9zLgoKICBjYXNlICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KICAtLSkKICAgIGFj
X2Rhc2hkYXNoPXllcyA7OwoKICAtYmluZGlyIHwgLS1iaW5kaXIgfCAtLWJpbmRpIHwgLS1iaW5k
IHwgLS1iaW4gfCAtLWJpKQogICAgYWNfcHJldj1iaW5kaXIgOzsKICAtYmluZGlyPSogfCAtLWJp
bmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQogICAgYmlu
ZGlyPSRhY19vcHRhcmcgOzsKCiAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0tYnVpIHwg
LS1idSkKICAgIGFjX3ByZXY9YnVpbGRfYWxpYXMgOzsKICAtYnVpbGQ9KiB8IC0tYnVpbGQ9KiB8
IC0tYnVpbD0qIHwgLS1idWk9KiB8IC0tYnU9KikKICAgIGJ1aWxkX2FsaWFzPSRhY19vcHRhcmcg
OzsKCiAgLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZpbCB8IC0tY2FjaGUt
ZmkgXAogIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hlIHwgLS1jYWNoIHwgLS1jYWMg
fCAtLWNhIHwgLS1jKQogICAgYWNfcHJldj1jYWNoZV9maWxlIDs7CiAgLWNhY2hlLWZpbGU9KiB8
IC0tY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWw9KiB8IC0tY2FjaGUtZmk9KiBcCiAgfCAtLWNh
Y2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSogfCAtLWNhY2g9KiB8IC0tY2FjPSogfCAt
LWNhPSogfCAtLWM9KikKICAgIGNhY2hlX2ZpbGU9JGFjX29wdGFyZyA7OwoKICAtLWNvbmZpZy1j
YWNoZSB8IC1DKQogICAgY2FjaGVfZmlsZT1jb25maWcuY2FjaGUgOzsKCiAgLWRhdGFkaXIgfCAt
LWRhdGFkaXIgfCAtLWRhdGFkaSB8IC0tZGF0YWQpCiAgICBhY19wcmV2PWRhdGFkaXIgOzsKICAt
ZGF0YWRpcj0qIHwgLS1kYXRhZGlyPSogfCAtLWRhdGFkaT0qIHwgLS1kYXRhZD0qKQogICAgZGF0
YWRpcj0kYWNfb3B0YXJnIDs7CgogIC1kYXRhcm9vdGRpciB8IC0tZGF0YXJvb3RkaXIgfCAtLWRh
dGFyb290ZGkgfCAtLWRhdGFyb290ZCB8IC0tZGF0YXJvb3QgXAogIHwgLS1kYXRhcm9vIHwgLS1k
YXRhcm8gfCAtLWRhdGFyKQogICAgYWNfcHJldj1kYXRhcm9vdGRpciA7OwogIC1kYXRhcm9vdGRp
cj0qIHwgLS1kYXRhcm9vdGRpcj0qIHwgLS1kYXRhcm9vdGRpPSogfCAtLWRhdGFyb290ZD0qIFwK
ICB8IC0tZGF0YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0tZGF0YXI9KikK
ICAgIGRhdGFyb290ZGlyPSRhY19vcHRhcmcgOzsKCiAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0q
KQogICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUtXCguKlwp
J2AKICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBu
YW1lcy4KICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+
L2Rldi9udWxsICYmCiAgICAgIGFzX2ZuX2Vycm9yICJpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFj
X3VzZXJvcHQiCiAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKICAgIGFjX3VzZXJvcHQ9
YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKICAgIGNhc2UgJGFj
X3VzZXJfb3B0cyBpbgogICAgICAqIgoiZW5hYmxlXyRhY191c2Vyb3B0IgoiKikgOzsKICAgICAg
KikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29n
bml6ZWRfc2VwLS1kaXNhYmxlLSRhY191c2Vyb3B0X29yaWciCgkgYWNfdW5yZWNvZ25pemVkX3Nl
cD0nLCAnOzsKICAgIGVzYWMKICAgIGV2YWwgZW5hYmxlXyRhY191c2Vyb3B0PW5vIDs7CgogIC1k
b2NkaXIgfCAtLWRvY2RpciB8IC0tZG9jZGkgfCAtLWRvYyB8IC0tZG8pCiAgICBhY19wcmV2PWRv
Y2RpciA7OwogIC1kb2NkaXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAtLWRvYz0qIHwg
LS1kbz0qKQogICAgZG9jZGlyPSRhY19vcHRhcmcgOzsKCiAgLWR2aWRpciB8IC0tZHZpZGlyIHwg
LS1kdmlkaSB8IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKICAgIGFjX3ByZXY9ZHZpZGlyIDs7CiAg
LWR2aWRpcj0qIHwgLS1kdmlkaXI9KiB8IC0tZHZpZGk9KiB8IC0tZHZpZD0qIHwgLS1kdmk9KiB8
IC0tZHY9KikKICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7CgogIC1lbmFibGUtKiB8IC0tZW5hYmxl
LSopCiAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149
XSpcKSdgCiAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFi
bGUgbmFtZXMuCiAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVt
XSIgPi9kZXYvbnVsbCAmJgogICAgICBhc19mbl9lcnJvciAiaW52YWxpZCBmZWF0dXJlIG5hbWU6
ICRhY191c2Vyb3B0IgogICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CiAgICBhY191c2Vy
b3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCiAgICBjYXNl
ICRhY191c2VyX29wdHMgaW4KICAgICAgKiIKImVuYWJsZV8kYWNfdXNlcm9wdCIKIiopIDs7CiAg
ICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5y
ZWNvZ25pemVkX3NlcC0tZW5hYmxlLSRhY191c2Vyb3B0X29yaWciCgkgYWNfdW5yZWNvZ25pemVk
X3NlcD0nLCAnOzsKICAgIGVzYWMKICAgIGV2YWwgZW5hYmxlXyRhY191c2Vyb3B0PVwkYWNfb3B0
YXJnIDs7CgogIC1leGVjLXByZWZpeCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwg
LS1leGVjLXByZWZpIFwKICB8IC0tZXhlYy1wcmVmIHwgLS1leGVjLXByZSB8IC0tZXhlYy1wciB8
IC0tZXhlYy1wIHwgLS1leGVjLSBcCiAgfCAtLWV4ZWMgfCAtLWV4ZSB8IC0tZXgpCiAgICBhY19w
cmV2PWV4ZWNfcHJlZml4IDs7CiAgLWV4ZWMtcHJlZml4PSogfCAtLWV4ZWNfcHJlZml4PSogfCAt
LWV4ZWMtcHJlZml4PSogfCAtLWV4ZWMtcHJlZmk9KiBcCiAgfCAtLWV4ZWMtcHJlZj0qIHwgLS1l
eGVjLXByZT0qIHwgLS1leGVjLXByPSogfCAtLWV4ZWMtcD0qIHwgLS1leGVjLT0qIFwKICB8IC0t
ZXhlYz0qIHwgLS1leGU9KiB8IC0tZXg9KikKICAgIGV4ZWNfcHJlZml4PSRhY19vcHRhcmcgOzsK
CiAgLWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgt
Z2FzLgogICAgd2l0aF9nYXM9eWVzIDs7CgogIC1oZWxwIHwgLS1oZWxwIHwgLS1oZWwgfCAtLWhl
IHwgLWgpCiAgICBhY19pbml0X2hlbHA9bG9uZyA7OwogIC1oZWxwPXIqIHwgLS1oZWxwPXIqIHwg
LS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKICAgIGFjX2luaXRfaGVscD1yZWN1cnNpdmUgOzsK
ICAtaGVscD1zKiB8IC0taGVscD1zKiB8IC0taGVsPXMqIHwgLS1oZT1zKiB8IC1ocyopCiAgICBh
Y19pbml0X2hlbHA9c2hvcnQgOzsKCiAgLWhvc3QgfCAtLWhvc3QgfCAtLWhvcyB8IC0taG8pCiAg
ICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKICAtaG9zdD0qIHwgLS1ob3N0PSogfCAtLWhvcz0qIHwg
LS1obz0qKQogICAgaG9zdF9hbGlhcz0kYWNfb3B0YXJnIDs7CgogIC1odG1sZGlyIHwgLS1odG1s
ZGlyIHwgLS1odG1sZGkgfCAtLWh0bWxkIHwgLS1odG1sIHwgLS1odG0gfCAtLWh0KQogICAgYWNf
cHJldj1odG1sZGlyIDs7CiAgLWh0bWxkaXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1sZGk9KiB8
IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwgLS1odG09KiBcCiAgfCAtLWh0PSopCiAgICBodG1sZGly
PSRhY19vcHRhcmcgOzsKCiAgLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVk
aSB8IC0taW5jbHVkZWQgfCAtLWluY2x1ZGUgXAogIHwgLS1pbmNsdWQgfCAtLWluY2x1IHwgLS1p
bmNsIHwgLS1pbmMpCiAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKICAtaW5jbHVkZWRpcj0qIHwg
LS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwgLS1pbmNsdWRlZD0qIHwgLS1pbmNsdWRl
PSogXAogIHwgLS1pbmNsdWQ9KiB8IC0taW5jbHU9KiB8IC0taW5jbD0qIHwgLS1pbmM9KikKICAg
IGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwoKICAtaW5mb2RpciB8IC0taW5mb2RpciB8IC0taW5m
b2RpIHwgLS1pbmZvZCB8IC0taW5mbyB8IC0taW5mKQogICAgYWNfcHJldj1pbmZvZGlyIDs7CiAg
LWluZm9kaXI9KiB8IC0taW5mb2Rpcj0qIHwgLS1pbmZvZGk9KiB8IC0taW5mb2Q9KiB8IC0taW5m
bz0qIHwgLS1pbmY9KikKICAgIGluZm9kaXI9JGFjX29wdGFyZyA7OwoKICAtbGliZGlyIHwgLS1s
aWJkaXIgfCAtLWxpYmRpIHwgLS1saWJkKQogICAgYWNfcHJldj1saWJkaXIgOzsKICAtbGliZGly
PSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1saWJkPSopCiAgICBsaWJkaXI9JGFjX29w
dGFyZyA7OwoKICAtbGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8IC0tbGliZXhlY2RpIHwgLS1s
aWJleGVjZCB8IC0tbGliZXhlYyBcCiAgfCAtLWxpYmV4ZSB8IC0tbGliZXggfCAtLWxpYmUpCiAg
ICBhY19wcmV2PWxpYmV4ZWNkaXIgOzsKICAtbGliZXhlY2Rpcj0qIHwgLS1saWJleGVjZGlyPSog
fCAtLWxpYmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwgLS1saWJleGVjPSogXAogIHwgLS1saWJl
eGU9KiB8IC0tbGliZXg9KiB8IC0tbGliZT0qKQogICAgbGliZXhlY2Rpcj0kYWNfb3B0YXJnIDs7
CgogIC1sb2NhbGVkaXIgfCAtLWxvY2FsZWRpciB8IC0tbG9jYWxlZGkgfCAtLWxvY2FsZWQgfCAt
LWxvY2FsZSkKICAgIGFjX3ByZXY9bG9jYWxlZGlyIDs7CiAgLWxvY2FsZWRpcj0qIHwgLS1sb2Nh
bGVkaXI9KiB8IC0tbG9jYWxlZGk9KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9KikKICAgIGxv
Y2FsZWRpcj0kYWNfb3B0YXJnIDs7CgogIC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGly
IHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKICB8IC0tbG9jYWxzdGF0ZSB8IC0t
bG9jYWxzdGF0IHwgLS1sb2NhbHN0YSB8IC0tbG9jYWxzdCB8IC0tbG9jYWxzKQogICAgYWNfcHJl
dj1sb2NhbHN0YXRlZGlyIDs7CiAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0q
IHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCiAgfCAtLWxvY2Fsc3RhdGU9
KiB8IC0tbG9jYWxzdGF0PSogfCAtLWxvY2Fsc3RhPSogfCAtLWxvY2Fsc3Q9KiB8IC0tbG9jYWxz
PSopCiAgICBsb2NhbHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKCiAgLW1hbmRpciB8IC0tbWFuZGly
IHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwgLS1tYSB8IC0tbSkKICAgIGFjX3ByZXY9bWFu
ZGlyIDs7CiAgLW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0qIHwg
LS1tYW49KiB8IC0tbWE9KiB8IC0tbT0qKQogICAgbWFuZGlyPSRhY19vcHRhcmcgOzsKCiAgLW5m
cCB8IC0tbmZwIHwgLS1uZikKICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGhvdXQtZnAuCiAgICB3
aXRoX2ZwPW5vIDs7CgogIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAt
LW5vLWNyZWEgfCAtLW5vLWNyZSBcCiAgfCAtLW5vLWNyIHwgLS1uby1jIHwgLW4pCiAgICBub19j
cmVhdGU9eWVzIDs7CgogIC1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVj
dXJzaW8gfCAtLW5vLXJlY3Vyc2kgXAogIHwgLS1uby1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1u
by1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwgLS1uby1yKQogICAgbm9fcmVjdXJzaW9uPXll
cyA7OwoKICAtb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRp
IHwgLS1vbGRpbmNsdWRlZCBcCiAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGluY2x1ZCB8IC0tb2xk
aW5jbHUgfCAtLW9sZGluY2wgfCAtLW9sZGluYyBcCiAgfCAtLW9sZGluIHwgLS1vbGRpIHwgLS1v
bGQgfCAtLW9sIHwgLS1vKQogICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7CiAgLW9sZGluY2x1
ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9KiB8IC0tb2xkaW5j
bHVkZWQ9KiBcCiAgfCAtLW9sZGluY2x1ZGU9KiB8IC0tb2xkaW5jbHVkPSogfCAtLW9sZGluY2x1
PSogfCAtLW9sZGluY2w9KiB8IC0tb2xkaW5jPSogXAogIHwgLS1vbGRpbj0qIHwgLS1vbGRpPSog
fCAtLW9sZD0qIHwgLS1vbD0qIHwgLS1vPSopCiAgICBvbGRpbmNsdWRlZGlyPSRhY19vcHRhcmcg
OzsKCiAgLXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8IC0tcHJlIHwgLS1w
ciB8IC0tcCkKICAgIGFjX3ByZXY9cHJlZml4IDs7CiAgLXByZWZpeD0qIHwgLS1wcmVmaXg9KiB8
IC0tcHJlZmk9KiB8IC0tcHJlZj0qIHwgLS1wcmU9KiB8IC0tcHI9KiB8IC0tcD0qKQogICAgcHJl
Zml4PSRhY19vcHRhcmcgOzsKCiAgLXByb2dyYW0tcHJlZml4IHwgLS1wcm9ncmFtLXByZWZpeCB8
IC0tcHJvZ3JhbS1wcmVmaSB8IC0tcHJvZ3JhbS1wcmVmIFwKICB8IC0tcHJvZ3JhbS1wcmUgfCAt
LXByb2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKICAgIGFjX3ByZXY9cHJvZ3JhbV9wcmVmaXggOzsK
ICAtcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVmaXg9KiB8IC0tcHJvZ3JhbS1wcmVm
aT0qIFwKICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSogfCAtLXByb2dyYW0t
cHI9KiB8IC0tcHJvZ3JhbS1wPSopCiAgICBwcm9ncmFtX3ByZWZpeD0kYWNfb3B0YXJnIDs7Cgog
IC1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAtLXByb2dyYW0tc3VmZmkgfCAt
LXByb2dyYW0tc3VmZiBcCiAgfCAtLXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9n
cmFtLXMpCiAgICBhY19wcmV2PXByb2dyYW1fc3VmZml4IDs7CiAgLXByb2dyYW0tc3VmZml4PSog
fCAtLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZmk9KiBcCiAgfCAtLXByb2dyYW0t
c3VmZj0qIHwgLS1wcm9ncmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0q
KQogICAgcHJvZ3JhbV9zdWZmaXg9JGFjX29wdGFyZyA7OwoKICAtcHJvZ3JhbS10cmFuc2Zvcm0t
bmFtZSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSBcCiAgfCAtLXByb2dyYW0tdHJhbnNmb3Jt
LW5hbSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmEgXAogIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1u
IHwgLS1wcm9ncmFtLXRyYW5zZm9ybS0gXAogIHwgLS1wcm9ncmFtLXRyYW5zZm9ybSB8IC0tcHJv
Z3JhbS10cmFuc2ZvciBcCiAgfCAtLXByb2dyYW0tdHJhbnNmbyB8IC0tcHJvZ3JhbS10cmFuc2Yg
XAogIHwgLS1wcm9ncmFtLXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAogIHwgLS1wcm9nci10cmEg
fCAtLXByb2dyYW0tdHIgfCAtLXByb2dyYW0tdCkKICAgIGFjX3ByZXY9cHJvZ3JhbV90cmFuc2Zv
cm1fbmFtZSA7OwogIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dyYW0tdHJhbnNm
b3JtLW5hbWU9KiBcCiAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbT0qIHwgLS1wcm9ncmFtLXRy
YW5zZm9ybS1uYT0qIFwKICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbj0qIHwgLS1wcm9ncmFtLXRy
YW5zZm9ybS09KiBcCiAgfCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAtLXByb2dyYW0tdHJhbnNm
b3I9KiBcCiAgfCAtLXByb2dyYW0tdHJhbnNmbz0qIHwgLS1wcm9ncmFtLXRyYW5zZj0qIFwKICB8
IC0tcHJvZ3JhbS10cmFucz0qIHwgLS1wcm9ncmFtLXRyYW49KiBcCiAgfCAtLXByb2dyLXRyYT0q
IHwgLS1wcm9ncmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQogICAgcHJvZ3JhbV90cmFuc2Zvcm1f
bmFtZT0kYWNfb3B0YXJnIDs7CgogIC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRmZGkgfCAtLXBk
ZmQgfCAtLXBkZiB8IC0tcGQpCiAgICBhY19wcmV2PXBkZmRpciA7OwogIC1wZGZkaXI9KiB8IC0t
cGRmZGlyPSogfCAtLXBkZmRpPSogfCAtLXBkZmQ9KiB8IC0tcGRmPSogfCAtLXBkPSopCiAgICBw
ZGZkaXI9JGFjX29wdGFyZyA7OwoKICAtcHNkaXIgfCAtLXBzZGlyIHwgLS1wc2RpIHwgLS1wc2Qg
fCAtLXBzKQogICAgYWNfcHJldj1wc2RpciA7OwogIC1wc2Rpcj0qIHwgLS1wc2Rpcj0qIHwgLS1w
c2RpPSogfCAtLXBzZD0qIHwgLS1wcz0qKQogICAgcHNkaXI9JGFjX29wdGFyZyA7OwoKICAtcSB8
IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAogIHwgLXNp
bGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQogICAgc2lsZW50PXll
cyA7OwoKICAtc2JpbmRpciB8IC0tc2JpbmRpciB8IC0tc2JpbmRpIHwgLS1zYmluZCB8IC0tc2Jp
biB8IC0tc2JpIHwgLS1zYikKICAgIGFjX3ByZXY9c2JpbmRpciA7OwogIC1zYmluZGlyPSogfCAt
LXNiaW5kaXI9KiB8IC0tc2JpbmRpPSogfCAtLXNiaW5kPSogfCAtLXNiaW49KiBcCiAgfCAtLXNi
aT0qIHwgLS1zYj0qKQogICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7CgogIC1zaGFyZWRzdGF0ZWRp
ciB8IC0tc2hhcmVkc3RhdGVkaXIgfCAtLXNoYXJlZHN0YXRlZGkgXAogIHwgLS1zaGFyZWRzdGF0
ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAogIHwgLS1z
aGFyZWRzdCB8IC0tc2hhcmVkcyB8IC0tc2hhcmVkIHwgLS1zaGFyZSB8IC0tc2hhciBcCiAgfCAt
LXNoYSB8IC0tc2gpCiAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7CiAgLXNoYXJlZHN0YXRl
ZGlyPSogfCAtLXNoYXJlZHN0YXRlZGlyPSogfCAtLXNoYXJlZHN0YXRlZGk9KiBcCiAgfCAtLXNo
YXJlZHN0YXRlZD0qIHwgLS1zaGFyZWRzdGF0ZT0qIHwgLS1zaGFyZWRzdGF0PSogfCAtLXNoYXJl
ZHN0YT0qIFwKICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0t
c2hhcmU9KiB8IC0tc2hhcj0qIFwKICB8IC0tc2hhPSogfCAtLXNoPSopCiAgICBzaGFyZWRzdGF0
ZWRpcj0kYWNfb3B0YXJnIDs7CgogIC1zaXRlIHwgLS1zaXRlIHwgLS1zaXQpCiAgICBhY19wcmV2
PXNpdGUgOzsKICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQogICAgc2l0ZT0kYWNfb3B0
YXJnIDs7CgogIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8
IC0tc3IpCiAgICBhY19wcmV2PXNyY2RpciA7OwogIC1zcmNkaXI9KiB8IC0tc3JjZGlyPSogfCAt
LXNyY2RpPSogfCAtLXNyY2Q9KiB8IC0tc3JjPSogfCAtLXNyPSopCiAgICBzcmNkaXI9JGFjX29w
dGFyZyA7OwoKICAtc3lzY29uZmRpciB8IC0tc3lzY29uZmRpciB8IC0tc3lzY29uZmRpIHwgLS1z
eXNjb25mZCB8IC0tc3lzY29uZiBcCiAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAt
LXN5cyB8IC0tc3kpCiAgICBhY19wcmV2PXN5c2NvbmZkaXIgOzsKICAtc3lzY29uZmRpcj0qIHwg
LS1zeXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaT0qIHwgLS1zeXNjb25mZD0qIHwgLS1zeXNjb25m
PSogXAogIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0t
c3k9KikKICAgIHN5c2NvbmZkaXI9JGFjX29wdGFyZyA7OwoKICAtdGFyZ2V0IHwgLS10YXJnZXQg
fCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10KQogICAgYWNfcHJldj10YXJn
ZXRfYWxpYXMgOzsKICAtdGFyZ2V0PSogfCAtLXRhcmdldD0qIHwgLS10YXJnZT0qIHwgLS10YXJn
PSogfCAtLXRhcj0qIHwgLS10YT0qIHwgLS10PSopCiAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFy
ZyA7OwoKICAtdiB8IC12ZXJib3NlIHwgLS12ZXJib3NlIHwgLS12ZXJib3MgfCAtLXZlcmJvIHwg
LS12ZXJiKQogICAgdmVyYm9zZT15ZXMgOzsKCiAgLXZlcnNpb24gfCAtLXZlcnNpb24gfCAtLXZl
cnNpbyB8IC0tdmVyc2kgfCAtLXZlcnMgfCAtVikKICAgIGFjX2luaXRfdmVyc2lvbj06IDs7Cgog
IC13aXRoLSogfCAtLXdpdGgtKikKICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6
ICd4LSp3aXRoLVwoW149XSpcKSdgCiAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFs
aWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCiAgICBleHByICJ4JGFjX3VzZXJvcHQiIDogIi4qW14t
Ky5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgogICAgICBhc19mbl9lcnJvciAiaW52YWxp
ZCBwYWNrYWdlIG5hbWU6ICRhY191c2Vyb3B0IgogICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vy
b3B0CiAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5d
L18vZydgCiAgICBjYXNlICRhY191c2VyX29wdHMgaW4KICAgICAgKiIKIndpdGhfJGFjX3VzZXJv
cHQiCiIqKSA7OwogICAgICAqKSBhY191bnJlY29nbml6ZWRfb3B0cz0iJGFjX3VucmVjb2duaXpl
ZF9vcHRzJGFjX3VucmVjb2duaXplZF9zZXAtLXdpdGgtJGFjX3VzZXJvcHRfb3JpZyIKCSBhY191
bnJlY29nbml6ZWRfc2VwPScsICc7OwogICAgZXNhYwogICAgZXZhbCB3aXRoXyRhY191c2Vyb3B0
PVwkYWNfb3B0YXJnIDs7CgogIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKICAgIGFjX3VzZXJv
cHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCiAgICAjIFJlamVj
dCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCiAgICBleHBy
ICJ4JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgog
ICAgICBhc19mbl9lcnJvciAiaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY191c2Vyb3B0IgogICAg
YWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0CiAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFj
X3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCiAgICBjYXNlICRhY191c2VyX29wdHMgaW4K
ICAgICAgKiIKIndpdGhfJGFjX3VzZXJvcHQiCiIqKSA7OwogICAgICAqKSBhY191bnJlY29nbml6
ZWRfb3B0cz0iJGFjX3VucmVjb2duaXplZF9vcHRzJGFjX3VucmVjb2duaXplZF9zZXAtLXdpdGhv
dXQtJGFjX3VzZXJvcHRfb3JpZyIKCSBhY191bnJlY29nbml6ZWRfc2VwPScsICc7OwogICAgZXNh
YwogICAgZXZhbCB3aXRoXyRhY191c2Vyb3B0PW5vIDs7CgogIC0teCkKICAgICMgT2Jzb2xldGU7
IHVzZSAtLXdpdGgteC4KICAgIHdpdGhfeD15ZXMgOzsKCiAgLXgtaW5jbHVkZXMgfCAtLXgtaW5j
bHVkZXMgfCAtLXgtaW5jbHVkZSB8IC0teC1pbmNsdWQgfCAtLXgtaW5jbHUgXAogIHwgLS14LWlu
Y2wgfCAtLXgtaW5jIHwgLS14LWluIHwgLS14LWkpCiAgICBhY19wcmV2PXhfaW5jbHVkZXMgOzsK
ICAteC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWlu
Y2x1ZD0qIHwgLS14LWluY2x1PSogXAogIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1p
bj0qIHwgLS14LWk9KikKICAgIHhfaW5jbHVkZXM9JGFjX29wdGFyZyA7OwoKICAteC1saWJyYXJp
ZXMgfCAtLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAogIHwgLS14
LWxpYnJhciB8IC0teC1saWJyYSB8IC0teC1saWJyIHwgLS14LWxpYiB8IC0teC1saSB8IC0teC1s
KQogICAgYWNfcHJldj14X2xpYnJhcmllcyA7OwogIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJh
cmllcz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKICB8IC0teC1saWJyYXI9
KiB8IC0teC1saWJyYT0qIHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1saT0qIHwgLS14
LWw9KikKICAgIHhfbGlicmFyaWVzPSRhY19vcHRhcmcgOzsKCiAgLSopIGFzX2ZuX2Vycm9yICJ1
bnJlY29nbml6ZWQgb3B0aW9uOiBcYCRhY19vcHRpb24nClRyeSBcYCQwIC0taGVscCcgZm9yIG1v
cmUgaW5mb3JtYXRpb24uIgogICAgOzsKCiAgKj0qKQogICAgYWNfZW52dmFyPWBleHByICJ4JGFj
X29wdGlvbiIgOiAneFwoW149XSpcKT0nYAogICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90
IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgogICAgY2FzZSAkYWNfZW52dmFyIGluICMoCiAg
ICAgICcnIHwgWzAtOV0qIHwgKlshXyRhc19jcl9hbG51bV0qICkKICAgICAgYXNfZm5fZXJyb3Ig
ImludmFsaWQgdmFyaWFibGUgbmFtZTogXGAkYWNfZW52dmFyJyIgOzsKICAgIGVzYWMKICAgIGV2
YWwgJGFjX2VudnZhcj1cJGFjX29wdGFyZwogICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKCiAgKikK
ICAgICMgRklYTUU6IHNob3VsZCBiZSByZW1vdmVkIGluIGF1dG9jb25mIDMuMC4KICAgICRhc19l
Y2hvICIkYXNfbWU6IFdBUk5JTkc6IHlvdSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwgLS10
YXJnZXQiID4mMgogICAgZXhwciAieCRhY19vcHRpb24iIDogIi4qW14tLl8kYXNfY3JfYWxudW1d
IiA+L2Rldi9udWxsICYmCiAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQg
aG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKICAgIDogJHtidWlsZF9hbGlhcz0kYWNfb3B0aW9u
fSAke2hvc3RfYWxpYXM9JGFjX29wdGlvbn0gJHt0YXJnZXRfYWxpYXM9JGFjX29wdGlvbn0KICAg
IDs7CgogIGVzYWMKZG9uZQoKaWYgdGVzdCAtbiAiJGFjX3ByZXYiOyB0aGVuCiAgYWNfb3B0aW9u
PS0tYGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYAogIGFzX2ZuX2Vycm9yICJtaXNzaW5n
IGFyZ3VtZW50IHRvICRhY19vcHRpb24iCmZpCgppZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25pemVk
X29wdHMiOyB0aGVuCiAgY2FzZSAkZW5hYmxlX29wdGlvbl9jaGVja2luZyBpbgogICAgbm8pIDs7
CiAgICBmYXRhbCkgYXNfZm5fZXJyb3IgInVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNv
Z25pemVkX29wdHMiIDs7CiAgICAqKSAgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5y
ZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyIDs7CiAgZXNhYwpm
aQoKIyBDaGVjayBhbGwgZGlyZWN0b3J5IGFyZ3VtZW50cyBmb3IgY29uc2lzdGVuY3kuCmZvciBh
Y192YXIgaW4JZXhlY19wcmVmaXggcHJlZml4IGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0
YXJvb3RkaXIgXAoJCWRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRl
ZGlyIGluY2x1ZGVkaXIgXAoJCW9sZGluY2x1ZGVkaXIgZG9jZGlyIGluZm9kaXIgaHRtbGRpciBk
dmlkaXIgcGRmZGlyIHBzZGlyIFwKCQlsaWJkaXIgbG9jYWxlZGlyIG1hbmRpcgpkbwogIGV2YWwg
YWNfdmFsPVwkJGFjX3ZhcgogICMgUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXMuCiAgY2FzZSAkYWNf
dmFsIGluCiAgICAqLyApCiAgICAgIGFjX3ZhbD1gZXhwciAiWCRhY192YWwiIDogJ1hcKC4qW14v
XVwpJyBcfCAiWCRhY192YWwiIDogJ1hcKC4qXCknYAogICAgICBldmFsICRhY192YXI9XCRhY192
YWw7OwogIGVzYWMKICAjIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZXMu
CiAgY2FzZSAkYWNfdmFsIGluCiAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSAgY29udGludWU7Owog
ICAgTk9ORSB8ICcnICkgY2FzZSAkYWNfdmFyIGluICpwcmVmaXggKSBjb250aW51ZTs7IGVzYWM7
OwogIGVzYWMKICBhc19mbl9lcnJvciAiZXhwZWN0ZWQgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5h
bWUgZm9yIC0tJGFjX3ZhcjogJGFjX3ZhbCIKZG9uZQoKIyBUaGVyZSBtaWdodCBiZSBwZW9wbGUg
d2hvIGRlcGVuZCBvbiB0aGUgb2xkIGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JwojIHVzZWQgdG8g
aG9sZCB0aGUgYXJndW1lbnQgb2YgLS1ob3N0IGV0Yy4KIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUg
ZGF5LgpidWlsZD0kYnVpbGRfYWxpYXMKaG9zdD0kaG9zdF9hbGlhcwp0YXJnZXQ9JHRhcmdldF9h
bGlhcwoKIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgppZiB0ZXN0ICJ4JGhvc3RfYWxpYXMi
ICE9IHg7IHRoZW4KICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiA9IHg7IHRoZW4KICAgIGNyb3Nz
X2NvbXBpbGluZz1tYXliZQogICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogSWYgeW91IHdh
bnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KICAgIElmIGEg
Y3Jvc3MgY29tcGlsZXIgaXMgZGV0ZWN0ZWQgdGhlbiBjcm9zcyBjb21waWxlIG1vZGUgd2lsbCBi
ZSB1c2VkLiIgPiYyCiAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiAhPSAieCRob3N0X2FsaWFz
IjsgdGhlbgogICAgY3Jvc3NfY29tcGlsaW5nPXllcwogIGZpCmZpCgphY190b29sX3ByZWZpeD0K
dGVzdCAtbiAiJGhvc3RfYWxpYXMiICYmIGFjX3Rvb2xfcHJlZml4PSRob3N0X2FsaWFzLQoKdGVz
dCAiJHNpbGVudCIgPSB5ZXMgJiYgZXhlYyA2Pi9kZXYvbnVsbAoKCmFjX3B3ZD1gcHdkYCAmJiB0
ZXN0IC1uICIkYWNfcHdkIiAmJgphY19sc19kaT1gbHMgLWRpIC5gICYmCmFjX3B3ZF9sc19kaT1g
Y2QgIiRhY19wd2QiICYmIGxzIC1kaSAuYCB8fAogIGFzX2ZuX2Vycm9yICJ3b3JraW5nIGRpcmVj
dG9yeSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCIKdGVzdCAiWCRhY19sc19kaSIgPSAiWCRhY19wd2Rf
bHNfZGkiIHx8CiAgYXNfZm5fZXJyb3IgInB3ZCBkb2VzIG5vdCByZXBvcnQgbmFtZSBvZiB3b3Jr
aW5nIGRpcmVjdG9yeSIKCgojIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2Fz
IG5vdCBzcGVjaWZpZWQuCmlmIHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCiAgYWNfc3JjZGlyX2Rl
ZmF1bHRlZD15ZXMKICAjIFRyeSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhpcyBzY3JpcHQs
IHRoZW4gdGhlIHBhcmVudCBkaXJlY3RvcnkuCiAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0g
IiRhc19teXNlbGYiIHx8CiRhc19leHByIFgiJGFzX215c2VsZiIgOiAnWFwoLipbXi9dXCkvLypb
Xi9dW14vXSovKiQnIFx8IFwKCSBYIiRhc19teXNlbGYiIDogJ1hcKC8vXClbXi9dJyBcfCBcCgkg
WCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpJCcgXHwgXAoJIFgiJGFzX215c2VsZiIgOiAnWFwoL1wp
JyBcfCAuIDI+L2Rldi9udWxsIHx8CiRhc19lY2hvIFgiJGFzX215c2VsZiIgfAogICAgc2VkICcv
XlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0K
CSAgL15YXChcL1wvXClbXi9dLiovewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwv
XC9cKSQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXCkuKi97CgkgICAgcy8v
XDEvCgkgICAgcQoJICB9CgkgIHMvLiovLi87IHEnYAogIHNyY2Rpcj0kYWNfY29uZmRpcgogIGlm
IHRlc3QgISAtciAiJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGUiOyB0aGVuCiAgICBzcmNkaXI9Li4K
ICBmaQplbHNlCiAgYWNfc3JjZGlyX2RlZmF1bHRlZD1ubwpmaQppZiB0ZXN0ICEgLXIgIiRzcmNk
aXIvJGFjX3VuaXF1ZV9maWxlIjsgdGhlbgogIHRlc3QgIiRhY19zcmNkaXJfZGVmYXVsdGVkIiA9
IHllcyAmJiBzcmNkaXI9IiRhY19jb25mZGlyIG9yIC4uIgogIGFzX2ZuX2Vycm9yICJjYW5ub3Qg
ZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiCmZpCmFjX21zZz0ic291
cmNlcyBhcmUgaW4gJHNyY2RpciwgYnV0IFxgY2QgJHNyY2RpcicgZG9lcyBub3Qgd29yayIKYWNf
YWJzX2NvbmZkaXI9YCgKCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlxdWVfZmls
ZSIgfHwgYXNfZm5fZXJyb3IgIiRhY19tc2ciCglwd2QpYAojIFdoZW4gYnVpbGRpbmcgaW4gcGxh
Y2UsIHNldCBzcmNkaXI9LgppZiB0ZXN0ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRhY19wd2QiOyB0
aGVuCiAgc3JjZGlyPS4KZmkKIyBSZW1vdmUgdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hlcyBm
cm9tIHNyY2Rpci4KIyBEb3VibGUgc2xhc2hlcyBpbiBmaWxlIG5hbWVzIGluIG9iamVjdCBmaWxl
IGRlYnVnZ2luZyBpbmZvCiMgbWVzcyB1cCBNLXggZ2RiIGluIEVtYWNzLgpjYXNlICRzcmNkaXIg
aW4KKi8pIHNyY2Rpcj1gZXhwciAiWCRzcmNkaXIiIDogJ1hcKC4qW14vXVwpJyBcfCAiWCRzcmNk
aXIiIDogJ1hcKC4qXCknYDs7CmVzYWMKZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsg
ZG8KICBldmFsIGFjX2Vudl8ke2FjX3Zhcn1fc2V0PVwkeyR7YWNfdmFyfStzZXR9CiAgZXZhbCBh
Y19lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9CiAgZXZhbCBhY19jdl9lbnZfJHthY192
YXJ9X3NldD1cJHske2FjX3Zhcn0rc2V0fQogIGV2YWwgYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1
ZT1cJCR7YWNfdmFyfQpkb25lCgojCiMgUmVwb3J0IHRoZSAtLWhlbHAgbWVzc2FnZS4KIwppZiB0
ZXN0ICIkYWNfaW5pdF9oZWxwIiA9ICJsb25nIjsgdGhlbgogICMgT21pdCBzb21lIGludGVybmFs
IG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgogICMg
VGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBz
aC4KICBjYXQgPDxfQUNFT0YKXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgVmFsZ3JpbmQgMy42LjEg
dG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgoKVXNhZ2U6ICQwIFtPUFRJT05dLi4u
IFtWQVI9VkFMVUVdLi4uCgpUbyBhc3NpZ24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCBD
QywgQ0ZMQUdTLi4uKSwgc3BlY2lmeSB0aGVtIGFzClZBUj1WQUxVRS4gIFNlZSBiZWxvdyBmb3Ig
ZGVzY3JpcHRpb25zIG9mIHNvbWUgb2YgdGhlIHVzZWZ1bCB2YXJpYWJsZXMuCgpEZWZhdWx0cyBm
b3IgdGhlIG9wdGlvbnMgYXJlIHNwZWNpZmllZCBpbiBicmFja2V0cy4KCkNvbmZpZ3VyYXRpb246
CiAgLWgsIC0taGVscCAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKICAg
ICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBw
YWNrYWdlCiAgICAgIC0taGVscD1yZWN1cnNpdmUgICAgZGlzcGxheSB0aGUgc2hvcnQgaGVscCBv
ZiBhbGwgdGhlIGluY2x1ZGVkIHBhY2thZ2VzCiAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgZGlz
cGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CiAgLXEsIC0tcXVpZXQsIC0tc2lsZW50
ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCiAgICAgIC0tY2FjaGUtZmls
ZT1GSUxFICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUgW2Rpc2FibGVkXQogIC1DLCAtLWNv
bmZpZy1jYWNoZSAgICAgIGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCiAg
LW4sIC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKICAgICAg
LS1zcmNkaXI9RElSICAgICAgICBmaW5kIHRoZSBzb3VyY2VzIGluIERJUiBbY29uZmlndXJlIGRp
ciBvciBcYC4uJ10KCkluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKICAtLXByZWZpeD1QUkVGSVgg
ICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgK
ICAgICAgICAgICAgICAgICAgICAgICAgICBbJGFjX2RlZmF1bHRfcHJlZml4XQogIC0tZXhlYy1w
cmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBF
UFJFRklYCiAgICAgICAgICAgICAgICAgICAgICAgICAgW1BSRUZJWF0KCkJ5IGRlZmF1bHQsIFxg
bWFrZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgpcYCRhY19kZWZhdWx0
X3ByZWZpeC9iaW4nLCBcYCRhY19kZWZhdWx0X3ByZWZpeC9saWInIGV0Yy4gIFlvdSBjYW4gc3Bl
Y2lmeQphbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gXGAkYWNfZGVmYXVsdF9wcmVm
aXgnIHVzaW5nIFxgLS1wcmVmaXgnLApmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgoK
Rm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVsb3cuCgpGaW5lIHR1bmluZyBv
ZiB0aGUgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgogIC0tYmluZGlyPURJUiAgICAgICAgICAg
IHVzZXIgZXhlY3V0YWJsZXMgW0VQUkVGSVgvYmluXQogIC0tc2JpbmRpcj1ESVIgICAgICAgICAg
IHN5c3RlbSBhZG1pbiBleGVjdXRhYmxlcyBbRVBSRUZJWC9zYmluXQogIC0tbGliZXhlY2Rpcj1E
SVIgICAgICAgIHByb2dyYW0gZXhlY3V0YWJsZXMgW0VQUkVGSVgvbGliZXhlY10KICAtLXN5c2Nv
bmZkaXI9RElSICAgICAgICByZWFkLW9ubHkgc2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL2V0
Y10KICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIGFyY2hpdGVjdHVyZS1pbmRl
cGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQogIC0tbG9jYWxzdGF0ZWRpcj1ESVIgICAgIG1vZGlm
aWFibGUgc2luZ2xlLW1hY2hpbmUgZGF0YSBbUFJFRklYL3Zhcl0KICAtLWxpYmRpcj1ESVIgICAg
ICAgICAgICBvYmplY3QgY29kZSBsaWJyYXJpZXMgW0VQUkVGSVgvbGliXQogIC0taW5jbHVkZWRp
cj1ESVIgICAgICAgIEMgaGVhZGVyIGZpbGVzIFtQUkVGSVgvaW5jbHVkZV0KICAtLW9sZGluY2x1
ZGVkaXI9RElSICAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBbL3Vzci9pbmNsdWRlXQog
IC0tZGF0YXJvb3RkaXI9RElSICAgICAgIHJlYWQtb25seSBhcmNoLi1pbmRlcGVuZGVudCBkYXRh
IHJvb3QgW1BSRUZJWC9zaGFyZV0KICAtLWRhdGFkaXI9RElSICAgICAgICAgICByZWFkLW9ubHkg
YXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSXQogIC0taW5mb2Rpcj1E
SVIgICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBbREFUQVJPT1RESVIvaW5mb10KICAtLWxv
Y2FsZWRpcj1ESVIgICAgICAgICBsb2NhbGUtZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSL2xv
Y2FsZV0KICAtLW1hbmRpcj1ESVIgICAgICAgICAgICBtYW4gZG9jdW1lbnRhdGlvbiBbREFUQVJP
T1RESVIvbWFuXQogIC0tZG9jZGlyPURJUiAgICAgICAgICAgIGRvY3VtZW50YXRpb24gcm9vdCBb
REFUQVJPT1RESVIvZG9jL3ZhbGdyaW5kXQogIC0taHRtbGRpcj1ESVIgICAgICAgICAgIGh0bWwg
ZG9jdW1lbnRhdGlvbiBbRE9DRElSXQogIC0tZHZpZGlyPURJUiAgICAgICAgICAgIGR2aSBkb2N1
bWVudGF0aW9uIFtET0NESVJdCiAgLS1wZGZkaXI9RElSICAgICAgICAgICAgcGRmIGRvY3VtZW50
YXRpb24gW0RPQ0RJUl0KICAtLXBzZGlyPURJUiAgICAgICAgICAgICBwcyBkb2N1bWVudGF0aW9u
IFtET0NESVJdCl9BQ0VPRgoKICBjYXQgPDxcX0FDRU9GCgpQcm9ncmFtIG5hbWVzOgogIC0tcHJv
Z3JhbS1wcmVmaXg9UFJFRklYICAgICAgICAgICAgcHJlcGVuZCBQUkVGSVggdG8gaW5zdGFsbGVk
IHByb2dyYW0gbmFtZXMKICAtLXByb2dyYW0tc3VmZml4PVNVRkZJWCAgICAgICAgICAgIGFwcGVu
ZCBTVUZGSVggdG8gaW5zdGFsbGVkIHByb2dyYW0gbmFtZXMKICAtLXByb2dyYW0tdHJhbnNmb3Jt
LW5hbWU9UFJPR1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBuYW1l
cwoKU3lzdGVtIHR5cGVzOgogIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRp
bmcgb24gQlVJTEQgW2d1ZXNzZWRdCiAgLS1ob3N0PUhPU1QgICAgICAgY3Jvc3MtY29tcGlsZSB0
byBidWlsZCBwcm9ncmFtcyB0byBydW4gb24gSE9TVCBbQlVJTERdCl9BQ0VPRgpmaQoKaWYgdGVz
dCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICBjYXNlICRhY19pbml0X2hlbHAgaW4KICAgICBz
aG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgVmFsZ3JpbmQgMy42LjE6
Ijs7CiAgIGVzYWMKICBjYXQgPDxcX0FDRU9GCgpPcHRpb25hbCBGZWF0dXJlczoKICAtLWRpc2Fi
bGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUgdW5yZWNvZ25pemVkIC0tZW5hYmxlLy0td2l0aCBv
cHRpb25zCiAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1ZGUgRkVBVFVSRSAo
c2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQogIC0tZW5hYmxlLUZFQVRVUkVbPUFSR10gIGlu
Y2x1ZGUgRkVBVFVSRSBbQVJHPXllc10KICAtLWVuYWJsZS1tYWludGFpbmVyLW1vZGUgIGVuYWJs
ZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVzZWZ1bAoJCQkgIChhbmQgc29tZXRp
bWVzIGNvbmZ1c2luZykgdG8gdGhlIGNhc3VhbCBpbnN0YWxsZXIKICAtLWRpc2FibGUtZGVwZW5k
ZW5jeS10cmFja2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCiAgLS1lbmFibGUtZGVwZW5k
ZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMK
ICAtLWVuYWJsZS1vbmx5NjRiaXQgICAgICBkbyBhIDY0LWJpdCBvbmx5IGJ1aWxkCiAgLS1lbmFi
bGUtb25seTMyYml0ICAgICAgZG8gYSAzMi1iaXQgb25seSBidWlsZAogIC0tZW5hYmxlLWlubmVy
ICAgICAgICAgIGVuYWJsZXMgc2VsZi1ob3N0aW5nCiAgLS1lbmFibGUtdGxzICAgICAgICAgICAg
cGxhdGZvcm0gc3VwcG9ydHMgVExTCgpPcHRpb25hbCBQYWNrYWdlczoKICAtLXdpdGgtUEFDS0FH
RVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KICAtLXdpdGhvdXQtUEFDS0FHRSAgICAg
ICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCiAgLS13aXRo
LW1waWNjPSAgICAgICAgICAgU3BlY2lmeSBuYW1lIG9mIE1QSTItaXNlZCBDIGNvbXBpbGVyCgpT
b21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlhYmxlczoKICBDQyAgICAgICAgICBDIGNv
bXBpbGVyIGNvbW1hbmQKICBDRkxBR1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCiAgTERGTEFHUyAg
ICAgbGlua2VyIGZsYWdzLCBlLmcuIC1MPGxpYiBkaXI+IGlmIHlvdSBoYXZlIGxpYnJhcmllcyBp
biBhCiAgICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgogIExJQlMg
ICAgICAgIGxpYnJhcmllcyB0byBwYXNzIHRvIHRoZSBsaW5rZXIsIGUuZy4gLWw8bGlicmFyeT4K
ICBDUFBGTEFHUyAgICAoT2JqZWN0aXZlKSBDL0MrKyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4g
LUk8aW5jbHVkZSBkaXI+IGlmCiAgICAgICAgICAgICAgeW91IGhhdmUgaGVhZGVycyBpbiBhIG5v
bnN0YW5kYXJkIGRpcmVjdG9yeSA8aW5jbHVkZSBkaXI+CiAgQ1BQICAgICAgICAgQyBwcmVwcm9j
ZXNzb3IKICBDWFggICAgICAgICBDKysgY29tcGlsZXIgY29tbWFuZAogIENYWEZMQUdTICAgIEMr
KyBjb21waWxlciBmbGFncwogIEFSICAgICAgICAgIEFyY2hpdmVyIGNvbW1hbmQKICBDQ0FTICAg
ICAgICBhc3NlbWJsZXIgY29tcGlsZXIgY29tbWFuZCAoZGVmYXVsdHMgdG8gQ0MpCiAgQ0NBU0ZM
QUdTICAgYXNzZW1ibGVyIGNvbXBpbGVyIGZsYWdzIChkZWZhdWx0cyB0byBDRkxBR1MpCiAgUEtH
X0NPTkZJRyAgcGF0aCB0byBwa2ctY29uZmlnIHV0aWxpdHkKICBRVENPUkVfQ0ZMQUdTCiAgICAg
ICAgICAgICAgQyBjb21waWxlciBmbGFncyBmb3IgUVRDT1JFLCBvdmVycmlkaW5nIHBrZy1jb25m
aWcKICBRVENPUkVfTElCUyBsaW5rZXIgZmxhZ3MgZm9yIFFUQ09SRSwgb3ZlcnJpZGluZyBwa2ct
Y29uZmlnCgpVc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUg
YnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAppdCB0byBmaW5kIGxpYnJhcmllcyBhbmQgcHJvZ3Jh
bXMgd2l0aCBub25zdGFuZGFyZCBuYW1lcy9sb2NhdGlvbnMuCgpSZXBvcnQgYnVncyB0byA8dmFs
Z3JpbmQtdXNlcnNAbGlzdHMuc291cmNlZm9yZ2UubmV0Pi4KX0FDRU9GCmFjX3N0YXR1cz0kPwpm
aQoKaWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgogICMgSWYgdGhl
cmUgYXJlIHN1YmRpcnMsIHJlcG9ydCB0aGVpciBzcGVjaWZpYyAtLWhlbHAuCiAgZm9yIGFjX2Rp
ciBpbiA6ICRhY19zdWJkaXJzX2FsbDsgZG8gdGVzdCAieCRhY19kaXIiID0geDogJiYgY29udGlu
dWUKICAgIHRlc3QgLWQgIiRhY19kaXIiIHx8CiAgICAgIHsgY2QgIiRzcmNkaXIiICYmIGFjX3B3
ZD1gcHdkYCAmJiBzcmNkaXI9LiAmJiB0ZXN0IC1kICIkYWNfZGlyIjsgfSB8fAogICAgICBjb250
aW51ZQogICAgYWNfYnVpbGRkaXI9LgoKY2FzZSAiJGFjX2RpciIgaW4KLikgYWNfZGlyX3N1ZmZp
eD0gYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7CiopCiAgYWNf
ZGlyX3N1ZmZpeD0vYCRhc19lY2hvICIkYWNfZGlyIiB8IHNlZCAnc3xeXC5bXFwvXXx8J2AKICAj
IEEgIi4uIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCiAgYWNfdG9wX2J1
aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwv
Li58ZztzfC98fCdgCiAgY2FzZSAkYWNfdG9wX2J1aWxkZGlyX3N1YiBpbgogICIiKSBhY190b3Bf
YnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsKICAqKSAgYWNfdG9wX2J1aWxk
X3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKICBlc2FjIDs7CmVzYWMKYWNfYWJzX3Rv
cF9idWlsZGRpcj0kYWNfcHdkCmFjX2Fic19idWlsZGRpcj0kYWNfcHdkJGFjX2Rpcl9zdWZmaXgK
IyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKYWNfdG9wX2J1aWxkZGlyPSRhY190b3BfYnVp
bGRfcHJlZml4CgpjYXNlICRzcmNkaXIgaW4KICAuKSAgIyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxh
Y2UuCiAgICBhY19zcmNkaXI9LgogICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGlyX3N1
YgogICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OwogIFtcXC9dKiB8ID86W1xcL10qICkg
ICMgQWJzb2x1dGUgbmFtZS4KICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7CiAg
ICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKICAgIGFjX2Fic190b3Bfc3JjZGlyPSRzcmNkaXIgOzsK
ICAqKSAjIFJlbGF0aXZlIG5hbWUuCiAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgk
c3JjZGlyJGFjX2Rpcl9zdWZmaXgKICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVm
aXgkc3JjZGlyCiAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkLyRzcmNkaXIgOzsKZXNhYwph
Y19hYnNfc3JjZGlyPSRhY19hYnNfdG9wX3NyY2RpciRhY19kaXJfc3VmZml4CgogICAgY2QgIiRh
Y19kaXIiIHx8IHsgYWNfc3RhdHVzPSQ/OyBjb250aW51ZTsgfQogICAgIyBDaGVjayBmb3IgZ3Vl
c3RlZCBjb25maWd1cmUuCiAgICBpZiB0ZXN0IC1mICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnUi
OyB0aGVuCiAgICAgIGVjaG8gJiYKICAgICAgJFNIRUxMICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5n
bnUiIC0taGVscD1yZWN1cnNpdmUKICAgIGVsaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1
cmUiOyB0aGVuCiAgICAgIGVjaG8gJiYKICAgICAgJFNIRUxMICIkYWNfc3JjZGlyL2NvbmZpZ3Vy
ZSIgLS1oZWxwPXJlY3Vyc2l2ZQogICAgZWxzZQogICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJO
SU5HOiBubyBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIGlzIGluICRhY19kaXIiID4mMgogICAg
ZmkgfHwgYWNfc3RhdHVzPSQ/CiAgICBjZCAiJGFjX3B3ZCIgfHwgeyBhY19zdGF0dXM9JD87IGJy
ZWFrOyB9CiAgZG9uZQpmaQoKdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3Rh
dHVzCmlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KICBjYXQgPDxcX0FDRU9GClZhbGdyaW5kIGNv
bmZpZ3VyZSAzLjYuMQpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjUKCkNvcHlyaWdodCAo
QykgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KVGhpcyBjb25maWd1cmUgc2Ny
aXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KZ2l2ZXMg
dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0Lgpf
QUNFT0YKICBleGl0CmZpCgojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgQXV0b2Nv
bmYgaW5pdGlhbGl6YXRpb24uICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKIyBh
Y19mbl9jX3RyeV9jb21waWxlIExJTkVOTwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg
VHJ5IHRvIGNvbXBpbGUgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMg
c3VjY2VlZGVkLgphY19mbl9jX3RyeV9jb21waWxlICgpCnsKICBhc19saW5lbm89JHthc19saW5l
bm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNr
CiAgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAogIGlmIHsgeyBhY190cnk9IiRhY19jb21waWxl
IgpjYXNlICIoKCRhY190cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1c
JGFjX3RyeTs7CiAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCBhY190cnlfZWNo
bz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKJGFzX2Vj
aG8gIiRhY190cnlfZWNobyI7IH0gPiY1CiAgKGV2YWwgIiRhY19jb21waWxlIikgMj5jb25mdGVz
dC5lcnIKICBhY19zdGF0dXM9JD8KICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAg
Z3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKICAgIGNhdCBjb25mdGVz
dC5lcjEgPiY1CiAgICBtdiAtZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCiAgZmkKICAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK
ICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxh
ZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAgICAgICB9ICYmIHRlc3QgLXMgY29uZnRl
c3QuJGFjX29iamV4dDsgdGhlbiA6CiAgYWNfcmV0dmFsPTAKZWxzZQogICRhc19lY2hvICIkYXNf
bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l
eHQgPiY1CgoJYWNfcmV0dmFsPTEKZmkKICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngk
YXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQog
IGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAoKfSAjIGFjX2ZuX2NfdHJ5X2NvbXBpbGUKCiMg
YWNfZm5fY190cnlfY3BwIExJTkVOTwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUcnkgdG8g
cHJlcHJvY2VzcyBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNj
ZWVkZWQuCmFjX2ZuX2NfdHJ5X2NwcCAoKQp7CiAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9
IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawogIGlmIHsg
eyBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIKY2FzZSAiKCgkYWNfdHJ5IiBpbgog
ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9l
Y2hvPSRhY190cnk7Owplc2FjCmV2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCiRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4m
NQogIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVycgogIGFj
X3N0YXR1cz0kPwogIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAgICBncmVwIC12ICde
ICorJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMQogICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUK
ICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKICBmaQogICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIHRlc3QgJGFj
X3N0YXR1cyA9IDA7IH0gPi9kZXYvbnVsbCAmJiB7CgkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193
YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKCSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCiAg
ICAgICB9OyB0aGVuIDoKICBhY19yZXR2YWw9MAplbHNlCiAgJGFzX2VjaG8gIiRhc19tZTogZmFp
bGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUK
CiAgICBhY19yZXR2YWw9MQpmaQogIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19s
aW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9CiAgYXNf
Zm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCgp9ICMgYWNfZm5fY190cnlfY3BwCgojIGFjX2ZuX2N4
eF90cnlfY29tcGlsZSBMSU5FTk8KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVHJ5
IHRvIGNvbXBpbGUgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMgc3Vj
Y2VlZGVkLgphY19mbl9jeHhfdHJ5X2NvbXBpbGUgKCkKewogIGFzX2xpbmVubz0ke2FzX2xpbmVu
by0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sK
ICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CiAgaWYgeyB7IGFjX3RyeT0iJGFjX2NvbXBpbGUi
CmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwk
YWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFjX3RyeV9lY2hv
PSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgokYXNfZWNo
byAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0
LmVycgogIGFjX3N0YXR1cz0kPwogIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAgICBn
cmVwIC12ICdeICorJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMQogICAgY2F0IGNvbmZ0ZXN0
LmVyMSA+JjUKICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKICBmaQogICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQog
IHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2Zs
YWciIHx8CgkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0
ZXN0LiRhY19vYmpleHQ7IHRoZW4gOgogIGFjX3JldHZhbD0wCmVsc2UKICAkYXNfZWNobyAiJGFz
X21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf
ZXh0ID4mNQoKCWFjX3JldHZhbD0xCmZpCiAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4
JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30K
ICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKCn0gIyBhY19mbl9jeHhfdHJ5X2NvbXBpbGUK
CiMgYWNfZm5fY190cnlfbGluayBMSU5FTk8KIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRy
eSB0byBsaW5rIGNvbmZ0ZXN0LiRhY19leHQsIGFuZCByZXR1cm4gd2hldGhlciB0aGlzIHN1Y2Nl
ZWRlZC4KYWNfZm5fY190cnlfbGluayAoKQp7CiAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9
IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawogIHJtIC1m
IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CiAgaWYgeyB7IGFjX3RyeT0i
JGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry
eV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFj
X3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wi
IgokYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPmNv
bmZ0ZXN0LmVycgogIGFjX3N0YXR1cz0kPwogIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVu
CiAgICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMQogICAgY2F0IGNv
bmZ0ZXN0LmVyMSA+JjUKICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKICBmaQog
ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQogIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgewoJIHRlc3QgLXogIiRhY19jX3dlcnJv
cl9mbGFnIiB8fAoJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBj
b25mdGVzdCRhY19leGVleHQgJiYgewoJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8
CgkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKICAgICAgIH07IHRoZW4gOgogIGFjX3Jl
dHZhbD0wCmVsc2UKICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUK
c2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQoKCWFjX3JldHZhbD0xCmZpCiAgIyBE
ZWxldGUgdGhlIElQQS9JUE8gKEludGVyIFByb2NlZHVyYWwgQW5hbHlzaXMvT3B0aW1pemF0aW9u
KSBpbmZvcm1hdGlvbgogICMgY3JlYXRlZCBieSB0aGUgUEdJIGNvbXBpbGVyIChjb25mdGVzdF9p
cGE4X2NvbmZ0ZXN0Lm9vKSwgYXMgaXQgd291bGQKICAjIGludGVyZmVyZSB3aXRoIHRoZSBuZXh0
IGxpbmsgY29tbWFuZDsgYWxzbyBkZWxldGUgYSBkaXJlY3RvcnkgdGhhdCBpcwogICMgbGVmdCBi
ZWhpbmQgYnkgQXBwbGUncyBjb21waWxlci4gIFdlIGRvIHRoaXMgYmVmb3JlIGV4ZWN1dGluZyB0
aGUgYWN0aW9ucy4KICBybSAtcmYgY29uZnRlc3QuZFNZTSBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0
Lm9vCiAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4
ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KICBhc19mbl9zZXRfc3RhdHVzICRh
Y19yZXR2YWwKCn0gIyBhY19mbl9jX3RyeV9saW5rCgojIGFjX2ZuX2NfY2hlY2tfaGVhZGVyX21v
bmdyZWwgTElORU5PIEhFQURFUiBWQVIgSU5DTFVERVMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGVzdHMgd2hldGhlciBIRUFERVIg
ZXhpc3RzLCBnaXZpbmcgYSB3YXJuaW5nIGlmIGl0IGNhbm5vdCBiZSBjb21waWxlZCB1c2luZwoj
IHRoZSBpbmNsdWRlIGZpbGVzIGluIElOQ0xVREVTIGFuZCBzZXR0aW5nIHRoZSBjYWNoZSB2YXJp
YWJsZSBWQVIKIyBhY2NvcmRpbmdseS4KYWNfZm5fY19jaGVja19oZWFkZXJfbW9uZ3JlbCAoKQp7
CiAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9f
c3RhY2s9JGFzX2xpbmVub19zdGFjawogIGlmIHsgYXNfdmFyPSQzOyBldmFsICJ0ZXN0IFwiXCR7
JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuIDoKICB7ICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkMiIgPiY1CiRhc19lY2hvX24gImNoZWNr
aW5nIGZvciAkMi4uLiAiID4mNjsgfQppZiB7IGFzX3Zhcj0kMzsgZXZhbCAidGVzdCBcIlwkeyRh
c192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+
JjYKZmkKZXZhbCBhY19yZXM9XCQkMwoJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp
bmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKJGFzX2VjaG8gIiRhY19yZXMiID4m
NjsgfQplbHNlCiAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CnsgJGFzX2VjaG8gIiRhc19t
ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgJDIgdXNhYmlsaXR5IiA+JjUKJGFzX2Vj
aG9fbiAiY2hlY2tpbmcgJDIgdXNhYmlsaXR5Li4uICIgPiY2OyB9CmNhdCBjb25mZGVmcy5oIC0g
PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwokNAojaW5j
bHVkZSA8JDI+Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6
CiAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwplbHNlCiAgYWNfaGVhZGVyX2NvbXBpbGVyPW5vCmZp
CnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj
X2V4dAp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj
X2hlYWRlcl9jb21waWxlciIgPiY1CiRhc19lY2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7
IH0KCiMgSXMgdGhlIGhlYWRlciBwcmVzZW50Pwp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l
bm8tJExJTkVOT306IGNoZWNraW5nICQyIHByZXNlbmNlIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tp
bmcgJDIgcHJlc2VuY2UuLi4gIiA+JjY7IH0KY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u
ZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDwkMj4KX0FDRU9G
CmlmIGFjX2ZuX2NfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgogIGFjX2hlYWRlcl9wcmVwcm9j
PXllcwplbHNlCiAgYWNfaGVhZGVyX3ByZXByb2M9bm8KZmkKcm0gLWYgY29uZnRlc3QuZXJyIGNv
bmZ0ZXN0LiRhY19leHQKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy
ZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CiRhc19lY2hvICIkYWNfaGVhZGVyX3ByZXBy
b2MiID4mNjsgfQoKIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CmNhc2UgJGFjX2hlYWRl
cl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4g
IygoCiAgeWVzOm5vOiApCiAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IFdBUk5JTkc6ICQyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRo
ZSBwcmVwcm9jZXNzb3IhIiA+JjUKJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6IGFjY2Vw
dGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9
CiAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICQy
OiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKJGFzX2VjaG8gIiRh
c19tZTogV0FSTklORzogJDI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQi
ID4mMjt9CiAgICA7OwogIG5vOnllczoqICkKICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp
bmVuby0kTElORU5PfTogV0FSTklORzogJDI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxl
ZCIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiBwcmVzZW50IGJ1dCBjYW5ub3Qg
YmUgY29tcGlsZWQiID4mMjt9CiAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ
TkVOT306IFdBUk5JTkc6ICQyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhl
YWRlcnM/IiA+JjUKJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6ICAgICBjaGVjayBmb3Ig
bWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CiAgICB7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICQyOiBzZWUgdGhlIEF1dG9jb25mIGRv
Y3VtZW50YXRpb24iID4mNQokYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkMjogc2VlIHRoZSBB
dXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQogICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBD
YW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICQyOiAg
ICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQogICAg
eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogcHJv
Y2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CiRhc19lY2hvICIkYXNfbWU6
IFdBUk5JTkc6ICQyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7
fQooIGNhdCA8PFxfQVNCT1gKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tICMjCiMjIFJlcG9ydCB0aGlzIHRvIHZhbGdyaW5kLXVzZXJzQGxpc3Rz
LnNvdXJjZWZvcmdlLm5ldCAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gIyMKX0FTQk9YCiAgICAgKSB8IHNlZCAicy9eLyRhc19tZTogV0FS
TklORzogICAgIC8iID4mMgogICAgOzsKZXNhYwogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp
bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcg
Zm9yICQyLi4uICIgPiY2OyB9CmlmIHsgYXNfdmFyPSQzOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zh
citzZXR9XCIgPSBzZXQiOyB9OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgpl
bHNlCiAgZXZhbCAiJDM9XCRhY19oZWFkZXJfY29tcGlsZXIiCmZpCmV2YWwgYWNfcmVzPVwkJDMK
CSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog
JGFjX3JlcyIgPiY1CiRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KZmkKICBldmFsICRhc19saW5l
bm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1
bnNldCBhc19saW5lbm87fQoKfSAjIGFjX2ZuX2NfY2hlY2tfaGVhZGVyX21vbmdyZWwKCiMgYWNf
Zm5fY190cnlfcnVuIExJTkVOTwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUcnkgdG8gbGlu
ayBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVkZWQuIEFz
c3VtZXMKIyB0aGF0IGV4ZWN1dGFibGVzICpjYW4qIGJlIHJ1bi4KYWNfZm5fY190cnlfcnVuICgp
CnsKICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVu
b19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCiAgaWYgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCmNhc2Ug
IigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5
OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFjX3RyeV9lY2hvPSJcIlwk
YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgokYXNfZWNobyAiJGFj
X3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPiY1CiAgYWNfc3RhdHVzPSQ/
CiAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1
cyIgPiY1CiAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRh
Y19leGVleHQnCiAgeyB7IGNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCop
IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpl
dmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlf
ZWNob1wiIgokYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX3RyeSIp
IDI+JjUKICBhY19zdGF0dXM9JD8KICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB9OyB0
aGVuIDoKICBhY19yZXR2YWw9MAplbHNlCiAgJGFzX2VjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0
ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CiAgICAgICAkYXNfZWNobyAiJGFzX21lOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4m
NQoKICAgICAgIGFjX3JldHZhbD0kYWNfc3RhdHVzCmZpCiAgcm0gLXJmIGNvbmZ0ZXN0LmRTWU0g
Y29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbwogIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAi
eCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9
CiAgYXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCgp9ICMgYWNfZm5fY190cnlfcnVuCgojIGFj
X2ZuX2NfY2hlY2tfaGVhZGVyX2NvbXBpbGUgTElORU5PIEhFQURFUiBWQVIgSU5DTFVERVMKIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMg
VGVzdHMgd2hldGhlciBIRUFERVIgZXhpc3RzIGFuZCBjYW4gYmUgY29tcGlsZWQgdXNpbmcgdGhl
IGluY2x1ZGUgZmlsZXMgaW4KIyBJTkNMVURFUywgc2V0dGluZyB0aGUgY2FjaGUgdmFyaWFibGUg
VkFSIGFjY29yZGluZ2x5LgphY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICgpCnsKICBhc19s
aW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0k
YXNfbGluZW5vX3N0YWNrCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99
OiBjaGVja2luZyBmb3IgJDIiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+
JjY7IH0KaWYgeyBhc192YXI9JDM7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNl
dCI7IH07IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBjYXQgY29u
ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAg
Ki8KJDQKI2luY2x1ZGUgPCQyPgpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVO
TyI7IHRoZW4gOgogIGV2YWwgIiQzPXllcyIKZWxzZQogIGV2YWwgIiQzPW5vIgpmaQpybSAtZiBj
b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkK
ZXZhbCBhY19yZXM9XCQkMwoJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k
TElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQog
IGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7
IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9Cgp9ICMgYWNfZm5fY19jaGVja19oZWFkZXJf
Y29tcGlsZQoKIyBhY19mbl9jX2NoZWNrX21lbWJlciBMSU5FTk8gQUdHUiBNRU1CRVIgVkFSIElO
Q0xVREVTCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQojIFRyaWVzIHRvIGZpbmQgaWYgdGhlIGZpZWxkIE1FTUJFUiBleGlzdHMgaW4gdHlwZSBB
R0dSLCBhZnRlciBpbmNsdWRpbmcKIyBJTkNMVURFUywgc2V0dGluZyBjYWNoZSB2YXJpYWJsZSBW
QVIgYWNjb3JkaW5nbHkuCmFjX2ZuX2NfY2hlY2tfbWVtYmVyICgpCnsKICBhc19saW5lbm89JHth
c19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5v
X3N0YWNrCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu
ZyBmb3IgJDIuJDMiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuJDMuLi4gIiA+JjY7
IH0KaWYgeyBhc192YXI9JDQ7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7
IH07IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBjYXQgY29uZmRl
ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8K
JDUKaW50Cm1haW4gKCkKewpzdGF0aWMgJDIgYWNfYWdncjsKaWYgKGFjX2FnZ3IuJDMpCnJldHVy
biAwOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJ
TkVOTyI7IHRoZW4gOgogIGV2YWwgIiQ0PXllcyIKZWxzZQogIGNhdCBjb25mZGVmcy5oIC0gPDxf
QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwokNQppbnQKbWFp
biAoKQp7CnN0YXRpYyAkMiBhY19hZ2dyOwppZiAoc2l6ZW9mIGFjX2FnZ3IuJDMpCnJldHVybiAw
OwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVO
TyI7IHRoZW4gOgogIGV2YWwgIiQ0PXllcyIKZWxzZQogIGV2YWwgIiQ0PW5vIgpmaQpybSAtZiBj
b3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkK
cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf
ZXh0CmZpCmV2YWwgYWNfcmVzPVwkJDQKCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CiRhc19lY2hvICIkYWNfcmVzIiA+
JjY7IH0KICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9
IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQoKfSAjIGFjX2ZuX2NfY2hlY2tf
bWVtYmVyCgojIGFjX2ZuX2NfY2hlY2tfdHlwZSBMSU5FTk8gVFlQRSBWQVIgSU5DTFVERVMKIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGVzdHMgd2hldGhl
ciBUWVBFIGV4aXN0cyBhZnRlciBoYXZpbmcgaW5jbHVkZWQgSU5DTFVERVMsIHNldHRpbmcgY2Fj
aGUKIyB2YXJpYWJsZSBWQVIgYWNjb3JkaW5nbHkuCmFjX2ZuX2NfY2hlY2tfdHlwZSAoKQp7CiAg
YXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3Rh
Y2s9JGFzX2xpbmVub19zdGFjawogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogY2hlY2tpbmcgZm9yICQyIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICQyLi4u
ICIgPiY2OyB9CmlmIHsgYXNfdmFyPSQzOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIg
PSBzZXQiOyB9OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAgZXZh
bCAiJDM9bm8iCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAov
KiBlbmQgY29uZmRlZnMuaC4gICovCiQ0CmludAptYWluICgpCnsKaWYgKHNpemVvZiAoJDIpKQoJ
IHJldHVybiAwOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGls
ZSAiJExJTkVOTyI7IHRoZW4gOgogIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0
LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwokNAppbnQKbWFpbiAoKQp7CmlmIChzaXpl
b2YgKCgkMikpKQoJICAgIHJldHVybiAwOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNf
Zm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgoKZWxzZQogIGV2YWwgIiQzPXllcyIK
ZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k
YWNfZXh0CmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u
ZnRlc3QuJGFjX2V4dApmaQpldmFsIGFjX3Jlcz1cJCQzCgkgICAgICAgeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQokYXNfZWNobyAi
JGFjX3JlcyIgPiY2OyB9CiAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVu
b19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KCn0gIyBhY19m
bl9jX2NoZWNrX3R5cGUKCiMgYWNfZm5fY19jaGVja19mdW5jIExJTkVOTyBGVU5DIFZBUgojIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBUZXN0cyB3aGV0aGVyIEZVTkMgZXhp
c3RzLCBzZXR0aW5nIHRoZSBjYWNoZSB2YXJpYWJsZSBWQVIgYWNjb3JkaW5nbHkKYWNfZm5fY19j
aGVja19mdW5jICgpCnsKICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0
YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCiAgeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJDIiID4mNQokYXNfZWNob19uICJj
aGVja2luZyBmb3IgJDIuLi4gIiA+JjY7IH0KaWYgeyBhc192YXI9JDM7IGV2YWwgInRlc3QgXCJc
JHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQp
ICIgPiY2CmVsc2UKICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0
Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLyogRGVmaW5lICQyIHRvIGFuIGlubm9jdW91cyB2YXJp
YW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgJDIuCiAgIEZvciBleGFtcGxlLCBIUC1V
WCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLwojZGVmaW5lICQyIGlu
bm9jdW91c18kMgoKLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQg
aG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAogICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hh
ciAkMiAoKTsgYmVsb3cuCiAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9f
U1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCiAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZy
ZWVzdGFuZGluZyBjb21waWxlcnMuICAqLwoKI2lmZGVmIF9fU1REQ19fCiMgaW5jbHVkZSA8bGlt
aXRzLmg+CiNlbHNlCiMgaW5jbHVkZSA8YXNzZXJ0Lmg+CiNlbmRpZgoKI3VuZGVmICQyCgovKiBP
dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KICAg
VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0ND
CiAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh
cHBseS4gICovCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgpjaGFyICQyICgp
OwovKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBp
dCBpbXBsZW1lbnRzCiAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rp
b25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k
IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiNpZiBkZWZpbmVkIF9fc3R1Yl8kMiB8
fCBkZWZpbmVkIF9fc3R1Yl9fXyQyCmNob2tlIG1lCiNlbmRpZgoKaW50Cm1haW4gKCkKewpyZXR1
cm4gJDIgKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9saW5rICIk
TElORU5PIjsgdGhlbiA6CiAgZXZhbCAiJDM9eWVzIgplbHNlCiAgZXZhbCAiJDM9bm8iCmZpCnJt
IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAogICAgY29uZnRlc3Qk
YWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKZXZhbCBhY19yZXM9XCQkMwoJICAgICAgIHsg
JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+
JjUKJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQogIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVz
dCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVu
bzt9Cgp9ICMgYWNfZm5fY19jaGVja19mdW5jCgojIGFjX2ZuX2N4eF90cnlfbGluayBMSU5FTk8K
IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVHJ5IHRvIGxpbmsgY29uZnRlc3QuJGFjX2V4
dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLgphY19mbl9jeHhfdHJ5X2xpbmsg
KCkKewogIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGlu
ZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0JGFjX2V4ZWV4dAogIGlmIHsgeyBhY190cnk9IiRhY19saW5rIgpjYXNlICIoKCRhY190
cnkiIGluCiAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7CiAgKikg
YWNfdHJ5X2VjaG89JGFjX3RyeTs7CmVzYWMKZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKJGFzX2VjaG8gIiRhY190cnlfZWNo
byI7IH0gPiY1CiAgKGV2YWwgIiRhY19saW5rIikgMj5jb25mdGVzdC5lcnIKICBhY19zdGF0dXM9
JD8KICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAgZ3JlcCAtdiAnXiAqKycgY29u
ZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1CiAgICBtdiAt
ZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCiAgZmkKICAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICB0ZXN0ICRhY19zdGF0dXMg
PSAwOyB9ICYmIHsKCSB0ZXN0IC16ICIkYWNfY3h4X3dlcnJvcl9mbGFnIiB8fAoJIHRlc3QgISAt
cyBjb25mdGVzdC5lcnIKICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg
ewoJIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzIHx8CgkgJGFzX3Rlc3RfeCBjb25mdGVz
dCRhY19leGVleHQKICAgICAgIH07IHRoZW4gOgogIGFjX3JldHZhbD0wCmVsc2UKICAkYXNfZWNo
byAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKc2VkICdzL14vfCAvJyBjb25mdGVz
dC4kYWNfZXh0ID4mNQoKCWFjX3JldHZhbD0xCmZpCiAgIyBEZWxldGUgdGhlIElQQS9JUE8gKElu
dGVyIFByb2NlZHVyYWwgQW5hbHlzaXMvT3B0aW1pemF0aW9uKSBpbmZvcm1hdGlvbgogICMgY3Jl
YXRlZCBieSB0aGUgUEdJIGNvbXBpbGVyIChjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vKSwgYXMg
aXQgd291bGQKICAjIGludGVyZmVyZSB3aXRoIHRoZSBuZXh0IGxpbmsgY29tbWFuZDsgYWxzbyBk
ZWxldGUgYSBkaXJlY3RvcnkgdGhhdCBpcwogICMgbGVmdCBiZWhpbmQgYnkgQXBwbGUncyBjb21w
aWxlci4gIFdlIGRvIHRoaXMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9ucy4KICBybSAtcmYg
Y29uZnRlc3QuZFNZTSBjb25mdGVzdF9pcGE4X2NvbmZ0ZXN0Lm9vCiAgZXZhbCAkYXNfbGluZW5v
X3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5z
ZXQgYXNfbGluZW5vO30KICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKCn0gIyBhY19mbl9j
eHhfdHJ5X2xpbmsKY2F0ID5jb25maWcubG9nIDw8X0FDRU9GClRoaXMgZmlsZSBjb250YWlucyBh
bnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCnJ1bm5pbmcgY29uZmlndXJl
LCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCgpJdCB3YXMg
Y3JlYXRlZCBieSBWYWxncmluZCAkYXNfbWUgMy42LjEsIHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkg
R05VIEF1dG9jb25mIDIuNjUuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKCiAgJCAkMCAk
QAoKX0FDRU9GCmV4ZWMgNT4+Y29uZmlnLmxvZwp7CmNhdCA8PF9BU1VOQU1FCiMjIC0tLS0tLS0t
LSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMgLS0tLS0tLS0tICMjCgpob3N0bmFtZSA9IGAoaG9zdG5h
bWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAp1bmFtZSAtbSA9IGAodW5hbWUg
LW0pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKdW5hbWUgLXIgPSBgKHVuYW1lIC1yKSAy
Pi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCnVuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2
L251bGwgfHwgZWNobyB1bmtub3duYAp1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxs
IHx8IGVjaG8gdW5rbm93bmAKCi91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAt
cCkgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAovYmluL3VuYW1lIC1YICAgICA9IGAoL2Jp
bi91bmFtZSAtWCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKCi9iaW4vYXJjaCAg
ICAgICAgICAgICAgPSBgKC9iaW4vYXJjaCkgMj4vZGV2L251bGwgICAgICAgICAgICAgIHx8IGVj
aG8gdW5rbm93bmAKL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykg
Mj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAovdXNyL2NvbnZleC9nZXRzeXNpbmZv
ID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25g
Ci91c3IvYmluL2hvc3RpbmZvICAgICAgPSBgKC91c3IvYmluL2hvc3RpbmZvKSAyPi9kZXYvbnVs
bCAgICAgIHx8IGVjaG8gdW5rbm93bmAKL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jpbi9t
YWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAovdXNyL2Jpbi9v
c2xldmVsICAgICAgID0gYCgvdXNyL2Jpbi9vc2xldmVsKSAyPi9kZXYvbnVsbCAgICAgICB8fCBl
Y2hvIHVua25vd25gCi9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+
L2Rldi9udWxsICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKCl9BU1VOQU1FCgphc19zYXZlX0lG
Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9
JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgICRhc19lY2hv
ICJQQVRIOiAkYXNfZGlyIgogIGRvbmUKSUZTPSRhc19zYXZlX0lGUwoKfSA+JjUKCmNhdCA+JjUg
PDxfQUNFT0YKCgojIyAtLS0tLS0tLS0tLSAjIwojIyBDb3JlIHRlc3RzLiAjIwojIyAtLS0tLS0t
LS0tLSAjIwoKX0FDRU9GCgoKIyBLZWVwIGEgdHJhY2Ugb2YgdGhlIGNvbW1hbmQgbGluZS4KIyBT
dHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBp
bGUgdXAuCiMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZWNv
cmQgaXQgZm9yIGZ1dHVyZSBydW5zLgojIEFsc28gcXVvdGUgYW55IGFyZ3MgY29udGFpbmluZyBz
aGVsbCBtZXRhLWNoYXJhY3RlcnMuCiMgTWFrZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9w
ZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHByZXNzaW9uLgphY19jb25maWd1cmVfYXJncz0KYWNf
Y29uZmlndXJlX2FyZ3MwPQphY19jb25maWd1cmVfYXJnczE9CmFjX211c3Rfa2VlcF9uZXh0PWZh
bHNlCmZvciBhY19wYXNzIGluIDEgMgpkbwogIGZvciBhY19hcmcKICBkbwogICAgY2FzZSAkYWNf
YXJnIGluCiAgICAtbm8tY3JlYXRlIHwgLS1uby1jKiB8IC1uIHwgLW5vLXJlY3Vyc2lvbiB8IC0t
bm8tciopIGNvbnRpbnVlIDs7CiAgICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAt
LXF1aSB8IC0tcXUgfCAtLXEgXAogICAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwg
LS1zaWxlIHwgLS1zaWwpCiAgICAgIGNvbnRpbnVlIDs7CiAgICAqXCcqKQogICAgICBhY19hcmc9
YCRhc19lY2hvICIkYWNfYXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYCA7OwogICAgZXNh
YwogICAgY2FzZSAkYWNfcGFzcyBpbgogICAgMSkgYXNfZm5fYXBwZW5kIGFjX2NvbmZpZ3VyZV9h
cmdzMCAiICckYWNfYXJnJyIgOzsKICAgIDIpCiAgICAgIGFzX2ZuX2FwcGVuZCBhY19jb25maWd1
cmVfYXJnczEgIiAnJGFjX2FyZyciCiAgICAgIGlmIHRlc3QgJGFjX211c3Rfa2VlcF9uZXh0ID0g
dHJ1ZTsgdGhlbgoJYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sgdG8g
bm9ybWFsLgogICAgICBlbHNlCgljYXNlICRhY19hcmcgaW4KCSAgKj0qIHwgLS1jb25maWctY2Fj
aGUgfCAtQyB8IC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKiBcCgkgIHwgLWVuYWJsZS0qIHwgLS1l
bmFibGUtKiB8IC1nYXMgfCAtLWcqIHwgLW5mcCB8IC0tbmYqIFwKCSAgfCAtcSB8IC1xdWlldCB8
IC0tcSogfCAtc2lsZW50IHwgLS1zaWwqIHwgLXYgfCAtdmVyYiogXAoJICB8IC13aXRoLSogfCAt
LXdpdGgtKiB8IC13aXRob3V0LSogfCAtLXdpdGhvdXQtKiB8IC0teCkKCSAgICBjYXNlICIkYWNf
Y29uZmlndXJlX2FyZ3MwICIgaW4KCSAgICAgICIkYWNfY29uZmlndXJlX2FyZ3MxIioiICckYWNf
YXJnJyAiKiApIGNvbnRpbnVlIDs7CgkgICAgZXNhYwoJICAgIDs7CgkgIC0qICkgYWNfbXVzdF9r
ZWVwX25leHQ9dHJ1ZSA7OwoJZXNhYwogICAgICBmaQogICAgICBhc19mbl9hcHBlbmQgYWNfY29u
ZmlndXJlX2FyZ3MgIiAnJGFjX2FyZyciCiAgICAgIDs7CiAgICBlc2FjCiAgZG9uZQpkb25lCnsg
YWNfY29uZmlndXJlX2FyZ3MwPTsgdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MwO30KeyBhY19jb25m
aWd1cmVfYXJnczE9OyB1bnNldCBhY19jb25maWd1cmVfYXJnczE7fQoKIyBXaGVuIGludGVycnVw
dGVkIG9yIGV4aXQnZCwgY2xlYW51cCB0ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQojIGNv
bmZpZy5sb2cuICBXZSByZW1vdmUgY29tbWVudHMgYmVjYXVzZSBhbnl3YXkgdGhlIHF1b3RlcyBp
biB0aGVyZQojIHdvdWxkIGNhdXNlIHByb2JsZW1zIG9yIGxvb2sgdWdseS4KIyBXQVJOSU5HOiBV
c2UgJ1wnJyB0byByZXByZXNlbnQgYW4gYXBvc3Ryb3BoZSB3aXRoaW4gdGhlIHRyYXAuCiMgV0FS
TklORzogRG8gbm90IHN0YXJ0IHRoZSB0cmFwIGNvZGUgd2l0aCBhIG5ld2xpbmUsIGR1ZSB0byBh
IEZyZWVCU0QgNC4wIGJ1Zy4KdHJhcCAnZXhpdF9zdGF0dXM9JD8KICAjIFNhdmUgaW50byBjb25m
aWcubG9nIHNvbWUgaW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2luZy4KICB7
CiAgICBlY2hvCgogICAgY2F0IDw8XF9BU0JPWAojIyAtLS0tLS0tLS0tLS0tLS0tICMjCiMjIENh
Y2hlIHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgIGVjaG8K
ICAgICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBu
ZXdsaW5lcyBpbiB2YWx1ZXMsCigKICBmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1u
ICdcJydzL15cKFthLXpBLVpfXVthLXpBLVowLTlfXSpcKT0uKi9cMS9wJ1wnJ2A7IGRvCiAgICBl
dmFsIGFjX3ZhbD1cJCRhY192YXIKICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAogICAgKiR7YXNfbmx9
KikKICAgICAgY2FzZSAkYWNfdmFyIGluICMoCiAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFy
IGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhY2hl
IHZhcmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjI7fSA7OwogICAgICBlc2Fj
CiAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAogICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCiAg
ICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCiAgICAgICop
IHsgZXZhbCAkYWNfdmFyPTsgdW5zZXQgJGFjX3Zhcjt9IDs7CiAgICAgIGVzYWMgOzsKICAgIGVz
YWMKICBkb25lCiAgKHNldCkgMj4mMSB8CiAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9J1wnJyAn
XCcnOyBzZXQpIDI+JjFgIGluICMoCiAgICAqJHthc19ubH1hY19zcGFjZT1cICopCiAgICAgIHNl
ZCAtbiBcCgkicy8nXCcnLydcJydcXFxcJ1wnJydcJycvZzsKCSAgcy9eXFwoW18kYXNfY3JfYWxu
dW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXCcnXFwyJ1wnJy9wIgog
ICAgICA7OyAjKAogICAgKikKICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18k
YXNfY3JfYWxudW1dKj0vcCIKICAgICAgOzsKICAgIGVzYWMgfAogICAgc29ydAopCiAgICBlY2hv
CgogICAgY2F0IDw8XF9BU0JPWAojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBPdXRwdXQgdmFy
aWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwpfQVNCT1gKICAgIGVjaG8KICAgIGZv
ciBhY192YXIgaW4gJGFjX3N1YnN0X3ZhcnMKICAgIGRvCiAgICAgIGV2YWwgYWNfdmFsPVwkJGFj
X3ZhcgogICAgICBjYXNlICRhY192YWwgaW4KICAgICAgKlwnXCcnKikgYWNfdmFsPWAkYXNfZWNo
byAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7OwogICAg
ICBlc2FjCiAgICAgICRhc19lY2hvICIkYWNfdmFyPSdcJyckYWNfdmFsJ1wnJyIKICAgIGRvbmUg
fCBzb3J0CiAgICBlY2hvCgogICAgaWYgdGVzdCAtbiAiJGFjX3N1YnN0X2ZpbGVzIjsgdGhlbgog
ICAgICBjYXQgPDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgRmlsZSBzdWJz
dGl0dXRpb25zLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjCl9BU0JPWAogICAgICBlY2hv
CiAgICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X2ZpbGVzCiAgICAgIGRvCglldmFsIGFjX3Zh
bD1cJCRhY192YXIKCWNhc2UgJGFjX3ZhbCBpbgoJKlwnXCcnKikgYWNfdmFsPWAkYXNfZWNobyAi
JGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8nXCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7OwoJZXNhYwoJ
JGFzX2VjaG8gIiRhY192YXI9J1wnJyRhY192YWwnXCcnIgogICAgICBkb25lIHwgc29ydAogICAg
ICBlY2hvCiAgICBmaQoKICAgIGlmIHRlc3QgLXMgY29uZmRlZnMuaDsgdGhlbgogICAgICBjYXQg
PDxcX0FTQk9YCiMjIC0tLS0tLS0tLS0tICMjCiMjIGNvbmZkZWZzLmguICMjCiMjIC0tLS0tLS0t
LS0tICMjCl9BU0JPWAogICAgICBlY2hvCiAgICAgIGNhdCBjb25mZGVmcy5oCiAgICAgIGVjaG8K
ICAgIGZpCiAgICB0ZXN0ICIkYWNfc2lnbmFsIiAhPSAwICYmCiAgICAgICRhc19lY2hvICIkYXNf
bWU6IGNhdWdodCBzaWduYWwgJGFjX3NpZ25hbCIKICAgICRhc19lY2hvICIkYXNfbWU6IGV4aXQg
JGV4aXRfc3RhdHVzIgogIH0gPiY1CiAgcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4q
ICYmCiAgICBybSAtZiAtciBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2Zp
bGVzICYmCiAgICBleGl0ICRleGl0X3N0YXR1cwonIDAKZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMg
MTU7IGRvCiAgdHJhcCAnYWNfc2lnbmFsPSckYWNfc2lnbmFsJzsgYXNfZm5fZXhpdCAxJyAkYWNf
c2lnbmFsCmRvbmUKYWNfc2lnbmFsPTAKCiMgY29uZmRlZnMuaCBhdm9pZHMgT1MgY29tbWFuZCBs
aW5lIGxlbmd0aCBsaW1pdHMgdGhhdCBERUZTIGNhbiBleGNlZWQuCnJtIC1mIC1yIGNvbmZ0ZXN0
KiBjb25mZGVmcy5oCgokYXNfZWNobyAiLyogY29uZmRlZnMuaCAqLyIgPiBjb25mZGVmcy5oCgoj
IFByZWRlZmluZWQgcHJlcHJvY2Vzc29yIHZhcmlhYmxlcy4KCmNhdCA+PmNvbmZkZWZzLmggPDxf
QUNFT0YKI2RlZmluZSBQQUNLQUdFX05BTUUgIiRQQUNLQUdFX05BTUUiCl9BQ0VPRgoKY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiJFBBQ0tBR0VfVEFS
TkFNRSIKX0FDRU9GCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICIkUEFDS0FHRV9WRVJTSU9OIgpfQUNFT0YKCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNF
T0YKI2RlZmluZSBQQUNLQUdFX1NUUklORyAiJFBBQ0tBR0VfU1RSSU5HIgpfQUNFT0YKCmNhdCA+
PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiJFBBQ0tBR0Vf
QlVHUkVQT1JUIgpfQUNFT0YKCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBQQUNL
QUdFX1VSTCAiJFBBQ0tBR0VfVVJMIgpfQUNFT0YKCgojIExldCB0aGUgc2l0ZSBmaWxlIHNlbGVj
dCBhbiBhbHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3YW50cyB0by4KIyBQcmVmZXIgYW4gZXhw
bGljaXRseSBzZWxlY3RlZCBmaWxlIHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4KYWNf
c2l0ZV9maWxlMT1OT05FCmFjX3NpdGVfZmlsZTI9Tk9ORQppZiB0ZXN0IC1uICIkQ09ORklHX1NJ
VEUiOyB0aGVuCiAgYWNfc2l0ZV9maWxlMT0kQ09ORklHX1NJVEUKZWxpZiB0ZXN0ICJ4JHByZWZp
eCIgIT0geE5PTkU7IHRoZW4KICBhY19zaXRlX2ZpbGUxPSRwcmVmaXgvc2hhcmUvY29uZmlnLnNp
dGUKICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlCmVsc2UKICBhY19zaXRl
X2ZpbGUxPSRhY19kZWZhdWx0X3ByZWZpeC9zaGFyZS9jb25maWcuc2l0ZQogIGFjX3NpdGVfZmls
ZTI9JGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0ZQpmaQpmb3IgYWNfc2l0ZV9maWxl
IGluICIkYWNfc2l0ZV9maWxlMSIgIiRhY19zaXRlX2ZpbGUyIgpkbwogIHRlc3QgIngkYWNfc2l0
ZV9maWxlIiA9IHhOT05FICYmIGNvbnRpbnVlCiAgaWYgdGVzdCAvZGV2L251bGwgIT0gIiRhY19z
aXRlX2ZpbGUiICYmIHRlc3QgLXIgIiRhY19zaXRlX2ZpbGUiOyB0aGVuCiAgICB7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3Np
dGVfZmlsZSIgPiY1CiRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3Np
dGVfZmlsZSIgPiY2O30KICAgIHNlZCAncy9eL3wgLycgIiRhY19zaXRlX2ZpbGUiID4mNQogICAg
LiAiJGFjX3NpdGVfZmlsZSIKICBmaQpkb25lCgppZiB0ZXN0IC1yICIkY2FjaGVfZmlsZSI7IHRo
ZW4KICAjIFNvbWUgdmVyc2lvbnMgb2YgYmFzaCB3aWxsIGZhaWwgdG8gc291cmNlIC9kZXYvbnVs
bCAoc3BlY2lhbCBmaWxlcwogICMgYWN0dWFsbHkpLCBzbyB3ZSBhdm9pZCBkb2luZyB0aGF0LiAg
REpHUFAgZW11bGF0ZXMgaXQgYXMgYSByZWd1bGFyIGZpbGUuCiAgaWYgdGVzdCAvZGV2L251bGwg
IT0gIiRjYWNoZV9maWxlIiAmJiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7IHRoZW4KICAgIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogbG9hZGluZyBjYWNoZSAkY2FjaGVf
ZmlsZSIgPiY1CiRhc19lY2hvICIkYXNfbWU6IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4m
Njt9CiAgICBjYXNlICRjYWNoZV9maWxlIGluCiAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAi
JGNhY2hlX2ZpbGUiOzsKICAgICAgKikgICAgICAgICAgICAgICAgICAgICAgLiAiLi8kY2FjaGVf
ZmlsZSI7OwogICAgZXNhYwogIGZpCmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l
bm8tJExJTkVOT306IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKJGFzX2VjaG8gIiRh
c19tZTogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CiAgPiRjYWNoZV9maWxlCmZp
Cgphc19mbl9hcHBlbmQgYWNfaGVhZGVyX2xpc3QgIiBzdGRsaWIuaCIKYXNfZm5fYXBwZW5kIGFj
X2hlYWRlcl9saXN0ICIgdW5pc3RkLmgiCmFzX2ZuX2FwcGVuZCBhY19oZWFkZXJfbGlzdCAiIHN5
cy9wYXJhbS5oIgojIENoZWNrIHRoYXQgdGhlIHByZWNpb3VzIHZhcmlhYmxlcyBzYXZlZCBpbiB0
aGUgY2FjaGUgaGF2ZSBrZXB0IHRoZSBzYW1lCiMgdmFsdWUuCmFjX2NhY2hlX2NvcnJ1cHRlZD1m
YWxzZQpmb3IgYWNfdmFyIGluICRhY19wcmVjaW91c192YXJzOyBkbwogIGV2YWwgYWNfb2xkX3Nl
dD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0CiAgZXZhbCBhY19uZXdfc2V0PVwkYWNfZW52XyR7
YWNfdmFyfV9zZXQKICBldmFsIGFjX29sZF92YWw9XCRhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVl
CiAgZXZhbCBhY19uZXdfdmFsPVwkYWNfZW52XyR7YWNfdmFyfV92YWx1ZQogIGNhc2UgJGFjX29s
ZF9zZXQsJGFjX25ld19zZXQgaW4KICAgIHNldCwpCiAgICAgIHsgJGFzX2VjaG8gIiRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19v
bGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6
IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVu
IiA+JjI7fQogICAgICBhY19jYWNoZV9jb3JydXB0ZWQ9OiA7OwogICAgLHNldCkKICAgICAgeyAk
YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogXGAkYWNfdmFyJyB3
YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKJGFzX2VjaG8gIiRhc19tZTogZXJy
b3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KICAg
ICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKICAgICwpOzsKICAgICopCiAgICAgIGlmIHRlc3Qg
IngkYWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3ZhbCI7IHRoZW4KCSMgZGlmZmVyZW5jZXMgaW4g
d2hpdGVzcGFjZSBkbyBub3QgbGVhZCB0byBmYWlsdXJlLgoJYWNfb2xkX3ZhbF93PWBlY2hvIHgg
JGFjX29sZF92YWxgCglhY19uZXdfdmFsX3c9YGVjaG8geCAkYWNfbmV3X3ZhbGAKCWlmIHRlc3Qg
IiRhY19vbGRfdmFsX3ciICE9ICIkYWNfbmV3X3ZhbF93IjsgdGhlbgoJICB7ICRhc19lY2hvICIk
YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2Vk
IHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IFxg
JGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9CgkgIGFj
X2NhY2hlX2NvcnJ1cHRlZD06CgllbHNlCgkgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogd2FybmluZzogaWdub3Jpbmcgd2hpdGVzcGFjZSBjaGFuZ2VzIGluIFxgJGFj
X3Zhcicgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQokYXNfZWNobyAiJGFzX21lOiB3YXJu
aW5nOiBpZ25vcmluZyB3aGl0ZXNwYWNlIGNoYW5nZXMgaW4gXGAkYWNfdmFyJyBzaW5jZSB0aGUg
cHJldmlvdXMgcnVuOiIgPiYyO30KCSAgZXZhbCAkYWNfdmFyPVwkYWNfb2xkX3ZhbAoJZmkKCXsg
JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogICBmb3JtZXIgdmFsdWU6ICBc
YCRhY19vbGRfdmFsJyIgPiY1CiRhc19lY2hvICIkYXNfbWU6ICAgZm9ybWVyIHZhbHVlOiAgXGAk
YWNfb2xkX3ZhbCciID4mMjt9Cgl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306ICAgY3VycmVudCB2YWx1ZTogXGAkYWNfbmV3X3ZhbCciID4mNQokYXNfZWNobyAiJGFzX21l
OiAgIGN1cnJlbnQgdmFsdWU6IFxgJGFjX25ld192YWwnIiA+JjI7fQogICAgICBmaTs7CiAgZXNh
YwogICMgUGFzcyBwcmVjaW91cyB2YXJpYWJsZXMgdG8gY29uZmlnLnN0YXR1cy4KICBpZiB0ZXN0
ICIkYWNfbmV3X3NldCIgPSBzZXQ7IHRoZW4KICAgIGNhc2UgJGFjX25ld192YWwgaW4KICAgICpc
JyopIGFjX2FyZz0kYWNfdmFyPWAkYXNfZWNobyAiJGFjX25ld192YWwiIHwgc2VkICJzLycvJ1xc
XFxcXFxcJycvZyJgIDs7CiAgICAqKSBhY19hcmc9JGFjX3Zhcj0kYWNfbmV3X3ZhbCA7OwogICAg
ZXNhYwogICAgY2FzZSAiICRhY19jb25maWd1cmVfYXJncyAiIGluCiAgICAgICoiICckYWNfYXJn
JyAiKikgOzsgIyBBdm9pZCBkdXBzLiAgVXNlIG9mIHF1b3RlcyBlbnN1cmVzIGFjY3VyYWN5Lgog
ICAgICAqKSBhc19mbl9hcHBlbmQgYWNfY29uZmlndXJlX2FyZ3MgIiAnJGFjX2FyZyciIDs7CiAg
ICBlc2FjCiAgZmkKZG9uZQppZiAkYWNfY2FjaGVfY29ycnVwdGVkOyB0aGVuCiAgeyAkYXNfZWNo
byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4m
NQokYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CiAgeyAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogY2hhbmdlcyBpbiB0aGUg
ZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjUKJGFzX2VjaG8gIiRhc19t
ZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBi
dWlsZCIgPiYyO30KICBhc19mbl9lcnJvciAicnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBc
YHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgIiRMSU5FTk8iIDUKZmkKIyMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0gIyMKIyMgTWFpbiBib2R5IG9mIHNjcmlwdC4gIyMKIyMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0gIyMKCmFjX2V4dD1jCmFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCmFjX2NvbXBp
bGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKYWNfbGlu
az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj
b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp
bGVyX2dudQoKCgphY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIGNvbmZpZy5o
IgoKYW1fX2FwaV92ZXJzaW9uPScxLjExJwoKYWNfYXV4X2Rpcj0KZm9yIGFjX2RpciBpbiAiJHNy
Y2RpciIgIiRzcmNkaXIvLi4iICIkc3JjZGlyLy4uLy4uIjsgZG8KICBmb3IgYWNfdCBpbiBpbnN0
YWxsLXNoIGluc3RhbGwuc2ggc2h0b29sOyBkbwogICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNf
dCI7IHRoZW4KICAgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCiAgICAgIGFjX2luc3RhbGxfc2g9IiRh
Y19hdXhfZGlyLyRhY190IC1jIgogICAgICBicmVhayAyCiAgICBmaQogIGRvbmUKZG9uZQppZiB0
ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KICBhc19mbl9lcnJvciAiY2Fubm90IGZpbmQgaW5z
dGFsbC1zaCwgaW5zdGFsbC5zaCwgb3Igc2h0b29sIGluIFwiJHNyY2RpclwiIFwiJHNyY2Rpci8u
LlwiIFwiJHNyY2Rpci8uLi8uLlwiIiAiJExJTkVOTyIgNQpmaQoKIyBUaGVzZSB0aHJlZSB2YXJp
YWJsZXMgYXJlIHVuZG9jdW1lbnRlZCBhbmQgdW5zdXBwb3J0ZWQsCiMgYW5kIGFyZSBpbnRlbmRl
ZCB0byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0b2NvbmYgcmVsZWFzZS4KIyBUaGV5IGNh
biBjYXVzZSBzZXJpb3VzIHByb2JsZW1zIGlmIGEgYnVpbGRlcidzIHNvdXJjZSB0cmVlIGlzIGlu
IGEgZGlyZWN0b3J5CiMgd2hvc2UgZnVsbCBuYW1lIGNvbnRhaW5zIHVudXN1YWwgY2hhcmFjdGVy
cy4KYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzIiAgIyBQ
bGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgphY19jb25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9k
aXIvY29uZmlnLnN1YiIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KYWNfY29uZmlndXJl
PSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlndXJlIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMg
dmFyLgoKCiMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9n
cmFtIChmYXN0ZXIpLAojIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0
IGF2b2lkIHRoZSBicm9rZW4gb3IKIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6CiMgU3lzViAvZXRj
L2luc3RhbGwsIC91c3Ivc2Jpbi9pbnN0YWxsCiMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAojIElS
SVggL3NiaW4vaW5zdGFsbAojIEFJWCAvYmluL2luc3RhbGwKIyBBbWlnYU9TIC9DL2luc3RhbGws
IHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCiMgQUlYIDQgL3Vzci9i
aW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCiMgQUZT
IC91c3IvYWZzd3MvYmluL2luc3RhbGwsIHdoaWNoIG1pc2hhbmRsZXMgbm9uZXhpc3RlbnQgYXJn
cwojIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlz
dGVudCBncm91cCAic3RhZmYiCiMgT1MvMidzIHN5c3RlbSBpbnN0YWxsLCB3aGljaCBoYXMgYSBj
b21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwojIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVy
cm9uZW91c2x5IGNyZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4KIyBSZWplY3QgaW5z
dGFsbCBwcm9ncmFtcyB0aGF0IGNhbm5vdCBpbnN0YWxsIG11bHRpcGxlIGZpbGVzLgp7ICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBhIEJTRC1jb21w
YXRpYmxlIGluc3RhbGwiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0
aWJsZSBpbnN0YWxsLi4uICIgPiY2OyB9CmlmIHRlc3QgLXogIiRJTlNUQUxMIjsgdGhlbgppZiB0
ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9f
biAiKGNhY2hlZCkgIiA+JjYKZWxzZQogIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB
UkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16
ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogICAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0
cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCmNhc2UgJGFzX2Rpci8gaW4gIygoCiAg
Li8gfCAuLy8gfCAvW2NDXS8qIHwgXAogIC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMv
KiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIHwgXAogID86W1xcL11vczJbXFwvXWluc3Rh
bGxbXFwvXSogfCA/OltcXC9dT1MyW1xcL11JTlNUQUxMW1xcL10qIHwgXAogIC91c3IvdWNiLyog
KSA7OwogICopCiAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVz
IGZvciBpbnN0YWxsLgogICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBp
dCBpbnN0YWxscyBzdHVmZiBhcyByb290CiAgICAjIGJ5IGRlZmF1bHQuCiAgICBmb3IgYWNfcHJv
ZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCiAgICAgIGZvciBhY19leGVjX2V4dCBp
biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwoJaWYgeyB0ZXN0IC1mICIkYXNfZGly
LyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY19wcm9nJGFj
X2V4ZWNfZXh0IjsgfTsgdGhlbgoJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgoJICAg
IGdyZXAgZHNwbXNnICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rldi9udWxsIDI+
JjE7IHRoZW4KCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxs
aW5nIGNvbnZlbnRpb24uCgkgICAgOgoJICBlbGlmIHRlc3QgJGFjX3Byb2cgPSBpbnN0YWxsICYm
CgkgICAgZ3JlcCBwd3BsdXMgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251
bGwgMj4mMTsgdGhlbgoJICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2Vk
IGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgoJICAgIDoKCSAgZWxzZQoJICAgIHJtIC1yZiBjb25m
dGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgoJICAgIGVjaG8gb25lID4gY29uZnRl
c3Qub25lCgkgICAgZWNobyB0d28gPiBjb25mdGVzdC50d28KCSAgICBta2RpciBjb25mdGVzdC5k
aXIKCSAgICBpZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLWMgY29uZnRlc3Qub25l
IGNvbmZ0ZXN0LnR3byAiYHB3ZGAvY29uZnRlc3QuZGlyIiAmJgoJICAgICAgdGVzdCAtcyBjb25m
dGVzdC5vbmUgJiYgdGVzdCAtcyBjb25mdGVzdC50d28gJiYKCSAgICAgIHRlc3QgLXMgY29uZnRl
c3QuZGlyL2NvbmZ0ZXN0Lm9uZSAmJgoJICAgICAgdGVzdCAtcyBjb25mdGVzdC5kaXIvY29uZnRl
c3QudHdvCgkgICAgdGhlbgoJICAgICAgYWNfY3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19w
cm9nJGFjX2V4ZWNfZXh0IC1jIgoJICAgICAgYnJlYWsgMwoJICAgIGZpCgkgIGZpCglmaQogICAg
ICBkb25lCiAgICBkb25lCiAgICA7Owplc2FjCgogIGRvbmUKSUZTPSRhc19zYXZlX0lGUwoKcm0g
LXJmIGNvbmZ0ZXN0Lm9uZSBjb25mdGVzdC50d28gY29uZnRlc3QuZGlyCgpmaQogIGlmIHRlc3Qg
IiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCiAgICBJTlNUQUxMPSRhY19j
dl9wYXRoX2luc3RhbGwKICBlbHNlCiAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xv
dyBzaGVsbCBzY3JpcHQuICBEb24ndCBjYWNoZSBhCiAgICAjIHZhbHVlIGZvciBJTlNUQUxMIHdp
dGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCiAgICAjIGJyZWFrIG90
aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwogICAgIyBy
ZW1vdmVkLCBvciBpZiB0aGUgdmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgogICAgSU5TVEFMTD0k
YWNfaW5zdGFsbF9zaAogIGZpCmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogcmVzdWx0OiAkSU5TVEFMTCIgPiY1CiRhc19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Cgoj
IFVzZSB0ZXN0IC16IGJlY2F1c2UgU3VuT1M0IHNoIG1pc2hhbmRsZXMgYnJhY2VzIGluICR7dmFy
LXZhbH0uCiMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJs
ZSBzdWJzdGl0dXRpb24uCnRlc3QgLXogIiRJTlNUQUxMX1BST0dSQU0iICYmIElOU1RBTExfUFJP
R1JBTT0nJHtJTlNUQUxMfScKCnRlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9T
Q1JJUFQ9JyR7SU5TVEFMTH0nCgp0ZXN0IC16ICIkSU5TVEFMTF9EQVRBIiAmJiBJTlNUQUxMX0RB
VEE9JyR7SU5TVEFMTH0gLW0gNjQ0JwoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUiID4mNQok
YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmlyb25tZW50IGlzIHNhbmUuLi4g
IiA+JjY7IH0KIyBKdXN0IGluIGNhc2UKc2xlZXAgMQplY2hvIHRpbWVzdGFtcCA+IGNvbmZ0ZXN0
LmZpbGUKIyBSZWplY3QgdW5zYWZlIGNoYXJhY3RlcnMgaW4gJHNyY2RpciBvciB0aGUgYWJzb2x1
dGUgd29ya2luZyBkaXJlY3RvcnkKIyBuYW1lLiAgQWNjZXB0IHNwYWNlIGFuZCB0YWIgb25seSBp
biB0aGUgbGF0dGVyLgphbV9sZj0nCicKY2FzZSBgcHdkYCBpbgogICpbXFxcIlwjXCRcJlwnXGAk
YW1fbGZdKikKICAgIGFzX2ZuX2Vycm9yICJ1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3Rv
cnkgbmFtZSIgIiRMSU5FTk8iIDU7Owplc2FjCmNhc2UgJHNyY2RpciBpbgogICpbXFxcIlwjXCRc
JlwnXGAkYW1fbGZcIFwJXSopCiAgICBhc19mbl9lcnJvciAidW5zYWZlIHNyY2RpciB2YWx1ZTog
XGAkc3JjZGlyJyIgIiRMSU5FTk8iIDU7Owplc2FjCgojIERvIGBzZXQnIGluIGEgc3Vic2hlbGwg
c28gd2UgZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCiMgYXJndW1lbnRzLiAgTXVz
dCB0cnkgLUwgZmlyc3QgaW4gY2FzZSBjb25maWd1cmUgaXMgYWN0dWFsbHkgYQojIHN5bWxpbms7
IHNvbWUgc3lzdGVtcyBwbGF5IHdlaXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxp
bmtzCiMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2YgdGhlIHN5bWxpbmsncyBj
b250YWluaW5nCiMgZGlyZWN0b3J5KS4KaWYgKAogICBzZXQgWCBgbHMgLUx0ICIkc3JjZGlyL2Nv
bmZpZ3VyZSIgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCiAgIGlmIHRlc3QgIiQqIiA9ICJY
IjsgdGhlbgogICAgICAjIC1MIGRpZG4ndCB3b3JrLgogICAgICBzZXQgWCBgbHMgLXQgIiRzcmNk
aXIvY29uZmlndXJlIiBjb25mdGVzdC5maWxlYAogICBmaQogICBybSAtZiBjb25mdGVzdC5maWxl
CiAgIGlmIHRlc3QgIiQqIiAhPSAiWCAkc3JjZGlyL2NvbmZpZ3VyZSBjb25mdGVzdC5maWxlIiBc
CiAgICAgICYmIHRlc3QgIiQqIiAhPSAiWCBjb25mdGVzdC5maWxlICRzcmNkaXIvY29uZmlndXJl
IjsgdGhlbgoKICAgICAgIyBJZiBuZWl0aGVyIG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tl
biBscy4gIFRoaXMgY2FuIGhhcHBlbgogICAgICAjIGlmLCBmb3IgaW5zdGFuY2UsIENPTkZJR19T
SEVMTCBpcyBiYXNoIGFuZCBpdCBpbmhlcml0cyBhCiAgICAgICMgYnJva2VuIGxzIGFsaWFzIGZy
b20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKICAgICAgIyBoYXBwZW5lZC4g
IFN1Y2ggYSBzeXN0ZW0gY291bGQgbm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgogICAgICBhc19m
bl9lcnJvciAibHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBh
IGJyb2tlbgphbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiAiJExJTkVOTyIgNQogICBmaQoKICAg
dGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQogICApCnRoZW4KICAgIyBPay4KICAgOgplbHNlCiAg
IGFzX2ZuX2Vycm9yICJuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRl
ZCBmaWxlcyEKQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siICIkTElORU5PIiA1CmZpCnsgJGFzX2Vj
aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQokYXNfZWNo
byAieWVzIiA+JjY7IH0KdGVzdCAiJHByb2dyYW1fcHJlZml4IiAhPSBOT05FICYmCiAgcHJvZ3Jh
bV90cmFuc2Zvcm1fbmFtZT0icyZeJiRwcm9ncmFtX3ByZWZpeCY7JHByb2dyYW1fdHJhbnNmb3Jt
X25hbWUiCiMgVXNlIGEgZG91YmxlICQgc28gbWFrZSBpZ25vcmVzIGl0Lgp0ZXN0ICIkcHJvZ3Jh
bV9zdWZmaXgiICE9IE5PTkUgJiYKICBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSJzJlwkJiRwcm9n
cmFtX3N1ZmZpeCY7JHByb2dyYW1fdHJhbnNmb3JtX25hbWUiCiMgRG91YmxlIGFueSBcIG9yICQu
CiMgQnkgZGVmYXVsdCB3YXMgYHMseCx4JywgcmVtb3ZlIGl0IGlmIHVzZWxlc3MuCmFjX3Njcmlw
dD0ncy9bXFwkXS8mJi9nO3MvO3MseCx4LCQvLycKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFz
X2VjaG8gIiRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCgojIGV4
cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCmFtX2F1eF9kaXI9YGNkICRhY19h
dXhfZGlyICYmIHB3ZGAKCmlmIHRlc3QgeCIke01JU1NJTkcrc2V0fSIgIT0geHNldDsgdGhlbgog
IGNhc2UgJGFtX2F1eF9kaXIgaW4KICAqXCAqIHwgKlwJKikKICAgIE1JU1NJTkc9Ilwke1NIRUxM
fSBcIiRhbV9hdXhfZGlyL21pc3NpbmdcIiIgOzsKICAqKQogICAgTUlTU0lORz0iXCR7U0hFTEx9
ICRhbV9hdXhfZGlyL21pc3NpbmciIDs7CiAgZXNhYwpmaQojIFVzZSBldmFsIHRvIGV4cGFuZCAk
U0hFTEwKaWYgZXZhbCAiJE1JU1NJTkcgLS1ydW4gdHJ1ZSI7IHRoZW4KICBhbV9taXNzaW5nX3J1
bj0iJE1JU1NJTkcgLS1ydW4gIgplbHNlCiAgYW1fbWlzc2luZ19ydW49CiAgeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBcYG1pc3NpbmcnIHNjcmlwdCBp
cyB0b28gb2xkIG9yIG1pc3NpbmciID4mNQokYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYG1p
c3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4mMjt9CmZpCgppZiB0ZXN0IHgi
JHtpbnN0YWxsX3NofSIgIT0geHNldDsgdGhlbgogIGNhc2UgJGFtX2F1eF9kaXIgaW4KICAqXCAq
IHwgKlwJKikKICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAnJGFtX2F1eF9kaXIvaW5zdGFsbC1z
aCciIDs7CiAgKikKICAgIGluc3RhbGxfc2g9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9pbnN0YWxs
LXNoIgogIGVzYWMKZmkKCiMgSW5zdGFsbGVkIGJpbmFyaWVzIGFyZSB1c3VhbGx5IHN0cmlwcGVk
IHVzaW5nIGBzdHJpcCcgd2hlbiB0aGUgdXNlcgojIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4g
IEhvd2V2ZXIgYHN0cmlwJyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0CiMgdG9vbCB0byB1c2UgaW4g
Y3Jvc3MtY29tcGlsYXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKIyB3aWxs
IGhvbm9yIHRoZSBgU1RSSVAnIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG92ZXJydWxlIHRoaXMg
cHJvZ3JhbS4KaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0gbm87IHRoZW4KICBpZiB0ZXN0
IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m
ICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdp
dGggYXJncy4Kc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9c3RyaXA7IGFjX3dvcmQ9JDIKeyAk
YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dv
cmQiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KaWYg
dGVzdCAiJHthY19jdl9wcm9nX1NUUklQK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19u
ICIoY2FjaGVkKSAiID4mNgplbHNlCiAgaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgogIGFjX2N2
X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCmVs
c2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQ
QVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u
CiAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K
ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0
X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCiAgICBhY19jdl9wcm9n
X1NUUklQPSIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIgogICAgJGFzX2VjaG8gIiRhc19tZToke2Fz
X2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1
CiAgICBicmVhayAyCiAgZmkKZG9uZQogIGRvbmUKSUZTPSRhc19zYXZlX0lGUwoKZmkKZmkKU1RS
SVA9JGFjX2N2X3Byb2dfU1RSSVAKaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgogIHsgJGFzX2Vj
aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkU1RSSVAiID4mNQokYXNf
ZWNobyAiJFNUUklQIiA+JjY7IH0KZWxzZQogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CmZpCgoKZmkK
aWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCiAgYWNfY3RfU1RSSVA9JFNUUklQ
CiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHBy
b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1teSBzdHJpcDsgYWNfd29yZD0kMgp7ICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIg
PiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQppZiB0ZXN0
ICIke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hv
X24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVu
CiAgYWNfY3ZfcHJvZ19hY19jdF9TVFJJUD0iJGFjX2N0X1NUUklQIiAjIExldCB0aGUgdXNlciBv
dmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB
VE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAi
JGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0
YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l
eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07
IHRoZW4KICAgIGFjX2N2X3Byb2dfYWNfY3RfU1RSSVA9InN0cmlwIgogICAgJGFzX2VjaG8gIiRh
c19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVj
X2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQogIGRvbmUKSUZTPSRhc19zYXZlX0lGUwoK
ZmkKZmkKYWNfY3RfU1RSSVA9JGFjX2N2X3Byb2dfYWNfY3RfU1RSSVAKaWYgdGVzdCAtbiAiJGFj
X2N0X1NUUklQIjsgdGhlbgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiAkYWNfY3RfU1RSSVAiID4mNQokYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7
IH0KZWxzZQogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0
OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CmZpCgogIGlmIHRlc3QgIngkYWNfY3RfU1RS
SVAiID0geDsgdGhlbgogICAgU1RSSVA9IjoiCiAgZWxzZQogICAgY2FzZSAkY3Jvc3NfY29tcGls
aW5nOiRhY190b29sX3dhcm5lZCBpbgp5ZXM6KQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l
bm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRo
IGhvc3QgdHJpcGxldCIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3Nz
IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KYWNfdG9vbF93YXJu
ZWQ9eWVzIDs7CmVzYWMKICAgIFNUUklQPSRhY19jdF9TVFJJUAogIGZpCmVsc2UKICBTVFJJUD0i
JGFjX2N2X3Byb2dfU1RSSVAiCmZpCgpmaQpJTlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3Rh
bGxfc2gpIC1jIC1zIgoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj
aGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1CiRhc19lY2hvX24gImNoZWNr
aW5nIGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wLi4uICIgPiY2OyB9CmlmIHRlc3QgLXogIiRN
S0RJUl9QIjsgdGhlbgogIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsg
dGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxzZQogIGFzX3NhdmVfSUZTPSRJ
RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRP
Ui9vcHQvc2Z3L2JpbgpkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIkYXNfZGlyIiAm
JiBhc19kaXI9LgogICAgZm9yIGFjX3Byb2cgaW4gbWtkaXIgZ21rZGlyOyBkbwoJIGZvciBhY19l
eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwoJICAgeyB0ZXN0IC1m
ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh
Y19wcm9nJGFjX2V4ZWNfZXh0IjsgfSB8fCBjb250aW51ZQoJICAgY2FzZSBgIiRhc19kaXIvJGFj
X3Byb2ckYWNfZXhlY19leHQiIC0tdmVyc2lvbiAyPiYxYCBpbiAjKAoJICAgICAnbWtkaXIgKEdO
VSBjb3JldXRpbHMpICcqIHwgXAoJICAgICAnbWtkaXIgKGNvcmV1dGlscykgJyogfCBcCgkgICAg
ICdta2RpciAoZmlsZXV0aWxzKSAnNC4xKikKCSAgICAgICBhY19jdl9wYXRoX21rZGlyPSRhc19k
aXIvJGFjX3Byb2ckYWNfZXhlY19leHQKCSAgICAgICBicmVhayAzOzsKCSAgIGVzYWMKCSBkb25l
CiAgICAgICBkb25lCiAgZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgpmaQoKICB0ZXN0IC1kIC4vLS12
ZXJzaW9uICYmIHJtZGlyIC4vLS12ZXJzaW9uCiAgaWYgdGVzdCAiJHthY19jdl9wYXRoX21rZGly
K3NldH0iID0gc2V0OyB0aGVuCiAgICBNS0RJUl9QPSIkYWNfY3ZfcGF0aF9ta2RpciAtcCIKICBl
bHNlCiAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBE
b24ndCBjYWNoZSBhCiAgICAjIHZhbHVlIGZvciBNS0RJUl9QIHdpdGhpbiBhIHNvdXJjZSBkaXJl
Y3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCiAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5n
IHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwogICAgIyByZW1vdmVkLCBvciBpZiB0aGUg
dmFsdWUgaXMgYSByZWxhdGl2ZSBuYW1lLgogICAgTUtESVJfUD0iJGFjX2luc3RhbGxfc2ggLWQi
CiAgZmkKZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6
ICRNS0RJUl9QIiA+JjUKJGFzX2VjaG8gIiRNS0RJUl9QIiA+JjY7IH0KCm1rZGlyX3A9IiRNS0RJ
Ul9QIgpjYXNlICRta2Rpcl9wIGluCiAgW1xcLyRdKiB8ID86W1xcL10qKSA7OwogICovKikgbWtk
aXJfcD0iXCQodG9wX2J1aWxkZGlyKS8kbWtkaXJfcCIgOzsKZXNhYwoKZm9yIGFjX3Byb2cgaW4g
Z2F3ayBtYXdrIG5hd2sgYXdrCmRvCiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNf
cHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1teSAk
YWNfcHJvZzsgYWNfd29yZD0kMgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciAk
YWNfd29yZC4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3Byb2dfQVdLK3NldH0iID0gc2V0
OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAgaWYgdGVzdCAtbiAi
JEFXSyI7IHRoZW4KICBhY19jdl9wcm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp
ZGUgdGhlIHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpm
b3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19k
aXIiICYmIGFzX2Rpcj0uCiAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf
ZXh0ZW5zaW9uczsgZG8KICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l
eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu
CiAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCiAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUK
ICAgIGJyZWFrIDIKICBmaQpkb25lCiAgZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgpmaQpmaQpBV0s9
JGFjX2N2X3Byb2dfQVdLCmlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRBV0siID4mNQokYXNfZWNobyAiJEFX
SyIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQpmaQoKCiAgdGVzdCAtbiAiJEFX
SyIgJiYgYnJlYWsKZG9uZQoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99
OiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKJGFzX2Vj
aG9fbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4m
NjsgfQpzZXQgeCAke01BS0UtbWFrZX0KYWNfbWFrZT1gJGFzX2VjaG8gIiQyIiB8IHNlZCAncy8r
L3AvZzsgcy9bXmEtekEtWjAtOV9dL18vZydgCmlmIHsgYXNfdmFyPWFjX2N2X3Byb2dfbWFrZV8k
e2FjX21ha2V9X3NldDsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsg
dGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxzZQogIGNhdCA+Y29uZnRlc3Qu
bWFrZSA8PFxfQUNFT0YKU0hFTEwgPSAvYmluL3NoCmFsbDoKCUBlY2hvICdAQEAlJSU9JChNQUtF
KT1AQEAlJSUnCl9BQ0VPRgojIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVu
dGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KY2FzZSBgJHtNQUtFLW1ha2V9IC1m
IGNvbmZ0ZXN0Lm1ha2UgMj4vZGV2L251bGxgIGluCiAgKkBAQCUlJT0/Kj1AQEAlJSUqKQogICAg
ZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzOzsKICAqKQogICAgZXZhbCBh
Y19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9bm87Owplc2FjCnJtIC1mIGNvbmZ0ZXN0Lm1h
a2UKZmkKaWYgZXZhbCB0ZXN0IFwkYWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0ID0geWVz
OyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6
IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQogIFNFVF9NQUtFPQplbHNlCiAgeyAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2Vj
aG8gIm5vIiA+JjY7IH0KICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCmZpCgpybSAtcmYg
LnRzdCAyPi9kZXYvbnVsbApta2RpciAudHN0IDI+L2Rldi9udWxsCmlmIHRlc3QgLWQgLnRzdDsg
dGhlbgogIGFtX19sZWFkaW5nX2RvdD0uCmVsc2UKICBhbV9fbGVhZGluZ19kb3Q9XwpmaQpybWRp
ciAudHN0IDI+L2Rldi9udWxsCgppZiB0ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3
ZGAiOyB0aGVuCiAgIyBVc2UgLUkkKHNyY2Rpcikgb25seSB3aGVuICQoc3JjZGlyKSAhPSAuLCBz
byB0aGF0IG1ha2UncyBvdXRwdXQKICAjIGlzIG5vdCBwb2xsdXRlZCB3aXRoIHJlcGVhdGVkICIt
SS4iCiAgYW1fX2lzcmM9JyAtSSQoc3JjZGlyKScKICAjIHRlc3QgdG8gc2VlIGlmIHNyY2RpciBh
bHJlYWR5IGNvbmZpZ3VyZWQKICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhl
bgogICAgYXNfZm5fZXJyb3IgInNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBy
dW4gXCJtYWtlIGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiAiJExJTkVOTyIgNQogIGZpCmZpCgoj
IHRlc3Qgd2hldGhlciB3ZSBoYXZlIGN5Z3BhdGgKaWYgdGVzdCAteiAiJENZR1BBVEhfVyI7IHRo
ZW4KICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRoZW4K
ICAgIENZR1BBVEhfVz0nY3lncGF0aCAtdycKICBlbHNlCiAgICBDWUdQQVRIX1c9ZWNobwogIGZp
CmZpCgoKIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgogUEFDS0FHRT0ndmFs
Z3JpbmQnCiBWRVJTSU9OPSczLjYuMScKCgpjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZp
bmUgUEFDS0FHRSAiJFBBQ0tBR0UiCl9BQ0VPRgoKCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK
I2RlZmluZSBWRVJTSU9OICIkVkVSU0lPTiIKX0FDRU9GCgojIFNvbWUgdG9vbHMgQXV0b21ha2Ug
bmVlZHMuCgpBQ0xPQ0FMPSR7QUNMT0NBTC0iJHthbV9taXNzaW5nX3J1bn1hY2xvY2FsLSR7YW1f
X2FwaV92ZXJzaW9ufSJ9CgoKQVVUT0NPTkY9JHtBVVRPQ09ORi0iJHthbV9taXNzaW5nX3J1bn1h
dXRvY29uZiJ9CgoKQVVUT01BS0U9JHtBVVRPTUFLRS0iJHthbV9taXNzaW5nX3J1bn1hdXRvbWFr
ZS0ke2FtX19hcGlfdmVyc2lvbn0ifQoKCkFVVE9IRUFERVI9JHtBVVRPSEVBREVSLSIke2FtX21p
c3NpbmdfcnVufWF1dG9oZWFkZXIifQoKCk1BS0VJTkZPPSR7TUFLRUlORk8tIiR7YW1fbWlzc2lu
Z19ydW59bWFrZWluZm8ifQoKIyBXZSBuZWVkIGF3ayBmb3IgdGhlICJjaGVjayIgdGFyZ2V0LiAg
VGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KIyBzb21lIHBsYXRmb3Jtcy4KIyBBbHdheXMgZGVm
aW5lIEFNVEFSIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgoKQU1UQVI9JHtBTVRBUi0iJHth
bV9taXNzaW5nX3J1bn10YXIifQoKYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciIn
OyBhbV9fdW50YXI9JyR7QU1UQVJ9IHhmIC0nCgoKCgoKCgp7ICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdG8gZW5hYmxlIG1haW50YWluZXIt
c3BlY2lmaWMgcG9ydGlvbnMgb2YgTWFrZWZpbGVzIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcg
d2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmls
ZXMuLi4gIiA+JjY7IH0KICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1tYWludGFpbmVyLW1v
ZGUgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJsZV9tYWludGFpbmVyX21vZGUrc2V0fSIgPSBz
ZXQ7IHRoZW4gOgogIGVuYWJsZXZhbD0kZW5hYmxlX21haW50YWluZXJfbW9kZTsgVVNFX01BSU5U
QUlORVJfTU9ERT0kZW5hYmxldmFsCmVsc2UKICBVU0VfTUFJTlRBSU5FUl9NT0RFPW5vCmZpCgog
IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkVVNFX01B
SU5UQUlORVJfTU9ERSIgPiY1CiRhc19lY2hvICIkVVNFX01BSU5UQUlORVJfTU9ERSIgPiY2OyB9
CiAgIGlmIHRlc3QgJFVTRV9NQUlOVEFJTkVSX01PREUgPSB5ZXM7IHRoZW4KICBNQUlOVEFJTkVS
X01PREVfVFJVRT0KICBNQUlOVEFJTkVSX01PREVfRkFMU0U9JyMnCmVsc2UKICBNQUlOVEFJTkVS
X01PREVfVFJVRT0nIycKICBNQUlOVEFJTkVSX01PREVfRkFMU0U9CmZpCgogIE1BSU5UPSRNQUlO
VEFJTkVSX01PREVfVFJVRQoKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIENoZWNrcyBmb3IgdmFy
aW91cyBwcm9ncmFtcy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQ0ZMQUdTPSItV25vLWxvbmctbG9u
ZyAkQ0ZMQUdTIgoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj
a2luZyB3aGV0aGVyIGxuIC1zIHdvcmtzIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl
ciBsbiAtcyB3b3Jrcy4uLiAiID4mNjsgfQpMTl9TPSRhc19sbl9zCmlmIHRlc3QgIiRMTl9TIiA9
ICJsbiAtcyI7IHRoZW4KICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+
JjUKJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9CmZpCgphY19leHQ9YwphY19jcHA9
JyRDUFAgJENQUEZMQUdTJwphY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29u
ZnRlc3QuJGFjX2V4dCA+JjUnCmFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENG
TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCmFjX2Nv
bXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl
Zml4IjsgdGhlbgogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZp
eH1nY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkg
JHthY190b29sX3ByZWZpeH1nY2M7IGFjX3dvcmQ9JDIKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQokYXNfZWNob19uICJj
aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9wcm9nX0ND
K3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAg
aWYgdGVzdCAtbiAiJENDIjsgdGhlbgogIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVz
ZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF
UEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3Qg
LXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4
ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQk
YWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi
OyB9OyB0aGVuCiAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWdjYyIKICAgICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dv
cmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKICBkb25lCklGUz0kYXNf
c2F2ZV9JRlMKCmZpCmZpCkNDPSRhY19jdl9wcm9nX0NDCmlmIHRlc3QgLW4gIiRDQyI7IHRoZW4K
ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENDIiA+
JjUKJGFzX2VjaG8gIiRDQyIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQpmaQoK
CmZpCmlmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgogIGFjX2N0X0NDPSRDQwogICMg
RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBu
YW1lIHdpdGggYXJncy4Kc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgp7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiRhc19l
Y2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2
X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQp
ICIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCiAgYWNfY3ZfcHJvZ19h
Y19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxz
ZQphc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBB
VEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K
ICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwog
IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf
eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3Byb2df
YWNfY3RfQ0M9ImdjYyIKICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZp
CmRvbmUKICBkb25lCklGUz0kYXNfc2F2ZV9JRlMKCmZpCmZpCmFjX2N0X0NDPSRhY19jdl9wcm9n
X2FjX2N0X0NDCmlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KICB7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKJGFzX2VjaG8g
IiRhY19jdF9DQyIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQpmaQoKICBpZiB0
ZXN0ICJ4JGFjX2N0X0NDIiA9IHg7IHRoZW4KICAgIENDPSIiCiAgZWxzZQogICAgY2FzZSAkY3Jv
c3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgp5ZXM6KQp7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVm
aXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVz
aW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KYWNf
dG9vbF93YXJuZWQ9eWVzIDs7CmVzYWMKICAgIENDPSRhY19jdF9DQwogIGZpCmVsc2UKICBDQz0i
JGFjX2N2X3Byb2dfQ0MiCmZpCgppZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCiAgICAgICAgICBpZiB0
ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCiAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv
cmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9Y2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg
d2l0aCBhcmdzLgpzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jYzsgYWNfd29yZD0kMgp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29y
ZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQppZiB0
ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihj
YWNoZWQpICIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgYWNfY3ZfcHJvZ19D
Qz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lG
Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9
JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19l
eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAt
ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k
YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9v
bF9wcmVmaXh9Y2MiCiAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm
b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpk
b25lCiAgZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgpmaQpmaQpDQz0kYWNfY3ZfcHJvZ19DQwppZiB0
ZXN0IC1uICIkQ0MiOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiByZXN1bHQ6ICRDQyIgPiY1CiRhc19lY2hvICIkQ0MiID4mNjsgfQplbHNlCiAgeyAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2Vj
aG8gIm5vIiA+JjY7IH0KZmkKCgogIGZpCmZpCmlmIHRlc3QgLXogIiRDQyI7IHRoZW4KICAjIEV4
dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1l
IHdpdGggYXJncy4Kc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCnsgJGFzX2VjaG8gIiRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKJGFzX2VjaG9f
biAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfcHJv
Z19DQytzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxz
ZQogIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRo
ZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCiAgYWNfcHJvZ19yZWplY3RlZD1ubwphc19z
YXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8K
ICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZv
ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsg
dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz
X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICAgIGlmIHRlc3QgIiRhc19kaXIv
JGFjX3dvcmQkYWNfZXhlY19leHQiID0gIi91c3IvdWNiL2NjIjsgdGhlbgogICAgICAgYWNfcHJv
Z19yZWplY3RlZD15ZXMKICAgICAgIGNvbnRpbnVlCiAgICAgZmkKICAgIGFjX2N2X3Byb2dfQ0M9
ImNjIgogICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFz
X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQogIGRv
bmUKSUZTPSRhc19zYXZlX0lGUwoKaWYgdGVzdCAkYWNfcHJvZ19yZWplY3RlZCA9IHllczsgdGhl
bgogICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwgc28gbWFrZSBzdXJlIHdlIG5ldmVy
IHVzZSBpdC4KICBzZXQgZHVtbXkgJGFjX2N2X3Byb2dfQ0MKICBzaGlmdAogIGlmIHRlc3QgJCMg
IT0gMDsgdGhlbgogICAgIyBXZSBjaG9zZSBhIGRpZmZlcmVudCBjb21waWxlciBmcm9tIHRoZSBi
b2d1cyBvbmUuCiAgICAjIEhvd2V2ZXIsIGl0IGhhcyB0aGUgc2FtZSBiYXNlbmFtZSwgc28gdGhl
IGJvZ29uIHdpbGwgYmUgY2hvc2VuCiAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRo
ZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KICAgIHNoaWZ0CiAgICBhY19jdl9w
cm9nX0NDPSIkYXNfZGlyLyRhY193b3JkJHsxKycgJ30kQCIKICBmaQpmaQpmaQpmaQpDQz0kYWNf
Y3ZfcHJvZ19DQwppZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1CiRhc19lY2hvICIkQ0MiID4mNjsg
fQplbHNlCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6
IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7IH0KZmkKCgpmaQppZiB0ZXN0IC16ICIkQ0MiOyB0
aGVuCiAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgogIGZvciBhY19wcm9nIGlu
IGNsLmV4ZQogIGRvCiAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3By
ZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0
IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCnsgJGFzX2VjaG8gIiRh
c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKJGFz
X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNf
Y3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+
JjYKZWxzZQogIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KICBhY19jdl9wcm9nX0NDPSIkQ0MiICMg
TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgplbHNlCmFzX3NhdmVfSUZTPSRJRlM7IElG
Uz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9J
RlMKICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogICAgZm9yIGFjX2V4ZWNfZXh0IGlu
ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgaWYgeyB0ZXN0IC1mICIkYXNfZGly
LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj
X2V4ZWNfZXh0IjsgfTsgdGhlbgogICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFj
X3Byb2ciCiAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAk
YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCiAg
ZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgpmaQpmaQpDQz0kYWNfY3ZfcHJvZ19DQwppZiB0ZXN0IC1u
ICIkQ0MiOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy
ZXN1bHQ6ICRDQyIgPiY1CiRhc19lY2hvICIkQ0MiID4mNjsgfQplbHNlCiAgeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5v
IiA+JjY7IH0KZmkKCgogICAgdGVzdCAtbiAiJENDIiAmJiBicmVhawogIGRvbmUKZmkKaWYgdGVz
dCAteiAiJENDIjsgdGhlbgogIGFjX2N0X0NDPSRDQwogIGZvciBhY19wcm9nIGluIGNsLmV4ZQpk
bwogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUg
YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIK
eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFj
X3dvcmQiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0K
aWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNf
ZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhl
bgogIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp
ZGUgdGhlIHRlc3QuCmVsc2UKYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpm
b3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXogIiRhc19k
aXIiICYmIGFzX2Rpcj0uCiAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVf
ZXh0ZW5zaW9uczsgZG8KICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l
eHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVu
CiAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfcHJvZyIKICAgICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi
ID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKICBkb25lCklGUz0kYXNfc2F2ZV9JRlMKCmZpCmZp
CmFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCmlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRo
ZW4KICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj
X2N0X0NDIiA+JjUKJGFzX2VjaG8gIiRhY19jdF9DQyIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAi
bm8iID4mNjsgfQpmaQoKCiAgdGVzdCAtbiAiJGFjX2N0X0NDIiAmJiBicmVhawpkb25lCgogIGlm
IHRlc3QgIngkYWNfY3RfQ0MiID0geDsgdGhlbgogICAgQ0M9IiIKICBlbHNlCiAgICBjYXNlICRj
cm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCnllczopCnsgJGFzX2VjaG8gIiRhc19t
ZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy
ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog
dXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQph
Y190b29sX3dhcm5lZD15ZXMgOzsKZXNhYwogICAgQ0M9JGFjX2N0X0NDCiAgZmkKZmkKCmZpCgoK
dGVzdCAteiAiJENDIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGlu
IFxgJGFjX3B3ZCc6IiA+JjI7fQphc19mbl9lcnJvciAibm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVy
IGZvdW5kIGluIFwkUEFUSApTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRM
SU5FTk8iIDU7IH0KCiMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb21waWxl
ci4KJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEMg
Y29tcGlsZXIgdmVyc2lvbiIgPiY1CnNldCBYICRhY19jb21waWxlCmFjX2NvbXBpbGVyPSQyCmZv
ciBhY19vcHRpb24gaW4gLS12ZXJzaW9uIC12IC1WIC1xdmVyc2lvbjsgZG8KICB7IHsgYWNfdHJ5
PSIkYWNfY29tcGlsZXIgJGFjX29wdGlvbiA+JjUiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIq
IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0k
YWNfdHJ5OzsKZXNhYwpldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJ
TkVOT306ICRhY190cnlfZWNob1wiIgokYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKICAo
ZXZhbCAiJGFjX2NvbXBpbGVyICRhY19vcHRpb24gPiY1IikgMj5jb25mdGVzdC5lcnIKICBhY19z
dGF0dXM9JD8KICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAgc2VkICcxMGFcCi4u
LiByZXN0IG9mIHN0ZGVyciBvdXRwdXQgZGVsZXRlZCAuLi4KICAgICAgICAgMTBxJyBjb25mdGVz
dC5lcnIgPmNvbmZ0ZXN0LmVyMQogICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKICBmaQogIHJtIC1m
IGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v
LSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9
CmRvbmUKCmNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5k
IGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9G
CmFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCmFjX2NsZWFuX2ZpbGVzPSIkYWNf
Y2xlYW5fZmlsZXMgYS5vdXQgYS5vdXQuZFNZTSBhLmV4ZSBiLm91dCIKIyBUcnkgdG8gY3JlYXRl
IGFuIGV4ZWN1dGFibGUgd2l0aG91dCAtbyBmaXJzdCwgZGlzcmVnYXJkIGEub3V0LgojIEl0IHdp
bGwgaGVscCB1cyBkaWFnbm9zZSBicm9rZW4gY29tcGlsZXJzLCBhbmQgZmluZGluZyBvdXQgYW4g
aW50dWl0aW9uCiMgb2YgZXhlZXh0Lgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ
TkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MiID4mNQokYXNfZWNo
b19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uICIgPiY2OyB9CmFj
X2xpbmtfZGVmYXVsdD1gJGFzX2VjaG8gIiRhY19saW5rIiB8IHNlZCAncy8gLW8gKmNvbmZ0ZXN0
W14gXSovLydgCgojIFRoZSBwb3NzaWJsZSBvdXRwdXQgZmlsZXM6CmFjX2ZpbGVzPSJhLm91dCBj
b25mdGVzdC5leGUgY29uZnRlc3QgYS5leGUgYV9vdXQuZXhlIGIub3V0IGNvbmZ0ZXN0LioiCgph
Y19ybWZpbGVzPQpmb3IgYWNfZmlsZSBpbiAkYWNfZmlsZXMKZG8KICBjYXNlICRhY19maWxlIGlu
CiAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8
ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7
CiAgICAqICkgYWNfcm1maWxlcz0iJGFjX3JtZmlsZXMgJGFjX2ZpbGUiOzsKICBlc2FjCmRvbmUK
cm0gLWYgJGFjX3JtZmlsZXMKCmlmIHsgeyBhY190cnk9IiRhY19saW5rX2RlZmF1bHQiCmNhc2Ug
IigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5
OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFjX3RyeV9lY2hvPSJcIlwk
YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgokYXNfZWNobyAiJGFj
X3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX2xpbmtfZGVmYXVsdCIpIDI+JjUKICBhY19z
dGF0dXM9JD8KICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuIDoKICAjIEF1dG9j
b25mLTIuMTMgY291bGQgc2V0IHRoZSBhY19jdl9leGVleHQgdmFyaWFibGUgdG8gYG5vJy4KIyBT
byBpZ25vcmUgYSB2YWx1ZSBvZiBgbm8nLCBvdGhlcndpc2UgdGhpcyB3b3VsZCBsZWFkIHRvIGBF
WEVFWFQgPSBubycKIyBpbiBhIE1ha2VmaWxlLiAgV2Ugc2hvdWxkIG5vdCBvdmVycmlkZSBhY19j
dl9leGVleHQgaWYgaXQgd2FzIGNhY2hlZCwKIyBzbyB0aGF0IHRoZSB1c2VyIGNhbiBzaG9ydC1j
aXJjdWl0IHRoaXMgdGVzdCBmb3IgY29tcGlsZXJzIHVua25vd24gdG8KIyBBdXRvY29uZi4KZm9y
IGFjX2ZpbGUgaW4gJGFjX2ZpbGVzICcnCmRvCiAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRp
bnVlCiAgY2FzZSAkYWNfZmlsZSBpbgogICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwg
Ki5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1hcCB8ICouaW5mIHwgKi5k
U1lNIHwgKi5vIHwgKi5vYmogKQoJOzsKICAgIFthYl0ub3V0ICkKCSMgV2UgZm91bmQgdGhlIGRl
ZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0CgkjIGNlcnRhaW5seSByaWdo
dC4KCWJyZWFrOzsKICAgICouKiApCglpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNl
dCAmJiB0ZXN0ICIkYWNfY3ZfZXhlZXh0IiAhPSBubzsKCXRoZW4gOjsgZWxzZQoJICAgYWNfY3Zf
ZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCglmaQoJIyBXZSBzZXQg
YWNfY3ZfZXhlZXh0IGhlcmUgYmVjYXVzZSB0aGUgbGF0ZXIgdGVzdCBmb3IgaXQgaXMgbm90Cgkj
IHNhZmU6IGNyb3NzIGNvbXBpbGVycyBtYXkgbm90IGFkZCB0aGUgc3VmZml4IGlmIGdpdmVuIGFu
IGAtbycKCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQgYXQgdGhhdCBwb2lu
dCBhbHJlYWR5LgoJIyBFdmVuIGlmIHRoaXMgc2VjdGlvbiBsb29rcyBjcnVmdHk6IGl0IGhhcyB0
aGUgYWR2YW50YWdlIG9mCgkjIGFjdHVhbGx5IHdvcmtpbmcuCglicmVhazs7CiAgICAqICkKCWJy
ZWFrOzsKICBlc2FjCmRvbmUKdGVzdCAiJGFjX2N2X2V4ZWV4dCIgPSBubyAmJiBhY19jdl9leGVl
eHQ9CgplbHNlCiAgYWNfZmlsZT0nJwpmaQppZiB0ZXN0IC16ICIkYWNfZmlsZSI7IHRoZW4gOgog
IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1
CiRhc19lY2hvICJubyIgPiY2OyB9CiRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh
czoiID4mNQpzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Cgp7IHsgJGFzX2VjaG8g
IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUK
JGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQp7IGFzX2ZuX3Nl
dF9zdGF0dXMgNzcKYXNfZm5fZXJyb3IgIkMgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRh
YmxlcwpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH07
IH0KZWxzZQogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0
OiB5ZXMiID4mNQokYXNfZWNobyAieWVzIiA+JjY7IH0KZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1
dCBmaWxlIG5hbWUiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZh
dWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gIiA+JjY7IH0KeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19maWxlIiA+JjUKJGFzX2VjaG8gIiRhY19maWxl
IiA+JjY7IH0KYWNfZXhlZXh0PSRhY19jdl9leGVleHQKCnJtIC1mIC1yIGEub3V0IGEub3V0LmRT
WU0gYS5leGUgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGIub3V0CmFjX2NsZWFuX2ZpbGVzPSRhY19j
bGVhbl9maWxlc19zYXZlCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
Y2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1CiRhc19lY2hvX24gImNoZWNr
aW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gIiA+JjY7IH0KaWYgeyB7IGFjX3RyeT0i
JGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3Ry
eV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFj
X3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wi
IgokYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPiY1
CiAgYWNfc3RhdHVzPSQ/CiAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbiA6CiAg
IyBJZiBib3RoIGBjb25mdGVzdC5leGUnIGFuZCBgY29uZnRlc3QnIGFyZSBgcHJlc2VudCcgKHdl
bGwsIG9ic2VydmFibGUpCiMgY2F0Y2ggYGNvbmZ0ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0
aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAojIHdvcmsgcHJvcGVybHkgKGkuZS4sIHJlZmVy
IHRvIGBjb25mdGVzdC5leGUnKSwgd2hpbGUgaXQgd29uJ3Qgd2l0aAojIGBybScuCmZvciBhY19m
aWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbwogIHRlc3QgLWYgIiRh
Y19maWxlIiB8fCBjb250aW51ZQogIGNhc2UgJGFjX2ZpbGUgaW4KICAgICouJGFjX2V4dCB8ICou
eGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5t
YXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkgOzsKICAgICouKiApIGFjX2N2X2V4
ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAoJICBicmVhazs7CiAgICAq
ICkgYnJlYWs7OwogIGVzYWMKZG9uZQplbHNlCiAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CiRhc19lY2hvICIkYXNf
bWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KYXNfZm5fZXJyb3IgImNhbm5vdCBjb21w
dXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKU2VlIFxg
Y29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iICIkTElORU5PIiA1OyB9CmZpCnJtIC1mIGNv
bmZ0ZXN0IGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l
bm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2V4ZWV4dCIgPiY1CiRhc19lY2hvICIkYWNfY3Zf
ZXhlZXh0IiA+JjY7IH0KCnJtIC1mIGNvbmZ0ZXN0LiRhY19leHQKRVhFRVhUPSRhY19jdl9leGVl
eHQKYWNfZXhlZXh0PSRFWEVFWFQKY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3Qu
JGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzdGRpby5oPgppbnQKbWFp
biAoKQp7CkZJTEUgKmYgPSBmb3BlbiAoImNvbmZ0ZXN0Lm91dCIsICJ3Iik7CiByZXR1cm4gZmVy
cm9yIChmKSB8fCBmY2xvc2UgKGYpICE9IDA7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKYWNf
Y2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBjb25mdGVzdC5vdXQiCiMgQ2hlY2sgdGhhdCB0
aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0
aGVyCiMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KeyAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHdlIGFy
ZSBjcm9zcyBjb21waWxpbmciID4mNQokYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHdlIGFy
ZSBjcm9zcyBjb21waWxpbmcuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIg
IT0geWVzOyB0aGVuCiAgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCmNhc2UgIigoJGFjX3RyeSIgaW4K
ICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlf
ZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5l
bm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgokYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+
JjUKICAoZXZhbCAiJGFjX2xpbmsiKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgJGFzX2VjaG8gIiRh
c19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgdGVzdCAk
YWNfc3RhdHVzID0gMDsgfQogIGlmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCcK
ICB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2Vj
aG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgYWNfdHJ5
X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCiRh
c19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQogIChldmFsICIkYWNfdHJ5IikgMj4mNQogIGFj
X3N0YXR1cz0kPwogICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9
ICRhY19zdGF0dXMiID4mNQogIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4KICAgIGNy
b3NzX2NvbXBpbGluZz1ubwogIGVsc2UKICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g
bWF5YmU7IHRoZW4KCWNyb3NzX2NvbXBpbGluZz15ZXMKICAgIGVsc2UKCXsgeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQok
YXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CmFzX2ZuX2Vycm9y
ICJjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCklmIHlvdSBtZWFudCB0byBjcm9zcyBj
b21waWxlLCB1c2UgXGAtLWhvc3QnLgpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxz
LiIgIiRMSU5FTk8iIDU7IH0KICAgIGZpCiAgZmkKZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRjcm9zc19jb21waWxpbmciID4mNQokYXNfZWNobyAi
JGNyb3NzX2NvbXBpbGluZyIgPiY2OyB9CgpybSAtZiBjb25mdGVzdC4kYWNfZXh0IGNvbmZ0ZXN0
JGFjX2N2X2V4ZWV4dCBjb25mdGVzdC5vdXQKYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVz
X3NhdmUKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm
b3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBz
dWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3Zfb2JqZXh0
K3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAg
Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRl
ZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKcm0gLWYg
Y29uZnRlc3QubyBjb25mdGVzdC5vYmoKaWYgeyB7IGFjX3RyeT0iJGFjX2NvbXBpbGUiCmNhc2Ug
IigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5
OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFjX3RyeV9lY2hvPSJcIlwk
YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgokYXNfZWNobyAiJGFj
X3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPiY1CiAgYWNfc3RhdHVz
PSQ/CiAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0
YXR1cyIgPiY1CiAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbiA6CiAgZm9yIGFjX2ZpbGUg
aW4gY29uZnRlc3QubyBjb25mdGVzdC5vYmogY29uZnRlc3QuKjsgZG8KICB0ZXN0IC1mICIkYWNf
ZmlsZSIgfHwgY29udGludWU7CiAgY2FzZSAkYWNfZmlsZSBpbgogICAgKi4kYWNfZXh0IHwgKi54
Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm1h
cCB8ICouaW5mIHwgKi5kU1lNICkgOzsKICAgICopIGFjX2N2X29iamV4dD1gZXhwciAiJGFjX2Zp
bGUiIDogJy4qXC5cKC4qXCknYAogICAgICAgYnJlYWs7OwogIGVzYWMKZG9uZQplbHNlCiAgJGFz
X2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CnNlZCAncy9eL3wgLycgY29u
ZnRlc3QuJGFjX2V4dCA+JjUKCnsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQokYXNfZWNobyAiJGFzX21lOiBlcnJvcjog
aW4gXGAkYWNfcHdkJzoiID4mMjt9CmFzX2ZuX2Vycm9yICJjYW5ub3QgY29tcHV0ZSBzdWZmaXgg
b2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y
ZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH0KZmkKcm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4
dCBjb25mdGVzdC4kYWNfZXh0CmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKJGFzX2VjaG8gIiRhY19jdl9vYmpleHQi
ID4mNjsgfQpPQkpFWFQ9JGFjX2N2X29iamV4dAphY19vYmpleHQ9JE9CSkVYVAp7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVz
aW5nIHRoZSBHTlUgQyBjb21waWxlciIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIg
d2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2Fj
X2N2X2NfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2Fj
aGVkKSAiID4mNgplbHNlCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj
X2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CiNpZm5kZWYgX19HTlVD
X18KICAgICAgIGNob2tlIG1lCiNlbmRpZgoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFj
X2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKICBhY19jb21waWxlcl9nbnU9eWVz
CmVsc2UKICBhY19jb21waWxlcl9nbnU9bm8KZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u
ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmFjX2N2X2NfY29tcGlsZXJfZ251PSRh
Y19jb21waWxlcl9nbnUKCmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNQokYXNfZWNobyAiJGFjX2N2X2Nf
Y29tcGlsZXJfZ251IiA+JjY7IH0KaWYgdGVzdCAkYWNfY29tcGlsZXJfZ251ID0geWVzOyB0aGVu
CiAgR0NDPXllcwplbHNlCiAgR0NDPQpmaQphY190ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9CmFj
X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiBjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nIiA+JjUKJGFzX2VjaG9fbiAiY2hl
Y2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZy4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2
X3Byb2dfY2NfZytzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+
JjYKZWxzZQogIGFjX3NhdmVfY193ZXJyb3JfZmxhZz0kYWNfY193ZXJyb3JfZmxhZwogICBhY19j
X3dlcnJvcl9mbGFnPXllcwogICBhY19jdl9wcm9nX2NjX2c9bm8KICAgQ0ZMQUdTPSItZyIKICAg
Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRl
ZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNf
Zm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgogIGFjX2N2X3Byb2dfY2NfZz15ZXMK
ZWxzZQogIENGTEFHUz0iIgogICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz
dC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgOwogIHJl
dHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6
CgplbHNlCiAgYWNfY193ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jX3dlcnJvcl9mbGFnCgkgQ0ZMQUdT
PSItZyIKCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgppZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CiAgYWNfY3ZfcHJvZ19j
Y19nPXllcwpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv
bmZ0ZXN0LiRhY19leHQKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i
amV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0
LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogICBhY19jX3dlcnJvcl9mbGFnPSRhY19zYXZl
X2Nfd2Vycm9yX2ZsYWcKZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99
OiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQokYXNfZWNobyAiJGFjX2N2X3Byb2dfY2Nf
ZyIgPiY2OyB9CmlmIHRlc3QgIiRhY190ZXN0X0NGTEFHUyIgPSBzZXQ7IHRoZW4KICBDRkxBR1M9
JGFjX3NhdmVfQ0ZMQUdTCmVsaWYgdGVzdCAkYWNfY3ZfcHJvZ19jY19nID0geWVzOyB0aGVuCiAg
aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgIENGTEFHUz0iLWcgLU8yIgogIGVsc2UKICAg
IENGTEFHUz0iLWciCiAgZmkKZWxzZQogIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAgICBD
RkxBR1M9Ii1PMiIKICBlbHNlCiAgICBDRkxBR1M9CiAgZmkKZmkKeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQg
SVNPIEM4OSIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2Vw
dCBJU08gQzg5Li4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19jODkrc2V0fSIg
PSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBhY19jdl9w
cm9nX2NjX2M4OT1ubwphY19zYXZlX0NDPSRDQwpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j
b25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN0ZGFyZy5o
PgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8c3lz
L3N0YXQuaD4KLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBS
Q1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLwpzdHJ1Y3QgYnVmIHsgaW50IHg7IH07CkZJTEUgKiAo
KnJjc29wZW4pIChzdHJ1Y3QgYnVmICosIHN0cnVjdCBzdGF0ICosIGludCk7CnN0YXRpYyBjaGFy
ICplIChwLCBpKQogICAgIGNoYXIgKipwOwogICAgIGludCBpOwp7CiAgcmV0dXJuIHBbaV07Cn0K
c3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4u
KQp7CiAgY2hhciAqczsKICB2YV9saXN0IHY7CiAgdmFfc3RhcnQgKHYscCk7CiAgcyA9IGcgKHAs
IHZhX2FyZyAodixpbnQpKTsKICB2YV9lbmQgKHYpOwogIHJldHVybiBzOwp9CgovKiBPU0YgNC4w
IENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxtb3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhh
cwogICBmdW5jdGlvbiBwcm90b3R5cGVzIGFuZCBzdHVmZiwgYnV0IG5vdCAnXHhISCcgaGV4IGNo
YXJhY3RlciBjb25zdGFudHMuCiAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0
dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAogICBhcyAneCcuICBUaGUgZm9s
bG93aW5nIGluZHVjZXMgYW4gZXJyb3IsIHVudGlsIC1zdGQgaXMgYWRkZWQgdG8gZ2V0CiAgIHBy
b3BlciBBTlNJIG1vZGUuICBDdXJpb3VzbHkgJ1x4MDAnIT0neCcgYWx3YXlzIGNvbWVzIG91dCB0
cnVlLCBmb3IgYW4KICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdy
aXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCiAgIHRoYXQncyB0cnVlIG9ubHkgd2l0aCAt
c3RkLiAgKi8KaW50IG9zZjRfY2NfYXJyYXkgWydceDAwJyA9PSAwID8gMSA6IC0xXTsKCi8qIElC
TSBDIDYgZm9yIEFJWCBpcyBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LCBidXQgaXQgcmVwbGFjZXMg
bWFjcm8gcGFyYW1ldGVycwogICBpbnNpZGUgc3RyaW5ncyBhbmQgY2hhcmFjdGVyIGNvbnN0YW50
cy4gICovCiNkZWZpbmUgRk9PKHgpICd4JwppbnQgeGxjNl9jY19hcnJheVtGT08oYSkgPT0gJ3gn
ID8gMSA6IC0xXTsKCmludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwpzdHJ1Y3QgczEge2ludCAo
KmYpIChpbnQgYSk7fTsKc3RydWN0IHMyIHtpbnQgKCpmKSAoZG91YmxlIGEpO307CmludCBwYWly
bmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQg
KiwgaW50KSwgaW50LCBpbnQpOwppbnQgYXJnYzsKY2hhciAqKmFyZ3Y7CmludAptYWluICgpCnsK
cmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBh
cmd2WzFdOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKZm9yIGFjX2FyZyBpbiAnJyAtcWxhbmds
dmw9ZXh0Yzg5IC1xbGFuZ2x2bD1hbnNpIC1zdGQgXAoJLUFlICItQWEgLURfSFBVWF9TT1VSQ0Ui
ICItWGMgLURfX0VYVEVOU0lPTlNfXyIKZG8KICBDQz0iJGFjX3NhdmVfQ0MgJGFjX2FyZyIKICBp
ZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CiAgYWNfY3ZfcHJvZ19jY19j
ODk9JGFjX2FyZwpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0
CiAgdGVzdCAieCRhY19jdl9wcm9nX2NjX2M4OSIgIT0gInhubyIgJiYgYnJlYWsKZG9uZQpybSAt
ZiBjb25mdGVzdC4kYWNfZXh0CkNDPSRhY19zYXZlX0NDCgpmaQojIEFDX0NBQ0hFX1ZBTApjYXNl
ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiBpbgogIHgpCiAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm9uZSBuZWVkZWQiID4mNQokYXNfZWNobyAibm9u
ZSBuZWVkZWQiID4mNjsgfSA7OwogIHhubykKICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp
bmVuby0kTElORU5PfTogcmVzdWx0OiB1bnN1cHBvcnRlZCIgPiY1CiRhc19lY2hvICJ1bnN1cHBv
cnRlZCIgPiY2OyB9IDs7CiAgKikKICAgIENDPSIkQ0MgJGFjX2N2X3Byb2dfY2NfYzg5IgogICAg
eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9w
cm9nX2NjX2M4OSIgPiY1CiRhc19lY2hvICIkYWNfY3ZfcHJvZ19jY19jODkiID4mNjsgfSA7Owpl
c2FjCmlmIHRlc3QgIngkYWNfY3ZfcHJvZ19jY19jODkiICE9IHhubzsgdGhlbiA6CgpmaQoKYWNf
ZXh0PWMKYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1Mg
JENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwphY19saW5rPSckQ0MgLW8gY29uZnRlc3Qk
YWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJ
QlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CkRFUERJUj0iJHth
bV9fbGVhZGluZ19kb3R9ZGVwcyIKCmFjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21t
YW5kcyBkZXBmaWxlcyIKCgphbV9tYWtlPSR7TUFLRS1tYWtlfQpjYXQgPiBjb25maW5jIDw8ICdF
TkQnCmFtX19kb2l0OgoJQGVjaG8gdGhpcyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0Ci5QSE9OWTog
YW1fX2RvaXQKRU5ECiMgSWYgd2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVz
dCBjb21tZW50IG91dCB0aGUgY29kZS4KeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9tYWtlIiA+
JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSAkYW1f
bWFrZS4uLiAiID4mNjsgfQphbV9faW5jbHVkZT0iIyIKYW1fX3F1b3RlPQpfYW1fcmVzdWx0PW5v
bmUKIyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KZWNobyAiaW5jbHVkZSBjb25m
aW5jIiA+IGNvbmZtZgojIElnbm9yZSBhbGwga2luZHMgb2YgYWRkaXRpb25hbCBvdXRwdXQgZnJv
bSBgbWFrZScuCmNhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMo
Cip0aGVcIGFtX19kb2l0XCB0YXJnZXQqKQogIGFtX19pbmNsdWRlPWluY2x1ZGUKICBhbV9fcXVv
dGU9CiAgX2FtX3Jlc3VsdD1HTlUKICA7Owplc2FjCiMgTm93IHRyeSBCU0QgbWFrZSBzdHlsZSBp
bmNsdWRlLgppZiB0ZXN0ICIkYW1fX2luY2x1ZGUiID0gIiMiOyB0aGVuCiAgIGVjaG8gJy5pbmNs
dWRlICJjb25maW5jIicgPiBjb25mbWYKICAgY2FzZSBgJGFtX21ha2UgLXMgLWYgY29uZm1mIDI+
IC9kZXYvbnVsbGAgaW4gIygKICAgKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCiAgICAgYW1fX2lu
Y2x1ZGU9LmluY2x1ZGUKICAgICBhbV9fcXVvdGU9IlwiIgogICAgIF9hbV9yZXN1bHQ9QlNECiAg
ICAgOzsKICAgZXNhYwpmaQoKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiAkX2FtX3Jlc3VsdCIgPiY1CiRhc19lY2hvICIkX2FtX3Jlc3VsdCIgPiY2OyB9
CnJtIC1mIGNvbmZpbmMgY29uZm1mCgojIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZGVwZW5kZW5j
eS10cmFja2luZyB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tp
bmcrc2V0fSIgPSBzZXQ7IHRoZW4gOgogIGVuYWJsZXZhbD0kZW5hYmxlX2RlcGVuZGVuY3lfdHJh
Y2tpbmc7CmZpCgppZiB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm87
IHRoZW4KICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgogIEFNREVQQkFDS1NMQVNI
PSdcJwpmaQogaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0
aGVuCiAgQU1ERVBfVFJVRT0KICBBTURFUF9GQUxTRT0nIycKZWxzZQogIEFNREVQX1RSVUU9JyMn
CiAgQU1ERVBfRkFMU0U9CmZpCgoKCmRlcGNjPSIkQ0MiICAgYW1fY29tcGlsZXJfbGlzdD0KCnsg
JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZGVwZW5kZW5j
eSBzdHlsZSBvZiAkZGVwY2MiID4mNQokYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0
eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FtX2N2X0NDX2RlcGVuZGVuY2ll
c19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVk
KSAiID4mNgplbHNlCiAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9k
ZXBjb21wIjsgdGhlbgogICMgV2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJl
LiAgT3RoZXJ3aXNlIHdlIGNhbiBlbmQgdXAKICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdl
IGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgogICMgaW5zdGFuY2UgaXQg
d2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCiAgIyBt
YWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQg
dGhlIG91dHB1dAogICMgaW4gRCcuCiAgbWtkaXIgY29uZnRlc3QuZGlyCiAgIyBDb3B5IGRlcGNv
bXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUK
ICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgogIGNwICIkYW1fZGVwY29tcCIgY29uZnRl
c3QuZGlyCiAgY2QgY29uZnRlc3QuZGlyCiAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRl
cGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCiAgIyBpdCBoZWxwcyB0byBkZXRl
Y3QgaW5hcHBsaWNhYmxlIGRlcGVuZGVuY3kgbW9kZXMuICBGb3IgaW5zdGFuY2UKICAjIGJvdGgg
VHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNpZXMgYXMg
YQogICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRl
cGVuZGVuY2llcyBpbgogICMgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdoaWxlIFRydTY0IHdpbGwg
cHV0IHRoZW0gaW4gdGhlIG9iamVjdAogICMgZGlyZWN0b3J5LgogIG1rZGlyIHN1YgoKICBhbV9j
dl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCiAgaWYgdGVzdCAiJGFtX2NvbXBp
bGVyX2xpc3QiID0gIiI7IHRoZW4KICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMq
XChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAogIGZpCiAgYW1fX3VuaXZlcnNh
bD1mYWxzZQogIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAogICAgICpcIC1hcmNoXCAqXCAtYXJjaFwg
KikgYW1fX3VuaXZlcnNhbD10cnVlIDs7CiAgICAgZXNhYwoKICBmb3IgZGVwbW9kZSBpbiAkYW1f
Y29tcGlsZXJfbGlzdDsgZG8KICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVu
Y2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwogICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVw
ZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAogICAgIyB3ZSBzaG91bGQg
bm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgogICAg
IwogICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFz
IHRoZSBjb21waWxlciBtYXkKICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rp
bmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCiAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFz
dCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KICAgIDogPiBzdWIvY29uZnRlc3QuYwogICAgZm9y
IGkgaW4gMSAyIDMgNCA1IDY7IGRvCiAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5o
IicgPj4gc3ViL2NvbmZ0ZXN0LmMKICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcg
Y3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKICAgICAgIyBTb2xhcmlzIDgncyB7L3Vz
cix9L2Jpbi9zaC4KICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCiAgICBkb25lCiAgICBlY2hv
ICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0i
ID4gY29uZm1mCgogICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtl
IG9mIHRoZSAiZGFzaG1zdGRvdXQiCiAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUg
U3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQogICAgIyBoYW5kbGUgYC1NIC1v
JywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCiAgICAjIHZl
cnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKICAgIGFtX19vYmo9c3Vi
L2NvbmZ0ZXN0LiR7T0JKRVhULW99CiAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKICAg
IGNhc2UgJGRlcG1vZGUgaW4KICAgIGdjYykKICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEg
Y29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KICAgICAgdGVzdCAiJGFtX191bml2ZXJz
YWwiID0gZmFsc2UgfHwgY29udGludWUKICAgICAgOzsKICAgIG5vc2lkZWVmZmVjdCkKICAgICAg
IyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0
aGV5J2xsCiAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKICAg
ICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCglj
b250aW51ZQogICAgICBlbHNlCglicmVhawogICAgICBmaQogICAgICA7OwogICAgbXN2aXN1YWxj
cHAgfCBtc3ZjbXN5cykKICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywg
YnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKICAgICAgIyBub3QgcnVuIHlldC4gIFRoZXNl
IGRlcG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwgYW5kCiAgICAgICMgc28gd2Vh
ayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCiAgICAgIGFt
X19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KICAgICAgYW1fX21pbnVzX29iaj0KICAgICAgOzsK
ICAgIG5vbmUpIGJyZWFrIDs7CiAgICBlc2FjCiAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKICAg
ICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAogICAgICAgZGVwZmls
ZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKICAgICAgICRT
SEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwK
ICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgogICAgICAgZ3JlcCBzdWIvY29u
ZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgogICAgICAgZ3JlcCBz
dWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgogICAgICAg
Z3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgogICAgICAg
JHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICMg
aWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUg
d2FybmluZ3MKICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBn
cmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdh
cyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCiAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3
LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CiAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3
YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKICAgICAg
IyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKICAgICAgIyAgIGljYzogQ29tbWFu
ZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKICAgICAgaWYgKGdyZXAg
J2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8CiAgICAgICAgICBncmVwICdub3Qgc3Vw
cG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCiAgICAg
ICAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKICAgICAgICBi
cmVhawogICAgICBmaQogICAgZmkKICBkb25lCgogIGNkIC4uCiAgcm0gLXJmIGNvbmZ0ZXN0LmRp
cgplbHNlCiAgYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQpmaQoKZmkK
eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhbV9jdl9D
Q19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1CiRhc19lY2hvICIkYW1fY3ZfQ0NfZGVw
ZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQpDQ0RFUE1PREU9ZGVwbW9kZT0kYW1fY3Zf
Q0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKCiBpZgogIHRlc3QgIngkZW5hYmxlX2RlcGVu
ZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCiAgJiYgdGVzdCAiJGFtX2N2X0NDX2RlcGVuZGVuY2ll
c19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KICBhbV9fZmFzdGRlcENDX1RSVUU9CiAgYW1f
X2Zhc3RkZXBDQ19GQUxTRT0nIycKZWxzZQogIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycKICBhbV9f
ZmFzdGRlcENDX0ZBTFNFPQpmaQoKCmlmIHRlc3QgIngkQ0MiICE9IHhjYzsgdGhlbgogIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAkQ0Mg
YW5kIGNjIHVuZGVyc3RhbmQgLWMgYW5kIC1vIHRvZ2V0aGVyIiA+JjUKJGFzX2VjaG9fbiAiY2hl
Y2tpbmcgd2hldGhlciAkQ0MgYW5kIGNjIHVuZGVyc3RhbmQgLWMgYW5kIC1vIHRvZ2V0aGVyLi4u
ICIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IGNoZWNraW5nIHdoZXRoZXIgY2MgdW5kZXJzdGFuZHMgLWMgYW5kIC1vIHRvZ2V0aGVyIiA+JjUK
JGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBjYyB1bmRlcnN0YW5kcyAtYyBhbmQgLW8gdG9n
ZXRoZXIuLi4gIiA+JjY7IH0KZmkKc2V0IGR1bW15ICRDQzsgYWNfY2M9YCRhc19lY2hvICIkMiIg
fAoJCSAgICAgIHNlZCAncy9bXmEtekEtWjAtOV9dL18vZztzL15bMC05XS9fLydgCmlmIHsgYXNf
dmFyPWFjX2N2X3Byb2dfY2NfJHthY19jY31fY19vOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3Zhcitz
ZXR9XCIgPSBzZXQiOyB9OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNl
CiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29u
ZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKIyBN
YWtlIHN1cmUgaXQgd29ya3MgYm90aCB3aXRoICRDQyBhbmQgd2l0aCBzaW1wbGUgY2MuCiMgV2Ug
ZG8gdGhlIHRlc3QgdHdpY2UgYmVjYXVzZSBzb21lIGNvbXBpbGVycyByZWZ1c2UgdG8gb3Zlcndy
aXRlIGFuCiMgZXhpc3RpbmcgLm8gZmlsZSB3aXRoIC1vLCB0aG91Z2ggdGhleSB3aWxsIGNyZWF0
ZSBvbmUuCmFjX3RyeT0nJENDIC1jIGNvbmZ0ZXN0LiRhY19leHQgLW8gY29uZnRlc3QyLiRhY19v
YmpleHQgPiY1JwpybSAtZiBjb25mdGVzdDIuKgppZiB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgog
ICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9l
Y2hvPSRhY190cnk7Owplc2FjCmV2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCiRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4m
NQogIChldmFsICIkYWNfdHJ5IikgMj4mNQogIGFjX3N0YXR1cz0kPwogICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIHRlc3QgJGFj
X3N0YXR1cyA9IDA7IH0gJiYKICAgdGVzdCAtZiBjb25mdGVzdDIuJGFjX29iamV4dCAmJiB7IHsg
Y2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRh
Y190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgYWNfdHJ5X2VjaG89
IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCiRhc19lY2hv
ICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQogIChldmFsICIkYWNfdHJ5IikgMj4mNQogIGFjX3N0YXR1
cz0kPwogICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19z
dGF0dXMiID4mNQogIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07CnRoZW4KICBldmFsIGFjX2N2X3By
b2dfY2NfJHthY19jY31fY19vPXllcwogIGlmIHRlc3QgIngkQ0MiICE9IHhjYzsgdGhlbgogICAg
IyBUZXN0IGZpcnN0IHRoYXQgY2MgZXhpc3RzIGF0IGFsbC4KICAgIGlmIHsgYWNfdHJ5PSdjYyAt
YyBjb25mdGVzdC4kYWNfZXh0ID4mNScKICB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiog
fCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRh
Y190cnk7Owplc2FjCmV2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogJGFjX3RyeV9lY2hvXCIiCiRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQogIChl
dmFsICIkYWNfdHJ5IikgMj4mNQogIGFjX3N0YXR1cz0kPwogICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIHRlc3QgJGFjX3N0YXR1
cyA9IDA7IH07IH07IHRoZW4KICAgICAgYWNfdHJ5PSdjYyAtYyBjb25mdGVzdC4kYWNfZXh0IC1v
IGNvbmZ0ZXN0Mi4kYWNfb2JqZXh0ID4mNScKICAgICAgcm0gLWYgY29uZnRlc3QyLioKICAgICAg
aWYgeyB7IGNhc2UgIigoJGFjX3RyeSIgaW4KICAqXCIqIHwgKlxgKiB8ICpcXCopIGFjX3RyeV9l
Y2hvPVwkYWNfdHJ5OzsKICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKZXNhYwpldmFsIGFjX3Ry
eV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgok
YXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKICAoZXZhbCAiJGFjX3RyeSIpIDI+JjUKICBh
Y19zdGF0dXM9JD8KICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8g
PSAkYWNfc3RhdHVzIiA+JjUKICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9ICYmCgkgdGVzdCAtZiBj
b25mdGVzdDIuJGFjX29iamV4dCAmJiB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgogICpcIiogfCAq
XGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICopIGFjX3RyeV9lY2hvPSRhY190
cnk7Owplc2FjCmV2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogJGFjX3RyeV9lY2hvXCIiCiRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQogIChldmFs
ICIkYWNfdHJ5IikgMj4mNQogIGFjX3N0YXR1cz0kPwogICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIHRlc3QgJGFjX3N0YXR1cyA9
IDA7IH07CiAgICAgIHRoZW4KCSMgY2Mgd29ya3MgdG9vLgoJOgogICAgICBlbHNlCgkjIGNjIGV4
aXN0cyBidXQgZG9lc24ndCBsaWtlIC1vLgoJZXZhbCBhY19jdl9wcm9nX2NjXyR7YWNfY2N9X2Nf
bz1ubwogICAgICBmaQogICAgZmkKICBmaQplbHNlCiAgZXZhbCBhY19jdl9wcm9nX2NjXyR7YWNf
Y2N9X2Nfbz1ubwpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0KgoKZmkKaWYgZXZhbCB0ZXN0IFwkYWNf
Y3ZfcHJvZ19jY18ke2FjX2NjfV9jX28gPSB5ZXM7IHRoZW4KICB7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2
OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs
dDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZpbmUgTk9fTUlO
VVNfQ19NSU5VU19PIDEiID4+Y29uZmRlZnMuaAoKZmkKCiMgRklYTUU6IHdlIHJlbHkgb24gdGhl
IGNhY2hlIHZhcmlhYmxlIG5hbWUgYmVjYXVzZQojIHRoZXJlIGlzIG5vIG90aGVyIHdheS4Kc2V0
IGR1bW15ICRDQwphbV9jYz1gZWNobyAkMiB8IHNlZCAncy9bXmEtekEtWjAtOV9dL18vZztzL15b
MC05XS9fLydgCmV2YWwgYW1fdD1cJGFjX2N2X3Byb2dfY2NfJHthbV9jY31fY19vCmlmIHRlc3Qg
IiRhbV90IiAhPSB5ZXM7IHRoZW4KICAgIyBMb3NpbmcgY29tcGlsZXIsIHNvIG92ZXJyaWRlIHdp
dGggdGhlIHNjcmlwdC4KICAgIyBGSVhNRTogSXQgaXMgd3JvbmcgdG8gcmV3cml0ZSBDQy4KICAg
IyBCdXQgaWYgd2UgZG9uJ3QgdGhlbiB3ZSBnZXQgaW50byB0cm91YmxlIG9mIG9uZSBzb3J0IG9y
IGFub3RoZXIuCiAgICMgQSBsb25nZXItdGVybSBmaXggd291bGQgYmUgdG8gaGF2ZSBhdXRvbWFr
ZSB1c2UgYW1fX0NDIGluIHRoaXMgY2FzZSwKICAgIyBhbmQgdGhlbiB3ZSBjb3VsZCBzZXQgYW1f
X0NDPSJcJCh0b3Bfc3JjZGlyKS9jb21waWxlIFwkKENDKSIKICAgQ0M9IiRhbV9hdXhfZGlyL2Nv
bXBpbGUgJENDIgpmaQoKCmFjX2V4dD1jCmFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCmFjX2NvbXBp
bGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKYWNfbGlu
az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj
b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBp
bGVyX2dudQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n
IGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcg
aG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KIyBPbiBTdW5zLCBzb21l
dGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KaWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAt
ZCAiJENQUCI7IHRoZW4KICBDUFA9CmZpCmlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCiAgaWYgdGVz
dCAiJHthY19jdl9wcm9nX0NQUCtzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNh
Y2hlZCkgIiA+JjYKZWxzZQogICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMg
dG8gYmUgZXhwYW5kZWQKICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9u
YWwtY3BwIiAiL2xpYi9jcHAiCiAgICBkbwogICAgICBhY19wcmVwcm9jX29rPWZhbHNlCmZvciBh
Y19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwpkbwogICMgVXNlIGEgaGVhZGVyIGZpbGUg
dGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKICAjIHdpdGggYSBmcmVz
aCBjcm9zcy1jb21waWxlciB3b3Jrcy4KICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu
aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2
ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5z
IHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAogICMgbm90IGp1c3QgdGhy
b3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgogIGNh
dCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZz
LmguICAqLwojaWZkZWYgX19TVERDX18KIyBpbmNsdWRlIDxsaW1pdHMuaD4KI2Vsc2UKIyBpbmNs
dWRlIDxhc3NlcnQuaD4KI2VuZGlmCgkJICAgICBTeW50YXggZXJyb3IKX0FDRU9GCmlmIGFjX2Zu
X2NfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgoKZWxzZQogICMgQnJva2VuOiBmYWlscyBvbiB2
YWxpZCBpbnB1dC4KY29udGludWUKZmkKcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19l
eHQKCiAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4
aXN0ZW50IGhlYWRlcnMKICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgogIGNhdCBjb25mZGVm
cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwoj
aW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X2NwcCAiJExJ
TkVOTyI7IHRoZW4gOgogICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCmNvbnRp
bnVlCmVsc2UKICAjIFBhc3NlcyBib3RoIHRlc3RzLgphY19wcmVwcm9jX29rPToKYnJlYWsKZmkK
cm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKCmRvbmUKIyBCZWNhdXNlIG9mIGBi
cmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCnJt
IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CmlmICRhY19wcmVwcm9jX29rOyB0aGVu
IDoKICBicmVhawpmaQoKICAgIGRvbmUKICAgIGFjX2N2X3Byb2dfQ1BQPSRDUFAKCmZpCiAgQ1BQ
PSRhY19jdl9wcm9nX0NQUAplbHNlCiAgYWNfY3ZfcHJvZ19DUFA9JENQUApmaQp7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENQUCIgPiY1CiRhc19lY2hv
ICIkQ1BQIiA+JjY7IH0KYWNfcHJlcHJvY19vaz1mYWxzZQpmb3IgYWNfY19wcmVwcm9jX3dhcm5f
ZmxhZyBpbiAnJyB5ZXMKZG8KICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBn
Y2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCiAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIg
d29ya3MuCiAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz
IGRlZmluZWQsIHNpbmNlCiAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGlu
ZyBjb21waWxlcnMuCiAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdo
IHRoZSBjb21waWxlcidzIHBhcnNlciwKICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4
IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KICBjYXQgY29uZmRlZnMuaCAtIDw8
X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2lmZGVmIF9f
U1REQ19fCiMgaW5jbHVkZSA8bGltaXRzLmg+CiNlbHNlCiMgaW5jbHVkZSA8YXNzZXJ0Lmg+CiNl
bmRpZgoJCSAgICAgU3ludGF4IGVycm9yCl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jcHAgIiRMSU5F
Tk8iOyB0aGVuIDoKCmVsc2UKICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCmNvbnRp
bnVlCmZpCnJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CgogICMgT0ssIHdvcmtz
IG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCiAg
IyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j
b25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPGFjX25vbmV4
aXN0ZW50Lmg+Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKICAj
IEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0Lgpjb250aW51ZQplbHNlCiAgIyBQYXNz
ZXMgYm90aCB0ZXN0cy4KYWNfcHJlcHJvY19vaz06CmJyZWFrCmZpCnJtIC1mIGNvbmZ0ZXN0LmVy
ciBjb25mdGVzdC4kYWNfZXh0Cgpkb25lCiMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJP
Q19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgpybSAtZiBjb25mdGVzdC5lcnIg
Y29uZnRlc3QuJGFjX2V4dAppZiAkYWNfcHJlcHJvY19vazsgdGhlbiA6CgplbHNlCiAgeyB7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2Qn
OiIgPiY1CiRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KYXNf
Zm5fZXJyb3IgIkMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjawpTZWUg
XGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH0KZmkKCmFjX2V4
dD1jCmFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCmFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRD
UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFj
X2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT
ID4mNScKYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQoKYWNfZXh0PWNwcAph
Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwphY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAk
Q1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCmFjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk
YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk
TElCUyA+JjUnCmFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQppZiB0ZXN0
IC16ICIkQ1hYIjsgdGhlbgogIGlmIHRlc3QgLW4gIiRDQ0MiOyB0aGVuCiAgICBDWFg9JENDQwog
IGVsc2UKICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KICBmb3IgYWNfcHJv
ZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhlIEZDQyBLQ0MgUkNDIHhsQ19y
IHhsQwogIGRvCiAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZp
eCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1
bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCnsgJGFzX2VjaG8gIiRhc19t
ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKJGFzX2Vj
aG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3Zf
cHJvZ19DWFgrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2
CmVsc2UKICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgogIGFjX2N2X3Byb2dfQ1hYPSIkQ1hYIiAj
IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lGUz0kSUZTOyBJ
RlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVf
SUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19leGVjX2V4dCBp
biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rp
ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh
Y19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfdG9vbF9wcmVmaXgk
YWNfcHJvZyIKICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5k
ICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUK
ICBkb25lCklGUz0kYXNfc2F2ZV9JRlMKCmZpCmZpCkNYWD0kYWNfY3ZfcHJvZ19DWFgKaWYgdGVz
dCAtbiAiJENYWCI7IHRoZW4KICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IHJlc3VsdDogJENYWCIgPiY1CiRhc19lY2hvICIkQ1hYIiA+JjY7IH0KZWxzZQogIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19l
Y2hvICJubyIgPiY2OyB9CmZpCgoKICAgIHRlc3QgLW4gIiRDWFgiICYmIGJyZWFrCiAgZG9uZQpm
aQppZiB0ZXN0IC16ICIkQ1hYIjsgdGhlbgogIGFjX2N0X0NYWD0kQ1hYCiAgZm9yIGFjX3Byb2cg
aW4gZysrIGMrKyBncHAgYUNDIENDIGN4eCBjYysrIGNsLmV4ZSBGQ0MgS0NDIFJDQyB4bENfciB4
bEMKZG8KICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2Fu
IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3Jk
PSQyCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9y
ICRhY193b3JkIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2
OyB9CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DWFgrc2V0fSIgPSBzZXQ7IHRoZW4gOgog
ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkYWNfY3RfQ1hY
IjsgdGhlbgogIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNl
ciBvdmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ
QVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAt
eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhl
Y3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh
Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7
IH07IHRoZW4KICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKICAgICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNf
ZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKICBkb25lCklGUz0kYXNfc2F2ZV9J
RlMKCmZpCmZpCmFjX2N0X0NYWD0kYWNfY3ZfcHJvZ19hY19jdF9DWFgKaWYgdGVzdCAtbiAiJGFj
X2N0X0NYWCI7IHRoZW4KICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IHJlc3VsdDogJGFjX2N0X0NYWCIgPiY1CiRhc19lY2hvICIkYWNfY3RfQ1hYIiA+JjY7IH0KZWxz
ZQogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg
PiY1CiRhc19lY2hvICJubyIgPiY2OyB9CmZpCgoKICB0ZXN0IC1uICIkYWNfY3RfQ1hYIiAmJiBi
cmVhawpkb25lCgogIGlmIHRlc3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4KICAgIENYWD0iZysr
IgogIGVsc2UKICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KeWVz
OikKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2lu
ZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQokYXNfZWNo
byAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBo
b3N0IHRyaXBsZXQiID4mMjt9CmFjX3Rvb2xfd2FybmVkPXllcyA7Owplc2FjCiAgICBDWFg9JGFj
X2N0X0NYWAogIGZpCmZpCgogIGZpCmZpCiMgUHJvdmlkZSBzb21lIGluZm9ybWF0aW9uIGFib3V0
IHRoZSBjb21waWxlci4KJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl
Y2tpbmcgZm9yIEMrKyBjb21waWxlciB2ZXJzaW9uIiA+JjUKc2V0IFggJGFjX2NvbXBpbGUKYWNf
Y29tcGlsZXI9JDIKZm9yIGFjX29wdGlvbiBpbiAtLXZlcnNpb24gLXYgLVYgLXF2ZXJzaW9uOyBk
bwogIHsgeyBhY190cnk9IiRhY19jb21waWxlciAkYWNfb3B0aW9uID4mNSIKY2FzZSAiKCgkYWNf
dHJ5IiBpbgogICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwogICop
IGFjX3RyeV9lY2hvPSRhY190cnk7Owplc2FjCmV2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCiRhc19lY2hvICIkYWNfdHJ5X2Vj
aG8iOyB9ID4mNQogIChldmFsICIkYWNfY29tcGlsZXIgJGFjX29wdGlvbiA+JjUiKSAyPmNvbmZ0
ZXN0LmVycgogIGFjX3N0YXR1cz0kPwogIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAg
ICBzZWQgJzEwYVwKLi4uIHJlc3Qgb2Ygc3RkZXJyIG91dHB1dCBkZWxldGVkIC4uLgogICAgICAg
ICAxMHEnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIxCiAgICBjYXQgY29uZnRlc3QuZXIxID4m
NQogIGZpCiAgcm0gLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgogICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQogIHRlc3QgJGFj
X3N0YXR1cyA9IDA7IH0KZG9uZQoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMrKyBjb21waWxlciIg
PiY1CiRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysr
IGNvbXBpbGVyLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfY3h4X2NvbXBpbGVyX2dudStz
ZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxzZQogIGNh
dCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZz
LmguICAqLwoKaW50Cm1haW4gKCkKewojaWZuZGVmIF9fR05VQ19fCiAgICAgICBjaG9rZSBtZQoj
ZW5kaWYKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUg
IiRMSU5FTk8iOyB0aGVuIDoKICBhY19jb21waWxlcl9nbnU9eWVzCmVsc2UKICBhY19jb21waWxl
cl9nbnU9bm8KZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBj
b25mdGVzdC4kYWNfZXh0CmFjX2N2X2N4eF9jb21waWxlcl9nbnU9JGFjX2NvbXBpbGVyX2dudQoK
ZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j
dl9jeHhfY29tcGlsZXJfZ251IiA+JjUKJGFzX2VjaG8gIiRhY19jdl9jeHhfY29tcGlsZXJfZ251
IiA+JjY7IH0KaWYgdGVzdCAkYWNfY29tcGlsZXJfZ251ID0geWVzOyB0aGVuCiAgR1hYPXllcwpl
bHNlCiAgR1hYPQpmaQphY190ZXN0X0NYWEZMQUdTPSR7Q1hYRkxBR1Mrc2V0fQphY19zYXZlX0NY
WEZMQUdTPSRDWFhGTEFHUwp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IGNoZWNraW5nIHdoZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tp
bmcgd2hldGhlciAkQ1hYIGFjY2VwdHMgLWcuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9w
cm9nX2N4eF9nK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m
NgplbHNlCiAgYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWc9JGFjX2N4eF93ZXJyb3JfZmxhZwogICBh
Y19jeHhfd2Vycm9yX2ZsYWc9eWVzCiAgIGFjX2N2X3Byb2dfY3h4X2c9bm8KICAgQ1hYRkxBR1M9
Ii1nIgogICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgppZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKICBhY19jdl9wcm9n
X2N4eF9nPXllcwplbHNlCiAgQ1hYRkxBR1M9IiIKICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9B
Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAo
KQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIk
TElORU5PIjsgdGhlbiA6CgplbHNlCiAgYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93
ZXJyb3JfZmxhZwoJIENYWEZMQUdTPSItZyIKCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5j
b25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAg
OwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8i
OyB0aGVuIDoKICBhY19jdl9wcm9nX2N4eF9nPXllcwpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy
ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKZmkKcm0gLWYgY29yZSBjb25m
dGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCnJtIC1mIGNv
cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogICBh
Y19jeHhfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY3h4X3dlcnJvcl9mbGFnCmZpCnsgJGFzX2VjaG8g
IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jeHhfZyIg
PiY1CiRhc19lY2hvICIkYWNfY3ZfcHJvZ19jeHhfZyIgPiY2OyB9CmlmIHRlc3QgIiRhY190ZXN0
X0NYWEZMQUdTIiA9IHNldDsgdGhlbgogIENYWEZMQUdTPSRhY19zYXZlX0NYWEZMQUdTCmVsaWYg
dGVzdCAkYWNfY3ZfcHJvZ19jeHhfZyA9IHllczsgdGhlbgogIGlmIHRlc3QgIiRHWFgiID0geWVz
OyB0aGVuCiAgICBDWFhGTEFHUz0iLWcgLU8yIgogIGVsc2UKICAgIENYWEZMQUdTPSItZyIKICBm
aQplbHNlCiAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KICAgIENYWEZMQUdTPSItTzIiCiAg
ZWxzZQogICAgQ1hYRkxBR1M9CiAgZmkKZmkKYWNfZXh0PWMKYWNfY3BwPSckQ1BQICRDUFBGTEFH
UycKYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg
PiY1JwphY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdT
ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFj
X2N2X2NfY29tcGlsZXJfZ251CgpkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xpc3Q9Cgp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGRlcGVuZGVuY3kg
c3R5bGUgb2YgJGRlcGNjIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHls
ZSBvZiAkZGVwY2MuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVz
X2NvbXBpbGVyX3R5cGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQp
ICIgPiY2CmVsc2UKICBpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2Rl
cGNvbXAiOyB0aGVuCiAgIyBXZSBtYWtlIGEgc3ViZGlyIGFuZCBkbyB0aGUgdGVzdHMgdGhlcmUu
ICBPdGhlcndpc2Ugd2UgY2FuIGVuZCB1cAogICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2Ug
ZG9uJ3Qga25vdyBhYm91dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCiAgIyBpbnN0YW5jZSBpdCB3
YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKICAjIG1h
a2luZyBhIGR1bW15IGZpbGUgbmFtZWQgYEQnIC0tIGJlY2F1c2UgYC1NRCcgbWVhbnMgYHB1dCB0
aGUgb3V0cHV0CiAgIyBpbiBEJy4KICBta2RpciBjb25mdGVzdC5kaXIKICAjIENvcHkgZGVwY29t
cCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQog
ICMgdXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCiAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVz
dC5kaXIKICBjZCBjb25mdGVzdC5kaXIKICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQgZGVw
ZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKICAjIGl0IGhlbHBzIHRvIGRldGVj
dCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQogICMgYm90aCBU
cnU2NCdzIGNjIGFuZCBJQ0Mgc3VwcG9ydCAtTUQgdG8gb3V0cHV0IGRlcGVuZGVuY2llcyBhcyBh
CiAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1dCB0aGUgZGVw
ZW5kZW5jaWVzIGluCiAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBw
dXQgdGhlbSBpbiB0aGUgb2JqZWN0CiAgIyBkaXJlY3RvcnkuCiAgbWtkaXIgc3ViCgogIGFtX2N2
X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCiAgaWYgdGVzdCAiJGFtX2NvbXBp
bGVyX2xpc3QiID0gIiI7IHRoZW4KICAgICBhbV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMq
XChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21wYAogIGZpCiAgYW1fX3VuaXZlcnNh
bD1mYWxzZQogIGNhc2UgIiAkZGVwY2MgIiBpbiAjKAogICAgICpcIC1hcmNoXCAqXCAtYXJjaFwg
KikgYW1fX3VuaXZlcnNhbD10cnVlIDs7CiAgICAgZXNhYwoKICBmb3IgZGVwbW9kZSBpbiAkYW1f
Y29tcGlsZXJfbGlzdDsgZG8KICAgICMgU2V0dXAgYSBzb3VyY2Ugd2l0aCBtYW55IGRlcGVuZGVu
Y2llcywgYmVjYXVzZSBzb21lIGNvbXBpbGVycwogICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVw
ZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAgKHdpdGggXCksIGFuZAogICAgIyB3ZSBzaG91bGQg
bm90IGNob29zZSBhIGRlcGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgogICAg
IwogICAgIyBXZSBuZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFz
IHRoZSBjb21waWxlciBtYXkKICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rp
bmcgd2l0aCBvYnNjdXJlIGNvbW1hbmQgbGluZXMuCiAgICAjIFRoaXMgaGFwcGVucyBhdCBsZWFz
dCB3aXRoIHRoZSBBSVggQyBjb21waWxlci4KICAgIDogPiBzdWIvY29uZnRlc3QuYwogICAgZm9y
IGkgaW4gMSAyIDMgNCA1IDY7IGRvCiAgICAgIGVjaG8gJyNpbmNsdWRlICJjb25mdHN0JyRpJy5o
IicgPj4gc3ViL2NvbmZ0ZXN0LmMKICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcg
Y3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKICAgICAgIyBTb2xhcmlzIDgncyB7L3Vz
cix9L2Jpbi9zaC4KICAgICAgdG91Y2ggc3ViL2NvbmZ0c3QkaS5oCiAgICBkb25lCiAgICBlY2hv
ICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2FtX19xdW90ZX0i
ID4gY29uZm1mCgogICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBzYWtl
IG9mIHRoZSAiZGFzaG1zdGRvdXQiCiAgICAjIG1vZGUuICBJdCB0dXJucyBvdXQgdGhhdCB0aGUg
U3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQogICAgIyBoYW5kbGUgYC1NIC1v
JywgYW5kIHdlIG5lZWQgdG8gZGV0ZWN0IHRoaXMuICBBbHNvLCBzb21lIEludGVsCiAgICAjIHZl
cnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKICAgIGFtX19vYmo9c3Vi
L2NvbmZ0ZXN0LiR7T0JKRVhULW99CiAgICBhbV9fbWludXNfb2JqPSItbyAkYW1fX29iaiIKICAg
IGNhc2UgJGRlcG1vZGUgaW4KICAgIGdjYykKICAgICAgIyBUaGlzIGRlcG1vZGUgY2F1c2VzIGEg
Y29tcGlsZXIgcmFjZSBpbiB1bml2ZXJzYWwgbW9kZS4KICAgICAgdGVzdCAiJGFtX191bml2ZXJz
YWwiID0gZmFsc2UgfHwgY29udGludWUKICAgICAgOzsKICAgIG5vc2lkZWVmZmVjdCkKICAgICAg
IyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0
aGV5J2xsCiAgICAgICMgb25seSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKICAg
ICAgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgPSB4eWVzOyB0aGVuCglj
b250aW51ZQogICAgICBlbHNlCglicmVhawogICAgICBmaQogICAgICA7OwogICAgbXN2aXN1YWxj
cHAgfCBtc3ZjbXN5cykKICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywg
YnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKICAgICAgIyBub3QgcnVuIHlldC4gIFRoZXNl
IGRlcG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwgYW5kCiAgICAgICMgc28gd2Vh
ayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCiAgICAgIGFt
X19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KICAgICAgYW1fX21pbnVzX29iaj0KICAgICAgOzsK
ICAgIG5vbmUpIGJyZWFrIDs7CiAgICBlc2FjCiAgICBpZiBkZXBtb2RlPSRkZXBtb2RlIFwKICAg
ICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAogICAgICAgZGVwZmls
ZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRlc3QuVFBvIFwKICAgICAgICRT
SEVMTCAuL2RlcGNvbXAgJGRlcGNjIC1jICRhbV9fbWludXNfb2JqIHN1Yi9jb25mdGVzdC5jIFwK
ICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgogICAgICAgZ3JlcCBzdWIvY29u
ZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgogICAgICAgZ3JlcCBz
dWIvY29uZnRzdDYuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgogICAgICAg
Z3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251bGwgMj4mMSAmJgogICAgICAg
JHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICMg
aWNjIGRvZXNuJ3QgY2hva2Ugb24gdW5rbm93biBvcHRpb25zLCBpdCB3aWxsIGp1c3QgaXNzdWUg
d2FybmluZ3MKICAgICAgIyBvciByZW1hcmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBn
cmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdh
cyBpZ25vcmVkIG9yIG5vdCBzdXBwb3J0ZWQuCiAgICAgICMgV2hlbiBnaXZlbiAtTVAsIGljYyA3
LjAgYW5kIDcuMSBjb21wbGFpbiB0aHVzbHk6CiAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3
YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKICAgICAg
IyBUaGUgZGlhZ25vc2lzIGNoYW5nZWQgaW4gaWNjIDguMDoKICAgICAgIyAgIGljYzogQ29tbWFu
ZCBsaW5lIHJlbWFyazogb3B0aW9uICctTVAnIG5vdCBzdXBwb3J0ZWQKICAgICAgaWYgKGdyZXAg
J2lnbm9yaW5nIG9wdGlvbicgY29uZnRlc3QuZXJyIHx8CiAgICAgICAgICBncmVwICdub3Qgc3Vw
cG9ydGVkJyBjb25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCiAgICAg
ICAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCiAgICAgICAg
YnJlYWsKICAgICAgZmkKICAgIGZpCiAgZG9uZQoKICBjZCAuLgogIHJtIC1yZiBjb25mdGVzdC5k
aXIKZWxzZQogIGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCmZpCgpm
aQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFtX2N2
X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1CiRhc19lY2hvICIkYW1fY3ZfQ1hY
X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA+JjY7IH0KQ1hYREVQTU9ERT1kZXBtb2RlPSRh
bV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUKCiBpZgogIHRlc3QgIngkZW5hYmxl
X2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubyBcCiAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBl
bmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0aGVuCiAgYW1fX2Zhc3RkZXBDWFhfVFJV
RT0KICBhbV9fZmFzdGRlcENYWF9GQUxTRT0nIycKZWxzZQogIGFtX19mYXN0ZGVwQ1hYX1RSVUU9
JyMnCiAgYW1fX2Zhc3RkZXBDWFhfRkFMU0U9CmZpCgoKIyBBQ19QUk9HX09CSkMgYXBwYXJlbnRs
eSBjYXVzZXMgcHJvYmxlbXMgb24gb2xkZXIgTGludXggZGlzdHJvcyAoZWcuIHdpdGgKIyBhdXRv
Y29uZiAyLjU5KS4gIElmIHdlIGV2ZXIgaGF2ZSBhbnkgT2JqZWN0aXZlLUMgY29kZSBpbiB0aGUg
VmFsZ3JpbmQgY29kZQojIGJhc2UgKGVnLiBtb3N0IGxpa2VseSBhcyBEYXJ3aW4tc3BlY2lmaWMg
dGVzdHMpIHdlJ2xsIG5lZWQgb25lIG9mIHRoZQojIGZvbGxvd2luZzoKIyAtIHB1dCBBQ19QUk9H
X09CSkMgaW4gYSBEYXJ3aW4tc3BlY2lmaWMgcGFydCBvZiB0aGlzIGZpbGUKIyAtIFVzZSBBQ19Q
Uk9HX09CSkMgaGVyZSBhbmQgdXAgdGhlIG1pbmltdW0gYXV0b2NvbmYgdmVyc2lvbgojIC0gVXNl
IHRoZSBmb2xsb3dpbmcsIHdoaWNoIGlzIGFwcGFyZW50bHkgZXF1aXZhbGVudDoKIyAgICAgbTRf
aWZkZWYoW0FDX1BST0dfT0JKQ10sCiMgICAgICAgIFtBQ19QUk9HX09CSkNdLAojICAgICAgICBb
QUNfQ0hFQ0tfVE9PTChbT0JKQ10sIFtnY2NdKQojICAgICAgICAgQUNfU1VCU1QoW09CSkNdKQoj
ICAgICAgICAgQUNfU1VCU1QoW09CSkNGTEFHU10pCiMgICAgICAgIF0pCmlmIHRlc3QgLW4gIiRh
Y190b29sX3ByZWZpeCI7IHRoZW4KICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNf
dG9vbF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn
cy4Kc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyCnsgJGFzX2Vj
aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+
JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CmlmIHRlc3Qg
IiR7YWNfY3ZfcHJvZ19SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihj
YWNoZWQpICIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgogIGFjX2N2X3By
b2dfUkFOTElCPSIkUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxz
ZQphc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBB
VEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K
ICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwog
IGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3Rf
eCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3Byb2df
UkFOTElCPSIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIKICAgICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m
NQogICAgYnJlYWsgMgogIGZpCmRvbmUKICBkb25lCklGUz0kYXNfc2F2ZV9JRlMKCmZpCmZpClJB
TkxJQj0kYWNfY3ZfcHJvZ19SQU5MSUIKaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KICB7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFJBTkxJQiIgPiY1
CiRhc19lY2hvICIkUkFOTElCIiA+JjY7IH0KZWxzZQogIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz
X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CmZp
CgoKZmkKaWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsgdGhlbgogIGFjX2N0X1JBTkxJ
Qj0kUkFOTElCCiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJyYW5saWIiLCBzbyBpdCBj
YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgcmFubGliOyBhY193b3Jk
PSQyCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9y
ICRhY193b3JkIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2
OyB9CmlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4g
OgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBpZiB0ZXN0IC1uICIkYWNfY3Rf
UkFOTElCIjsgdGhlbgogIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSIkYWNfY3RfUkFOTElCIiAj
IExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KZWxzZQphc19zYXZlX0lGUz0kSUZTOyBJ
RlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVf
SUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19leGVjX2V4dCBp
biAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rp
ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh
Y19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIi
CiAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGly
LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCiAgZG9uZQpJ
RlM9JGFzX3NhdmVfSUZTCgpmaQpmaQphY19jdF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3RfUkFO
TElCCmlmIHRlc3QgLW4gIiRhY19jdF9SQU5MSUIiOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9SQU5MSUIiID4mNQokYXNfZWNo
byAiJGFjX2N0X1JBTkxJQiIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQpmaQoK
ICBpZiB0ZXN0ICJ4JGFjX2N0X1JBTkxJQiIgPSB4OyB0aGVuCiAgICBSQU5MSUI9IjoiCiAgZWxz
ZQogICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgp5ZXM6KQp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3Nz
IHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CiRhc19lY2hvICIkYXNf
bWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJp
cGxldCIgPiYyO30KYWNfdG9vbF93YXJuZWQ9eWVzIDs7CmVzYWMKICAgIFJBTkxJQj0kYWNfY3Rf
UkFOTElCCiAgZmkKZWxzZQogIFJBTkxJQj0iJGFjX2N2X3Byb2dfUkFOTElCIgpmaQoKIyBwcm92
aWRlIGEgdmVyeSBiYXNpYyBkZWZpbml0aW9uIGZvciBBQ19QUk9HX1NFRCBpZiBpdCdzIG5vdCBw
cm92aWRlZCBieQojIGF1dG9jb25mIChhcyBlLmcuIGluIGF1dG9jb25mIDIuNTkpLgoKeyAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYSBzZWQgdGhh
dCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3Ig
YSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KaWYgdGVzdCAi
JHthY19jdl9wYXRoX1NFRCtzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hl
ZCkgIiA+JjYKZWxzZQogICAgICAgICAgICBhY19zY3JpcHQ9cy9hYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYS9iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIvCiAgICAg
Zm9yIGFjX2kgaW4gMSAyIDMgNCA1IDYgNzsgZG8KICAgICAgIGFjX3NjcmlwdD0iJGFjX3Njcmlw
dCRhc19ubCRhY19zY3JpcHQiCiAgICAgZG9uZQogICAgIGVjaG8gIiRhY19zY3JpcHQiIDI+L2Rl
di9udWxsIHwgc2VkIDk5cSA+Y29uZnRlc3Quc2VkCiAgICAgeyBhY19zY3JpcHQ9OyB1bnNldCBh
Y19zY3JpcHQ7fQogICAgIGlmIHRlc3QgLXogIiRTRUQiOyB0aGVuCiAgYWNfcGF0aF9TRURfZm91
bmQ9ZmFsc2UKICAjIExvb3AgdGhyb3VnaCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVh
Y2ggb2YgUFJPR05BTUUtTElTVAogIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU
T1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0IC16ICIk
YXNfZGlyIiAmJiBhc19kaXI9LgogICAgZm9yIGFjX3Byb2cgaW4gc2VkIGdzZWQ7IGRvCiAgICBm
b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICAgICAg
YWNfcGF0aF9TRUQ9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCiAgICAgIHsgdGVzdCAt
ZiAiJGFjX3BhdGhfU0VEIiAmJiAkYXNfdGVzdF94ICIkYWNfcGF0aF9TRUQiOyB9IHx8IGNvbnRp
bnVlCiMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX1NFRCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZv
dW5kLgogICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9TRUQKY2FzZSBgIiRhY19wYXRoX1NFRCIg
LS12ZXJzaW9uIDI+JjFgIGluCipHTlUqKQogIGFjX2N2X3BhdGhfU0VEPSIkYWNfcGF0aF9TRUQi
IGFjX3BhdGhfU0VEX2ZvdW5kPTo7OwoqKQogIGFjX2NvdW50PTAKICAkYXNfZWNob19uIDAxMjM0
NTY3ODkgPiJjb25mdGVzdC5pbiIKICB3aGlsZSA6CiAgZG8KICAgIGNhdCAiY29uZnRlc3QuaW4i
ICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCiAgICBtdiAiY29uZnRlc3QudG1wIiAiY29u
ZnRlc3QuaW4iCiAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKICAgICRhc19lY2hv
ICcnID4+ICJjb25mdGVzdC5ubCIKICAgICIkYWNfcGF0aF9TRUQiIC1mIGNvbmZ0ZXN0LnNlZCA8
ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCiAgICBk
aWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFr
CiAgICBhc19mbl9hcml0aCAkYWNfY291bnQgKyAxICYmIGFjX2NvdW50PSRhc192YWwKICAgIGlm
IHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfU0VEX21heC0wfTsgdGhlbgogICAgICAjIEJl
c3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUK
ICAgICAgYWNfY3ZfcGF0aF9TRUQ9IiRhY19wYXRoX1NFRCIKICAgICAgYWNfcGF0aF9TRURfbWF4
PSRhY19jb3VudAogICAgZmkKICAgICMgMTAqKDJeMTApIGNoYXJzIGFzIGlucHV0IHNlZW1zIG1v
cmUgdGhhbiBlbm91Z2gKICAgIHRlc3QgJGFjX2NvdW50IC1ndCAxMCAmJiBicmVhawogIGRvbmUK
ICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAgY29uZnRlc3QubmwgY29uZnRlc3Qub3V0
OzsKZXNhYwoKICAgICAgJGFjX3BhdGhfU0VEX2ZvdW5kICYmIGJyZWFrIDMKICAgIGRvbmUKICBk
b25lCiAgZG9uZQpJRlM9JGFzX3NhdmVfSUZTCiAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfU0VE
IjsgdGhlbgogICAgYXNfZm5fZXJyb3IgIm5vIGFjY2VwdGFibGUgc2VkIGNvdWxkIGJlIGZvdW5k
IGluIFwkUEFUSCIgIiRMSU5FTk8iIDUKICBmaQplbHNlCiAgYWNfY3ZfcGF0aF9TRUQ9JFNFRApm
aQoKZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh
Y19jdl9wYXRoX1NFRCIgPiY1CiRhc19lY2hvICIkYWNfY3ZfcGF0aF9TRUQiID4mNjsgfQogU0VE
PSIkYWNfY3ZfcGF0aF9TRUQiCiAgcm0gLWYgY29uZnRlc3Quc2VkCgoKIyBJZiBubyBBUiB2YXJp
YWJsZSB3YXMgc3BlY2lmaWVkLCBsb29rIHVwIHRoZSBuYW1lIG9mIHRoZSBhcmNoaXZlci4gT3Ro
ZXJ3aXNlCiMgZG8gbm90IHRvdWNoIHRoZSBBUiB2YXJpYWJsZS4KaWYgdGVzdCAieCRBUiIgPSAi
eCI7IHRoZW4KICBmb3IgYWNfcHJvZyBpbiBgZWNobyAkTEQgfCAkU0VEICdzL2xkJC9hci8nYCAi
YXIiCmRvCiAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNh
biBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29y
ZD0kMgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZv
ciAkYWNfd29yZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m
NjsgfQppZiB0ZXN0ICIke2FjX2N2X3BhdGhfQVIrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19l
Y2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBjYXNlICRBUiBpbgogIFtcXC9dKiB8ID86W1xc
L10qKQogIGFjX2N2X3BhdGhfQVI9IiRBUiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRl
c3Qgd2l0aCBhIHBhdGguCiAgOzsKICAqKQogIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9T
RVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSApkbwogIElGUz0kYXNfc2F2ZV9JRlMKICB0ZXN0
IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l
eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3Jk
JGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0
IjsgfTsgdGhlbgogICAgYWNfY3ZfcGF0aF9BUj0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4
dCIKICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19k
aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKICBkb25l
CklGUz0kYXNfc2F2ZV9JRlMKCiAgOzsKZXNhYwpmaQpBUj0kYWNfY3ZfcGF0aF9BUgppZiB0ZXN0
IC1uICIkQVIiOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99
OiByZXN1bHQ6ICRBUiIgPiY1CiRhc19lY2hvICIkQVIiID4mNjsgfQplbHNlCiAgeyAkYXNfZWNo
byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8g
Im5vIiA+JjY7IH0KZmkKCgogIHRlc3QgLW4gIiRBUiIgJiYgYnJlYWsKZG9uZQp0ZXN0IC1uICIk
QVIiIHx8IEFSPSJhciIKCmZpCgoKIyBDaGVjayBmb3IgdGhlIGNvbXBpbGVyIHN1cHBvcnQKaWYg
dGVzdCAiJHtHQ0N9IiAhPSAieWVzIiA7IHRoZW4KICAgYXNfZm5fZXJyb3IgIlZhbGdyaW5kIHJl
bGllcyBvbiBHQ0MgdG8gYmUgY29tcGlsZWQiICIkTElORU5PIiA1CmZpCgojIGZpZ3VyZSBvdXQg
d2hlcmUgcGVybCBsaXZlcwojIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInBlcmwiLCBzbyBp
dCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgpzZXQgZHVtbXkgcGVybDsgYWNfd29y
ZD0kMgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZv
ciAkYWNfd29yZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4m
NjsgfQppZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEVSTCtzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFz
X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxzZQogIGNhc2UgJFBFUkwgaW4KICBbXFwvXSogfCA/
OltcXC9dKikKICBhY19jdl9wYXRoX1BFUkw9IiRQRVJMIiAjIExldCB0aGUgdXNlciBvdmVycmlk
ZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KICA7OwogICopCiAgYXNfc2F2ZV9JRlM9JElGUzsgSUZT
PSRQQVRIX1NFUEFSQVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lG
UwogIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgICBmb3IgYWNfZXhlY19leHQgaW4g
JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv
JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf
ZXhlY19leHQiOyB9OyB0aGVuCiAgICBhY19jdl9wYXRoX1BFUkw9IiRhc19kaXIvJGFjX3dvcmQk
YWNfZXhlY19leHQiCiAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm
b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpk
b25lCiAgZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgogIDs7CmVzYWMKZmkKUEVSTD0kYWNfY3ZfcGF0
aF9QRVJMCmlmIHRlc3QgLW4gIiRQRVJMIjsgdGhlbgogIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz
X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUEVSTCIgPiY1CiRhc19lY2hvICIkUEVSTCIgPiY2
OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs
dDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQpmaQoKCgojIGZpZ3VyZSBvdXQgd2hlcmUg
Z2RiIGxpdmVzCiMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2RiIiwgc28gaXQgY2FuIGJl
IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15IGdkYjsgYWNfd29yZD0kMgp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29y
ZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQppZiB0
ZXN0ICIke2FjX2N2X3BhdGhfR0RCK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIo
Y2FjaGVkKSAiID4mNgplbHNlCiAgY2FzZSAkR0RCIGluCiAgW1xcL10qIHwgPzpbXFwvXSopCiAg
YWNfY3ZfcGF0aF9HREI9IiRHREIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdp
dGggYSBwYXRoLgogIDs7CiAgKikKICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJB
VE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAi
JGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0
YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l
eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07
IHRoZW4KICAgIGFjX2N2X3BhdGhfR0RCPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0Igog
ICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8k
YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICBicmVhayAyCiAgZmkKZG9uZQogIGRvbmUKSUZT
PSRhc19zYXZlX0lGUwoKICB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9HREIiICYmIGFjX2N2X3BhdGhf
R0RCPSIiL25vL2dkYi93YXMvZm91bmQvYXQvY29uZmlndXJlL3RpbWUiIgogIDs7CmVzYWMKZmkK
R0RCPSRhY19jdl9wYXRoX0dEQgppZiB0ZXN0IC1uICIkR0RCIjsgdGhlbgogIHsgJGFzX2VjaG8g
IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkR0RCIiA+JjUKJGFzX2VjaG8g
IiRHREIiID4mNjsgfQplbHNlCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7IH0KZmkKCgoKY2F0ID4+Y29u
ZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIEdEQl9QQVRIICIkR0RCIgpfQUNFT0YKCgojIHNvbWUg
b2xkZXIgYXV0b21ha2UncyBkb24ndCBoYXZlIGl0IHNvIHRyeSBzb21ldGhpbmcgb24gb3VyIG93
bgojIEJ5IGRlZmF1bHQgd2Ugc2ltcGx5IHVzZSB0aGUgQyBjb21waWxlciB0byBidWlsZCBhc3Nl
bWJseSBjb2RlLgoKdGVzdCAiJHtDQ0FTK3NldH0iID0gc2V0IHx8IENDQVM9JENDCnRlc3QgIiR7
Q0NBU0ZMQUdTK3NldH0iID0gc2V0IHx8IENDQVNGTEFHUz0kQ0ZMQUdTCgoKCmRlcGNjPSIkQ0NB
UyIgICBhbV9jb21waWxlcl9saXN0PQoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CiRhc19lY2hv
X24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2OyB9CmlmIHRl
c3QgIiR7YW1fY3ZfQ0NBU19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsg
dGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxzZQogIGlmIHRlc3QgLXogIiRB
TURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KICAjIFdlIG1ha2UgYSBz
dWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCiAg
IyBtYWtpbmcgYm9ndXMgZmlsZXMgdGhhdCB3ZSBkb24ndCBrbm93IGFib3V0IGFuZCBuZXZlciBy
ZW1vdmUuICBGb3IKICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0aGF0IG9uIEhQLVVYIHRo
ZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAogICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcg
LS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKICAjIGluIEQnLgogIG1rZGly
IGNvbmZ0ZXN0LmRpcgogICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lz
ZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCiAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9y
eS4KICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0LmRpcgogIGNkIGNvbmZ0ZXN0LmRpcgogICMg
V2Ugd2lsbCBidWlsZCBvYmplY3RzIGFuZCBkZXBlbmRlbmNpZXMgaW4gYSBzdWJkaXJlY3Rvcnkg
YmVjYXVzZQogICMgaXQgaGVscHMgdG8gZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1v
ZGVzLiAgRm9yIGluc3RhbmNlCiAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1N
RCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKICAjIHNpZGUgZWZmZWN0IG9mIGNvbXBpbGF0
aW9uLCBidXQgSUNDIHdpbGwgcHV0IHRoZSBkZXBlbmRlbmNpZXMgaW4KICAjIHRoZSBjdXJyZW50
IGRpcmVjdG9yeSB3aGlsZSBUcnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKICAjIGRp
cmVjdG9yeS4KICBta2RpciBzdWIKCiAgYW1fY3ZfQ0NBU19kZXBlbmRlbmNpZXNfY29tcGlsZXJf
dHlwZT1ub25lCiAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7IHRoZW4KICAgICBh
bV9jb21waWxlcl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwg
Li9kZXBjb21wYAogIGZpCiAgYW1fX3VuaXZlcnNhbD1mYWxzZQoKCiAgZm9yIGRlcG1vZGUgaW4g
JGFtX2NvbXBpbGVyX2xpc3Q7IGRvCiAgICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBl
bmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMKICAgICMgbGlrZSB0byB3cmFwIGxhcmdl
IGRlcGVuZGVuY3kgbGlzdHMgb24gY29sdW1uIDgwICh3aXRoIFwpLCBhbmQKICAgICMgd2Ugc2hv
dWxkIG5vdCBjaG9vc2UgYSBkZXBjb21wIG1vZGUgd2hpY2ggaXMgY29uZnVzZWQgYnkgdGhpcy4K
ICAgICMKICAgICMgV2UgbmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0
LCBhcyB0aGUgY29tcGlsZXIgbWF5CiAgICAjIG92ZXJ3cml0ZSBzb21lIG9mIHRoZW0gd2hlbiB0
ZXN0aW5nIHdpdGggb2JzY3VyZSBjb21tYW5kIGxpbmVzLgogICAgIyBUaGlzIGhhcHBlbnMgYXQg
bGVhc3Qgd2l0aCB0aGUgQUlYIEMgY29tcGlsZXIuCiAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKICAg
IGZvciBpIGluIDEgMiAzIDQgNSA2OyBkbwogICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCck
aScuaCInID4+IHN1Yi9jb25mdGVzdC5jCiAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRp
LmgnIGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCiAgICAgICMgU29sYXJpcyA4J3Mg
ey91c3IsfS9iaW4vc2guCiAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAogICAgZG9uZQogICAg
ZWNobyAiJHthbV9faW5jbHVkZX0gJHthbV9fcXVvdGV9c3ViL2NvbmZ0ZXN0LlBvJHthbV9fcXVv
dGV9IiA+IGNvbmZtZgoKICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8nIGZvciB0aGUg
c2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgogICAgIyBtb2RlLiAgSXQgdHVybnMgb3V0IHRoYXQg
dGhlIFN1blBybyBDKysgY29tcGlsZXIgZG9lcyBub3QgcHJvcGVybHkKICAgICMgaGFuZGxlIGAt
TSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAogICAg
IyB2ZXJzaW9ucyBoYWQgdHJvdWJsZSB3aXRoIG91dHB1dCBpbiBzdWJkaXJzCiAgICBhbV9fb2Jq
PXN1Yi9jb25mdGVzdC4ke09CSkVYVC1vfQogICAgYW1fX21pbnVzX29iaj0iLW8gJGFtX19vYmoi
CiAgICBjYXNlICRkZXBtb2RlIGluCiAgICBnY2MpCiAgICAgICMgVGhpcyBkZXBtb2RlIGNhdXNl
cyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCiAgICAgIHRlc3QgIiRhbV9fdW5p
dmVyc2FsIiA9IGZhbHNlIHx8IGNvbnRpbnVlCiAgICAgIDs7CiAgICBub3NpZGVlZmZlY3QpCiAg
ICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1lY2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwg
c28gdGhleSdsbAogICAgICAjIG9ubHkgYmUgdXNlZCB3aGVuIGV4cGxpY2l0bHkgcmVxdWVzdGVk
CiAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhl
bgoJY29udGludWUKICAgICAgZWxzZQoJYnJlYWsKICAgICAgZmkKICAgICAgOzsKICAgIG1zdmlz
dWFsY3BwIHwgbXN2Y21zeXMpCiAgICAgICMgVGhpcyBjb21waWxlciB3b24ndCBncm9rIGAtYyAt
bycsIGJ1dCBhbHNvLCB0aGUgbWludXNvIHRlc3QgaGFzCiAgICAgICMgbm90IHJ1biB5ZXQuICBU
aGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFuZAogICAgICAjIHNv
IHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgogICAg
ICBhbV9fb2JqPWNvbmZ0ZXN0LiR7T0JKRVhULW99CiAgICAgIGFtX19taW51c19vYmo9CiAgICAg
IDs7CiAgICBub25lKSBicmVhayA7OwogICAgZXNhYwogICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBc
CiAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PSRhbV9fb2JqIFwKICAgICAgIGRl
cGZpbGU9c3ViL2NvbmZ0ZXN0LlBvIHRtcGRlcGZpbGU9c3ViL2NvbmZ0ZXN0LlRQbyBcCiAgICAg
ICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29uZnRlc3Qu
YyBcCiAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIgJiYKICAgICAgIGdyZXAgc3Vi
L2NvbmZ0c3QxLmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKICAgICAgIGdy
ZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKICAg
ICAgIGdyZXAgJGFtX19vYmogc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxsIDI+JjEgJiYKICAg
ICAgICR7TUFLRS1tYWtlfSAtcyAtZiBjb25mbWYgPiAvZGV2L251bGwgMj4mMTsgdGhlbgogICAg
ICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlz
c3VlIHdhcm5pbmdzCiAgICAgICMgb3IgcmVtYXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28g
d2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNzYWdlCiAgICAgICMgdGhhdCBzYXlzIGFuIG9wdGlv
biB3YXMgaWdub3JlZCBvciBub3Qgc3VwcG9ydGVkLgogICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBp
Y2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5OgogICAgICAjICAgaWNjOiBDb21tYW5kIGxp
bmUgd2FybmluZzogaWdub3Jpbmcgb3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCiAg
ICAgICMgVGhlIGRpYWdub3NpcyBjaGFuZ2VkIGluIGljYyA4LjA6CiAgICAgICMgICBpY2M6IENv
bW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCiAgICAgIGlmIChn
cmVwICdpZ25vcmluZyBvcHRpb24nIGNvbmZ0ZXN0LmVyciB8fAogICAgICAgICAgZ3JlcCAnbm90
IHN1cHBvcnRlZCcgY29uZnRlc3QuZXJyKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOjsgZWxzZQog
ICAgICAgIGFtX2N2X0NDQVNfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9JGRlcG1vZGUKICAg
ICAgICBicmVhawogICAgICBmaQogICAgZmkKICBkb25lCgogIGNkIC4uCiAgcm0gLXJmIGNvbmZ0
ZXN0LmRpcgplbHNlCiAgYW1fY3ZfQ0NBU19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25l
CmZpCgpmaQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog
JGFtX2N2X0NDQVNfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNQokYXNfZWNobyAiJGFt
X2N2X0NDQVNfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQpDQ0FTREVQTU9ERT1k
ZXBtb2RlPSRhbV9jdl9DQ0FTX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlCgogaWYKICB0ZXN0
ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAogICYmIHRlc3QgIiRhbV9j
dl9DQ0FTX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzM7IHRoZW4KICBhbV9fZmFz
dGRlcENDQVNfVFJVRT0KICBhbV9fZmFzdGRlcENDQVNfRkFMU0U9JyMnCmVsc2UKICBhbV9fZmFz
dGRlcENDQVNfVFJVRT0nIycKICBhbV9fZmFzdGRlcENDQVNfRkFMU0U9CmZpCgoKCgojIENoZWNr
IGlmICdkaWZmJyBzdXBwb3J0cyAtdSAodW5pdmVyc2FsIGRpZmZzKSBhbmQgdXNlIGl0IGlmIHBv
c3NpYmxlLgoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu
ZyBmb3IgZGlmZiAtdSIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBkaWZmIC11Li4uICIg
PiY2OyB9CgoKIyBDb21wYXJpbmcgdHdvIGlkZW50aWNhbCBmaWxlcyByZXN1bHRzIGluIDAsIHVu
bGVzcyAtdSBpc24ndCBzdXBwb3J0ZWQgKGFzCiMgaXQncyBub3Qgb24gQUlYKS4KdG1wZmlsZT0i
dG1wLXh4eC15eXktenp6Igp0b3VjaCAkdG1wZmlsZTsKaWYgZGlmZiAtdSAkdG1wZmlsZSAkdG1w
ZmlsZSA7IHRoZW4KICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
cmVzdWx0OiB5ZXMiID4mNQokYXNfZWNobyAieWVzIiA+JjY7IH0KICAgIERJRkY9ImRpZmYgLXUi
CmVsc2UKICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0
OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CiAgICBESUZGPSJkaWZmIgpmaQpybSAkdG1w
ZmlsZQoKCiMgV2UgZG9uJ3Qgd2FudCBnY2MgPCAzLjAKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBnY2Mi
ID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzdXBwb3J0ZWQgdmVyc2lvbiBvZiBnY2Mu
Li4gIiA+JjY7IH0KCmdjY192ZXJzaW9uPWAke0NDfSAtLXZlcnNpb24gfCBoZWFkIC1uIDEgfCAk
U0VEICdzL15bXjAtOV0qXChbMC05Ll0qXCkuKiQvXDEvJ2AKCmNhc2UgIiR7Z2NjX3ZlcnNpb259
IiBpbgogICAgIDIuKikKCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
cmVzdWx0OiBubyAoJHtnY2NfdmVyc2lvbn0pIiA+JjUKJGFzX2VjaG8gIm5vICgke2djY192ZXJz
aW9ufSkiID4mNjsgfQoJYXNfZm5fZXJyb3IgInBsZWFzZSB1c2UgYSByZWNlbnQgKD49IGdjYy0z
LjApIHZlcnNpb24gb2YgZ2NjIiAiJExJTkVOTyIgNQoJOzsKICAgICAqKQoJeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG9rICgke2djY192ZXJzaW9ufSki
ID4mNQokYXNfZWNobyAib2sgKCR7Z2NjX3ZlcnNpb259KSIgPiY2OyB9Cgk7Owplc2FjCgojLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQojIEFyY2gvT1MvcGxhdGZvcm0gdGVzdHMuCiMtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiMgV2UgY3JlYXRlIGEgbnVtYmVyIG9mIGFyY2gvT1MvcGxhdGZvcm0tcmVsYXRlZCB2
YXJpYWJsZXMuICBXZSBwcmVmaXggdGhlbQojIGFsbCB3aXRoICJWR0NPTkZfIiB3aGljaCBpbmRp
Y2F0ZXMgdGhhdCB0aGV5IGFyZSBkZWZpbmVkIGF0CiMgY29uZmlndXJlLXRpbWUsIGFuZCBkaXN0
aW5ndWlzaGVzIHRoZW0gZnJvbSB0aGUgVkdBXyovVkdPXyovVkdQXyoKIyB2YXJpYWJsZXMgdXNl
ZCB3aGVuIGNvbXBpbGluZyBDIGZpbGVzLgoKIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcu
c3ViLgokU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiIHN1bjQgPi9kZXYvbnVsbCAyPiYx
IHx8CiAgYXNfZm5fZXJyb3IgImNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5z
dWIiICIkTElORU5PIiA1Cgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgYnVp
bGQgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9
IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxzZQogIGFjX2J1aWxk
X2FsaWFzPSRidWlsZF9hbGlhcwp0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKICBhY19i
dWlsZF9hbGlhcz1gJFNIRUxMICIkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiYAp0ZXN0ICJ4JGFj
X2J1aWxkX2FsaWFzIiA9IHggJiYKICBhc19mbl9lcnJvciAiY2Fubm90IGd1ZXNzIGJ1aWxkIHR5
cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiAiJExJTkVOTyIgNQphY19jdl9idWlsZD1gJFNIRUxM
ICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAkYWNfYnVpbGRfYWxpYXNgIHx8CiAgYXNfZm5fZXJy
b3IgIiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRhY19idWlsZF9hbGlhcyBmYWlsZWQi
ICIkTElORU5PIiA1CgpmaQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKJGFzX2VjaG8gIiRhY19jdl9idWlsZCIgPiY2OyB9
CmNhc2UgJGFjX2N2X2J1aWxkIGluCiotKi0qKSA7OwoqKSBhc19mbl9lcnJvciAiaW52YWxpZCB2
YWx1ZSBvZiBjYW5vbmljYWwgYnVpbGQiICIkTElORU5PIiA1OzsKZXNhYwpidWlsZD0kYWNfY3Zf
YnVpbGQKYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSctJwpzZXQgeCAkYWNfY3ZfYnVpbGQKc2hpZnQK
YnVpbGRfY3B1PSQxCmJ1aWxkX3ZlbmRvcj0kMgpzaGlmdDsgc2hpZnQKIyBSZW1lbWJlciwgdGhl
IGZpcnN0IGNoYXJhY3RlciBvZiBJRlMgaXMgdXNlZCB0byBjcmVhdGUgJCosCiMgZXhjZXB0IHdp
dGggb2xkIHNoZWxsczoKYnVpbGRfb3M9JCoKSUZTPSRhY19zYXZlX0lGUwpjYXNlICRidWlsZF9v
cyBpbiAqXCAqKSBidWlsZF9vcz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAncy8gLy0vZydgOzsg
ZXNhYwoKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg
aG9zdCBzeXN0ZW0gdHlwZSIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5
cGUuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9ob3N0K3NldH0iID0gc2V0OyB0aGVuIDoK
ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAgaWYgdGVzdCAieCRob3N0X2FsaWFz
IiA9IHg7IHRoZW4KICBhY19jdl9ob3N0PSRhY19jdl9idWlsZAplbHNlCiAgYWNfY3ZfaG9zdD1g
JFNIRUxMICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAkaG9zdF9hbGlhc2AgfHwKICAgIGFzX2Zu
X2Vycm9yICIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQi
ICIkTElORU5PIiA1CmZpCgpmaQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IHJlc3VsdDogJGFjX2N2X2hvc3QiID4mNQokYXNfZWNobyAiJGFjX2N2X2hvc3QiID4mNjsg
fQpjYXNlICRhY19jdl9ob3N0IGluCiotKi0qKSA7OwoqKSBhc19mbl9lcnJvciAiaW52YWxpZCB2
YWx1ZSBvZiBjYW5vbmljYWwgaG9zdCIgIiRMSU5FTk8iIDU7Owplc2FjCmhvc3Q9JGFjX2N2X2hv
c3QKYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSctJwpzZXQgeCAkYWNfY3ZfaG9zdApzaGlmdApob3N0
X2NwdT0kMQpob3N0X3ZlbmRvcj0kMgpzaGlmdDsgc2hpZnQKIyBSZW1lbWJlciwgdGhlIGZpcnN0
IGNoYXJhY3RlciBvZiBJRlMgaXMgdXNlZCB0byBjcmVhdGUgJCosCiMgZXhjZXB0IHdpdGggb2xk
IHNoZWxsczoKaG9zdF9vcz0kKgpJRlM9JGFjX3NhdmVfSUZTCmNhc2UgJGhvc3Rfb3MgaW4gKlwg
KikgaG9zdF9vcz1gZWNobyAiJGhvc3Rfb3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCgoKCnsg
JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGEgc3Vw
cG9ydGVkIENQVSIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBhIHN1cHBvcnRlZCBDUFUu
Li4gIiA+JjY7IH0KCiMgQVJDSF9NQVggcmVmbGVjdHMgdGhlIG1vc3QgdGhhdCB0aGlzIENQVSBj
YW4gZG86IGZvciBleGFtcGxlIGlmIGl0CiMgaXMgYSA2NC1iaXQgY2FwYWJsZSBQb3dlclBDLCB0
aGVuIGl0IG11c3QgYmUgc2V0IHRvIHBwYzY0IGFuZCBub3QgcHBjMzIuCiMgRGl0dG8gZm9yIGFt
ZDY0LiAgSXQgaXMgdXNlZCBmb3IgbW9yZSBjb25maWd1cmF0aW9uIGJlbG93LCBidXQgaXMgbm90
IHVzZWQKIyBvdXRzaWRlIHRoaXMgZmlsZS4KY2FzZSAiJHtob3N0X2NwdX0iIGluCiAgICAgaT84
NikKCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBvayAo
JHtob3N0X2NwdX0pIiA+JjUKJGFzX2VjaG8gIm9rICgke2hvc3RfY3B1fSkiID4mNjsgfQogICAg
ICAgIEFSQ0hfTUFYPSJ4ODYiCiAgICAgICAgOzsKCiAgICAgeDg2XzY0KQogICAgICAgIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBvayAoJHtob3N0X2Nw
dX0pIiA+JjUKJGFzX2VjaG8gIm9rICgke2hvc3RfY3B1fSkiID4mNjsgfQogICAgICAgIEFSQ0hf
TUFYPSJhbWQ2NCIKICAgICAgICA7OwoKICAgICBwb3dlcnBjNjQpCiAgICAgICAgIyBUaGlzIHZh
bHVlIGNhbiBvbmx5IGhhcHBlbiBvbiBMaW51eCwgbm90IG9uIEFJWAogICAgICAgIHsgJGFzX2Vj
aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBvayAoJHtob3N0X2NwdX0p
IiA+JjUKJGFzX2VjaG8gIm9rICgke2hvc3RfY3B1fSkiID4mNjsgfQogICAgICAgIEFSQ0hfTUFY
PSJwcGM2NCIKICAgICAgICA7OwoKICAgICBwb3dlcnBjKQogICAgICAgICMgQ29tcGxleGl0eS4g
ICdwb3dlcnBjJyBvbiBBSVggaW1wbGllcyBhIDY0LWJpdCBjYXBhYmxlIENQVS4KICAgICAgICAj
IFdoZXJlYXMgaW4gTGludXggdGhhdCBtZWFucyBvbmx5IGEgMzItYml0IGNhcGFibGUgQ1BVLgog
ICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBv
ayAoJHtob3N0X2NwdX0pIiA+JjUKJGFzX2VjaG8gIm9rICgke2hvc3RfY3B1fSkiID4mNjsgfQoJ
Y2FzZSAiJHtob3N0X29zfSIgaW4KCSAgIGFpeDUuKikKCSAgICAgIEFSQ0hfTUFYPSJwcGM2NCIK
ICAgICAgICAgICAgICA7OwogICAgICAgICAgICopCiAgICAgICAgICAgICAgQVJDSF9NQVg9InBw
YzMyIgogICAgICAgICAgICAgIDs7CiAgICAgICAgZXNhYwogICAgICAgIDs7CgogICAgIGFybXY3
KikKCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBvayAo
JHtob3N0X2NwdX0pIiA+JjUKJGFzX2VjaG8gIm9rICgke2hvc3RfY3B1fSkiID4mNjsgfQoJQVJD
SF9NQVg9ImFybSIKCTs7CgogICAgICopCgl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IHJlc3VsdDogbm8gKCR7aG9zdF9jcHV9KSIgPiY1CiRhc19lY2hvICJubyAoJHto
b3N0X2NwdX0pIiA+JjY7IH0KCWFzX2ZuX2Vycm9yICJVbnN1cHBvcnRlZCBob3N0IGFyY2hpdGVj
dHVyZS4gU29ycnkiICIkTElORU5PIiA1Cgk7Owplc2FjCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK
IyBTb21ldGltZXMgaXQncyBjb252ZW5pZW50IHRvIHN1YnZlcnQgdGhlIGJpLWFyY2ggYnVpbGQg
c3lzdGVtIGFuZAojIGp1c3QgaGF2ZSBhIHNpbmdsZSBidWlsZCBldmVuIHRob3VnaCB0aGUgdW5k
ZXJseWluZyBwbGF0Zm9ybSBpcwojIGNhcGFibGUgb2YgYm90aC4gIEhlbmNlIGhhbmRsZSAtLWVu
YWJsZS1vbmx5NjRiaXQgYW5kCiMgLS1lbmFibGUtb25seTMyYml0LiAgQ29tcGxhaW4gaWYgYm90
aCBhcmUgaXNzdWVkIDotKQojIFtBY3R1YWxseSwgaWYgZWl0aGVyIG9mIHRoZXNlIG9wdGlvbnMg
YXJlIHVzZWQsIEkgdGhpbmsgYm90aCBnZXQgYnVpbHQsCiMgYnV0IG9ubHkgb25lIGdldHMgaW5z
dGFsbGVkLiAgU28gaWYgeW91IHVzZSBhbiBpbi1wbGFjZSBidWlsZCwgYm90aCBjYW4gYmUKIyB1
c2VkLiAtLW5qbl0KCiMgQ2hlY2sgaWYgYSA2NC1iaXQgb25seSBidWlsZCBoYXMgYmVlbiByZXF1
ZXN0ZWQKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm
b3IgYSA2NC1iaXQgb25seSBidWlsZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBhIDY0
LWJpdCBvbmx5IGJ1aWxkLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7dmdfY3Zfb25seTY0Yml0K3Nl
dH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAgIyBD
aGVjayB3aGV0aGVyIC0tZW5hYmxlLW9ubHk2NGJpdCB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5h
YmxlX29ubHk2NGJpdCtzZXR9IiA9IHNldDsgdGhlbiA6CiAgZW5hYmxldmFsPSRlbmFibGVfb25s
eTY0Yml0OyB2Z19jdl9vbmx5NjRiaXQ9JGVuYWJsZXZhbAplbHNlCiAgdmdfY3Zfb25seTY0Yml0
PW5vCmZpCgpmaQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs
dDogJHZnX2N2X29ubHk2NGJpdCIgPiY1CiRhc19lY2hvICIkdmdfY3Zfb25seTY0Yml0IiA+JjY7
IH0KCiMgQ2hlY2sgaWYgYSAzMi1iaXQgb25seSBidWlsZCBoYXMgYmVlbiByZXF1ZXN0ZWQKeyAk
YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYSAzMi1i
aXQgb25seSBidWlsZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBhIDMyLWJpdCBvbmx5
IGJ1aWxkLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7dmdfY3Zfb25seTMyYml0K3NldH0iID0gc2V0
OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAgIyBDaGVjayB3aGV0
aGVyIC0tZW5hYmxlLW9ubHkzMmJpdCB3YXMgZ2l2ZW4uCmlmIHRlc3QgIiR7ZW5hYmxlX29ubHkz
MmJpdCtzZXR9IiA9IHNldDsgdGhlbiA6CiAgZW5hYmxldmFsPSRlbmFibGVfb25seTMyYml0OyB2
Z19jdl9vbmx5MzJiaXQ9JGVuYWJsZXZhbAplbHNlCiAgdmdfY3Zfb25seTMyYml0PW5vCmZpCgpm
aQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHZnX2N2
X29ubHkzMmJpdCIgPiY1CiRhc19lY2hvICIkdmdfY3Zfb25seTMyYml0IiA+JjY7IH0KCiMgU3Rh
eSBzYW5lCmlmIHRlc3QgeCR2Z19jdl9vbmx5NjRiaXQgPSB4eWVzIC1hIHgkdmdfY3Zfb25seTMy
Yml0ID0geHllczsgdGhlbgogICBhc19mbl9lcnJvciAiTm9uc2Vuc2ljYWw6IGJvdGggLS1lbmFi
bGUtb25seTY0Yml0IGFuZCAtLWVuYWJsZS1vbmx5MzJiaXQuIiAiJExJTkVOTyIgNQpmaQoKIy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KCiMgVkdDT05GX09TIGlzIHRoZSBwcmltYXJ5IGJ1aWxkIE9TLCBl
Zy4gImxpbnV4Ii4gIEl0IGlzIHBhc3NlZCBpbiB0bwojIGNvbXBpbGF0aW9uIG9mIG1hbnkgQyBm
aWxlcyB2aWEgLVZHT18kKFZHQ09ORl9PUykgYW5kCiMgLVZHUF8kKFZHQ09ORl9BUkNIX1BSSSlf
JChWR0NPTkZfT1MpLgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo
ZWNraW5nIGZvciBhIHN1cHBvcnRlZCBPUyIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBh
IHN1cHBvcnRlZCBPUy4uLiAiID4mNjsgfQoKCkRFRkFVTFRfU1VQUD0iIgoKY2FzZSAiJHtob3N0
X29zfSIgaW4KICAgICAqbGludXgqKQoJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiByZXN1bHQ6IG9rICgke2hvc3Rfb3N9KSIgPiY1CiRhc19lY2hvICJvayAoJHtob3N0
X29zfSkiID4mNjsgfQogICAgICAgIFZHQ09ORl9PUz0ibGludXgiCgogICAgICAgICMgT2ssIHRo
aXMgaXMgbGludXguIENoZWNrIHRoZSBrZXJuZWwgdmVyc2lvbgogICAgICAgIHsgJGFzX2VjaG8g
IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHRoZSBrZXJuZWwgdmVy
c2lvbiIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciB0aGUga2VybmVsIHZlcnNpb24uLi4g
IiA+JjY7IH0KCiAgICAgICAga2VybmVsPWB1bmFtZSAtcmAKCiAgICAgICAgY2FzZSAiJHtrZXJu
ZWx9IiBpbgogICAgICAgICAgICAgMi42LiopCiAgICAgICAgCSAgICB7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogMi42IGZhbWlseSAoJHtrZXJuZWx9KSIg
PiY1CiRhc19lY2hvICIyLjYgZmFtaWx5ICgke2tlcm5lbH0pIiA+JjY7IH0KCiRhc19lY2hvICIj
ZGVmaW5lIEtFUk5FTF8yXzYgMSIgPj5jb25mZGVmcy5oCgogICAgICAgIAkgICAgOzsKCiAgICAg
ICAgICAgICAyLjQuKikKICAgICAgICAJICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiAyLjQgZmFtaWx5ICgke2tlcm5lbH0pIiA+JjUKJGFzX2VjaG8g
IjIuNCBmYW1pbHkgKCR7a2VybmVsfSkiID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZpbmUgS0VSTkVM
XzJfNCAxIiA+PmNvbmZkZWZzLmgKCiAgICAgICAgCSAgICA7OwoKICAgICAgICAgICAgICopCiAg
ICAgICAgCSAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs
dDogdW5zdXBwb3J0ZWQgKCR7a2VybmVsfSkiID4mNQokYXNfZWNobyAidW5zdXBwb3J0ZWQgKCR7
a2VybmVsfSkiID4mNjsgfQogICAgICAgIAkgICAgYXNfZm5fZXJyb3IgIlZhbGdyaW5kIHdvcmtz
IG9uIGtlcm5lbHMgMi40LCAyLjYiICIkTElORU5PIiA1CiAgICAgICAgCSAgICA7OwogICAgICAg
IGVzYWMKCiAgICAgICAgOzsKCiAgICAgYWl4NS4xLiopCiAgICAgICAgeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG9rICgke2hvc3Rfb3N9KSIgPiY1CiRh
c19lY2hvICJvayAoJHtob3N0X29zfSkiID4mNjsgfQogICAgICAgIFZHQ09ORl9PUz0iYWl4NSIK
ICAgICAgICA7OwogICAgIGFpeDUuMi4qKQogICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz
X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBvayAoJHtob3N0X29zfSkiID4mNQokYXNfZWNobyAi
b2sgKCR7aG9zdF9vc30pIiA+JjY7IH0KICAgICAgICBWR0NPTkZfT1M9ImFpeDUiCiAgICAgICAg
OzsKICAgICBhaXg1LjMuKikKICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IHJlc3VsdDogb2sgKCR7aG9zdF9vc30pIiA+JjUKJGFzX2VjaG8gIm9rICgke2hv
c3Rfb3N9KSIgPiY2OyB9CiAgICAgICAgVkdDT05GX09TPSJhaXg1IgogICAgICAgIDs7CgogICAg
ICpkYXJ3aW4qKQogICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiBvayAoJHtob3N0X29zfSkiID4mNQokYXNfZWNobyAib2sgKCR7aG9zdF9vc30p
IiA+JjY7IH0KICAgICAgICBWR0NPTkZfT1M9ImRhcndpbiIKCiRhc19lY2hvICIjZGVmaW5lIERB
UldJTl8xMF81IDEwMDUwMCIgPj5jb25mZGVmcy5oCgoKJGFzX2VjaG8gIiNkZWZpbmUgREFSV0lO
XzEwXzYgMTAwNjAwIiA+PmNvbmZkZWZzLmgKCgokYXNfZWNobyAiI2RlZmluZSBEQVJXSU5fMTBf
NyAxMDA3MDAiID4+Y29uZmRlZnMuaAoKCgl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IGNoZWNraW5nIGZvciB0aGUga2VybmVsIHZlcnNpb24iID4mNQokYXNfZWNob19u
ICJjaGVja2luZyBmb3IgdGhlIGtlcm5lbCB2ZXJzaW9uLi4uICIgPiY2OyB9CglrZXJuZWw9YHVu
YW1lIC1yYAoKICAgICAgICAjIE5iOiBmb3IgRGFyd2luIHdlIHNldCBERUZBVUxUX1NVUFAgaGVy
ZS4gIFRoYXQncyBiZWNhdXNlIERhcndpbgogICAgICAgICMgaGFzIG9ubHkgb25lIHJlbGV2YW50
IHZlcnNpb24sIHRoZSBPUyB2ZXJzaW9uLiBUaGUgYHVuYW1lYCBjaGVjawogICAgICAgICMgaXMg
YSBnb29kIHdheSB0byBnZXQgdGhhdCB2ZXJzaW9uIChpLmUuICJEYXJ3aW4gOS42LjAiIGlzIE1h
YyBPUwogICAgICAgICMgWCAxMC41LjYsIGFuZCAiRGFyd2luIDEwLngiIGlzIE1hYyBPUyBYIDEw
LjYueCBTbm93IExlb3BhcmQpLAogICAgICAgICMgYW5kIHdlIGRvbid0IGtub3cgb2YgYW4gbWFj
cm9zIHNpbWlsYXIgdG8gX19HTElCQ19fIHRvIGdldCB0aGF0IGluZm8uCiAgICAgICAgIwogICAg
ICAgICMgWFhYOiBgdW5hbWUgLXJgIHdvbid0IGRvIHRoZSByaWdodCB0aGluZyBmb3IgY3Jvc3Mt
Y29tcGlsZXMsIGJ1dAogICAgICAgICMgdGhhdCdzIG5vdCBhIHByb2JsZW0geWV0LgoJY2FzZSAi
JHtrZXJuZWx9IiBpbgoJICAgICA5LiopCgkJICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l
bm8tJExJTkVOT306IHJlc3VsdDogRGFyd2luIDkueCAoJHtrZXJuZWx9KSAvIE1hYyBPUyBYIDEw
LjUgTGVvcGFyZCIgPiY1CiRhc19lY2hvICJEYXJ3aW4gOS54ICgke2tlcm5lbH0pIC8gTWFjIE9T
IFggMTAuNSBMZW9wYXJkIiA+JjY7IH0KCiRhc19lY2hvICIjZGVmaW5lIERBUldJTl9WRVJTIERB
UldJTl8xMF81IiA+PmNvbmZkZWZzLmgKCgkJICBERUZBVUxUX1NVUFA9ImRhcndpbjkuc3VwcCAk
e0RFRkFVTFRfU1VQUH0iCgkJICBERUZBVUxUX1NVUFA9ImRhcndpbjktZHJkLnN1cHAgJHtERUZB
VUxUX1NVUFB9IgoJCSAgOzsKCSAgICAgMTAuKikKCQkgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz
X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBEYXJ3aW4gMTAueCAoJHtrZXJuZWx9KSAvIE1hYyBP
UyBYIDEwLjYgU25vdyBMZW9wYXJkIiA+JjUKJGFzX2VjaG8gIkRhcndpbiAxMC54ICgke2tlcm5l
bH0pIC8gTWFjIE9TIFggMTAuNiBTbm93IExlb3BhcmQiID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZp
bmUgREFSV0lOX1ZFUlMgREFSV0lOXzEwXzYiID4+Y29uZmRlZnMuaAoKCQkgIERFRkFVTFRfU1VQ
UD0iZGFyd2luMTAuc3VwcCAke0RFRkFVTFRfU1VQUH0iCgkJICBERUZBVUxUX1NVUFA9ImRhcndp
bjEwLWRyZC5zdXBwICR7REVGQVVMVF9TVVBQfSIKCQkgIDs7CgkgICAgIDExLiopCgkJICB7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogRGFyd2luIDExLngg
KCR7a2VybmVsfSkgLyBNYWMgT1MgWCAxMC43IExpb24iID4mNQokYXNfZWNobyAiRGFyd2luIDEx
LnggKCR7a2VybmVsfSkgLyBNYWMgT1MgWCAxMC43IExpb24iID4mNjsgfQoKJGFzX2VjaG8gIiNk
ZWZpbmUgREFSV0lOX1ZFUlMgREFSV0lOXzEwXzYiID4+Y29uZmRlZnMuaAoKCQkgIERFRkFVTFRf
U1VQUD0iZGFyd2luMTAuc3VwcCAke0RFRkFVTFRfU1VQUH0iCgkJICBERUZBVUxUX1NVUFA9ImRh
cndpbjEwLWRyZC5zdXBwICR7REVGQVVMVF9TVVBQfSIKCQkgIDs7CiAgICAgKikKCQkgIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB1bnN1cHBvcnRlZCAo
JHtrZXJuZWx9KSIgPiY1CiRhc19lY2hvICJ1bnN1cHBvcnRlZCAoJHtrZXJuZWx9KSIgPiY2OyB9
CgkJICBhc19mbl9lcnJvciAiVmFsZ3JpbmQgd29ya3Mgb24gRGFyd2luIDkueCBhbmQgMTAueCAo
TWFjIE9TIFggMTAuNSBhbmQgMTAuNikiICIkTElORU5PIiA1CgkJICA7OwoJZXNhYwogICAgICAg
IDs7CgogICAgICopCgl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl
c3VsdDogbm8gKCR7aG9zdF9vc30pIiA+JjUKJGFzX2VjaG8gIm5vICgke2hvc3Rfb3N9KSIgPiY2
OyB9Cglhc19mbl9lcnJvciAiVmFsZ3JpbmQgaXMgb3BlcmF0aW5nIHN5c3RlbSBzcGVjaWZpYy4g
U29ycnkuIiAiJExJTkVOTyIgNQoJOzsKZXNhYwoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgSWYg
d2UgYXJlIGJ1aWxkaW5nIG9uIGEgNjQgYml0IHBsYXRmb3JtIHRlc3QgdG8gc2VlIGlmIHRoZSBz
eXN0ZW0KIyBzdXBwb3J0cyBidWlsZGluZyAzMiBiaXQgcHJvZ3JhbXMgYW5kIGRpc2FibGUgMzIg
Yml0IHN1cHBvcnQgaWYgaXQKIyBkb2VzIG5vdCBzdXBwb3J0IGJ1aWxkaW5nIDMyIGJpdCBwcm9n
cmFtcwoKY2FzZSAiJEFSQ0hfTUFYLSRWR0NPTkZfT1MiIGluCiAgICAgYW1kNjQtbGludXh8cHBj
NjQtbGludXgpCiAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99
OiBjaGVja2luZyBmb3IgMzIgYml0IGJ1aWxkIHN1cHBvcnQiID4mNQokYXNfZWNob19uICJjaGVj
a2luZyBmb3IgMzIgYml0IGJ1aWxkIHN1cHBvcnQuLi4gIiA+JjY7IH0KICAgICAgICBzYWZlX0NG
TEFHUz0kQ0ZMQUdTCiAgICAgICAgQ0ZMQUdTPSItbTMyIgoKY2F0IGNvbmZkZWZzLmggLSA8PF9B
Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAo
KQp7CgogICAgICAgICAgcmV0dXJuIDA7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNf
Zm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgoKICAgICAgICB7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIg
PiY2OyB9CgplbHNlCgogICAgICAgIHZnX2N2X29ubHk2NGJpdD0ieWVzIgogICAgICAgIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19l
Y2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
b2JqZXh0IFwKICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CiAgICAgICAg
Q0ZMQUdTPSRzYWZlX0NGTEFHUzs7CmVzYWMKCmlmIHRlc3QgeCR2Z19jdl9vbmx5NjRiaXQgPSB4
eWVzIC1hIHgkdmdfY3Zfb25seTMyYml0ID0geHllczsgdGhlbgogICBhc19mbl9lcnJvciAiLS1l
bmFibGUtb25seTMyYml0IHdhcyBzcGVjaWZpZWQgYnV0IHN5c3RlbSBkb2VzIG5vdCBzdXBwb3J0
IDMyIGJpdCBidWlsZHMiICIkTElORU5PIiA1CmZpCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBW
R0NPTkZfQVJDSF9QUkkgaXMgdGhlIGFyY2ggZm9yIHRoZSBwcmltYXJ5IGJ1aWxkIHRhcmdldCwg
ZWcuICJhbWQ2NCIuICBCeQojIGRlZmF1bHQgaXQncyB0aGUgc2FtZSBhcyBBUkNIX01BWC4gIEJ1
dCBpZiwgc2F5LCB3ZSBkbyBhIGJ1aWxkIG9uIGFuIGFtZDY0CiMgbWFjaGluZSwgYnV0IC0tZW5h
YmxlLW9ubHkzMmJpdCBoYXMgYmVlbiByZXF1ZXN0ZWQsIHRoZW4gQVJDSF9NQVggKHNlZQojIGFi
b3ZlKSB3aWxsIGJlICJhbWQ2NCIgc2luY2UgdGhhdCByZWZsZWN0cyB0aGUgbW9zdCB0aGF0IHRo
aXMgY3B1IGNhbiBkbywKIyBidXQgVkdDT05GX0FSQ0hfUFJJIHdpbGwgYmUgZG93bmdyYWRlZCB0
byAieDg2Iiwgc2luY2UgdGhhdCByZWZsZWN0cyB0aGUKIyBhcmNoIGNvcnJlc3BvbmRpbmcgdG8g
dGhlIHByaW1hcnkgYnVpbGQgKFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUykuICBJdCBpcwojIHBh
c3NlZCBpbiB0byBjb21waWxhdGlvbiBvZiBtYW55IEMgZmlsZXMgdmlhIC1WR0FfJChWR0NPTkZf
QVJDSF9QUkkpIGFuZAojIC1WR1BfJChWR0NPTkZfQVJDSF9QUkkpXyQoVkdDT05GX09TKS4KCgoj
IFZHQ09ORl9BUkNIX1NFQyBpcyB0aGUgYXJjaCBmb3IgdGhlIHNlY29uZGFyeSBidWlsZCB0YXJn
ZXQsIGVnLiAieDg2Ii4KIyBJdCBpcyBwYXNzZWQgaW4gdG8gY29tcGlsYXRpb24gb2YgbWFueSBD
IGZpbGVzIHZpYSAtVkdBXyQoVkdDT05GX0FSQ0hfU0VDKQojIGFuZCAtVkdQXyQoVkdDT05GX0FS
Q0hfU0VDKV8kKFZHQ09ORl9PUyksIGlmIHRoZXJlIGlzIGEgc2Vjb25kYXJ5IHRhcmdldC4KIyBJ
dCBpcyBlbXB0eSBpZiB0aGVyZSBpcyBubyBzZWNvbmRhcnkgdGFyZ2V0LgoKCiMgVkdDT05GX1BM
QVRGT1JNX1BSSV9DQVBTIGlzIHRoZSBwcmltYXJ5IGJ1aWxkIHRhcmdldCwgZWcuICJBTUQ2NF9M
SU5VWCIuCiMgVGhlIGVudGlyZSBzeXN0ZW0sIGluY2x1ZGluZyByZWdyZXNzaW9uIGFuZCBwZXJm
b3JtYW5jZSB0ZXN0cywgd2lsbCBiZQojIGJ1aWx0IGZvciB0aGlzIHRhcmdldC4gIFRoZSAiX0NB
UFMiIGluZGljYXRlcyB0aGF0IHRoZSBuYW1lIGlzIGluIGNhcGl0YWwKIyBsZXR0ZXJzLCBhbmQg
aXQgYWxzbyB1c2VzICdfJyByYXRoZXIgdGhhbiAnLScgYXMgYSBzZXBhcmF0b3IsIGJlY2F1c2Ug
aXQncwojIHVzZWQgdG8gY3JlYXRlIHZhcmlvdXMgTWFrZWZpbGUgdmFyaWFibGVzLCB3aGljaCBh
cmUgYWxsIGluIGNhcHMgYnkKIyBjb252ZW50aW9uIGFuZCBjYW5ub3QgY29udGFpbiAnLScgY2hh
cmFjdGVycy4gIFRoaXMgaXMgaW4gY29udHJhc3QgdG8KIyBWR0NPTkZfQVJDSF9QUkkgYW5kIFZH
Q09ORl9PUyB3aGljaCBhcmUgbm90IGluIGNhcHMuCgoKIyBWR0NPTkZfUExBVEZPUk1fU0VDX0NB
UFMgaXMgdGhlIHNlY29uZGFyeSBidWlsZCB0YXJnZXQsIGlmIHRoZXJlIGlzIG9uZS4KIyBWYWxn
cmluZCBhbmQgdG9vbHMgd2lsbCBhbHNvIGJlIGJ1aWx0IGZvciB0aGlzIHRhcmdldCwgYnV0IG5v
dCB0aGUKIyByZWdyZXNzaW9uIG9yIHBlcmZvcm1hbmNlIHRlc3RzLgojCiMgQnkgZGVmYXVsdCwg
dGhlIHByaW1hcnkgYXJjaCBpcyB0aGUgc2FtZSBhcyB0aGUgIm1heCIgYXJjaCwgYXMgY29tbWVu
dGVkCiMgYWJvdmUgKGF0IHRoZSBkZWZpbml0aW9uIG9mIEFSQ0hfTUFYKS4gIFdlIG1heSBjaG9v
c2UgdG8gZG93bmdyYWRlIGl0IGluCiMgdGhlIGJpZyBjYXNlIHN0YXRlbWVudCBqdXN0IGJlbG93
IGhlcmUsIGluIHRoZSBjYXNlIHdoZXJlIHdlJ3JlIGJ1aWxkaW5nCiMgb24gYSA2NCBiaXQgbWFj
aGluZSBidXQgaGF2ZSBiZWVuIHJlcXVlc3RlZCBvbmx5IHRvIGRvIGEgMzIgYml0IGJ1aWxkLgoK
CnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGEg
c3VwcG9ydGVkIENQVS9PUyBjb21iaW5hdGlvbiIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZv
ciBhIHN1cHBvcnRlZCBDUFUvT1MgY29tYmluYXRpb24uLi4gIiA+JjY7IH0KCiMgTkIuICBUaGUg
bG9hZCBhZGRyZXNzIGZvciBhIGdpdmVuIHBsYXRmb3JtIG1heSBiZSBzcGVjaWZpZWQgaW4gbW9y
ZQojIHRoYW4gb25lIHBsYWNlLCBpbiBzb21lIGNhc2VzLCBkZXBlbmRpbmcgb24gd2hldGhlciB3
ZSdyZSBkb2luZyBhIGJpYXJjaCwKIyAzMi1iaXQgb25seSBvciA2NC1iaXQgb25seSBidWlsZC4g
IGVnIHNlZSBjYXNlIGZvciBhbWQ2NC1saW51eCBiZWxvdy4KIyBCZSBjYXJlZnVsIHRvIGdpdmUg
Y29uc2lzdGVudCB2YWx1ZXMgaW4gYWxsIHN1YmNhc2VzLiAgQWxzbywgYWxsIGZvdXIKIyB2YWx0
X2xvYWRfYWRkcmVzX3twcmksc2VjfV97bm9ybWwsaW5uZXJ9IHZhbHVlcyBtdXN0IGFsd2F5cyBi
ZSBzZXQsCiMgZXZlbiBpZiBpdCBpcyB0byAiMHhVTlNFVCIuCiMKY2FzZSAiJEFSQ0hfTUFYLSRW
R0NPTkZfT1MiIGluCiAgICAgeDg2LWxpbnV4KQogICAgICAgIFZHQ09ORl9BUkNIX1BSST0ieDg2
IgogICAgICAgIFZHQ09ORl9BUkNIX1NFQz0iIgoJVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJY
ODZfTElOVVgiCglWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFM9IiIKICAgICAgICB2YWx0X2xvYWRf
YWRkcmVzc19wcmlfbm9ybWw9IjB4MzgwMDAwMDAiCiAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3Nf
cHJpX2lubmVyPSIweDI4MDAwMDAwIgogICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19ub3Jt
bD0iMHhVTlNFVCIKICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfaW5uZXI9IjB4VU5TRVQi
CiAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6
IG9rICgke0FSQ0hfTUFYfS0ke1ZHQ09ORl9PU30pIiA+JjUKJGFzX2VjaG8gIm9rICgke0FSQ0hf
TUFYfS0ke1ZHQ09ORl9PU30pIiA+JjY7IH0KCTs7CiAgICAgYW1kNjQtbGludXgpCiAgICAgICAg
dmFsdF9sb2FkX2FkZHJlc3Nfc2VjX25vcm1sPSIweFVOU0VUIgogICAgICAgIHZhbHRfbG9hZF9h
ZGRyZXNzX3NlY19pbm5lcj0iMHhVTlNFVCIKCWlmIHRlc3QgeCR2Z19jdl9vbmx5NjRiaXQgPSB4
eWVzOyB0aGVuCiAgICAgICAgICAgVkdDT05GX0FSQ0hfUFJJPSJhbWQ2NCIKICAgICAgICAgICBW
R0NPTkZfQVJDSF9TRUM9IiIKCSAgIFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUz0iQU1ENjRfTElO
VVgiCgkgICBWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFM9IiIKICAgICAgICAgICB2YWx0X2xvYWRf
YWRkcmVzc19wcmlfbm9ybWw9IjB4MzgwMDAwMDAiCiAgICAgICAgICAgdmFsdF9sb2FkX2FkZHJl
c3NfcHJpX2lubmVyPSIweDI4MDAwMDAwIgoJZWxpZiB0ZXN0IHgkdmdfY3Zfb25seTMyYml0ID0g
eHllczsgdGhlbgoJICAgVkdDT05GX0FSQ0hfUFJJPSJ4ODYiCiAgICAgICAgICAgVkdDT05GX0FS
Q0hfU0VDPSIiCgkgICBWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFM9Ilg4Nl9MSU5VWCIKCSAgIFZH
Q09ORl9QTEFURk9STV9TRUNfQ0FQUz0iIgogICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3By
aV9ub3JtbD0iMHgzODAwMDAwMCIKICAgICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19wcmlfaW5u
ZXI9IjB4MjgwMDAwMDAiCgllbHNlCiAgICAgICAgICAgVkdDT05GX0FSQ0hfUFJJPSJhbWQ2NCIK
ICAgICAgICAgICBWR0NPTkZfQVJDSF9TRUM9Ing4NiIKCSAgIFZHQ09ORl9QTEFURk9STV9QUklf
Q0FQUz0iQU1ENjRfTElOVVgiCgkgICBWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFM9Ilg4Nl9MSU5V
WCIKICAgICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19wcmlfbm9ybWw9IjB4MzgwMDAwMDAiCiAg
ICAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX2lubmVyPSIweDI4MDAwMDAwIgogICAgICAg
ICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19ub3JtbD0iMHgzODAwMDAwMCIKICAgICAgICAgICB2
YWx0X2xvYWRfYWRkcmVzc19zZWNfaW5uZXI9IjB4MjgwMDAwMDAiCglmaQogICAgICAgIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBvayAoJHtBUkNIX01B
WH0tJHtWR0NPTkZfT1N9KSIgPiY1CiRhc19lY2hvICJvayAoJHtBUkNIX01BWH0tJHtWR0NPTkZf
T1N9KSIgPiY2OyB9Cgk7OwogICAgIHBwYzMyLWxpbnV4KQogICAgICAgIFZHQ09ORl9BUkNIX1BS
ST0icHBjMzIiCiAgICAgICAgVkdDT05GX0FSQ0hfU0VDPSIiCglWR0NPTkZfUExBVEZPUk1fUFJJ
X0NBUFM9IlBQQzMyX0xJTlVYIgoJVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTPSIiCiAgICAgICAg
dmFsdF9sb2FkX2FkZHJlc3NfcHJpX25vcm1sPSIweDM4MDAwMDAwIgogICAgICAgIHZhbHRfbG9h
ZF9hZGRyZXNzX3ByaV9pbm5lcj0iMHgyODAwMDAwMCIKICAgICAgICB2YWx0X2xvYWRfYWRkcmVz
c19zZWNfbm9ybWw9IjB4VU5TRVQiCiAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3Nfc2VjX2lubmVy
PSIweFVOU0VUIgogICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiBvayAoJHtBUkNIX01BWH0tJHtWR0NPTkZfT1N9KSIgPiY1CiRhc19lY2hvICJv
ayAoJHtBUkNIX01BWH0tJHtWR0NPTkZfT1N9KSIgPiY2OyB9Cgk7OwogICAgIHBwYzY0LWFpeDUp
CiAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX25vcm1sPSIweFVOU0VUIgogICAgICAgIHZh
bHRfbG9hZF9hZGRyZXNzX3ByaV9pbm5lcj0iMHhVTlNFVCIKICAgICAgICB2YWx0X2xvYWRfYWRk
cmVzc19zZWNfbm9ybWw9IjB4VU5TRVQiCiAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3Nfc2VjX2lu
bmVyPSIweFVOU0VUIgoJaWYgdGVzdCB4JHZnX2N2X29ubHk2NGJpdCA9IHh5ZXM7IHRoZW4KICAg
ICAgICAgICBWR0NPTkZfQVJDSF9QUkk9InBwYzY0IgogICAgICAgICAgIFZHQ09ORl9BUkNIX1NF
Qz0iIgoJICAgVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJQUEM2NF9BSVg1IgoJICAgVkdDT05G
X1BMQVRGT1JNX1NFQ19DQVBTPSIiCgllbGlmIHRlc3QgeCR2Z19jdl9vbmx5MzJiaXQgPSB4eWVz
OyB0aGVuCgkgICBWR0NPTkZfQVJDSF9QUkk9InBwYzMyIgogICAgICAgICAgIFZHQ09ORl9BUkNI
X1NFQz0iIgoJICAgVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJQUEMzMl9BSVg1IgoJICAgVkdD
T05GX1BMQVRGT1JNX1NFQ19DQVBTPSIiCgllbHNlCgkgICBWR0NPTkZfQVJDSF9QUkk9InBwYzY0
IgogICAgICAgICAgIFZHQ09ORl9BUkNIX1NFQz0icHBjMzIiCgkgICBWR0NPTkZfUExBVEZPUk1f
UFJJX0NBUFM9IlBQQzY0X0FJWDUiCgkgICBWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFM9IlBQQzMy
X0FJWDUiCglmaQogICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiBvayAoJHtBUkNIX01BWH0tJHtWR0NPTkZfT1N9KSIgPiY1CiRhc19lY2hvICJv
ayAoJHtBUkNIX01BWH0tJHtWR0NPTkZfT1N9KSIgPiY2OyB9Cgk7OwogICAgIHBwYzY0LWxpbnV4
KQogICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19ub3JtbD0iMHhVTlNFVCIKICAgICAgICB2
YWx0X2xvYWRfYWRkcmVzc19zZWNfaW5uZXI9IjB4VU5TRVQiCglpZiB0ZXN0IHgkdmdfY3Zfb25s
eTY0Yml0ID0geHllczsgdGhlbgoJICAgVkdDT05GX0FSQ0hfUFJJPSJwcGM2NCIKICAgICAgICAg
ICBWR0NPTkZfQVJDSF9TRUM9IiIKCSAgIFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUz0iUFBDNjRf
TElOVVgiCgkgICBWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFM9IiIKICAgICAgICAgICB2YWx0X2xv
YWRfYWRkcmVzc19wcmlfbm9ybWw9IjB4MzgwMDAwMDAiCiAgICAgICAgICAgdmFsdF9sb2FkX2Fk
ZHJlc3NfcHJpX2lubmVyPSIweDI4MDAwMDAwIgoJZWxpZiB0ZXN0IHgkdmdfY3Zfb25seTMyYml0
ID0geHllczsgdGhlbgoJICAgVkdDT05GX0FSQ0hfUFJJPSJwcGMzMiIKICAgICAgICAgICBWR0NP
TkZfQVJDSF9TRUM9IiIKCSAgIFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUz0iUFBDMzJfTElOVVgi
CgkgICBWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFM9IiIKICAgICAgICAgICB2YWx0X2xvYWRfYWRk
cmVzc19wcmlfbm9ybWw9IjB4MzgwMDAwMDAiCiAgICAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3Nf
cHJpX2lubmVyPSIweDI4MDAwMDAwIgoJZWxzZQoJICAgVkdDT05GX0FSQ0hfUFJJPSJwcGM2NCIK
ICAgICAgICAgICBWR0NPTkZfQVJDSF9TRUM9InBwYzMyIgoJICAgVkdDT05GX1BMQVRGT1JNX1BS
SV9DQVBTPSJQUEM2NF9MSU5VWCIKCSAgIFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUz0iUFBDMzJf
TElOVVgiCiAgICAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX25vcm1sPSIweDM4MDAwMDAw
IgogICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9pbm5lcj0iMHgyODAwMDAwMCIKICAg
ICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfbm9ybWw9IjB4MzgwMDAwMDAiCiAgICAgICAg
ICAgdmFsdF9sb2FkX2FkZHJlc3Nfc2VjX2lubmVyPSIweDI4MDAwMDAwIgoJZmkKICAgICAgICB7
ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogb2sgKCR7QVJD
SF9NQVh9LSR7VkdDT05GX09TfSkiID4mNQokYXNfZWNobyAib2sgKCR7QVJDSF9NQVh9LSR7VkdD
T05GX09TfSkiID4mNjsgfQoJOzsKICAgICAjIERhcndpbiBnZXRzIGlkZW50aWZpZWQgYXMgMzIt
Yml0IGV2ZW4gd2hlbiBpdCBzdXBwb3J0cyA2NC1iaXQuCiAgICAgIyAoTm90IHN1cmUgd2h5LCBw
b3NzaWJseSBiZWNhdXNlICd1bmFtZScgcmV0dXJucyAiaTM4NiI/KSAgSnVzdCBhYm91dAogICAg
ICMgYWxsIE1hY3Mgc3VwcG9ydCBib3RoIDMyLWJpdCBhbmQgNjQtYml0LCBzbyB3ZSBqdXN0IGJ1
aWxkIGJvdGguICBJZgogICAgICMgc29tZW9uZSBoYXMgYSByZWFsbHkgb2xkIDMyLWJpdCBvbmx5
IG1hY2hpbmUgdGhleSBjYW4gKGhvcGVmdWxseT8pCiAgICAgIyBidWlsZCB3aXRoIC0tZW5hYmxl
LW9ubHkzMmJpdC4gIFNlZSBidWcgMjQzMzYyLgogICAgIHg4Ni1kYXJ3aW58YW1kNjQtZGFyd2lu
KQogICAgICAgIEFSQ0hfTUFYPSJhbWQ2NCIKICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNf
bm9ybWw9IjB4VU5TRVQiCiAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3Nfc2VjX2lubmVyPSIweFVO
U0VUIgoJaWYgdGVzdCB4JHZnX2N2X29ubHk2NGJpdCA9IHh5ZXM7IHRoZW4KICAgICAgICAgICBW
R0NPTkZfQVJDSF9QUkk9ImFtZDY0IgogICAgICAgICAgIFZHQ09ORl9BUkNIX1NFQz0iIgoJICAg
VkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJBTUQ2NF9EQVJXSU4iCgkgICBWR0NPTkZfUExBVEZP
Uk1fU0VDX0NBUFM9IiIKICAgICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19wcmlfbm9ybWw9IjB4
MTM4MDAwMDAwIgogICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9pbm5lcj0iMHgxMjgw
MDAwMDAiCgllbGlmIHRlc3QgeCR2Z19jdl9vbmx5MzJiaXQgPSB4eWVzOyB0aGVuCiAgICAgICAg
ICAgVkdDT05GX0FSQ0hfUFJJPSJ4ODYiCiAgICAgICAgICAgVkdDT05GX0FSQ0hfU0VDPSIiCgkg
ICBWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFM9Ilg4Nl9EQVJXSU4iCgkgICBWR0NPTkZfUExBVEZP
Uk1fU0VDX0NBUFM9IiIKCSAgIFZHQ09ORl9BUkNIX1BSSV9DQVBTPSJ4ODYiCiAgICAgICAgICAg
dmFsdF9sb2FkX2FkZHJlc3NfcHJpX25vcm1sPSIweDM4MDAwMDAwIgogICAgICAgICAgIHZhbHRf
bG9hZF9hZGRyZXNzX3ByaV9pbm5lcj0iMHgyODAwMDAwMCIKCWVsc2UKICAgICAgICAgICBWR0NP
TkZfQVJDSF9QUkk9ImFtZDY0IgogICAgICAgICAgIFZHQ09ORl9BUkNIX1NFQz0ieDg2IgoJICAg
VkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJBTUQ2NF9EQVJXSU4iCgkgICBWR0NPTkZfUExBVEZP
Uk1fU0VDX0NBUFM9Ilg4Nl9EQVJXSU4iCiAgICAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJp
X25vcm1sPSIweDEzODAwMDAwMCIKICAgICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19wcmlfaW5u
ZXI9IjB4MTI4MDAwMDAwIgogICAgICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19ub3JtbD0i
MHgzODAwMDAwMCIKICAgICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfaW5uZXI9IjB4Mjgw
MDAwMDAiCglmaQogICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiBvayAoJHtBUkNIX01BWH0tJHtWR0NPTkZfT1N9KSIgPiY1CiRhc19lY2hvICJv
ayAoJHtBUkNIX01BWH0tJHtWR0NPTkZfT1N9KSIgPiY2OyB9Cgk7OwogICAgIGFybS1saW51eCkK
CVZHQ09ORl9BUkNIX1BSST0iYXJtIgoJVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTPSJBUk1fTElO
VVgiCglWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFM9IiIKCXZhbHRfbG9hZF9hZGRyZXNzX3ByaV9u
b3JtbD0iMHgzODAwMDAwMCIKCXZhbHRfbG9hZF9hZGRyZXNzX3ByaV9pbm5lcj0iMHgyODAwMDAw
MCIKICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfbm9ybWw9IjB4VU5TRVQiCiAgICAgICAg
dmFsdF9sb2FkX2FkZHJlc3Nfc2VjX2lubmVyPSIweFVOU0VUIgoJeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG9rICgke2hvc3RfY3B1fS0ke2hvc3Rfb3N9
KSIgPiY1CiRhc19lY2hvICJvayAoJHtob3N0X2NwdX0tJHtob3N0X29zfSkiID4mNjsgfQoJOzsK
ICAgICopCiAgICAgICAgVkdDT05GX0FSQ0hfUFJJPSJ1bmtub3duIgogICAgICAgIFZHQ09ORl9B
UkNIX1NFQz0idW5rbm93biIKCVZHQ09ORl9QTEFURk9STV9QUklfQ0FQUz0iVU5LTk9XTiIKCVZH
Q09ORl9QTEFURk9STV9TRUNfQ0FQUz0iVU5LTk9XTiIKICAgICAgICB2YWx0X2xvYWRfYWRkcmVz
c19wcmlfbm9ybWw9IjB4VU5TRVQiCiAgICAgICAgdmFsdF9sb2FkX2FkZHJlc3NfcHJpX2lubmVy
PSIweFVOU0VUIgogICAgICAgIHZhbHRfbG9hZF9hZGRyZXNzX3NlY19ub3JtbD0iMHhVTlNFVCIK
ICAgICAgICB2YWx0X2xvYWRfYWRkcmVzc19zZWNfaW5uZXI9IjB4VU5TRVQiCiAgICAgICAgeyAk
YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vICgke0FSQ0hf
TUFYfS0ke1ZHQ09ORl9PU30pIiA+JjUKJGFzX2VjaG8gIm5vICgke0FSQ0hfTUFYfS0ke1ZHQ09O
Rl9PU30pIiA+JjY7IH0KICAgICAgICBhc19mbl9lcnJvciAiVmFsZ3JpbmQgaXMgcGxhdGZvcm0g
c3BlY2lmaWMuIFNvcnJ5LiBQbGVhc2UgY29uc2lkZXIgZG9pbmcgYSBwb3J0LiIgIiRMSU5FTk8i
IDUKICAgICAgICA7Owplc2FjCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBTZXQgdXAgVkdDT05G
X0FSQ0hTX0lOQ0xVREVfPGFyY2g+LiAgRWl0aGVyIG9uZSBvciB0d28gb2YgdGhlc2UgYmVjb21l
CiMgZGVmaW5lZC4KIGlmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4WDg2X0xJ
TlVYIFwKICAgICAgICAgICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyA9IHhY
ODZfTElOVVggXAogICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBT
ID0geFg4Nl9EQVJXSU4gXAogICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1NF
Q19DQVBTID0geFg4Nl9EQVJXSU4gOyB0aGVuCiAgVkdDT05GX0FSQ0hTX0lOQ0xVREVfWDg2X1RS
VUU9CiAgVkdDT05GX0FSQ0hTX0lOQ0xVREVfWDg2X0ZBTFNFPScjJwplbHNlCiAgVkdDT05GX0FS
Q0hTX0lOQ0xVREVfWDg2X1RSVUU9JyMnCiAgVkdDT05GX0FSQ0hTX0lOQ0xVREVfWDg2X0ZBTFNF
PQpmaQoKIGlmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QU1ENjRfTElOVVgg
XAogICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geEFNRDY0
X0RBUldJTiA7IHRoZW4KICBWR0NPTkZfQVJDSFNfSU5DTFVERV9BTUQ2NF9UUlVFPQogIFZHQ09O
Rl9BUkNIU19JTkNMVURFX0FNRDY0X0ZBTFNFPScjJwplbHNlCiAgVkdDT05GX0FSQ0hTX0lOQ0xV
REVfQU1ENjRfVFJVRT0nIycKICBWR0NPTkZfQVJDSFNfSU5DTFVERV9BTUQ2NF9GQUxTRT0KZmkK
CiBpZiB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFBQQzMyX0xJTlVYIFwKICAg
ICAgICAgICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyA9IHhQUEMzMl9MSU5V
WCBcCiAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4UFBD
MzJfQUlYNSBcCiAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFMg
PSB4UFBDMzJfQUlYNSA7IHRoZW4KICBWR0NPTkZfQVJDSFNfSU5DTFVERV9QUEMzMl9UUlVFPQog
IFZHQ09ORl9BUkNIU19JTkNMVURFX1BQQzMyX0ZBTFNFPScjJwplbHNlCiAgVkdDT05GX0FSQ0hT
X0lOQ0xVREVfUFBDMzJfVFJVRT0nIycKICBWR0NPTkZfQVJDSFNfSU5DTFVERV9QUEMzMl9GQUxT
RT0KZmkKCiBpZiB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFBQQzY0X0xJTlVY
IFwKICAgICAgICAgICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhQUEM2
NF9BSVg1IDsgdGhlbgogIFZHQ09ORl9BUkNIU19JTkNMVURFX1BQQzY0X1RSVUU9CiAgVkdDT05G
X0FSQ0hTX0lOQ0xVREVfUFBDNjRfRkFMU0U9JyMnCmVsc2UKICBWR0NPTkZfQVJDSFNfSU5DTFVE
RV9QUEM2NF9UUlVFPScjJwogIFZHQ09ORl9BUkNIU19JTkNMVURFX1BQQzY0X0ZBTFNFPQpmaQoK
IGlmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4QVJNX0xJTlVYIDsgdGhlbgog
IFZHQ09ORl9BUkNIU19JTkNMVURFX0FSTV9UUlVFPQogIFZHQ09ORl9BUkNIU19JTkNMVURFX0FS
TV9GQUxTRT0nIycKZWxzZQogIFZHQ09ORl9BUkNIU19JTkNMVURFX0FSTV9UUlVFPScjJwogIFZH
Q09ORl9BUkNIU19JTkNMVURFX0FSTV9GQUxTRT0KZmkKCgojIFNldCB1cCBWR0NPTkZfUExBVEZP
Uk1TX0lOQ0xVREVfPHBsYXRmb3JtPi4gIEVpdGhlciBvbmUgb3IgdHdvIG9mIHRoZXNlCiMgYmVj
b21lIGRlZmluZWQuCiBpZiB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFg4Nl9M
SU5VWCBcCiAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFMgPSB4
WDg2X0xJTlVYOyB0aGVuCiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9MSU5VWF9UUlVF
PQogIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9YODZfTElOVVhfRkFMU0U9JyMnCmVsc2UKICBW
R0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X0xJTlVYX1RSVUU9JyMnCiAgVkdDT05GX1BMQVRG
T1JNU19JTkNMVURFX1g4Nl9MSU5VWF9GQUxTRT0KZmkKCiBpZiB0ZXN0IHgkVkdDT05GX1BMQVRG
T1JNX1BSSV9DQVBTID0geEFNRDY0X0xJTlVYOyB0aGVuCiAgVkdDT05GX1BMQVRGT1JNU19JTkNM
VURFX0FNRDY0X0xJTlVYX1RSVUU9CiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX0FNRDY0X0xJ
TlVYX0ZBTFNFPScjJwplbHNlCiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX0FNRDY0X0xJTlVY
X1RSVUU9JyMnCiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX0FNRDY0X0xJTlVYX0ZBTFNFPQpm
aQoKIGlmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4UFBDMzJfTElOVVggXAog
ICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1NFQ19DQVBTID0geFBQQzMyX0xJ
TlVYOyB0aGVuCiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1BQQzMyX0xJTlVYX1RSVUU9CiAg
VkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1BQQzMyX0xJTlVYX0ZBTFNFPScjJwplbHNlCiAgVkdD
T05GX1BMQVRGT1JNU19JTkNMVURFX1BQQzMyX0xJTlVYX1RSVUU9JyMnCiAgVkdDT05GX1BMQVRG
T1JNU19JTkNMVURFX1BQQzMyX0xJTlVYX0ZBTFNFPQpmaQoKIGlmIHRlc3QgeCRWR0NPTkZfUExB
VEZPUk1fUFJJX0NBUFMgPSB4UFBDNjRfTElOVVg7IHRoZW4KICBWR0NPTkZfUExBVEZPUk1TX0lO
Q0xVREVfUFBDNjRfTElOVVhfVFJVRT0KICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBDNjRf
TElOVVhfRkFMU0U9JyMnCmVsc2UKICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBDNjRfTElO
VVhfVFJVRT0nIycKICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBDNjRfTElOVVhfRkFMU0U9
CmZpCgogaWYgdGVzdCB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhBUk1fTElOVVg7IHRo
ZW4KICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfQVJNX0xJTlVYX1RSVUU9CiAgVkdDT05GX1BM
QVRGT1JNU19JTkNMVURFX0FSTV9MSU5VWF9GQUxTRT0nIycKZWxzZQogIFZHQ09ORl9QTEFURk9S
TVNfSU5DTFVERV9BUk1fTElOVVhfVFJVRT0nIycKICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVf
QVJNX0xJTlVYX0ZBTFNFPQpmaQoKCiBpZiB0ZXN0IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBT
ID0geFBQQzMyX0FJWDUgXAogICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1NF
Q19DQVBTID0geFBQQzMyX0FJWDU7IHRoZW4KICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBD
MzJfQUlYNV9UUlVFPQogIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9QUEMzMl9BSVg1X0ZBTFNF
PScjJwplbHNlCiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1BQQzMyX0FJWDVfVFJVRT0nIycK
ICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBDMzJfQUlYNV9GQUxTRT0KZmkKCiBpZiB0ZXN0
IHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFBQQzY0X0FJWDU7IHRoZW4KICBWR0NPTkZf
UExBVEZPUk1TX0lOQ0xVREVfUFBDNjRfQUlYNV9UUlVFPQogIFZHQ09ORl9QTEFURk9STVNfSU5D
TFVERV9QUEM2NF9BSVg1X0ZBTFNFPScjJwplbHNlCiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURF
X1BQQzY0X0FJWDVfVFJVRT0nIycKICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBDNjRfQUlY
NV9GQUxTRT0KZmkKCgogaWYgdGVzdCB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhYODZf
REFSV0lOIFwKICAgICAgICAgICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyA9
IHhYODZfREFSV0lOOyB0aGVuCiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9EQVJXSU5f
VFJVRT0KICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X0RBUldJTl9GQUxTRT0nIycKZWxz
ZQogIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9YODZfREFSV0lOX1RSVUU9JyMnCiAgVkdDT05G
X1BMQVRGT1JNU19JTkNMVURFX1g4Nl9EQVJXSU5fRkFMU0U9CmZpCgogaWYgdGVzdCB4JFZHQ09O
Rl9QTEFURk9STV9QUklfQ0FQUyA9IHhBTUQ2NF9EQVJXSU47IHRoZW4KICBWR0NPTkZfUExBVEZP
Uk1TX0lOQ0xVREVfQU1ENjRfREFSV0lOX1RSVUU9CiAgVkdDT05GX1BMQVRGT1JNU19JTkNMVURF
X0FNRDY0X0RBUldJTl9GQUxTRT0nIycKZWxzZQogIFZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9B
TUQ2NF9EQVJXSU5fVFJVRT0nIycKICBWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfQU1ENjRfREFS
V0lOX0ZBTFNFPQpmaQoKCgojIFNpbWlsYXJseSwgc2V0IHVwIFZHQ09ORl9PU19JU188b3M+LiAg
RXhhY3RseSBvbmUgb2YgdGhlc2UgYmVjb21lcyBkZWZpbmVkLgojIFJlbGllcyBvbiB0aGUgYXNz
dW1wdGlvbiB0aGF0IHRoZSBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgdGFyZ2V0cyBhcmUKIyBmb3Ig
dGhlIHNhbWUgT1MsIHNvIHRoZXJlZm9yZSBvbmx5IG5lY2Vzc2FyeSB0byB0ZXN0IHRoZSBwcmlt
YXJ5LgogaWYgdGVzdCB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhYODZfTElOVVggXAog
ICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geEFNRDY0X0xJ
TlVYIFwKICAgICAgICAgICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhQ
UEMzMl9MSU5VWCBcCiAgICAgICAgICAgICAgICAgLW8geCRWR0NPTkZfUExBVEZPUk1fUFJJX0NB
UFMgPSB4UFBDNjRfTElOVVggXAogICAgICAgICAgICAgICAgIC1vIHgkVkdDT05GX1BMQVRGT1JN
X1BSSV9DQVBTID0geEFSTV9MSU5VWCA7IHRoZW4KICBWR0NPTkZfT1NfSVNfTElOVVhfVFJVRT0K
ICBWR0NPTkZfT1NfSVNfTElOVVhfRkFMU0U9JyMnCmVsc2UKICBWR0NPTkZfT1NfSVNfTElOVVhf
VFJVRT0nIycKICBWR0NPTkZfT1NfSVNfTElOVVhfRkFMU0U9CmZpCgogaWYgdGVzdCB4JFZHQ09O
Rl9QTEFURk9STV9QUklfQ0FQUyA9IHhQUEMzMl9BSVg1IFwKICAgICAgICAgICAgICAgICAtbyB4
JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhQUEM2NF9BSVg1OyB0aGVuCiAgVkdDT05GX09T
X0lTX0FJWDVfVFJVRT0KICBWR0NPTkZfT1NfSVNfQUlYNV9GQUxTRT0nIycKZWxzZQogIFZHQ09O
Rl9PU19JU19BSVg1X1RSVUU9JyMnCiAgVkdDT05GX09TX0lTX0FJWDVfRkFMU0U9CmZpCgogaWYg
dGVzdCB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhYODZfREFSV0lOIFwKICAgICAgICAg
ICAgICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhBTUQ2NF9EQVJXSU47IHRo
ZW4KICBWR0NPTkZfT1NfSVNfREFSV0lOX1RSVUU9CiAgVkdDT05GX09TX0lTX0RBUldJTl9GQUxT
RT0nIycKZWxzZQogIFZHQ09ORl9PU19JU19EQVJXSU5fVFJVRT0nIycKICBWR0NPTkZfT1NfSVNf
REFSV0lOX0ZBTFNFPQpmaQoKCgojIFNvbWV0aW1lcywgaW4gdGhlIE1ha2VmaWxlLmFtIGZpbGVz
LCBpdCdzIHVzZWZ1bCB0byBrbm93IHdoZXRoZXIgb3Igbm90CiMgdGhlcmUgaXMgYSBzZWNvbmRh
cnkgdGFyZ2V0LgogaWYgdGVzdCB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyAhPSB4OyB0aGVu
CiAgVkdDT05GX0hBVkVfUExBVEZPUk1fU0VDX1RSVUU9CiAgVkdDT05GX0hBVkVfUExBVEZPUk1f
U0VDX0ZBTFNFPScjJwplbHNlCiAgVkdDT05GX0hBVkVfUExBVEZPUk1fU0VDX1RSVUU9JyMnCiAg
VkdDT05GX0hBVkVfUExBVEZPUk1fU0VDX0ZBTFNFPQpmaQoKCgojLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQojIElubmVyIFZhbGdyaW5kPwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyBDaGVjayBpZiB0aGlz
IHNob3VsZCBiZSBidWlsdCBhcyBhbiBpbm5lciBWYWxncmluZCwgdG8gYmUgcnVuIHdpdGhpbgoj
IGFub3RoZXIgVmFsZ3JpbmQuICBDaG9vc2UgdGhlIGxvYWQgYWRkcmVzcyBhY2NvcmRpbmdseS4K
Cgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciB1
c2UgYXMgYW4gaW5uZXIgVmFsZ3JpbmQiID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgdXNl
IGFzIGFuIGlubmVyIFZhbGdyaW5kLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7dmdfY3ZfaW5uZXIr
c2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICAj
IENoZWNrIHdoZXRoZXIgLS1lbmFibGUtaW5uZXIgd2FzIGdpdmVuLgppZiB0ZXN0ICIke2VuYWJs
ZV9pbm5lcitzZXR9IiA9IHNldDsgdGhlbiA6CiAgZW5hYmxldmFsPSRlbmFibGVfaW5uZXI7IHZn
X2N2X2lubmVyPSRlbmFibGV2YWwKZWxzZQogIHZnX2N2X2lubmVyPW5vCmZpCgpmaQp7ICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHZnX2N2X2lubmVyIiA+
JjUKJGFzX2VjaG8gIiR2Z19jdl9pbm5lciIgPiY2OyB9CmlmIHRlc3QgIiR2Z19jdl9pbm5lciIg
PSB5ZXM7IHRoZW4KCiRhc19lY2hvICIjZGVmaW5lIEVOQUJMRV9JTk5FUiAxIiA+PmNvbmZkZWZz
LmgKCiAgICBWQUxUX0xPQURfQUREUkVTU19QUkk9JHZhbHRfbG9hZF9hZGRyZXNzX3ByaV9pbm5l
cgogICAgVkFMVF9MT0FEX0FERFJFU1NfU0VDPSR2YWx0X2xvYWRfYWRkcmVzc19zZWNfaW5uZXIK
ZWxzZQogICAgVkFMVF9MT0FEX0FERFJFU1NfUFJJPSR2YWx0X2xvYWRfYWRkcmVzc19wcmlfbm9y
bWwKICAgIFZBTFRfTE9BRF9BRERSRVNTX1NFQz0kdmFsdF9sb2FkX2FkZHJlc3Nfc2VjX25vcm1s
CmZpCgoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBMaWJjIGFuZCBzdXBwcmVzc2lvbnMKIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIyBUaGlzIHZhcmlhYmxlIHdpbGwgY29sbGVjdCB0aGUgc3VwcHJlc3Np
b24gZmlsZXMgdG8gYmUgdXNlZC4KCgoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUi
ID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgZ3JlcCB0aGF0IGhhbmRsZXMgbG9uZyBsaW5l
cyBhbmQgLWUuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9wYXRoX0dSRVArc2V0fSIgPSBz
ZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBpZiB0ZXN0IC16
ICIkR1JFUCI7IHRoZW4KICBhY19wYXRoX0dSRVBfZm91bmQ9ZmFsc2UKICAjIExvb3AgdGhyb3Vn
aCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAogIGFz
X3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSCRQ
QVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4KZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAt
eiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19wcm9nIGluIGdyZXAgZ2dyZXA7IGRv
CiAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8K
ICAgICAgYWNfcGF0aF9HUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgogICAgICB7
IHRlc3QgLWYgIiRhY19wYXRoX0dSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0dSRVAiOyB9
IHx8IGNvbnRpbnVlCiMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0dSRVAgYW5kIHNlbGVjdCBpdCBp
ZiBpdCBpcyBmb3VuZC4KICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfR1JFUApjYXNlIGAiJGFj
X3BhdGhfR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCipHTlUqKQogIGFjX2N2X3BhdGhfR1JFUD0i
JGFjX3BhdGhfR1JFUCIgYWNfcGF0aF9HUkVQX2ZvdW5kPTo7OwoqKQogIGFjX2NvdW50PTAKICAk
YXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKICB3aGlsZSA6CiAgZG8KICAgIGNh
dCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50bXAiCiAgICBtdiAiY29u
ZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCiAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5u
bCIKICAgICRhc19lY2hvICdHUkVQJyA+PiAiY29uZnRlc3QubmwiCiAgICAiJGFjX3BhdGhfR1JF
UCIgLWUgJ0dSRVAkJyAtZSAnLShjYW5ub3QgbWF0Y2gpLScgPCAiY29uZnRlc3QubmwiID4iY29u
ZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVhawogICAgZGlmZiAiY29uZnRlc3Qub3V0IiAi
Y29uZnRlc3QubmwiID4vZGV2L251bGwgMj4mMSB8fCBicmVhawogICAgYXNfZm5fYXJpdGggJGFj
X2NvdW50ICsgMSAmJiBhY19jb3VudD0kYXNfdmFsCiAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3Qg
JHthY19wYXRoX0dSRVBfbWF4LTB9OyB0aGVuCiAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZl
IGl0IGJ1dCBrZWVwIGxvb2tpbmcgZm9yIGEgYmV0dGVyIG9uZQogICAgICBhY19jdl9wYXRoX0dS
RVA9IiRhY19wYXRoX0dSRVAiCiAgICAgIGFjX3BhdGhfR1JFUF9tYXg9JGFjX2NvdW50CiAgICBm
aQogICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAog
ICAgdGVzdCAkYWNfY291bnQgLWd0IDEwICYmIGJyZWFrCiAgZG9uZQogIHJtIC1mIGNvbmZ0ZXN0
LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7Owplc2FjCgogICAgICAk
YWNfcGF0aF9HUkVQX2ZvdW5kICYmIGJyZWFrIDMKICAgIGRvbmUKICBkb25lCiAgZG9uZQpJRlM9
JGFzX3NhdmVfSUZTCiAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfR1JFUCI7IHRoZW4KICAgIGFz
X2ZuX2Vycm9yICJubyBhY2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFU
SF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiAiJExJTkVOTyIgNQogIGZpCmVsc2UKICBhY19jdl9w
YXRoX0dSRVA9JEdSRVAKZmkKCmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogcmVzdWx0OiAkYWNfY3ZfcGF0aF9HUkVQIiA+JjUKJGFzX2VjaG8gIiRhY19jdl9wYXRo
X0dSRVAiID4mNjsgfQogR1JFUD0iJGFjX2N2X3BhdGhfR1JFUCIKCgp7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1CiRhc19lY2hv
X24gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3BhdGhf
RUdSRVArc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVs
c2UKICBpZiBlY2hvIGEgfCAkR1JFUCAtRSAnKGF8YiknID4vZGV2L251bGwgMj4mMQogICB0aGVu
IGFjX2N2X3BhdGhfRUdSRVA9IiRHUkVQIC1FIgogICBlbHNlCiAgICAgaWYgdGVzdCAteiAiJEVH
UkVQIjsgdGhlbgogIGFjX3BhdGhfRUdSRVBfZm91bmQ9ZmFsc2UKICAjIExvb3AgdGhyb3VnaCB0
aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAogIGFzX3Nh
dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRI
X1NFUEFSQVRPUi91c3IveHBnNC9iaW4KZG8KICBJRlM9JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAi
JGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19wcm9nIGluIGVncmVwOyBkbwogICAgZm9y
IGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgICAgIGFj
X3BhdGhfRUdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCiAgICAgIHsgdGVzdCAt
ZiAiJGFjX3BhdGhfRUdSRVAiICYmICRhc190ZXN0X3ggIiRhY19wYXRoX0VHUkVQIjsgfSB8fCBj
b250aW51ZQojIENoZWNrIGZvciBHTlUgYWNfcGF0aF9FR1JFUCBhbmQgc2VsZWN0IGl0IGlmIGl0
IGlzIGZvdW5kLgogICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9FR1JFUApjYXNlIGAiJGFjX3Bh
dGhfRUdSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgoqR05VKikKICBhY19jdl9wYXRoX0VHUkVQPSIk
YWNfcGF0aF9FR1JFUCIgYWNfcGF0aF9FR1JFUF9mb3VuZD06OzsKKikKICBhY19jb3VudD0wCiAg
JGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4iCiAgd2hpbGUgOgogIGRvCiAgICBj
YXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4iID4iY29uZnRlc3QudG1wIgogICAgbXYgImNv
bmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgogICAgY3AgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3Qu
bmwiCiAgICAkYXNfZWNobyAnRUdSRVAnID4+ICJjb25mdGVzdC5ubCIKICAgICIkYWNfcGF0aF9F
R1JFUCIgJ0VHUkVQJCcgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVs
bCB8fCBicmVhawogICAgZGlmZiAiY29uZnRlc3Qub3V0IiAiY29uZnRlc3QubmwiID4vZGV2L251
bGwgMj4mMSB8fCBicmVhawogICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsgMSAmJiBhY19jb3Vu
dD0kYXNfdmFsCiAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX0VHUkVQX21heC0w
fTsgdGhlbgogICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5n
IGZvciBhIGJldHRlciBvbmUKICAgICAgYWNfY3ZfcGF0aF9FR1JFUD0iJGFjX3BhdGhfRUdSRVAi
CiAgICAgIGFjX3BhdGhfRUdSRVBfbWF4PSRhY19jb3VudAogICAgZmkKICAgICMgMTAqKDJeMTAp
IGNoYXJzIGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKICAgIHRlc3QgJGFjX2NvdW50
IC1ndCAxMCAmJiBicmVhawogIGRvbmUKICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAg
Y29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKZXNhYwoKICAgICAgJGFjX3BhdGhfRUdSRVBfZm91
bmQgJiYgYnJlYWsgMwogICAgZG9uZQogIGRvbmUKICBkb25lCklGUz0kYXNfc2F2ZV9JRlMKICBp
ZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9FR1JFUCI7IHRoZW4KICAgIGFzX2ZuX2Vycm9yICJubyBh
Y2NlcHRhYmxlIGVncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vz
ci94cGc0L2JpbiIgIiRMSU5FTk8iIDUKICBmaQplbHNlCiAgYWNfY3ZfcGF0aF9FR1JFUD0kRUdS
RVAKZmkKCiAgIGZpCmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
cmVzdWx0OiAkYWNfY3ZfcGF0aF9FR1JFUCIgPiY1CiRhc19lY2hvICIkYWNfY3ZfcGF0aF9FR1JF
UCIgPiY2OyB9CiBFR1JFUD0iJGFjX2N2X3BhdGhfRUdSRVAiCgoKeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIg
PiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICIgPiY2
OyB9CmlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRh
c19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9G
ID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN0ZGxp
Yi5oPgojaW5jbHVkZSA8c3RkYXJnLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPGZs
b2F0Lmg+CgppbnQKbWFpbiAoKQp7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5f
Y190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgogIGFjX2N2X2hlYWRlcl9zdGRjPXllcwpl
bHNlCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u
ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CgppZiB0ZXN0ICRhY19jdl9oZWFkZXJf
c3RkYyA9IHllczsgdGhlbgogICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUg
bWVtKiwgY29udHJhcnkgdG8gQU5TSS4KICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m
dGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN0cmluZy5oPgoK
X0FDRU9GCmlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKICAkRUdS
RVAgIm1lbWNociIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoKCmVsc2UKICBhY19jdl9oZWFkZXJf
c3RkYz1ubwpmaQpybSAtZiBjb25mdGVzdCoKCmZpCgppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3Rk
YyA9IHllczsgdGhlbgogICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJl
ZSwgY29udHJhcnkgdG8gQU5TSS4KICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz
dC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKX0FD
RU9GCmlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKICAkRUdSRVAg
ImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbiA6CgplbHNlCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9
bm8KZmkKcm0gLWYgY29uZnRlc3QqCgpmaQoKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5
ZXM7IHRoZW4KICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1h
Y3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCiAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5
ZXM7IHRoZW4gOgogIDoKZWxzZQogIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0
LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwojaW5jbHVkZSA8Y3R5cGUuaD4KI2luY2x1
ZGUgPHN0ZGxpYi5oPgojaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCiMgZGVmaW5lIElTTE9X
RVIoYykgKCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNM
T1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQojZWxzZQojIGRlZmluZSBJU0xPV0VS
KGMpIFwKCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAoJCSAgICAgfHwgKCdqJyA8
PSAoYykgJiYgKGMpIDw9ICdyJykgXAoJCSAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6
JykpCiMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykp
CiNlbmRpZgoKI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYp
KSkKaW50Cm1haW4gKCkKewogIGludCBpOwogIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKICAg
IGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKCXx8IHRvdXBwZXIgKGkpICE9IFRP
VVBQRVIgKGkpKQogICAgICByZXR1cm4gMjsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5f
Y190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6CgplbHNlCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8K
ZmkKcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25m
dGVzdCRhY19leGVleHQgXAogIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuYmVhbSBjb25m
dGVzdC4kYWNfZXh0CmZpCgpmaQpmaQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ
TkVOT306IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKJGFzX2VjaG8gIiRhY19jdl9o
ZWFkZXJfc3RkYyIgPiY2OyB9CmlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVu
CgokYXNfZWNobyAiI2RlZmluZSBTVERDX0hFQURFUlMgMSIgPj5jb25mZGVmcy5oCgpmaQoKIyBP
biBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25mbGljdGluZy4KZm9y
IGFjX2hlYWRlciBpbiBzeXMvdHlwZXMuaCBzeXMvc3RhdC5oIHN0ZGxpYi5oIHN0cmluZy5oIG1l
bW9yeS5oIHN0cmluZ3MuaCBcCgkJICBpbnR0eXBlcy5oIHN0ZGludC5oIHVuaXN0ZC5oCmRvIDoK
ICBhc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNf
dHJfc2hgCmFjX2ZuX2NfY2hlY2tfaGVhZGVyX2NvbXBpbGUgIiRMSU5FTk8iICIkYWNfaGVhZGVy
IiAiJGFzX2FjX0hlYWRlciIgIiRhY19pbmNsdWRlc19kZWZhdWx0CiIKZXZhbCBhc192YWw9XCQk
YXNfYWNfSGVhZGVyCiAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbiA6CiAgY2F0
ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVy
IiB8ICRhc190cl9jcHBgIDEKX0FDRU9GCgpmaQoKZG9uZQoKCmFjX2ZuX2NfY2hlY2tfaGVhZGVy
X21vbmdyZWwgIiRMSU5FTk8iICJmZWF0dXJlcy5oIiAiYWNfY3ZfaGVhZGVyX2ZlYXR1cmVzX2gi
ICIkYWNfaW5jbHVkZXNfZGVmYXVsdCIKaWYgdGVzdCAieCRhY19jdl9oZWFkZXJfZmVhdHVyZXNf
aCIgPSB4IiJ5ZXM7IHRoZW4gOgoKZmkKCgoKaWYgdGVzdCB4JGFjX2N2X2hlYWRlcl9mZWF0dXJl
c19oID0geHllczsgdGhlbgogIHJtIC1mIGNvbmZ0ZXN0LiRhY19leHQKICBjYXQgPDxfQUNFT0Yg
PmNvbmZ0ZXN0LiRhY19leHQKI2luY2x1ZGUgPGZlYXR1cmVzLmg+CiNpZiBkZWZpbmVkKF9fR05V
X0xJQlJBUllfXykgJiYgZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19HTElCQ19NSU5P
Ul9fKQpnbGliYyB2ZXJzaW9uIGlzOiBfX0dMSUJDX18gX19HTElCQ19NSU5PUl9fCiNlbmRpZgpf
QUNFT0YKICBHTElCQ19WRVJTSU9OPSJgJENQUCBjb25mdGVzdC4kYWNfZXh0IHwgJFNFRCAtbiAn
cy9eZ2xpYmMgdmVyc2lvbiBpczogLy9wJyB8ICRTRUQgJ3MvIC8uL2cnYCIKZmkKCmNhdCBjb25m
ZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAq
LwoKI2luY2x1ZGUgPHN0YW5kYXJkcy5oPgojaWYgZGVmaW5lZChfQUlYVkVSU0lPTl81MTApIHx8
IGRlZmluZWQoX0FJWFZFUlNJT05fNTIwKSB8fCBkZWZpbmVkKF9BSVhWRVJTSU9OXzUzMCkKICBB
SVg1X0xJQkMKI2VuZGlmCgpfQUNFT0YKaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4
dCIpIDI+JjUgfAogICRFR1JFUCAiQUlYNV9MSUJDIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgog
IEdMSUJDX1ZFUlNJT049ImFpeDUiCmZpCnJtIC1mIGNvbmZ0ZXN0KgoKCiMgbm90IHJlYWxseSBh
IHZlcnNpb24gY2hlY2sKY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4
dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgojaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiNpZiBkZWZp
bmVkKF9fREFSV0lOX1ZFUlNfMTA1MCkKICBEQVJXSU5fTElCQwojZW5kaWYKCl9BQ0VPRgppZiAo
ZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CiAgJEVHUkVQICJEQVJXSU5f
TElCQyIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoKICBHTElCQ19WRVJTSU9OPSJkYXJ3aW4iCmZp
CnJtIC1mIGNvbmZ0ZXN0KgoKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogY2hlY2tpbmcgdGhlIEdMSUJDX1ZFUlNJT04gdmVyc2lvbiIgPiY1CiRhc19lY2hvX24gImNo
ZWNraW5nIHRoZSBHTElCQ19WRVJTSU9OIHZlcnNpb24uLi4gIiA+JjY7IH0KCmNhc2UgIiR7R0xJ
QkNfVkVSU0lPTn0iIGluCiAgICAgMi4yKQoJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v
LSRMSU5FTk99OiByZXN1bHQ6IDIuMiBmYW1pbHkiID4mNQokYXNfZWNobyAiMi4yIGZhbWlseSIg
PiY2OyB9CgokYXNfZWNobyAiI2RlZmluZSBHTElCQ18yXzIgMSIgPj5jb25mZGVmcy5oCgoJREVG
QVVMVF9TVVBQPSJnbGliYy0yLjIuc3VwcCAke0RFRkFVTFRfU1VQUH0iCglERUZBVUxUX1NVUFA9
ImdsaWJjLTIuMi1MaW51eFRocmVhZHMtaGVsZ3JpbmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCglE
RUZBVUxUX1NVUFA9ImdsaWJjLTIuWC1kcmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCgk7OwoKICAg
ICAyLjMpCgl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog
Mi4zIGZhbWlseSIgPiY1CiRhc19lY2hvICIyLjMgZmFtaWx5IiA+JjY7IH0KCiRhc19lY2hvICIj
ZGVmaW5lIEdMSUJDXzJfMyAxIiA+PmNvbmZkZWZzLmgKCglERUZBVUxUX1NVUFA9ImdsaWJjLTIu
My5zdXBwICR7REVGQVVMVF9TVVBQfSIKCURFRkFVTFRfU1VQUD0iZ2xpYmMtMi4zNDU2Ny1OUFRM
LWhlbGdyaW5kLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJREVGQVVMVF9TVVBQPSJnbGliYy0yLlgt
ZHJkLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJOzsKCiAgICAgMi40KQoJeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IDIuNCBmYW1pbHkiID4mNQokYXNfZWNo
byAiMi40IGZhbWlseSIgPiY2OyB9CgokYXNfZWNobyAiI2RlZmluZSBHTElCQ18yXzQgMSIgPj5j
b25mZGVmcy5oCgoJREVGQVVMVF9TVVBQPSJnbGliYy0yLjQuc3VwcCAke0RFRkFVTFRfU1VQUH0i
CglERUZBVUxUX1NVUFA9ImdsaWJjLTIuMzQ1NjctTlBUTC1oZWxncmluZC5zdXBwICR7REVGQVVM
VF9TVVBQfSIKCURFRkFVTFRfU1VQUD0iZ2xpYmMtMi5YLWRyZC5zdXBwICR7REVGQVVMVF9TVVBQ
fSIKCTs7CgogICAgIDIuNSkKCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiAyLjUgZmFtaWx5IiA+JjUKJGFzX2VjaG8gIjIuNSBmYW1pbHkiID4mNjsgfQoK
JGFzX2VjaG8gIiNkZWZpbmUgR0xJQkNfMl81IDEiID4+Y29uZmRlZnMuaAoKCURFRkFVTFRfU1VQ
UD0iZ2xpYmMtMi41LnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJREVGQVVMVF9TVVBQPSJnbGliYy0y
LjM0NTY3LU5QVEwtaGVsZ3JpbmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCglERUZBVUxUX1NVUFA9
ImdsaWJjLTIuWC1kcmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCgk7OwogICAgIDIuNikKCXsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAyLjYgZmFtaWx5IiA+
JjUKJGFzX2VjaG8gIjIuNiBmYW1pbHkiID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZpbmUgR0xJQkNf
Ml82IDEiID4+Y29uZmRlZnMuaAoKCURFRkFVTFRfU1VQUD0iZ2xpYmMtMi42LnN1cHAgJHtERUZB
VUxUX1NVUFB9IgoJREVGQVVMVF9TVVBQPSJnbGliYy0yLjM0NTY3LU5QVEwtaGVsZ3JpbmQuc3Vw
cCAke0RFRkFVTFRfU1VQUH0iCglERUZBVUxUX1NVUFA9ImdsaWJjLTIuWC1kcmQuc3VwcCAke0RF
RkFVTFRfU1VQUH0iCgk7OwogICAgIDIuNykKCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiAyLjcgZmFtaWx5IiA+JjUKJGFzX2VjaG8gIjIuNyBmYW1pbHki
ID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZpbmUgR0xJQkNfMl83IDEiID4+Y29uZmRlZnMuaAoKCURF
RkFVTFRfU1VQUD0iZ2xpYmMtMi5YLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJREVGQVVMVF9TVVBQ
PSJnbGliYy0yLjM0NTY3LU5QVEwtaGVsZ3JpbmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCglERUZB
VUxUX1NVUFA9ImdsaWJjLTIuWC1kcmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCgk7OwogICAgIDIu
OCkKCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAyLjgg
ZmFtaWx5IiA+JjUKJGFzX2VjaG8gIjIuOCBmYW1pbHkiID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZp
bmUgR0xJQkNfMl84IDEiID4+Y29uZmRlZnMuaAoKCURFRkFVTFRfU1VQUD0iZ2xpYmMtMi5YLnN1
cHAgJHtERUZBVUxUX1NVUFB9IgoJREVGQVVMVF9TVVBQPSJnbGliYy0yLjM0NTY3LU5QVEwtaGVs
Z3JpbmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCglERUZBVUxUX1NVUFA9ImdsaWJjLTIuWC1kcmQu
c3VwcCAke0RFRkFVTFRfU1VQUH0iCgk7OwogICAgIDIuOSkKCXsgJGFzX2VjaG8gIiRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAyLjkgZmFtaWx5IiA+JjUKJGFzX2VjaG8gIjIu
OSBmYW1pbHkiID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZpbmUgR0xJQkNfMl85IDEiID4+Y29uZmRl
ZnMuaAoKCURFRkFVTFRfU1VQUD0iZ2xpYmMtMi5YLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJREVG
QVVMVF9TVVBQPSJnbGliYy0yLjM0NTY3LU5QVEwtaGVsZ3JpbmQuc3VwcCAke0RFRkFVTFRfU1VQ
UH0iCglERUZBVUxUX1NVUFA9ImdsaWJjLTIuWC1kcmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCgk7
OwogICAgIDIuMTApCgl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl
c3VsdDogMi4xMCBmYW1pbHkiID4mNQokYXNfZWNobyAiMi4xMCBmYW1pbHkiID4mNjsgfQoKJGFz
X2VjaG8gIiNkZWZpbmUgR0xJQkNfMl8xMCAxIiA+PmNvbmZkZWZzLmgKCglERUZBVUxUX1NVUFA9
ImdsaWJjLTIuWC5zdXBwICR7REVGQVVMVF9TVVBQfSIKCURFRkFVTFRfU1VQUD0iZ2xpYmMtMi4z
NDU2Ny1OUFRMLWhlbGdyaW5kLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJREVGQVVMVF9TVVBQPSJn
bGliYy0yLlgtZHJkLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJOzsKICAgICAyLjExKQoJeyAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IDIuMTEgZmFtaWx5IiA+
JjUKJGFzX2VjaG8gIjIuMTEgZmFtaWx5IiA+JjY7IH0KCiRhc19lY2hvICIjZGVmaW5lIEdMSUJD
XzJfMTEgMSIgPj5jb25mZGVmcy5oCgoJREVGQVVMVF9TVVBQPSJnbGliYy0yLlguc3VwcCAke0RF
RkFVTFRfU1VQUH0iCglERUZBVUxUX1NVUFA9ImdsaWJjLTIuMzQ1NjctTlBUTC1oZWxncmluZC5z
dXBwICR7REVGQVVMVF9TVVBQfSIKCURFRkFVTFRfU1VQUD0iZ2xpYmMtMi5YLWRyZC5zdXBwICR7
REVGQVVMVF9TVVBQfSIKICAgICAgICA7OwogICAgIDIuMTIpCgl7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogMi4xMiBmYW1pbHkiID4mNQokYXNfZWNobyAi
Mi4xMiBmYW1pbHkiID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZpbmUgR0xJQkNfMl8xMiAxIiA+PmNv
bmZkZWZzLmgKCglERUZBVUxUX1NVUFA9ImdsaWJjLTIuWC5zdXBwICR7REVGQVVMVF9TVVBQfSIK
CURFRkFVTFRfU1VQUD0iZ2xpYmMtMi4zNDU2Ny1OUFRMLWhlbGdyaW5kLnN1cHAgJHtERUZBVUxU
X1NVUFB9IgoJREVGQVVMVF9TVVBQPSJnbGliYy0yLlgtZHJkLnN1cHAgJHtERUZBVUxUX1NVUFB9
IgoJOzsKICAgICAyLjEzKQoJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99
OiByZXN1bHQ6IDIuMTMgZmFtaWx5IiA+JjUKJGFzX2VjaG8gIjIuMTMgZmFtaWx5IiA+JjY7IH0K
CiRhc19lY2hvICIjZGVmaW5lIEdMSUJDXzJfMTMgMSIgPj5jb25mZGVmcy5oCgoJREVGQVVMVF9T
VVBQPSJnbGliYy0yLlguc3VwcCAke0RFRkFVTFRfU1VQUH0iCglERUZBVUxUX1NVUFA9ImdsaWJj
LTIuMzQ1NjctTlBUTC1oZWxncmluZC5zdXBwICR7REVGQVVMVF9TVVBQfSIKCURFRkFVTFRfU1VQ
UD0iZ2xpYmMtMi5YLWRyZC5zdXBwICR7REVGQVVMVF9TVVBQfSIKCTs7CiAgICAgYWl4NSkKCXsg
JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBBSVggNS4xIG9y
IDUuMiBvciA1LjMiID4mNQokYXNfZWNobyAiQUlYIDUuMSBvciA1LjIgb3IgNS4zIiA+JjY7IH0K
CiRhc19lY2hvICIjZGVmaW5lIEFJWDVfTElCQyAxIiA+PmNvbmZkZWZzLmgKCglERUZBVUxUX1NV
UFA9ImFpeDVsaWJjLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoJOzsKICAgICBkYXJ3aW4pCgl7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogRGFyd2luIiA+JjUK
JGFzX2VjaG8gIkRhcndpbiIgPiY2OyB9CgokYXNfZWNobyAiI2RlZmluZSBEQVJXSU5fTElCQyAx
IiA+PmNvbmZkZWZzLmgKCgkjIERFRkFVTFRfU1VQUCBzZXQgYnkga2VybmVsIHZlcnNpb24gY2hl
Y2sgYWJvdmUuCgk7OwoKICAgICAqKQoJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiByZXN1bHQ6IHVuc3VwcG9ydGVkIHZlcnNpb24gJHtHTElCQ19WRVJTSU9OfSIgPiY1
CiRhc19lY2hvICJ1bnN1cHBvcnRlZCB2ZXJzaW9uICR7R0xJQkNfVkVSU0lPTn0iID4mNjsgfQoJ
YXNfZm5fZXJyb3IgIlZhbGdyaW5kIHJlcXVpcmVzIGdsaWJjIHZlcnNpb24gMi4yIC0gMi4xMyIg
IiRMSU5FTk8iIDUKCWFzX2ZuX2Vycm9yICJvciBBSVggNS4xIG9yIDUuMiBvciA1LjMgR0xJQkNf
VkVSU0lPTiIgIiRMSU5FTk8iIDUKCWFzX2ZuX2Vycm9yICJvciBEYXJ3aW4gbGliYyIgIiRMSU5F
Tk8iIDUKCTs7CmVzYWMKCgoKCiMgQWRkIGRlZmF1bHQgc3VwcHJlc3Npb25zIGZvciB0aGUgWCBj
bGllbnQgbGlicmFyaWVzLiAgTWFrZSBubwojIGF0dGVtcHQgdG8gZGV0ZWN0IHdoZXRoZXIgc3Vj
aCBsaWJyYXJpZXMgYXJlIGluc3RhbGxlZCBvbiB0aGUKIyBidWlsZCBtYWNoaW5lIChvciBldmVu
IGlmIGFueSBYIGZhY2lsaXRpZXMgYXJlIHByZXNlbnQpOyBqdXN0CiMgYWRkIHRoZSBzdXBwcmVz
c2lvbnMgYW50aWRpc2lycmVnYXJkbGVzcy4KREVGQVVMVF9TVVBQPSJ4ZnJlZS00LnN1cHAgJHtE
RUZBVUxUX1NVUFB9IgpERUZBVUxUX1NVUFA9InhmcmVlLTMuc3VwcCAke0RFRkFVTFRfU1VQUH0i
CgojIEFkZCBnbGliYyBhbmQgWDExIHN1cHByZXNzaW9ucyBmb3IgZXhwLXB0cmNoZWNrCkRFRkFV
TFRfU1VQUD0iZXhwLXB0cmNoZWNrLnN1cHAgJHtERUZBVUxUX1NVUFB9IgoKCiMtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiMgQ2hlY2tpbmcgZm9yIHZhcmlvdXMgbGlicmFyeSBmdW5jdGlvbnMgYW5kIG90
aGVyIGRlZmluaXRpb25zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIENoZWNrIGZvciBDTE9DS19N
T05PVE9OSUMKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp
bmcgZm9yIENMT0NLX01PTk9UT05JQyIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBDTE9D
S19NT05PVE9OSUMuLi4gIiA+JjY7IH0KCmNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0
ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKI2luY2x1ZGUgPHRpbWUuaD4KCmlu
dAptYWluICgpCnsKCiAgc3RydWN0IHRpbWVzcGVjIHQ7CiAgY2xvY2tfZ2V0dGltZShDTE9DS19N
T05PVE9OSUMsICZ0KTsKICByZXR1cm4gMDsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBh
Y19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Cgp7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2
OyB9CgokYXNfZWNobyAiI2RlZmluZSBIQVZFX0NMT0NLX01PTk9UT05JQyAxIiA+PmNvbmZkZWZz
LmgKCgplbHNlCgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs
dDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5l
cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CgoKIyBDaGVjayBmb3IgUFRI
UkVBRF9NVVRFWF9BREFQVElWRV9OUAoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBjaGVja2luZyBmb3IgUFRIUkVBRF9NVVRFWF9BREFQVElWRV9OUCIgPiY1CiRhc19l
Y2hvX24gImNoZWNraW5nIGZvciBQVEhSRUFEX01VVEVYX0FEQVBUSVZFX05QLi4uICIgPiY2OyB9
CgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KCiNkZWZpbmUgX0dOVV9TT1VSQ0UKI2luY2x1ZGUgPHB0aHJlYWQuaD4KCmlu
dAptYWluICgpCnsKCiAgcmV0dXJuIChQVEhSRUFEX01VVEVYX0FEQVBUSVZFX05QKTsKCiAgOwog
IHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhl
biA6Cgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVz
IiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9CgokYXNfZWNobyAiI2RlZmluZSBIQVZFX1BUSFJF
QURfTVVURVhfQURBUFRJVkVfTlAgMSIgPj5jb25mZGVmcy5oCgoKZWxzZQoKeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5v
IiA+JjY7IH0KCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QuJGFjX2V4dAoKCiMgQ2hlY2sgZm9yIFBUSFJFQURfTVVURVhfRVJST1JDSEVDS19O
UAoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig
UFRIUkVBRF9NVVRFWF9FUlJPUkNIRUNLX05QIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y
IFBUSFJFQURfTVVURVhfRVJST1JDSEVDS19OUC4uLiAiID4mNjsgfQoKY2F0IGNvbmZkZWZzLmgg
LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgojZGVm
aW5lIF9HTlVfU09VUkNFCiNpbmNsdWRlIDxwdGhyZWFkLmg+CgppbnQKbWFpbiAoKQp7CgogIHJl
dHVybiAoUFRIUkVBRF9NVVRFWF9FUlJPUkNIRUNLX05QKTsKCiAgOwogIHJldHVybiAwOwp9Cl9B
Q0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Cgp7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8g
InllcyIgPiY2OyB9CgokYXNfZWNobyAiI2RlZmluZSBIQVZFX1BUSFJFQURfTVVURVhfRVJST1JD
SEVDS19OUCAxIiA+PmNvbmZkZWZzLmgKCgplbHNlCgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKZmkK
cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf
ZXh0CgoKIyBDaGVjayBmb3IgUFRIUkVBRF9NVVRFWF9SRUNVUlNJVkVfTlAKCnsgJGFzX2VjaG8g
IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIFBUSFJFQURfTVVURVhf
UkVDVVJTSVZFX05QIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIFBUSFJFQURfTVVURVhf
UkVDVVJTSVZFX05QLi4uICIgPiY2OyB9CgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m
dGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCiNkZWZpbmUgX0dOVV9TT1VSQ0UK
I2luY2x1ZGUgPHB0aHJlYWQuaD4KCmludAptYWluICgpCnsKCiAgcmV0dXJuIChQVEhSRUFEX01V
VEVYX1JFQ1VSU0lWRV9OUCk7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190
cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu
ZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQoKJGFz
X2VjaG8gIiNkZWZpbmUgSEFWRV9QVEhSRUFEX01VVEVYX1JFQ1VSU0lWRV9OUCAxIiA+PmNvbmZk
ZWZzLmgKCgplbHNlCgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl
c3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKZmkKcm0gLWYgY29yZSBjb25mdGVz
dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CgoKIyBDaGVjayBmb3Ig
UFRIUkVBRF9SRUNVUlNJVkVfTVVURVhfSU5JVElBTElaRVJfTlAKCnsgJGFzX2VjaG8gIiRhc19t
ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIFBUSFJFQURfUkVDVVJTSVZFX01V
VEVYX0lOSVRJQUxJWkVSX05QIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIFBUSFJFQURf
UkVDVVJTSVZFX01VVEVYX0lOSVRJQUxJWkVSX05QLi4uICIgPiY2OyB9CgpjYXQgY29uZmRlZnMu
aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCiNk
ZWZpbmUgX0dOVV9TT1VSQ0UKI2luY2x1ZGUgPHB0aHJlYWQuaD4KCmludAptYWluICgpCnsKCiAg
cHRocmVhZF9tdXRleF90IG0gPSBQVEhSRUFEX1JFQ1VSU0lWRV9NVVRFWF9JTklUSUFMSVpFUl9O
UDsKICByZXR1cm4gMDsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9j
b21waWxlICIkTElORU5PIjsgdGhlbiA6Cgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9CgokYXNfZWNo
byAiI2RlZmluZSBIQVZFX1BUSFJFQURfUkVDVVJTSVZFX01VVEVYX0lOSVRJQUxJWkVSX05QIDEi
ID4+Y29uZmRlZnMuaAoKCmVsc2UKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3Jl
IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKCgojIENo
ZWNrIHdoZXRoZXIgcHRocmVhZF9tdXRleF90IGhhcyBhIG1lbWJlciBjYWxsZWQgX19tX2tpbmQu
CgphY19mbl9jX2NoZWNrX21lbWJlciAiJExJTkVOTyIgInB0aHJlYWRfbXV0ZXhfdCIgIl9fbV9r
aW5kIiAiYWNfY3ZfbWVtYmVyX3B0aHJlYWRfbXV0ZXhfdF9fX21fa2luZCIgIiNpbmNsdWRlIDxw
dGhyZWFkLmg+CiIKaWYgdGVzdCAieCRhY19jdl9tZW1iZXJfcHRocmVhZF9tdXRleF90X19fbV9r
aW5kIiA9IHgiInllczsgdGhlbiA6CgokYXNfZWNobyAiI2RlZmluZSBIQVZFX1BUSFJFQURfTVVU
RVhfVF9fTV9LSU5EIDEiID4+Y29uZmRlZnMuaAoKCmZpCgoKCiMgQ2hlY2sgd2hldGhlciBwdGhy
ZWFkX211dGV4X3QgaGFzIGEgbWVtYmVyIGNhbGxlZCBfX2RhdGEuX19raW5kLgoKYWNfZm5fY19j
aGVja19tZW1iZXIgIiRMSU5FTk8iICJwdGhyZWFkX211dGV4X3QiICJfX2RhdGEuX19raW5kIiAi
YWNfY3ZfbWVtYmVyX3B0aHJlYWRfbXV0ZXhfdF9fX2RhdGFfX19raW5kIiAiI2luY2x1ZGUgPHB0
aHJlYWQuaD4KIgppZiB0ZXN0ICJ4JGFjX2N2X21lbWJlcl9wdGhyZWFkX211dGV4X3RfX19kYXRh
X19fa2luZCIgPSB4IiJ5ZXM7IHRoZW4gOgoKJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9QVEhSRUFE
X01VVEVYX1RfX0RBVEFfX0tJTkQgMSIgPj5jb25mZGVmcy5oCgoKZmkKCgoKIyBkb2VzIHRoaXMg
Y29tcGlsZXIgc3VwcG9ydCAtbWFsdGl2ZWMgYW5kIGRvZXMgaXQgaGF2ZSB0aGUgaW5jbHVkZSBm
aWxlCiMgPGFsdGl2ZWMuaD4gPwoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiBjaGVja2luZyBmb3IgQWx0aXZlYyIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBB
bHRpdmVjLi4uICIgPiY2OyB9CgpzYWZlX0NGTEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLW1hbHRpdmVj
IgoKY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29u
ZmRlZnMuaC4gICovCgojaW5jbHVkZSA8YWx0aXZlYy5oPgoKaW50Cm1haW4gKCkKewoKICB2ZWN0
b3IgdW5zaWduZWQgaW50IHY7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190
cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgoKYWNfaGF2ZV9hbHRpdmVjPXllcwp7ICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2Vj
aG8gInllcyIgPiY2OyB9CgokYXNfZWNobyAiI2RlZmluZSBIQVNfQUxUSVZFQyAxIiA+PmNvbmZk
ZWZzLmgKCgplbHNlCgphY19oYXZlX2FsdGl2ZWM9bm8KeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7IH0KCmZp
CnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj
X2V4dApDRkxBR1M9JHNhZmVfQ0ZMQUdTCgogaWYgdGVzdCB4JGFjX2hhdmVfYWx0aXZlYyA9IHh5
ZXM7IHRoZW4KICBIQVNfQUxUSVZFQ19UUlVFPQogIEhBU19BTFRJVkVDX0ZBTFNFPScjJwplbHNl
CiAgSEFTX0FMVElWRUNfVFJVRT0nIycKICBIQVNfQUxUSVZFQ19GQUxTRT0KZmkKCgoKIyBDaGVj
ayBmb3IgcHRocmVhZF9jcmVhdGVAR0xJQkMyLjAKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu
ZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgcHRocmVhZF9jcmVhdGVAR0xJQkMyLjAoKSIgPiY1
CiRhc19lY2hvX24gImNoZWNraW5nIGZvciBwdGhyZWFkX2NyZWF0ZUBHTElCQzIuMCgpLi4uICIg
PiY2OyB9CgpzYWZlX0NGTEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLWxwdGhyZWFkIgpjYXQgY29uZmRl
ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8K
CmV4dGVybiBpbnQgcHRocmVhZF9jcmVhdGVfZ2xpYmNfMl8wKHZvaWQqLCBjb25zdCB2b2lkKiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKCopKHZvaWQqKSwgdm9p
ZCopOwpfX2FzbV9fKCIuc3ltdmVyIHB0aHJlYWRfY3JlYXRlX2dsaWJjXzJfMCwgcHRocmVhZF9j
cmVhdGVAR0xJQkNfMi4wIik7CgppbnQKbWFpbiAoKQp7CgojaWZkZWYgX19wb3dlcnBjX18KLyoK
ICogQXBwYXJlbnRseSBvbiBQb3dlclBDIGxpbmtpbmcgdGhpcyBwcm9ncmFtIHN1Y2NlZWRzIGFu
ZCBnZW5lcmF0ZXMgYW4KICogZXhlY3V0YWJsZSB3aXRoIHRoZSB1bmRlZmluZWQgc3ltYm9sIHB0
aHJlYWRfY3JlYXRlQEdMSUJDXzIuMC4KICovCiNlcnJvciBUaGlzIHRlc3QgZG9lcyBub3Qgd29y
ayBwcm9wZXJseSBvbiBQb3dlclBDLgojZWxzZQogIHB0aHJlYWRfY3JlYXRlX2dsaWJjXzJfMCgw
LCAwLCAwLCAwKTsKI2VuZGlmCiAgcmV0dXJuIDA7CgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YK
aWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgoKYWNfaGF2ZV9wdGhyZWFkX2Ny
ZWF0ZV9nbGliY18yXzA9eWVzCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiB5ZXMiID4mNQokYXNfZWNobyAieWVzIiA+JjY7IH0KCiRhc19lY2hvICIjZGVm
aW5lIEhBVkVfUFRIUkVBRF9DUkVBVEVfR0xJQkNfMl8wIDEiID4+Y29uZmRlZnMuaAoKCmVsc2UK
CmFjX2hhdmVfcHRocmVhZF9jcmVhdGVfZ2xpYmNfMl8wPW5vCnsgJGFzX2VjaG8gIiRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9
CgpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKICAgIGNv
bmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkNGTEFHUz0kc2FmZV9DRkxBR1MKCiBp
ZiB0ZXN0IHgkYWNfaGF2ZV9wdGhyZWFkX2NyZWF0ZV9nbGliY18yXzAgPSB4eWVzOyB0aGVuCiAg
SEFWRV9QVEhSRUFEX0NSRUFURV9HTElCQ18yXzBfVFJVRT0KICBIQVZFX1BUSFJFQURfQ1JFQVRF
X0dMSUJDXzJfMF9GQUxTRT0nIycKZWxzZQogIEhBVkVfUFRIUkVBRF9DUkVBVEVfR0xJQkNfMl8w
X1RSVUU9JyMnCiAgSEFWRV9QVEhSRUFEX0NSRUFURV9HTElCQ18yXzBfRkFMU0U9CmZpCgoKCiMg
Q2hlY2sgZm9yIGV2ZW50ZmRfdCwgZXZlbnRmZCgpIGFuZCBldmVudGZkX3JlYWQoKQp7ICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBldmVudGZkKCki
ID4mNQokYXNfZWNob19uICJjaGVja2luZyBmb3IgZXZlbnRmZCgpLi4uICIgPiY2OyB9CgpjYXQg
Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5o
LiAgKi8KCiNpbmNsdWRlIDxzeXMvZXZlbnRmZC5oPgoKaW50Cm1haW4gKCkKewoKICBldmVudGZk
X3QgZXY7CiAgaW50IGZkOwoKICBmZCA9IGV2ZW50ZmQoNSwgMCk7CiAgZXZlbnRmZF9yZWFkKGZk
LCAmZXYpOwogIHJldHVybiAwOwoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2Nf
dHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQokYXNfZWNobyAieWVzIiA+JjY7IH0KCiRhc19l
Y2hvICIjZGVmaW5lIEhBVkVfRVZFTlRGRCAxIiA+PmNvbmZkZWZzLmgKCgokYXNfZWNobyAiI2Rl
ZmluZSBIQVZFX0VWRU5URkRfUkVBRCAxIiA+PmNvbmZkZWZzLmgKCgplbHNlCgp7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAi
bm8iID4mNjsgfQoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4
dCBcCiAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAoKCiMtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiMgQ2hlY2tpbmcgZm9yIHN1cHBvcnRlZCBjb21waWxlciBmbGFncy4KIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLW0zMiA/CnsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgZ2NjIGFjY2Vw
dHMgLW0zMiIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGlmIGdjYyBhY2NlcHRzIC1tMzIuLi4g
IiA+JjY7IH0KCnNhZmVfQ0ZMQUdTPSRDRkxBR1MKQ0ZMQUdTPSItbTMyIgoKY2F0IGNvbmZkZWZz
LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgpp
bnQKbWFpbiAoKQp7CgogIHJldHVybiAwOwoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFj
X2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKCkZMQUdfTTMyPSItbTMyIgp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFz
X2VjaG8gInllcyIgPiY2OyB9CgplbHNlCgpGTEFHX00zMj0iIgp7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsg
fQoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dC4kYWNfZXh0CkNGTEFHUz0kc2FmZV9DRkxBR1MKCgoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1
cHBvcnQgLW1haXgzMiA/CnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
Y2hlY2tpbmcgaWYgZ2NjIGFjY2VwdHMgLW1haXgzMiIgPiY1CiRhc19lY2hvX24gImNoZWNraW5n
IGlmIGdjYyBhY2NlcHRzIC1tYWl4MzIuLi4gIiA+JjY7IH0KCnNhZmVfQ0ZMQUdTPSRDRkxBR1MK
Q0ZMQUdTPSItbWFpeDMyIgoKY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj
X2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CgogIHJldHVybiAwOwoK
ICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8i
OyB0aGVuIDoKCkZMQUdfTUFJWDMyPSItbWFpeDMyIgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9Cgpl
bHNlCgpGTEFHX01BSVgzMj0iIgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKZmkKcm0gLWYgY29yZSBj
b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CkNGTEFHUz0k
c2FmZV9DRkxBR1MKCgoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLW02NCA/CnsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgZ2NjIGFjY2Vw
dHMgLW02NCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGlmIGdjYyBhY2NlcHRzIC1tNjQuLi4g
IiA+JjY7IH0KCnNhZmVfQ0ZMQUdTPSRDRkxBR1MKQ0ZMQUdTPSItbTY0IgoKY2F0IGNvbmZkZWZz
LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgpp
bnQKbWFpbiAoKQp7CgogIHJldHVybiAwOwoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFj
X2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKCkZMQUdfTTY0PSItbTY0Igp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFz
X2VjaG8gInllcyIgPiY2OyB9CgplbHNlCgpGTEFHX002ND0iIgp7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsg
fQoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz
dC4kYWNfZXh0CkNGTEFHUz0kc2FmZV9DRkxBR1MKCgoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1
cHBvcnQgLW1haXg2NCA/CnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
Y2hlY2tpbmcgaWYgZ2NjIGFjY2VwdHMgLW1haXg2NCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5n
IGlmIGdjYyBhY2NlcHRzIC1tYWl4NjQuLi4gIiA+JjY7IH0KCnNhZmVfQ0ZMQUdTPSRDRkxBR1MK
Q0ZMQUdTPSItbWFpeDY0IgoKY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj
X2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CgogIHJldHVybiAwOwoK
ICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8i
OyB0aGVuIDoKCkZMQUdfTUFJWDY0PSItbWFpeDY0Igp7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9Cgpl
bHNlCgpGTEFHX01BSVg2ND0iIgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKZmkKcm0gLWYgY29yZSBj
b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CkNGTEFHUz0k
c2FmZV9DRkxBR1MKCgoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLW1tbXggPwp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIGdjYyBhY2Nl
cHRzIC1tbW14IiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgZ2NjIGFjY2VwdHMgLW1tbXgu
Li4gIiA+JjY7IH0KCnNhZmVfQ0ZMQUdTPSRDRkxBR1MKQ0ZMQUdTPSItbW1teCIKCmNhdCBjb25m
ZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAq
LwoKaW50Cm1haW4gKCkKewoKICByZXR1cm4gMDsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpp
ZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CgpGTEFHX01NTVg9Ii1tbW14
Igp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+
JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9CgplbHNlCgpGTEFHX01NTVg9IiIKeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5v
IiA+JjY7IH0KCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QuJGFjX2V4dApDRkxBR1M9JHNhZmVfQ0ZMQUdTCgoKCgojIGRvZXMgdGhpcyBjb21w
aWxlciBzdXBwb3J0IC1tc3NlID8KeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiBjaGVja2luZyBpZiBnY2MgYWNjZXB0cyAtbXNzZSIgPiY1CiRhc19lY2hvX24gImNoZWNr
aW5nIGlmIGdjYyBhY2NlcHRzIC1tc3NlLi4uICIgPiY2OyB9CgpzYWZlX0NGTEFHUz0kQ0ZMQUdT
CkNGTEFHUz0iLW1zc2UiCgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNf
ZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgcmV0dXJuIDA7Cgog
IDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7
IHRoZW4gOgoKRkxBR19NU1NFPSItbXNzZSIKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v
LSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQoKZWxzZQoK
RkxBR19NU1NFPSIiCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz
dWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0
LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKQ0ZMQUdTPSRzYWZlX0NG
TEFHUwoKCgoKIyBkb2VzIHRoaXMgY29tcGlsZXIgc3VwcG9ydCAtbXByZWZlcnJlZC1zdGFjay1i
b3VuZGFyeT0yID8KeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj
a2luZyBpZiBnY2MgYWNjZXB0cyAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeSIgPiY1CiRhc19l
Y2hvX24gImNoZWNraW5nIGlmIGdjYyBhY2NlcHRzIC1tcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5
Li4uICIgPiY2OyB9CgpzYWZlX0NGTEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLW1wcmVmZXJyZWQtc3Rh
Y2stYm91bmRhcnk9MiIKCmNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19l
eHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewoKICByZXR1cm4gMDsKCiAg
OwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsg
dGhlbiA6CgpQUkVGRVJSRURfU1RBQ0tfQk9VTkRBUlk9Ii1tcHJlZmVycmVkLXN0YWNrLWJvdW5k
YXJ5PTIiCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5
ZXMiID4mNQokYXNfZWNobyAieWVzIiA+JjY7IH0KCmVsc2UKClBSRUZFUlJFRF9TVEFDS19CT1VO
REFSWT0iIgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog
bm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg
Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CkNGTEFHUz0kc2FmZV9DRkxBR1MK
CgoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLVduby1wb2ludGVyLXNpZ24gPwp7ICRh
c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIGdjYyBhY2Nl
cHRzIC1Xbm8tcG9pbnRlci1zaWduIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgZ2NjIGFj
Y2VwdHMgLVduby1wb2ludGVyLXNpZ24uLi4gIiA+JjY7IH0KCnNhZmVfQ0ZMQUdTPSRDRkxBR1MK
Q0ZMQUdTPSItV25vLXBvaW50ZXItc2lnbiIKCmNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNv
bmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewoKICBy
ZXR1cm4gMDsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxl
ICIkTElORU5PIjsgdGhlbiA6Cgpub19wb2ludGVyX3NpZ249eWVzCnsgJGFzX2VjaG8gIiRhc19t
ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQokYXNfZWNobyAieWVzIiA+
JjY7IH0KCmVsc2UKCm5vX3BvaW50ZXJfc2lnbj1ubwp7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoKZmkK
cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf
ZXh0CkNGTEFHUz0kc2FmZV9DRkxBR1MKCmlmIHRlc3QgeCRub19wb2ludGVyX3NpZ24gPSB4eWVz
OyB0aGVuCiAgQ0ZMQUdTPSIkQ0ZMQUdTIC1Xbm8tcG9pbnRlci1zaWduIgpmaQoKCiMgZG9lcyB0
aGlzIGNvbXBpbGVyIHN1cHBvcnQgLVduby1lbXB0eS1ib2R5ID8KCnsgJGFzX2VjaG8gIiRhc19t
ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgZ2NjIGFjY2VwdHMgLVduby1lbXB0
eS1ib2R5IiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgZ2NjIGFjY2VwdHMgLVduby1lbXB0
eS1ib2R5Li4uICIgPiY2OyB9CgpzYWZlX0NGTEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLVduby1lbXB0
eS1ib2R5IgoKY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBl
bmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFpbiAoKQp7CgogIHJldHVybiAwOwoKICA7CiAgcmV0
dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoK
CkZMQUdfV19OT19FTVBUWV9CT0RZPS1Xbm8tZW1wdHktYm9keQoKeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4m
NjsgfQoKZWxzZQoKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz
dWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0
LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKQ0ZMQUdTPSRzYWZlX0NG
TEFHUwoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLVduby1mb3JtYXQtemVyby1sZW5n
dGggPwoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBp
ZiBnY2MgYWNjZXB0cyAtV25vLWZvcm1hdC16ZXJvLWxlbmd0aCIgPiY1CiRhc19lY2hvX24gImNo
ZWNraW5nIGlmIGdjYyBhY2NlcHRzIC1Xbm8tZm9ybWF0LXplcm8tbGVuZ3RoLi4uICIgPiY2OyB9
CgpzYWZlX0NGTEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLVduby1mb3JtYXQtemVyby1sZW5ndGgiCgpj
YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVm
cy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgcmV0dXJuIDA7CgogIDsKICByZXR1cm4gMDsKfQpf
QUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgoKRkxBR19XX05P
X0ZPUk1BVF9aRVJPX0xFTkdUSD0tV25vLWZvcm1hdC16ZXJvLWxlbmd0aAoKeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5
ZXMiID4mNjsgfQoKZWxzZQoKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3JlIGNv
bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKQ0ZMQUdTPSRz
YWZlX0NGTEFHUwoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLVduby11bmluaXRpYWxp
emVkID8KCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg
aWYgZ2NjIGFjY2VwdHMgLVduby11bmluaXRpYWxpemVkIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tp
bmcgaWYgZ2NjIGFjY2VwdHMgLVduby11bmluaXRpYWxpemVkLi4uICIgPiY2OyB9CgpzYWZlX0NG
TEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLVduby11bmluaXRpYWxpemVkIgoKY2F0IGNvbmZkZWZzLmgg
LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQK
bWFpbiAoKQp7CgogIHJldHVybiAwOwoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2Zu
X2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKCkZMQUdfV19OT19VTklOSVRJQUxJWkVE
PS1Xbm8tdW5pbml0aWFsaXplZAoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQoKZWxzZQoKCnsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19l
Y2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKQ0ZMQUdTPSRzYWZlX0NGTEFHUwoKCiMgZG9lcyB0aGlz
IGNvbXBpbGVyIHN1cHBvcnQgLVdleHRyYSBvciB0aGUgb2xkZXIgLVcgPwoKeyAkYXNfZWNobyAi
JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiBnY2MgYWNjZXB0cyAtV2V4
dHJhIG9yIC1XIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgZ2NjIGFjY2VwdHMgLVdleHRy
YSBvciAtVy4uLiAiID4mNjsgfQoKc2FmZV9DRkxBR1M9JENGTEFHUwpDRkxBR1M9Ii1XZXh0cmEi
CgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25m
ZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgcmV0dXJuIDA7CgogIDsKICByZXR1cm4gMDsK
fQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgoKRkxBR19X
X0VYVFJBPS1XZXh0cmEKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
cmVzdWx0OiAtV2V4dHJhIiA+JjUKJGFzX2VjaG8gIi1XZXh0cmEiID4mNjsgfQoKZWxzZQoKICBD
RkxBR1M9Ii1XIgogIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK
LyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewoKICAgIHJldHVybiAwOwoKICA7
CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0
aGVuIDoKCiAgRkxBR19XX0VYVFJBPS1XCgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiAtVyIgPiY1CiRhc19lY2hvICItVyIgPiY2OyB9CgplbHNlCgoK
ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm90IHN1
cHBvcnRlZCIgPiY1CiRhc19lY2hvICJub3Qgc3VwcG9ydGVkIiA+JjY7IH0KCmZpCnJtIC1mIGNv
cmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAoKZmkK
cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf
ZXh0CkNGTEFHUz0kc2FmZV9DRkxBR1MKCgojIGRvZXMgdGhpcyBjb21waWxlciBzdXBwb3J0IC1m
bm8tc3RhY2stcHJvdGVjdG9yID8KeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiBjaGVja2luZyBpZiBnY2MgYWNjZXB0cyAtZm5vLXN0YWNrLXByb3RlY3RvciIgPiY1CiRh
c19lY2hvX24gImNoZWNraW5nIGlmIGdjYyBhY2NlcHRzIC1mbm8tc3RhY2stcHJvdGVjdG9yLi4u
ICIgPiY2OyB9CgpzYWZlX0NGTEFHUz0kQ0ZMQUdTCkNGTEFHUz0iLWZuby1zdGFjay1wcm90ZWN0
b3IiCgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgcmV0dXJuIDA7CgogIDsKICByZXR1cm4g
MDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgoKbm9f
c3RhY2tfcHJvdGVjdG9yPXllcwpGTEFHX0ZOT19TVEFDS19QUk9URUNUT1I9Ii1mbm8tc3RhY2st
cHJvdGVjdG9yIgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs
dDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9CgplbHNlCgpub19zdGFja19wcm90ZWN0
b3I9bm8KRkxBR19GTk9fU1RBQ0tfUFJPVEVDVE9SPSIiCnsgJGFzX2VjaG8gIiRhc19tZToke2Fz
X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9Cgpm
aQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh
Y19leHQKQ0ZMQUdTPSRzYWZlX0NGTEFHUwoKCgppZiB0ZXN0IHgkbm9fc3RhY2tfcHJvdGVjdG9y
ID0geHllczsgdGhlbgogIENGTEFHUz0iJENGTEFHUyAtZm5vLXN0YWNrLXByb3RlY3RvciIKZmkK
CgojIGRvZXMgdGhpcyBjb21waWxlciBzdXBwb3J0IC0tcGFyYW0gaW5saW5lLXVuaXQtZ3Jvd3Ro
PS4uLiA/Cgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n
IGlmIGdjYyBhY2NlcHRzIC0tcGFyYW0gaW5saW5lLXVuaXQtZ3Jvd3RoIiA+JjUKJGFzX2VjaG9f
biAiY2hlY2tpbmcgaWYgZ2NjIGFjY2VwdHMgLS1wYXJhbSBpbmxpbmUtdW5pdC1ncm93dGguLi4g
IiA+JjY7IH0KCnNhZmVfQ0ZMQUdTPSRDRkxBR1MKQ0ZMQUdTPSItLXBhcmFtIGlubGluZS11bml0
LWdyb3d0aD05MDAiCgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0
Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgcmV0dXJuIDA7CgogIDsK
ICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRo
ZW4gOgoKRkxBR19VTkxJTUlURURfSU5MSU5FX1VOSVRfR1JPV1RIPSItLXBhcmFtIGlubGluZS11
bml0LWdyb3d0aD05MDAiCgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9CgplbHNlCgpGTEFHX1VOTElN
SVRFRF9JTkxJTkVfVU5JVF9HUk9XVEg9IiIKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CgpmaQpybSAt
ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQK
Q0ZMQUdTPSRzYWZlX0NGTEFHUwoKCiMgZG9lcyB0aGUgbGlua2VyIHN1cHBvcnQgLVdsLC0tYnVp
bGQtaWQ9bm9uZSA/ICBOb3RlLCBpdCdzCiMgaW1wb3J0YW50IHRoYXQgd2UgdGVzdCBpbmRpcmVj
dGx5IHZpYSB3aGljaGV2ZXIgQyBjb21waWxlcgojIGlzIHNlbGVjdGVkLCByYXRoZXIgdGhhbiB0
ZXN0aW5nIC91c3IvYmluL2xkIG9yIHdoYXRldmVyCiMgZGlyZWN0bHkuCgp7ICRhc19lY2hvICIk
YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgYWNjZXB0
cyAtV2wsLS1idWlsZC1pZD1ub25lIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgdGhlIGxp
bmtlciBhY2NlcHRzIC1XbCwtLWJ1aWxkLWlkPW5vbmUuLi4gIiA+JjY7IH0KCnNhZmVfQ0ZMQUdT
PSRDRkxBR1MKQ0ZMQUdTPSItV2wsLS1idWlsZC1pZD1ub25lIgoKY2F0IGNvbmZkZWZzLmggLSA8
PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgppbnQKbWFp
biAoKQp7CnJldHVybiAwOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlf
bGluayAiJExJTkVOTyI7IHRoZW4gOgoKICBGTEFHX05PX0JVSUxEX0lEPSItV2wsLS1idWlsZC1p
ZD1ub25lIgoKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs
dDogeWVzIiA+JjUKJGFzX2VjaG8gInllcyIgPiY2OyB9CgplbHNlCgogIEZMQUdfTk9fQlVJTERf
SUQ9IiIKCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6
IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7IH0KCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJy
IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAogICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRh
Y19leHQKQ0ZMQUdTPSRzYWZlX0NGTEFHUwoKCiMgZG9lcyB0aGUgcHBjIGFzc2VtYmxlciBzdXBw
b3J0ICJtdG9jcmYiIGV0IGFsPwp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IGNoZWNraW5nIGlmIHBwYzMyLzY0IGFzIHN1cHBvcnRzIG10b2NyZi9tZm9jcmYiID4mNQok
YXNfZWNob19uICJjaGVja2luZyBpZiBwcGMzMi82NCBhcyBzdXBwb3J0cyBtdG9jcmYvbWZvY3Jm
Li4uICIgPiY2OyB9CgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0
Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCl9fYXNtX18gX192b2xhdGls
ZV9fKCJtdG9jcmYgNCwwIik7Cl9fYXNtX18gX192b2xhdGlsZV9fKCJtZm9jcmYgMCw0Iik7Cgog
IDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7
IHRoZW4gOgoKYWNfaGF2ZV9hc19wcGNfbWZ0b2NyZj15ZXMKeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsg
fQoKZWxzZQoKYWNfaGF2ZV9hc19wcGNfbWZ0b2NyZj1ubwp7ICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoK
ZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k
YWNfZXh0CmlmIHRlc3QgeCRhY19oYXZlX2FzX3BwY19tZnRvY3JmID0geHllcyA7IHRoZW4KCiRh
c19lY2hvICIjZGVmaW5lIEhBVkVfQVNfUFBDX01GVE9DUkYgMSIgPj5jb25mZGVmcy5oCgpmaQoK
CiMgZG9lcyB0aGUgeDg2L2FtZDY0IGFzc2VtYmxlciB1bmRlcnN0YW5kIFNTRTMgaW5zdHJ1Y3Rp
b25zPwojIE5vdGUsIHRoaXMgZG9lc24ndCBnZW5lcmF0ZSBhIEMtbGV2ZWwgc3ltYm9sLiAgSXQg
Z2VuZXJhdGVzIGEKIyBhdXRvbWFrZS1sZXZlbCBzeW1ib2wgKEJVSUxEX1NTRTNfVEVTVFMpLCB1
c2VkIGluIHRlc3QgTWFrZWZpbGUuYW0ncwp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IGNoZWNraW5nIGlmIHg4Ni9hbWQ2NCBhc3NlbWJsZXIgc3BlYWtzIFNTRTMiID4m
NQokYXNfZWNob19uICJjaGVja2luZyBpZiB4ODYvYW1kNjQgYXNzZW1ibGVyIHNwZWFrcyBTU0Uz
Li4uICIgPiY2OyB9CgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0
Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgZG8geyBsb25nIGxvbmcg
aW50IHg7CiAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oImZpc3R0cHEgKCUwKSIgOiA6InIiKCZ4
KSApOyB9CiAgd2hpbGUgKDApCgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190
cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgoKYWNfaGF2ZV9hc19zc2UzPXllcwp7ICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2Vj
aG8gInllcyIgPiY2OyB9CgplbHNlCgphY19oYXZlX2FzX3NzZTM9bm8KeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+
JjY7IH0KCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u
ZnRlc3QuJGFjX2V4dAoKIGlmIHRlc3QgeCRhY19oYXZlX2FzX3NzZTMgPSB4eWVzOyB0aGVuCiAg
QlVJTERfU1NFM19URVNUU19UUlVFPQogIEJVSUxEX1NTRTNfVEVTVFNfRkFMU0U9JyMnCmVsc2UK
ICBCVUlMRF9TU0UzX1RFU1RTX1RSVUU9JyMnCiAgQlVJTERfU1NFM19URVNUU19GQUxTRT0KZmkK
CgoKIyBEaXR0byBmb3IgU1NTRTMgaW5zdHJ1Y3Rpb25zIChub3RlIGV4dHJhIFMpCiMgTm90ZSwg
dGhpcyBkb2Vzbid0IGdlbmVyYXRlIGEgQy1sZXZlbCBzeW1ib2wuICBJdCBnZW5lcmF0ZXMgYQoj
IGF1dG9tYWtlLWxldmVsIHN5bWJvbCAoQlVJTERfU1NTRTNfVEVTVFMpLCB1c2VkIGluIHRlc3Qg
TWFrZWZpbGUuYW0ncwp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo
ZWNraW5nIGlmIHg4Ni9hbWQ2NCBhc3NlbWJsZXIgc3BlYWtzIFNTU0UzIiA+JjUKJGFzX2VjaG9f
biAiY2hlY2tpbmcgaWYgeDg2L2FtZDY0IGFzc2VtYmxlciBzcGVha3MgU1NTRTMuLi4gIiA+JjY7
IH0KCmNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNv
bmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkKewoKICBkbyB7IGxvbmcgbG9uZyBpbnQgeDsKICAg
X19hc21fXyBfX3ZvbGF0aWxlX18oCiAgICAgICJwYWJzYiAoJTApLCUleG1tNyIgOiA6ICJyIigm
eCkgOiAieG1tNyIgKTsgfQogIHdoaWxlICgwKQoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlm
IGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKCmFjX2hhdmVfYXNfc3NzZTM9
eWVzCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMi
ID4mNQokYXNfZWNobyAieWVzIiA+JjY7IH0KCmVsc2UKCmFjX2hhdmVfYXNfc3NzZTM9bm8KeyAk
YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFz
X2VjaG8gIm5vIiA+JjY7IH0KCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh
Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAoKIGlmIHRlc3QgeCRhY19oYXZlX2FzX3Nzc2UzID0g
eHllczsgdGhlbgogIEJVSUxEX1NTU0UzX1RFU1RTX1RSVUU9CiAgQlVJTERfU1NTRTNfVEVTVFNf
RkFMU0U9JyMnCmVsc2UKICBCVUlMRF9TU1NFM19URVNUU19UUlVFPScjJwogIEJVSUxEX1NTU0Uz
X1RFU1RTX0ZBTFNFPQpmaQoKCgojIE5vdGU6IHdlJ3JlIHJlYWxseSBjaGVja2luZyB0aGUgYXNz
ZW1ibGVyLWxldmVsIHN1cHBvcnQsIG5vdCBnY2MncyA7CiMgQy1sZXZlbCBjb2RlIG1pZ2h0IHJl
cXVpcmUgdGhlIGZsYWcgLW1wY2xtdWwgYmUgcGFzc2VkIHRvIGdjYyAoZS5nLiB0bwojIGNvbXBp
bGUgY29kZSB3aGljaCB1c2VzIHdtbWludHJpbi5oKS4gRG9lc24ndCBtYXR0ZXIgc2luY2UgdGVz
dHMgYWxzbwojIHVzZSBpbmxpbmUgYXNzZW1ibHkgZGlyZWN0bHkKeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiB4ODYvYW1kNjQgYXNzZW1ibGVyIHN1
cHBvcnRzICdwY2xtdWxxZHEnIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgeDg2L2FtZDY0
IGFzc2VtYmxlciBzdXBwb3J0cyAncGNsbXVscWRxJy4uLiAiID4mNjsgfQpjYXQgY29uZmRlZnMu
aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmlu
dAptYWluICgpCnsKCiAgZG8gewogICBfX2FzbV9fIF9fdm9sYXRpbGVfXygKICAgICAgInBjbG11
bHFkcSBcJDE3LCUleG1tNiwlJXhtbTciIDogOiA6ICJ4bW02IiwgInhtbTciICk7IH0KICB3aGls
ZSAoMCkKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxlICIk
TElORU5PIjsgdGhlbiA6CgphY19oYXZlX2FzX3BjbG11bHFkcT15ZXMKeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMi
ID4mNjsgfQoKZWxzZQoKYWNfaGF2ZV9hc19wY2xtdWxxZHE9bm8KeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7
IH0KCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl
c3QuJGFjX2V4dAoKIGlmIHRlc3QgeCRhY19oYXZlX2FzX3BjbG11bHFkcSA9IHh5ZXM7IHRoZW4K
ICBCVUlMRF9QQ0xNVUxRRFFfVEVTVFNfVFJVRT0KICBCVUlMRF9QQ0xNVUxRRFFfVEVTVFNfRkFM
U0U9JyMnCmVsc2UKICBCVUlMRF9QQ0xNVUxRRFFfVEVTVFNfVFJVRT0nIycKICBCVUlMRF9QQ0xN
VUxRRFFfVEVTVFNfRkFMU0U9CmZpCgoKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k
TElORU5PfTogY2hlY2tpbmcgaWYgeDg2L2FtZDY0IGFzc2VtYmxlciBzdXBwb3J0cyAnbHpjbnQn
IiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgeDg2L2FtZDY0IGFzc2VtYmxlciBzdXBwb3J0
cyAnbHpjbnQnLi4uICIgPiY2OyB9CgpjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz
dC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KCmludAptYWluICgpCnsKCiAgZG8gewog
ICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXygibHpjbnQgJXJheCwlcmF4Iik7CiAgfSB3aGlsZSAo
MCkKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElO
RU5PIjsgdGhlbiA6CgogIGFjX2hhdmVfYXNfbHpjbnQ9eWVzCiAgeyAkYXNfZWNobyAiJGFzX21l
OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4m
NjsgfQoKZWxzZQoKICBhY19oYXZlX2FzX2x6Y250PW5vCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7IH0K
CmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu
JGFjX2V4dAoKIGlmIHRlc3QgeCRhY19oYXZlX2FzX2x6Y250ID0geHllczsgdGhlbgogIEJVSUxE
X0xaQ05UX1RFU1RTX1RSVUU9CiAgQlVJTERfTFpDTlRfVEVTVFNfRkFMU0U9JyMnCmVsc2UKICBC
VUlMRF9MWkNOVF9URVNUU19UUlVFPScjJwogIEJVSUxEX0xaQ05UX1RFU1RTX0ZBTFNFPQpmaQoK
CiMgWFhYIEpSUyAyMDEwIE9jdCAxMzogd2hhdCBpcyB0aGlzIGZvcj8gIEZvciBzdXJlLCB3ZSBk
b24ndCBuZWVkIHRoaXMKIyB3aGVuIGJ1aWxkaW5nIHRoZSB0b29sIGV4ZWN1dGFibGVzLiAgSSB0
aGluayB3ZSBzaG91bGQgZ2V0IHJpZCBvZiBpdC4KIwojIENoZWNrIGZvciBUTFMgc3VwcG9ydCBp
biB0aGUgY29tcGlsZXIgYW5kIGxpbmtlcgppZiB0ZXN0ICJ4JHtjcm9zc19jb21waWxpbmd9IiA9
ICJ4bm8iOyB0aGVuCiMgTmF0aXZlIGNvbXBpbGF0aW9uOiBjaGVjayB3aGV0aGVyIHJ1bm5pbmcg
YSBwcm9ncmFtIHVzaW5nIFRMUyBzdWNjZWVkcy4KIyBMaW5raW5nIG9ubHkgaXMgbm90IHN1ZmZp
Y2llbnQgLS0gZS5nLiBvbiBSZWQgSGF0IDcuMyBsaW5raW5nIFRMUyBwcm9ncmFtcwojIHN1Y2Nl
ZWRzIGJ1dCBydW5uaW5nIHByb2dyYW1zIHVzaW5nIFRMUyBmYWlscy4KeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgVExTIHN1cHBvcnQiID4mNQok
YXNfZWNob19uICJjaGVja2luZyBmb3IgVExTIHN1cHBvcnQuLi4gIiA+JjY7IH0KaWYgdGVzdCAi
JHt2Z19jdl90bHMrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIg
PiY2CmVsc2UKICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtdGxzIHdhcyBnaXZlbi4KaWYgdGVz
dCAiJHtlbmFibGVfdGxzK3NldH0iID0gc2V0OyB0aGVuIDoKICBlbmFibGV2YWw9JGVuYWJsZV90
bHM7IHZnX2N2X3Rscz0kZW5hYmxldmFsCmVsc2UKICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5n
IiA9IHllczsgdGhlbiA6CiAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CiRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp
biBcYCRhY19wd2QnOiIgPiYyO30KYXNfZm5fZXJyb3IgImNhbm5vdCBydW4gdGVzdCBwcm9ncmFt
IHdoaWxlIGNyb3NzIGNvbXBpbGluZwpTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxz
LiIgIiRMSU5FTk8iIDU7IH0KZWxzZQogIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0
ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwpzdGF0aWMgX190aHJlYWQgaW50IGZv
bzsKaW50Cm1haW4gKCkKewpyZXR1cm4gZm9vOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYg
YWNfZm5fY190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6CiAgdmdfY3ZfdGxzPXllcwplbHNlCiAg
dmdfY3ZfdGxzPW5vCmZpCnJtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91
dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0
ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dApmaQoKZmkKCmZpCnsgJGFzX2VjaG8gIiRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkdmdfY3ZfdGxzIiA+JjUKJGFzX2VjaG8gIiR2
Z19jdl90bHMiID4mNjsgfQplbHNlCiMgQ3Jvc3MtY29tcGlsaW5nOiBjaGVjayB3aGV0aGVyIGxp
bmtpbmcgYSBwcm9ncmFtIHVzaW5nIFRMUyBzdWNjZWVkcy4KeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgVExTIHN1cHBvcnQiID4mNQokYXNfZWNo
b19uICJjaGVja2luZyBmb3IgVExTIHN1cHBvcnQuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHt2Z19j
dl90bHMrc2V0fSIgPSBzZXQ7IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVs
c2UKICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtdGxzIHdhcyBnaXZlbi4KaWYgdGVzdCAiJHtl
bmFibGVfdGxzK3NldH0iID0gc2V0OyB0aGVuIDoKICBlbmFibGV2YWw9JGVuYWJsZV90bHM7IHZn
X2N2X3Rscz0kZW5hYmxldmFsCmVsc2UKICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m
dGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8Kc3RhdGljIF9fdGhyZWFkIGludCBm
b287CmludAptYWluICgpCnsKcmV0dXJuIGZvbzsKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlm
IGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKICB2Z19jdl90bHM9eWVzCmVsc2UK
ICB2Z19jdl90bHM9bm8KZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29i
amV4dCBcCiAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApmaQoKZmkKeyAk
YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR2Z19jdl90bHMi
ID4mNQokYXNfZWNobyAiJHZnX2N2X3RscyIgPiY2OyB9CmZpCgppZiB0ZXN0ICIkdmdfY3ZfdGxz
IiA9IHllczsgdGhlbgoKJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9UTFMgMSIgPj5jb25mZGVmcy5o
CgpmaQoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ2hlY2tzIGZvciBDIGhlYWRlciBmaWxlcy4K
Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiID4mNQokYXNfZWNob19uICJj
aGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2Fj
X2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVk
KSAiID4mNgplbHNlCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4
dAovKiBlbmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0
ZGFyZy5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxmbG9hdC5oPgoKaW50Cm1haW4g
KCkKewoKICA7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRM
SU5FTk8iOyB0aGVuIDoKICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKZWxzZQogIGFjX2N2X2hlYWRl
cl9zdGRjPW5vCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg
Y29uZnRlc3QuJGFjX2V4dAoKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4K
ICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRv
IEFOU0kuCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBl
bmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzdHJpbmcuaD4KCl9BQ0VPRgppZiAoZXZhbCAi
JGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CiAgJEVHUkVQICJtZW1jaHIiID4vZGV2
L251bGwgMj4mMTsgdGhlbiA6CgplbHNlCiAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KZmkKcm0gLWYg
Y29uZnRlc3QqCgpmaQoKaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KICAj
IElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFO
U0kuCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQg
Y29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzdGRsaWIuaD4KCl9BQ0VPRgppZiAoZXZhbCAiJGFj
X2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CiAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxs
IDI+JjE7IHRoZW4gOgoKZWxzZQogIGFjX2N2X2hlYWRlcl9zdGRjPW5vCmZpCnJtIC1mIGNvbmZ0
ZXN0KgoKZmkKCmlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCiAgIyAvYmlu
L2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNyb3MgdW5sZXNzIHVzaW5n
IC1hbnNpLgogIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKICA6CmVs
c2UKICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KI2luY2x1ZGUgPGN0eXBlLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2lm
ICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQojIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMp
ICYmIChjKSA8PSAneicpCiMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAo
KGMpIC0gJ2EnKSA6IChjKSkKI2Vsc2UKIyBkZWZpbmUgSVNMT1dFUihjKSBcCgkJICAgKCgnYScg
PD0gKGMpICYmIChjKSA8PSAnaScpIFwKCQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAn
cicpIFwKCQkgICAgIHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQojIGRlZmluZSBUT1VQ
UEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQojZW5kaWYKCiNkZWZpbmUg
WE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCmludAptYWluICgpCnsK
ICBpbnQgaTsKICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCiAgICBpZiAoWE9SIChpc2xvd2Vy
IChpKSwgSVNMT1dFUiAoaSkpCgl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKICAgICAg
cmV0dXJuIDI7CiAgcmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVO
TyI7IHRoZW4gOgoKZWxzZQogIGFjX2N2X2hlYWRlcl9zdGRjPW5vCmZpCnJtIC1mIGNvcmUgKi5j
b3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwK
ICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dApmaQoK
ZmkKZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh
Y19jdl9oZWFkZXJfc3RkYyIgPiY1CiRhc19lY2hvICIkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNjsg
fQppZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgoKJGFzX2VjaG8gIiNkZWZp
bmUgU1REQ19IRUFERVJTIDEiID4+Y29uZmRlZnMuaAoKZmkKCmZvciBhY19oZWFkZXIgaW4gICAg
ICAgIFwKICAgICAgICBhc20vdW5pc3RkLmggICAgIFwKICAgICAgICBlbmRpYW4uaCAgICAgICAg
IFwKICAgICAgICBtcXVldWUuaCAgICAgICAgIFwKICAgICAgICBzeXMvZW5kaWFuLmggICAgIFwK
ICAgICAgICBzeXMvZXBvbGwuaCAgICAgIFwKICAgICAgICBzeXMvZXZlbnRmZC5oICAgIFwKICAg
ICAgICBzeXMva2xvZy5oICAgICAgIFwKICAgICAgICBzeXMvcG9sbC5oICAgICAgIFwKICAgICAg
ICBzeXMvc2lnbmFsLmggICAgIFwKICAgICAgICBzeXMvc2lnbmFsZmQuaCAgIFwKICAgICAgICBz
eXMvc3lzY2FsbC5oICAgIFwKICAgICAgICBzeXMvdGltZS5oICAgICAgIFwKICAgICAgICBzeXMv
dHlwZXMuaCAgICAgIFwKCmRvIDoKICBhc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFk
ZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCmFjX2ZuX2NfY2hlY2tfaGVhZGVyX21vbmdyZWwg
IiRMSU5FTk8iICIkYWNfaGVhZGVyIiAiJGFzX2FjX0hlYWRlciIgIiRhY19pbmNsdWRlc19kZWZh
dWx0IgpldmFsIGFzX3ZhbD1cJCRhc19hY19IZWFkZXIKICAgaWYgdGVzdCAieCRhc192YWwiID0g
eCIieWVzOyB0aGVuIDoKICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgYCRhc19l
Y2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQpfQUNFT0YKCmZpCgpkb25lCgoK
Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDaGVja3MgZm9yIHR5cGVkZWZzLCBzdHJ1Y3R1cmVzLCBh
bmQgY29tcGlsZXIgY2hhcmFjdGVyaXN0aWNzLgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp7ICRhc19l
Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciB1aWRfdCBpbiBz
eXMvdHlwZXMuaCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIGZvciB1aWRfdCBpbiBzeXMvdHlw
ZXMuaC4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3R5cGVfdWlkX3Qrc2V0fSIgPSBzZXQ7
IHRoZW4gOgogICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CmVsc2UKICBjYXQgY29uZmRlZnMu
aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KI2lu
Y2x1ZGUgPHN5cy90eXBlcy5oPgoKX0FDRU9GCmlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRh
Y19leHQiKSAyPiY1IHwKICAkRUdSRVAgInVpZF90IiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgog
IGFjX2N2X3R5cGVfdWlkX3Q9eWVzCmVsc2UKICBhY19jdl90eXBlX3VpZF90PW5vCmZpCnJtIC1m
IGNvbmZ0ZXN0KgoKZmkKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy
ZXN1bHQ6ICRhY19jdl90eXBlX3VpZF90IiA+JjUKJGFzX2VjaG8gIiRhY19jdl90eXBlX3VpZF90
IiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfdHlwZV91aWRfdCA9IG5vOyB0aGVuCgokYXNfZWNobyAi
I2RlZmluZSB1aWRfdCBpbnQiID4+Y29uZmRlZnMuaAoKCiRhc19lY2hvICIjZGVmaW5lIGdpZF90
IGludCIgPj5jb25mZGVmcy5oCgpmaQoKYWNfZm5fY19jaGVja190eXBlICIkTElORU5PIiAib2Zm
X3QiICJhY19jdl90eXBlX29mZl90IiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCmlmIHRlc3QgIngk
YWNfY3ZfdHlwZV9vZmZfdCIgPSB4IiJ5ZXM7IHRoZW4gOgoKZWxzZQoKY2F0ID4+Y29uZmRlZnMu
aCA8PF9BQ0VPRgojZGVmaW5lIG9mZl90IGxvbmcgaW50Cl9BQ0VPRgoKZmkKCmFjX2ZuX2NfY2hl
Y2tfdHlwZSAiJExJTkVOTyIgInNpemVfdCIgImFjX2N2X3R5cGVfc2l6ZV90IiAiJGFjX2luY2x1
ZGVzX2RlZmF1bHQiCmlmIHRlc3QgIngkYWNfY3ZfdHlwZV9zaXplX3QiID0geCIieWVzOyB0aGVu
IDoKCmVsc2UKCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBzaXplX3QgdW5zaWdu
ZWQgaW50Cl9BQ0VPRgoKZmkKCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogY2hlY2tpbmcgd2hldGhlciB0aW1lLmggYW5kIHN5cy90aW1lLmggbWF5IGJvdGggYmUgaW5j
bHVkZWQiID4mNQokYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRpbWUuaCBhbmQgc3lzL3Rp
bWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZC4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X2hl
YWRlcl90aW1lK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m
NgplbHNlCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBl
bmQgY29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN5cy90
aW1lLmg+CiNpbmNsdWRlIDx0aW1lLmg+CgppbnQKbWFpbiAoKQp7CmlmICgoc3RydWN0IHRtICop
IDApCnJldHVybiAwOwogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY190cnlfY29t
cGlsZSAiJExJTkVOTyI7IHRoZW4gOgogIGFjX2N2X2hlYWRlcl90aW1lPXllcwplbHNlCiAgYWNf
Y3ZfaGVhZGVyX3RpbWU9bm8KZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj
X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNQokYXNfZWNobyAiJGFj
X2N2X2hlYWRlcl90aW1lIiA+JjY7IH0KaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3RpbWUgPSB5ZXM7
IHRoZW4KCiRhc19lY2hvICIjZGVmaW5lIFRJTUVfV0lUSF9TWVNfVElNRSAxIiA+PmNvbmZkZWZz
LmgKCmZpCgoKCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ2hlY2tzIGZvciBsaWJyYXJ5IGZ1bmN0
aW9ucy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v
LSRMSU5FTk99OiBjaGVja2luZyBmb3Igd29ya2luZyBtZW1jbXAiID4mNQokYXNfZWNob19uICJj
aGVja2luZyBmb3Igd29ya2luZyBtZW1jbXAuLi4gIiA+JjY7IH0KaWYgdGVzdCAiJHthY19jdl9m
dW5jX21lbWNtcF93b3JraW5nK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2Fj
aGVkKSAiID4mNgplbHNlCiAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4g
OgogIGFjX2N2X2Z1bmNfbWVtY21wX3dvcmtpbmc9bm8KZWxzZQogIGNhdCBjb25mZGVmcy5oIC0g
PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwokYWNfaW5j
bHVkZXNfZGVmYXVsdAppbnQKbWFpbiAoKQp7CgogIC8qIFNvbWUgdmVyc2lvbnMgb2YgbWVtY21w
IGFyZSBub3QgOC1iaXQgY2xlYW4uICAqLwogIGNoYXIgYzAgPSAnXDEwMCcsIGMxID0gJ1wyMDAn
LCBjMiA9ICdcMjAxJzsKICBpZiAobWVtY21wKCZjMCwgJmMyLCAxKSA+PSAwIHx8IG1lbWNtcCgm
YzEsICZjMiwgMSkgPj0gMCkKICAgIHJldHVybiAxOwoKICAvKiBUaGUgTmV4dCB4ODYgT3BlblN0
ZXAgYnVnIHNob3dzIHVwIG9ubHkgd2hlbiBjb21wYXJpbmcgMTYgYnl0ZXMKICAgICBvciBtb3Jl
IGFuZCB3aXRoIGF0IGxlYXN0IG9uZSBidWZmZXIgbm90IHN0YXJ0aW5nIG9uIGEgNC1ieXRlIGJv
dW5kYXJ5LgogICAgIFdpbGxpYW0gTGV3aXMgcHJvdmlkZWQgdGhpcyB0ZXN0IHByb2dyYW0uICAg
Ki8KICB7CiAgICBjaGFyIGZvb1syMV07CiAgICBjaGFyIGJhclsyMV07CiAgICBpbnQgaTsKICAg
IGZvciAoaSA9IDA7IGkgPCA0OyBpKyspCiAgICAgIHsKCWNoYXIgKmEgPSBmb28gKyBpOwoJY2hh
ciAqYiA9IGJhciArIGk7CglzdHJjcHkgKGEsICItLS0tLS0tLTAxMTExMTExIik7CglzdHJjcHkg
KGIsICItLS0tLS0tLTEwMDAwMDAwIik7CglpZiAobWVtY21wIChhLCBiLCAxNikgPj0gMCkKCSAg
cmV0dXJuIDE7CiAgICAgIH0KICAgIHJldHVybiAwOwogIH0KCiAgOwogIHJldHVybiAwOwp9Cl9B
Q0VPRgppZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0aGVuIDoKICBhY19jdl9mdW5jX21l
bWNtcF93b3JraW5nPXllcwplbHNlCiAgYWNfY3ZfZnVuY19tZW1jbXBfd29ya2luZz1ubwpmaQpy
bSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0
JGFjX2V4ZWV4dCBcCiAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0
LiRhY19leHQKZmkKCmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog
cmVzdWx0OiAkYWNfY3ZfZnVuY19tZW1jbXBfd29ya2luZyIgPiY1CiRhc19lY2hvICIkYWNfY3Zf
ZnVuY19tZW1jbXBfd29ya2luZyIgPiY2OyB9CnRlc3QgJGFjX2N2X2Z1bmNfbWVtY21wX3dvcmtp
bmcgPSBubyAmJiBjYXNlICIgJExJQk9CSlMgIiBpbgogICoiIG1lbWNtcC4kYWNfb2JqZXh0ICIq
ICkgOzsKICAqKSBMSUJPQkpTPSIkTElCT0JKUyBtZW1jbXAuJGFjX29iamV4dCIKIDs7CmVzYWMK
CgoKCgogIGZvciBhY19oZWFkZXIgaW4gJGFjX2hlYWRlcl9saXN0CmRvIDoKICBhc19hY19IZWFk
ZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCmFjX2Zu
X2NfY2hlY2tfaGVhZGVyX2NvbXBpbGUgIiRMSU5FTk8iICIkYWNfaGVhZGVyIiAiJGFzX2FjX0hl
YWRlciIgIiRhY19pbmNsdWRlc19kZWZhdWx0CiIKZXZhbCBhc192YWw9XCQkYXNfYWNfSGVhZGVy
CiAgIGlmIHRlc3QgIngkYXNfdmFsIiA9IHgiInllczsgdGhlbiA6CiAgY2F0ID4+Y29uZmRlZnMu
aCA8PF9BQ0VPRgojZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9j
cHBgIDEKX0FDRU9GCgpmaQoKZG9uZQoKCgoKCgoKCmZvciBhY19mdW5jIGluIGdldHBhZ2VzaXpl
CmRvIDoKICBhY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICJnZXRwYWdlc2l6ZSIgImFjX2N2
X2Z1bmNfZ2V0cGFnZXNpemUiCmlmIHRlc3QgIngkYWNfY3ZfZnVuY19nZXRwYWdlc2l6ZSIgPSB4
IiJ5ZXM7IHRoZW4gOgogIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBIQVZFX0dF
VFBBR0VTSVpFIDEKX0FDRU9GCgpmaQpkb25lCgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l
bm8tJExJTkVOT306IGNoZWNraW5nIGZvciB3b3JraW5nIG1tYXAiID4mNQokYXNfZWNob19uICJj
aGVja2luZyBmb3Igd29ya2luZyBtbWFwLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfZnVu
Y19tbWFwX2ZpeGVkX21hcHBlZCtzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNh
Y2hlZCkgIiA+JjYKZWxzZQogIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVu
IDoKICBhY19jdl9mdW5jX21tYXBfZml4ZWRfbWFwcGVkPW5vCmVsc2UKICBjYXQgY29uZmRlZnMu
aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci8qIGVuZCBjb25mZGVmcy5oLiAgKi8KJGFj
X2luY2x1ZGVzX2RlZmF1bHQKLyogbWFsbG9jIG1pZ2h0IGhhdmUgYmVlbiByZW5hbWVkIGFzIHJw
bF9tYWxsb2MuICovCiN1bmRlZiBtYWxsb2MKCi8qIFRoYW5rcyB0byBNaWtlIEhhZXJ0ZWwgYW5k
IEppbSBBdmVyYSBmb3IgdGhpcyB0ZXN0LgogICBIZXJlIGlzIGEgbWF0cml4IG9mIG1tYXAgcG9z
c2liaWxpdGllczoKCW1tYXAgcHJpdmF0ZSBub3QgZml4ZWQKCW1tYXAgcHJpdmF0ZSBmaXhlZCBh
dCBzb21ld2hlcmUgY3VycmVudGx5IHVubWFwcGVkCgltbWFwIHByaXZhdGUgZml4ZWQgYXQgc29t
ZXdoZXJlIGFscmVhZHkgbWFwcGVkCgltbWFwIHNoYXJlZCBub3QgZml4ZWQKCW1tYXAgc2hhcmVk
IGZpeGVkIGF0IHNvbWV3aGVyZSBjdXJyZW50bHkgdW5tYXBwZWQKCW1tYXAgc2hhcmVkIGZpeGVk
IGF0IHNvbWV3aGVyZSBhbHJlYWR5IG1hcHBlZAogICBGb3IgcHJpdmF0ZSBtYXBwaW5ncywgd2Ug
c2hvdWxkIHZlcmlmeSB0aGF0IGNoYW5nZXMgY2Fubm90IGJlIHJlYWQoKQogICBiYWNrIGZyb20g
dGhlIGZpbGUsIG5vciBtbWFwJ3MgYmFjayBmcm9tIHRoZSBmaWxlIGF0IGEgZGlmZmVyZW50CiAg
IGFkZHJlc3MuICAoVGhlcmUgaGF2ZSBiZWVuIHN5c3RlbXMgd2hlcmUgcHJpdmF0ZSB3YXMgbm90
IGNvcnJlY3RseQogICBpbXBsZW1lbnRlZCBsaWtlIHRoZSBpbmZhbW91cyBpMzg2IHN2cjQuMCwg
YW5kIHN5c3RlbXMgd2hlcmUgdGhlCiAgIFZNIHBhZ2UgY2FjaGUgd2FzIG5vdCBjb2hlcmVudCB3
aXRoIHRoZSBmaWxlIHN5c3RlbSBidWZmZXIgY2FjaGUKICAgbGlrZSBlYXJseSB2ZXJzaW9ucyBv
ZiBGcmVlQlNEIGFuZCBwb3NzaWJseSBjb250ZW1wb3JhcnkgTmV0QlNELikKICAgRm9yIHNoYXJl
ZCBtYXBwaW5ncywgd2Ugc2hvdWxkIGNvbnZlcnNlbHkgdmVyaWZ5IHRoYXQgY2hhbmdlcyBnZXQK
ICAgcHJvcGFnYXRlZCBiYWNrIHRvIGFsbCB0aGUgcGxhY2VzIHRoZXkncmUgc3VwcG9zZWQgdG8g
YmUuCgogICBHcmVwIHdhbnRzIHByaXZhdGUgZml4ZWQgYWxyZWFkeSBtYXBwZWQuCiAgIFRoZSBt
YWluIHRoaW5ncyBncmVwIG5lZWRzIHRvIGtub3cgYWJvdXQgbW1hcCBhcmU6CiAgICogZG9lcyBp
dCBleGlzdCBhbmQgaXMgaXQgc2FmZSB0byB3cml0ZSBpbnRvIHRoZSBtbWFwJ2QgYXJlYQogICAq
IGhvdyB0byB1c2UgaXQgKEJTRCB2YXJpYW50cykgICovCgojaW5jbHVkZSA8ZmNudGwuaD4KI2lu
Y2x1ZGUgPHN5cy9tbWFuLmg+CgojaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmICFkZWZpbmVk
IEhBVkVfU1RETElCX0gKY2hhciAqbWFsbG9jICgpOwojZW5kaWYKCi8qIFRoaXMgbWVzcyB3YXMg
Y29waWVkIGZyb20gdGhlIEdOVSBnZXRwYWdlc2l6ZS5oLiAgKi8KI2lmbmRlZiBIQVZFX0dFVFBB
R0VTSVpFCiMgaWZkZWYgX1NDX1BBR0VTSVpFCiMgIGRlZmluZSBnZXRwYWdlc2l6ZSgpIHN5c2Nv
bmYoX1NDX1BBR0VTSVpFKQojIGVsc2UgLyogbm8gX1NDX1BBR0VTSVpFICovCiMgIGlmZGVmIEhB
VkVfU1lTX1BBUkFNX0gKIyAgIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgojICAgaWZkZWYgRVhFQ19Q
QUdFU0laRQojICAgIGRlZmluZSBnZXRwYWdlc2l6ZSgpIEVYRUNfUEFHRVNJWkUKIyAgIGVsc2Ug
Lyogbm8gRVhFQ19QQUdFU0laRSAqLwojICAgIGlmZGVmIE5CUEcKIyAgICAgZGVmaW5lIGdldHBh
Z2VzaXplKCkgTkJQRyAqIENMU0laRQojICAgICBpZm5kZWYgQ0xTSVpFCiMgICAgICBkZWZpbmUg
Q0xTSVpFIDEKIyAgICAgZW5kaWYgLyogbm8gQ0xTSVpFICovCiMgICAgZWxzZSAvKiBubyBOQlBH
ICovCiMgICAgIGlmZGVmIE5CUEMKIyAgICAgIGRlZmluZSBnZXRwYWdlc2l6ZSgpIE5CUEMKIyAg
ICAgZWxzZSAvKiBubyBOQlBDICovCiMgICAgICBpZmRlZiBQQUdFU0laRQojICAgICAgIGRlZmlu
ZSBnZXRwYWdlc2l6ZSgpIFBBR0VTSVpFCiMgICAgICBlbmRpZiAvKiBQQUdFU0laRSAqLwojICAg
ICBlbmRpZiAvKiBubyBOQlBDICovCiMgICAgZW5kaWYgLyogbm8gTkJQRyAqLwojICAgZW5kaWYg
Lyogbm8gRVhFQ19QQUdFU0laRSAqLwojICBlbHNlIC8qIG5vIEhBVkVfU1lTX1BBUkFNX0ggKi8K
IyAgIGRlZmluZSBnZXRwYWdlc2l6ZSgpIDgxOTIJLyogcHVudCB0b3RhbGx5ICovCiMgIGVuZGlm
IC8qIG5vIEhBVkVfU1lTX1BBUkFNX0ggKi8KIyBlbmRpZiAvKiBubyBfU0NfUEFHRVNJWkUgKi8K
CiNlbmRpZiAvKiBubyBIQVZFX0dFVFBBR0VTSVpFICovCgppbnQKbWFpbiAoKQp7CiAgY2hhciAq
ZGF0YSwgKmRhdGEyLCAqZGF0YTM7CiAgY29uc3QgY2hhciAqY2RhdGEyOwogIGludCBpLCBwYWdl
c2l6ZTsKICBpbnQgZmQsIGZkMjsKCiAgcGFnZXNpemUgPSBnZXRwYWdlc2l6ZSAoKTsKCiAgLyog
Rmlyc3QsIG1ha2UgYSBmaWxlIHdpdGggc29tZSBrbm93biBnYXJiYWdlIGluIGl0LiAqLwogIGRh
dGEgPSAoY2hhciAqKSBtYWxsb2MgKHBhZ2VzaXplKTsKICBpZiAoIWRhdGEpCiAgICByZXR1cm4g
MTsKICBmb3IgKGkgPSAwOyBpIDwgcGFnZXNpemU7ICsraSkKICAgICooZGF0YSArIGkpID0gcmFu
ZCAoKTsKICB1bWFzayAoMCk7CiAgZmQgPSBjcmVhdCAoImNvbmZ0ZXN0Lm1tYXAiLCAwNjAwKTsK
ICBpZiAoZmQgPCAwKQogICAgcmV0dXJuIDI7CiAgaWYgKHdyaXRlIChmZCwgZGF0YSwgcGFnZXNp
emUpICE9IHBhZ2VzaXplKQogICAgcmV0dXJuIDM7CiAgY2xvc2UgKGZkKTsKCiAgLyogTmV4dCwg
Y2hlY2sgdGhhdCB0aGUgdGFpbCBvZiBhIHBhZ2UgaXMgemVyby1maWxsZWQuICBGaWxlIG11c3Qg
aGF2ZQogICAgIG5vbi16ZXJvIGxlbmd0aCwgb3RoZXJ3aXNlIHdlIHJpc2sgU0lHQlVTIGZvciBl
bnRpcmUgcGFnZS4gICovCiAgZmQyID0gb3BlbiAoImNvbmZ0ZXN0LnR4dCIsIE9fUkRXUiB8IE9f
Q1JFQVQgfCBPX1RSVU5DLCAwNjAwKTsKICBpZiAoZmQyIDwgMCkKICAgIHJldHVybiA0OwogIGNk
YXRhMiA9ICIiOwogIGlmICh3cml0ZSAoZmQyLCBjZGF0YTIsIDEpICE9IDEpCiAgICByZXR1cm4g
NTsKICBkYXRhMiA9IChjaGFyICopIG1tYXAgKDAsIHBhZ2VzaXplLCBQUk9UX1JFQUQgfCBQUk9U
X1dSSVRFLCBNQVBfU0hBUkVELCBmZDIsIDBMKTsKICBpZiAoZGF0YTIgPT0gTUFQX0ZBSUxFRCkK
ICAgIHJldHVybiA2OwogIGZvciAoaSA9IDA7IGkgPCBwYWdlc2l6ZTsgKytpKQogICAgaWYgKCoo
ZGF0YTIgKyBpKSkKICAgICAgcmV0dXJuIDc7CiAgY2xvc2UgKGZkMik7CiAgaWYgKG11bm1hcCAo
ZGF0YTIsIHBhZ2VzaXplKSkKICAgIHJldHVybiA4OwoKICAvKiBOZXh0LCB0cnkgdG8gbW1hcCB0
aGUgZmlsZSBhdCBhIGZpeGVkIGFkZHJlc3Mgd2hpY2ggYWxyZWFkeSBoYXMKICAgICBzb21ldGhp
bmcgZWxzZSBhbGxvY2F0ZWQgYXQgaXQuICBJZiB3ZSBjYW4sIGFsc28gbWFrZSBzdXJlIHRoYXQK
ICAgICB3ZSBzZWUgdGhlIHNhbWUgZ2FyYmFnZS4gICovCiAgZmQgPSBvcGVuICgiY29uZnRlc3Qu
bW1hcCIsIE9fUkRXUik7CiAgaWYgKGZkIDwgMCkKICAgIHJldHVybiA5OwogIGlmIChkYXRhMiAh
PSBtbWFwIChkYXRhMiwgcGFnZXNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCgkJICAgICBN
QVBfUFJJVkFURSB8IE1BUF9GSVhFRCwgZmQsIDBMKSkKICAgIHJldHVybiAxMDsKICBmb3IgKGkg
PSAwOyBpIDwgcGFnZXNpemU7ICsraSkKICAgIGlmICgqKGRhdGEgKyBpKSAhPSAqKGRhdGEyICsg
aSkpCiAgICAgIHJldHVybiAxMTsKCiAgLyogRmluYWxseSwgbWFrZSBzdXJlIHRoYXQgY2hhbmdl
cyB0byB0aGUgbWFwcGVkIGFyZWEgZG8gbm90CiAgICAgcGVyY29sYXRlIGJhY2sgdG8gdGhlIGZp
bGUgYXMgc2VlbiBieSByZWFkKCkuICAoVGhpcyBpcyBhIGJ1ZyBvbgogICAgIHNvbWUgdmFyaWFu
dHMgb2YgaTM4NiBzdnI0LjAuKSAgKi8KICBmb3IgKGkgPSAwOyBpIDwgcGFnZXNpemU7ICsraSkK
ICAgICooZGF0YTIgKyBpKSA9ICooZGF0YTIgKyBpKSArIDE7CiAgZGF0YTMgPSAoY2hhciAqKSBt
YWxsb2MgKHBhZ2VzaXplKTsKICBpZiAoIWRhdGEzKQogICAgcmV0dXJuIDEyOwogIGlmIChyZWFk
IChmZCwgZGF0YTMsIHBhZ2VzaXplKSAhPSBwYWdlc2l6ZSkKICAgIHJldHVybiAxMzsKICBmb3Ig
KGkgPSAwOyBpIDwgcGFnZXNpemU7ICsraSkKICAgIGlmICgqKGRhdGEgKyBpKSAhPSAqKGRhdGEz
ICsgaSkpCiAgICAgIHJldHVybiAxNDsKICBjbG9zZSAoZmQpOwogIHJldHVybiAwOwp9Cl9BQ0VP
RgppZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0aGVuIDoKICBhY19jdl9mdW5jX21tYXBf
Zml4ZWRfbWFwcGVkPXllcwplbHNlCiAgYWNfY3ZfZnVuY19tbWFwX2ZpeGVkX21hcHBlZD1ubwpm
aQpybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0
ZXN0JGFjX2V4ZWV4dCBcCiAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0
ZXN0LiRhY19leHQKZmkKCmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogcmVzdWx0OiAkYWNfY3ZfZnVuY19tbWFwX2ZpeGVkX21hcHBlZCIgPiY1CiRhc19lY2hvICIk
YWNfY3ZfZnVuY19tbWFwX2ZpeGVkX21hcHBlZCIgPiY2OyB9CmlmIHRlc3QgJGFjX2N2X2Z1bmNf
bW1hcF9maXhlZF9tYXBwZWQgPSB5ZXM7IHRoZW4KCiRhc19lY2hvICIjZGVmaW5lIEhBVkVfTU1B
UCAxIiA+PmNvbmZkZWZzLmgKCmZpCnJtIC1mIGNvbmZ0ZXN0Lm1tYXAgY29uZnRlc3QudHh0Cgp7
ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHJldHVybiB0
eXBlIG9mIHNpZ25hbCBoYW5kbGVycyIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIHJldHVybiB0
eXBlIG9mIHNpZ25hbCBoYW5kbGVycy4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3R5cGVf
c2lnbmFsK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgpl
bHNlCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQg
Y29uZmRlZnMuaC4gICovCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHNpZ25hbC5o
PgoKaW50Cm1haW4gKCkKewpyZXR1cm4gKihzaWduYWwgKDAsIDApKSAoMCkgPT0gMTsKICA7CiAg
cmV0dXJuIDA7Cn0KX0FDRU9GCmlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVu
IDoKICBhY19jdl90eXBlX3NpZ25hbD1pbnQKZWxzZQogIGFjX2N2X3R5cGVfc2lnbmFsPXZvaWQK
ZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4k
YWNfZXh0CmZpCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0
OiAkYWNfY3ZfdHlwZV9zaWduYWwiID4mNQokYXNfZWNobyAiJGFjX2N2X3R5cGVfc2lnbmFsIiA+
JjY7IH0KCmNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKI2RlZmluZSBSRVRTSUdUWVBFICRhY19j
dl90eXBlX3NpZ25hbApfQUNFT0YKCgoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBjaGVja2luZyBmb3IgY2xvY2tfZ2V0dGltZSBpbiAtbHJ0IiA+JjUKJGFzX2VjaG9f
biAiY2hlY2tpbmcgZm9yIGNsb2NrX2dldHRpbWUgaW4gLWxydC4uLiAiID4mNjsgfQppZiB0ZXN0
ICIke2FjX2N2X2xpYl9ydF9jbG9ja19nZXR0aW1lK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNf
ZWNob19uICIoY2FjaGVkKSAiID4mNgplbHNlCiAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElC
UwpMSUJTPSItbHJ0ICAkTElCUyIKY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3Qu
JGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgovKiBPdmVycmlkZSBhbnkgR0NDIGludGVy
bmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg
bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCiAgIGJ1aWx0aW4gYW5kIHRoZW4g
aXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCiNpZmRlZiBfX2Nw
bHVzcGx1cwpleHRlcm4gIkMiCiNlbmRpZgpjaGFyIGNsb2NrX2dldHRpbWUgKCk7CmludAptYWlu
ICgpCnsKcmV0dXJuIGNsb2NrX2dldHRpbWUgKCk7CiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgpp
ZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CiAgYWNfY3ZfbGliX3J0X2Nsb2Nr
X2dldHRpbWU9eWVzCmVsc2UKICBhY19jdl9saWJfcnRfY2xvY2tfZ2V0dGltZT1ubwpmaQpybSAt
ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKICAgIGNvbmZ0ZXN0JGFj
X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkxJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKZmkK
eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9s
aWJfcnRfY2xvY2tfZ2V0dGltZSIgPiY1CiRhc19lY2hvICIkYWNfY3ZfbGliX3J0X2Nsb2NrX2dl
dHRpbWUiID4mNjsgfQppZiB0ZXN0ICJ4JGFjX2N2X2xpYl9ydF9jbG9ja19nZXR0aW1lIiA9IHgi
InllczsgdGhlbiA6CiAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgojZGVmaW5lIEhBVkVfTElC
UlQgMQpfQUNFT0YKCiAgTElCUz0iLWxydCAkTElCUyIKCmZpCgoKZm9yIGFjX2Z1bmMgaW4gICAg
ICBcCiAgICAgICAgY2xvY2tfZ2V0dGltZVwKICAgICAgICBlcG9sbF9jcmVhdGUgXAogICAgICAg
IGVwb2xsX3B3YWl0ICBcCiAgICAgICAgZmxvb3IgICAgICAgIFwKICAgICAgICBrbG9nY3RsICAg
ICAgXAogICAgICAgIG1hbGxpbmZvICAgICBcCiAgICAgICAgbWVtY2hyICAgICAgIFwKICAgICAg
ICBtZW1zZXQgICAgICAgXAogICAgICAgIG1rZGlyICAgICAgICBcCiAgICAgICAgbXJlbWFwICAg
ICAgIFwKICAgICAgICBwcG9sbCAgICAgICAgXAogICAgICAgIHB0aHJlYWRfYmFycmllcl9pbml0
ICAgICAgIFwKICAgICAgICBwdGhyZWFkX2NvbmRhdHRyX3NldGNsb2NrICBcCiAgICAgICAgcHRo
cmVhZF9tdXRleF90aW1lZGxvY2sgICAgXAogICAgICAgIHB0aHJlYWRfcndsb2NrX3RpbWVkcmRs
b2NrIFwKICAgICAgICBwdGhyZWFkX3J3bG9ja190aW1lZHdybG9jayBcCiAgICAgICAgcHRocmVh
ZF9zcGluX2xvY2sgICAgICAgICAgXAogICAgICAgIHB0aHJlYWRfeWllbGQgICAgICAgICAgICAg
IFwKICAgICAgICByZWFkbGlua2F0ICAgXAogICAgICAgIHNlbXRpbWVkb3AgICBcCiAgICAgICAg
c2lnbmFsZmQgICAgIFwKICAgICAgICBzaWd3YWl0aW5mbyAgXAogICAgICAgIHN0cmNociAgICAg
ICBcCiAgICAgICAgc3RyZHVwICAgICAgIFwKICAgICAgICBzdHJwYnJrICAgICAgXAogICAgICAg
IHN0cnJjaHIgICAgICBcCiAgICAgICAgc3Ryc3RyICAgICAgIFwKICAgICAgICBzeXNjYWxsICAg
ICAgXAogICAgICAgIHRpbWVyZmQgICAgICBcCiAgICAgICAgdXRpbWVuc2F0ICAgIFwKCmRvIDoK
ICBhc19hY192YXI9YCRhc19lY2hvICJhY19jdl9mdW5jXyRhY19mdW5jIiB8ICRhc190cl9zaGAK
YWNfZm5fY19jaGVja19mdW5jICIkTElORU5PIiAiJGFjX2Z1bmMiICIkYXNfYWNfdmFyIgpldmFs
IGFzX3ZhbD1cJCRhc19hY192YXIKICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVu
IDoKICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRh
Y19mdW5jIiB8ICRhc190cl9jcHBgIDEKX0FDRU9GCgpmaQpkb25lCgoKIyBBQ19DSEVDS19MSUIg
YWRkcyBhbnkgbGlicmFyeSBmb3VuZCB0byB0aGUgdmFyaWFibGUgTElCUywgYW5kIGxpbmtzIHRo
ZXNlCiMgbGlicmFyaWVzIHdpdGggYW55IHNoYXJlZCBvYmplY3QgYW5kL29yIGV4ZWN1dGFibGUu
IFRoaXMgaXMgTk9UIHdoYXQgd2UKIyB3YW50IGZvciBlLmcuIHZncHJlbG9hZF9jb3JlLXg4Ni1s
aW51eC5zbwpMSUJTPSIiCgogaWYgdGVzdCB4JGFjX2N2X2Z1bmNfcHRocmVhZF9iYXJyaWVyX2lu
aXQgPSB4eWVzOyB0aGVuCiAgSEFWRV9QVEhSRUFEX0JBUlJJRVJfVFJVRT0KICBIQVZFX1BUSFJF
QURfQkFSUklFUl9GQUxTRT0nIycKZWxzZQogIEhBVkVfUFRIUkVBRF9CQVJSSUVSX1RSVUU9JyMn
CiAgSEFWRV9QVEhSRUFEX0JBUlJJRVJfRkFMU0U9CmZpCgogaWYgdGVzdCB4JGFjX2N2X2Z1bmNf
cHRocmVhZF9tdXRleF90aW1lZGxvY2sgPSB4eWVzOyB0aGVuCiAgSEFWRV9QVEhSRUFEX01VVEVY
X1RJTUVETE9DS19UUlVFPQogIEhBVkVfUFRIUkVBRF9NVVRFWF9USU1FRExPQ0tfRkFMU0U9JyMn
CmVsc2UKICBIQVZFX1BUSFJFQURfTVVURVhfVElNRURMT0NLX1RSVUU9JyMnCiAgSEFWRV9QVEhS
RUFEX01VVEVYX1RJTUVETE9DS19GQUxTRT0KZmkKCiBpZiB0ZXN0IHgkYWNfY3ZfZnVuY19wdGhy
ZWFkX3NwaW5fbG9jayA9IHh5ZXM7IHRoZW4KICBIQVZFX1BUSFJFQURfU1BJTkxPQ0tfVFJVRT0K
ICBIQVZFX1BUSFJFQURfU1BJTkxPQ0tfRkFMU0U9JyMnCmVsc2UKICBIQVZFX1BUSFJFQURfU1BJ
TkxPQ0tfVFJVRT0nIycKICBIQVZFX1BUSFJFQURfU1BJTkxPQ0tfRkFMU0U9CmZpCgoKCiMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiMgTVBJIGNoZWNrcwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIERvIHdl
IGhhdmUgYSB1c2VhYmxlIE1QSSBzZXR1cCBvbiB0aGUgcHJpbWFyeSBhbmQvb3Igc2Vjb25kYXJ5
IHRhcmdldHM/CiMgT24gTGludXgsIGJ5IGRlZmF1bHQsIGFzc3VtZXMgbXBpY2MgYW5kIC1tMzIv
LW02NAojIE9uIEFJWCwgYnkgZGVmYXVsdCwgYXNzdW1lcyBtcHhsYyBhbmQgLXEzMi8tcTY0CiMg
Tm90ZTogdGhpcyBpcyBhIGtsdWRnZSBpbiB0aGF0IGl0IGFzc3VtZXMgdGhlIHNwZWNpZmllZCBt
cGljYwojIHVuZGVyc3RhbmRzIC1tMzIvLW02NC8tcTMyLy1xNjQgcmVnYXJkbGVzcyBvZiB3aGF0
IGlzIHNwZWNpZmllZCB1c2luZwojIC0td2l0aC1tcGljYz0uCk1QSV9DQz0ibXBpY2MiCmlmIHRl
c3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4UFBDMzJfQUlYNSBcCiAgICAgLW8geCRW
R0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4UFBDNjRfQUlYNSA7IHRoZW4KICBNUElfQ0M9Im1w
eGxjIgpmaQoKbWZsYWdfcHJpbWFyeT0KaWYgdGVzdCB4JFZHQ09ORl9QTEFURk9STV9QUklfQ0FQ
UyA9IHhYODZfTElOVVggXAogICAgIC1vIHgkVkdDT05GX1BMQVRGT1JNX1BSSV9DQVBTID0geFBQ
QzMyX0xJTlVYIDsgdGhlbgogIG1mbGFnX3ByaW1hcnk9JEZMQUdfTTMyCmVsaWYgdGVzdCB4JFZH
Q09ORl9QTEFURk9STV9QUklfQ0FQUyA9IHhBTUQ2NF9MSU5VWCBcCiAgICAgICAtbyB4JFZHQ09O
Rl9QTEFURk9STV9QUklfQ0FQUyA9IHhQUEM2NF9MSU5VWCA7IHRoZW4KICBtZmxhZ19wcmltYXJ5
PSRGTEFHX002NAplbGlmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fUFJJX0NBUFMgPSB4UFBDMzJf
QUlYNSA7IHRoZW4KICBtZmxhZ19wcmltYXJ5PS1xMzIKZWxpZiB0ZXN0IHgkVkdDT05GX1BMQVRG
T1JNX1BSSV9DQVBTID0geFBQQzY0X0FJWDUgOyB0aGVuCiAgbWZsYWdfcHJpbWFyeT0tcTY0CmZp
CgptZmxhZ19zZWNvbmRhcnk9CmlmIHRlc3QgeCRWR0NPTkZfUExBVEZPUk1fU0VDX0NBUFMgPSB4
WDg2X0xJTlVYIFwKICAgICAtbyB4JFZHQ09ORl9QTEFURk9STV9TRUNfQ0FQUyA9IHhQUEMzMl9M
SU5VWCA7IHRoZW4KICBtZmxhZ19zZWNvbmRhcnk9JEZMQUdfTTMyCmVsaWYgdGVzdCB4JFZHQ09O
Rl9QTEFURk9STV9TRUNfQ0FQUyA9IHhQUEMzMl9BSVg1IDsgdGhlbgogIG1mbGFnX3NlY29uZGFy
eT0tcTMyCmZpCgoKCiMgQ2hlY2sgd2hldGhlciAtLXdpdGgtbXBpY2Mgd2FzIGdpdmVuLgppZiB0
ZXN0ICIke3dpdGhfbXBpY2Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgogIHdpdGh2YWw9JHdpdGhfbXBp
Y2M7IE1QSV9DQz0kd2l0aHZhbAoKZmkKCgoKIyMgU2VlIGlmIE1QSV9DQyB3b3JrcyBmb3IgdGhl
IHByaW1hcnkgdGFyZ2V0CiMjCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P
fTogY2hlY2tpbmcgcHJpbWFyeSB0YXJnZXQgZm9yIHVzYWJsZSBNUEkyLWNvbXBsaWFudCBDIGNv
bXBpbGVyIGFuZCBtcGkuaCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5nIHByaW1hcnkgdGFyZ2V0
IGZvciB1c2FibGUgTVBJMi1jb21wbGlhbnQgQyBjb21waWxlciBhbmQgbXBpLmguLi4gIiA+JjY7
IH0Kc2F2ZWRfQ0M9JENDCnNhdmVkX0NGTEFHUz0kQ0ZMQUdTCkNDPSRNUElfQ0MKQ0ZMQUdTPSRt
ZmxhZ19wcmltYXJ5CmNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK
LyogZW5kIGNvbmZkZWZzLmguICAqLwoKI2luY2x1ZGUgPG1waS5oPgojaW5jbHVkZSA8c3RkaW8u
aD4KCmludAptYWluICgpCnsKCiAgaW50IHIgPSBNUElfSW5pdChOVUxMLE5VTEwpOwogIHIgfD0g
TVBJX1R5cGVfZ2V0X2NvbnRlbnRzKCBNUElfSU5ULCAwLDAsMCwgTlVMTCxOVUxMLE5VTEwgKTsK
ICByZXR1cm4gcjsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9saW5r
ICIkTElORU5PIjsgdGhlbiA6CgphY19oYXZlX21waTJfcHJpPXllcwp7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzLCAkTVBJX0NDIiA+JjUKJGFzX2Vj
aG8gInllcywgJE1QSV9DQyIgPiY2OyB9CgplbHNlCgphY19oYXZlX21waTJfcHJpPW5vCnsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19l
Y2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf
b2JqZXh0IFwKICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkNDPSRzYXZl
ZF9DQwpDRkxBR1M9JHNhdmVkX0NGTEFHUwogaWYgdGVzdCB4JGFjX2hhdmVfbXBpMl9wcmkgPSB4
eWVzOyB0aGVuCiAgQlVJTERfTVBJV1JBUF9QUklfVFJVRT0KICBCVUlMRF9NUElXUkFQX1BSSV9G
QUxTRT0nIycKZWxzZQogIEJVSUxEX01QSVdSQVBfUFJJX1RSVUU9JyMnCiAgQlVJTERfTVBJV1JB
UF9QUklfRkFMU0U9CmZpCgoKIyMgU2VlIGlmIE1QSV9DQyB3b3JrcyBmb3IgdGhlIHNlY29uZGFy
eSB0YXJnZXQuICBDb21wbGljYXRpb246IHdoYXQgaWYKIyMgdGhlcmUgaXMgbm8gc2Vjb25kYXJ5
IHRhcmdldD8gIFdlIG5lZWQgdGhpcyB0byB0aGVuIGZhaWwuCiMjIEtsdWRnZSB0aGlzIGJ5IG1h
a2luZyBNUElfQ0Mgc29tZXRoaW5nIHdoaWNoIHdpbGwgc3VyZWx5IGZhaWwgaW4KIyMgc3VjaCBh
IGNhc2UuCiMjCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp
bmcgc2Vjb25kYXJ5IHRhcmdldCBmb3IgdXNhYmxlIE1QSTItY29tcGxpYW50IEMgY29tcGlsZXIg
YW5kIG1waS5oIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgc2Vjb25kYXJ5IHRhcmdldCBmb3Ig
dXNhYmxlIE1QSTItY29tcGxpYW50IEMgY29tcGlsZXIgYW5kIG1waS5oLi4uICIgPiY2OyB9CnNh
dmVkX0NDPSRDQwpzYXZlZF9DRkxBR1M9JENGTEFHUwppZiB0ZXN0IHgkVkdDT05GX1BMQVRGT1JN
X1NFQ19DQVBTID0geCA7IHRoZW4KICBDQz0iJE1QSV9DQyB0aGlzIHdpbGwgc3VyZWx5IGZhaWwi
CmVsc2UKICBDQz0kTVBJX0NDCmZpCkNGTEFHUz0kbWZsYWdfc2Vjb25kYXJ5CmNhdCBjb25mZGVm
cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwoK
I2luY2x1ZGUgPG1waS5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCmludAptYWluICgpCnsKCiAgaW50
IHIgPSBNUElfSW5pdChOVUxMLE5VTEwpOwogIHIgfD0gTVBJX1R5cGVfZ2V0X2NvbnRlbnRzKCBN
UElfSU5ULCAwLDAsMCwgTlVMTCxOVUxMLE5VTEwgKTsKICByZXR1cm4gcjsKCiAgOwogIHJldHVy
biAwOwp9Cl9BQ0VPRgppZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CgphY19o
YXZlX21waTJfc2VjPXllcwp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306
IHJlc3VsdDogeWVzLCAkTVBJX0NDIiA+JjUKJGFzX2VjaG8gInllcywgJE1QSV9DQyIgPiY2OyB9
CgplbHNlCgphY19oYXZlX21waTJfc2VjPW5vCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu
by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CgpmaQpybSAt
ZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKICAgIGNvbmZ0ZXN0JGFj
X2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CkNDPSRzYXZlZF9DQwpDRkxBR1M9JHNhdmVkX0NGTEFH
UwogaWYgdGVzdCB4JGFjX2hhdmVfbXBpMl9zZWMgPSB4eWVzOyB0aGVuCiAgQlVJTERfTVBJV1JB
UF9TRUNfVFJVRT0KICBCVUlMRF9NUElXUkFQX1NFQ19GQUxTRT0nIycKZWxzZQogIEJVSUxEX01Q
SVdSQVBfU0VDX1RSVUU9JyMnCiAgQlVJTERfTVBJV1JBUF9TRUNfRkFMU0U9CmZpCgoKCiMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiMgT3RoZXIgbGlicmFyeSBjaGVja3MKIy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIyBUaGVyZSBub3cgZm9sbG93IHNvbWUgdGVzdHMgZm9yIFF0Q29yZSwgQm9vc3QsIGFuZCBP
cGVuTVAuICBUaGVzZQojIHRlc3RzIGFyZSBwcmVzZW50IGJlY2F1c2UgRHJkIGhhcyBzb21lIHJl
Z3Jlc3Npb24gdGVzdHMgdGhhdCB1c2UKIyB0aGVzZSBwYWNrYWdlcy4gIEFsbCByZWdyZXNzaW9u
IHRlc3QgcHJvZ3JhbXMgYWxsIGNvbXBpbGVkIG9ubHkKIyBmb3IgdGhlIHByaW1hcnkgdGFyZ2V0
LiAgQW5kIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IHRoZSBjb25maWd1cmUKIyBjaGVja3MgdGhh
dCBmb2xsb3csIHVzZSB0aGUgY29ycmVjdCAtbTMyIG9yIC1tNjQgZmxhZyBmb3IgdGhlCiMgcHJp
bWFyeSB0YXJnZXQgKGNhbGxlZCAkbWZsYWdfcHJpbWFyeSkuICBPdGhlcndpc2UsIHdlIGNhbiBl
bmQgdXAKIyBpbiBhIHNpdHVhdGlvbiAoZWcpIHdoZXJlLCBvbiBhbWQ2NC1saW51eCwgdGhlIHRl
c3QgZm9yIEJvb3N0IGNoZWNrcwojIGZvciB1c2FibGUgNjQtYml0IEJvb3N0IGZhY2lsaXRpZXMs
IGJ1dCBiZWNhdXNlIHdlIGFyZSBkb2luZyBhIDMyLWJpdAojIG9ubHkgYnVpbGQgKG1lYW5pbmcs
IHRoZSBwcmltYXJ5IHRhcmdldCBpcyB4ODYtbGludXgpLCB0aGUgYnVpbGQKIyBvZiB0aGUgcmVn
dGVzdCBwcm9ncmFtcyB0aGF0IHVzZSBCb29zdCBmYWlscywgYmVjYXVzZSB0aGV5IGFyZQojIGJ1
aWxkIGFzIDMyLWJpdCAoSU4gVEhJUyBFWEFNUExFKS4KIwojIEhlbmNlOiBBTFdBWVMgVVNFICRt
ZmxhZ19wcmltYXJ5IEZPUiBDT05GSUdVUkUgVEVTVFMgRk9SIEZBQ0lMSVRJRVMKIyBORUVERUQg
QlkgVEhFIFJFR1JFU1NJT04gVEVTVCBQUk9HUkFNUy4KCgojIFRoZSB0ZXN0IGJlbG93IHZlcmlm
aWVzIHdoZXRoZXIgdGhlIFF0Q29yZSBwYWNrYWdlIGJlZW4gaW5zdGFsbGVkLgojIFRoaXMgdGVz
dCB3b3JrcyBhcyBmb2xsb3dzOgojIC0gSWYgcGtnLWNvbmZpZyB3YXMgbm90IGluc3RhbGxlZCBh
dCB0aGUgdGltZSBhdXRvZ2VuLnNoIHdhcyBydW4sCiMgICB0aGUgZGVmaW5pdGlvbiBvZiB0aGUg
UEtHX0NIRUNLX0VYSVNUUygpIG1hY3JvIHdpbGwgbm90IGJlIGZvdW5kIGJ5CiMgICBhdXRvZ2Vu
LnNoLiBBdWdvZ2VuLnNoIHdpbGwgZ2VuZXJhdGUgYSBjb25maWd1cmUgc2NyaXB0IHRoYXQgcHJp
bnRzCiMgICBhIHdhcm5pbmcgYWJvdXQgcGtnLWNvbmZpZyBhbmQgcHJvY2VlZHMgYXMgaWYgUXQ0
IGhhcyBub3QgYmVlbiBpbnN0YWxsZWQuCiMgLSBJZiBwa2ctY29uZmlnIHdhcyBpbnN0YWxsZWQg
YXQgdGhlIHRpbWUgYXV0b2dlbi5zaCB3YXMgcnVuLAojICAgdGhlIGdlbmVyYXRlZCBjb25maWd1
cmUgc2NyaXB0IHdpbGwgdHJ5IHRvIGRldGVjdCB0aGUgcHJlc2VuY2Ugb2YgdGhlCiMgICBRdDQg
UXRDb3JlIGxpYnJhcnkgYnkgbG9va2luZyB1cCBjb21waWxlIGFuZCBsaW5rZXIgZmxhZ3MgaW4g
dGhlIGZpbGUKIyAgIGNhbGxlZCBRdENvcmUucGMuCiMgLSBwa2ctY29uZmlnIHNldHRpbmdzIGNh
biBiZSBvdmVycmlkZGVuIHZpYSB0aGUgY29uZmlndXJlIHZhcmlhYmxlcwojICAgUVRDT1JFX0NG
TEFHUyBhbmQgUVRDT1JFX0xJQlMgKGFkZGVkIGJ5IHRoZSBwa2ctY29uZmlnIG00IG1hY3JvJ3Mg
dG8gdGhlCiMgICBjb25maWd1cmUgc2NyaXB0IC0tIHNlZSBhbHNvIC4vY29uZmlndXJlIC0taGVs
cCkuCiMgLSBUaGUgUVRDT1JFX0NGTEFHUyBhbmQgUVRDT1JFX0xJQlMgY29uZmlndXJlIHZhcmlh
YmxlcyBjYW4gYmUgdXNlZCBldmVuIGlmCiMgICB0aGUgcGtnLWNvbmZpZyBleGVjdXRhYmxlIGlz
IG5vdCBwcmVzZW50IG9uIHRoZSBzeXN0ZW0gb24gd2hpY2ggdGhlCiMgICBjb25maWd1cmUgc2Ny
aXB0IGlzIHJ1bi4KCgoKaWYgdGVzdCAieCRhY19jdl9lbnZfUEtHX0NPTkZJR19zZXQiICE9ICJ4
c2V0IjsgdGhlbgoJaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgogICMgRXh0cmFj
dCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1wa2ctY29uZmlnIiwgc28gaXQg
Y2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4Kc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm
aXh9cGtnLWNvbmZpZzsgYWNfd29yZD0kMgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiRhc19lY2hvX24gImNoZWNraW5n
IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQppZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtHX0NPTkZJ
RytzZXR9IiA9IHNldDsgdGhlbiA6CiAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKZWxzZQog
IGNhc2UgJFBLR19DT05GSUcgaW4KICBbXFwvXSogfCA/OltcXC9dKikKICBhY19jdl9wYXRoX1BL
R19DT05GSUc9IiRQS0dfQ09ORklHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3
aXRoIGEgcGF0aC4KICA7OwogICopCiAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS
QVRPUgpmb3IgYXNfZGlyIGluICRQQVRICmRvCiAgSUZTPSRhc19zYXZlX0lGUwogIHRlc3QgLXog
IiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1
dGFibGVfZXh0ZW5zaW9uczsgZG8KICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf
ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9
OyB0aGVuCiAgICBhY19jdl9wYXRoX1BLR19DT05GSUc9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl
Y19leHQiCiAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAk
YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgIGJyZWFrIDIKICBmaQpkb25lCiAg
ZG9uZQpJRlM9JGFzX3NhdmVfSUZTCgogIDs7CmVzYWMKZmkKUEtHX0NPTkZJRz0kYWNfY3ZfcGF0
aF9QS0dfQ09ORklHCmlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgogIHsgJGFzX2VjaG8g
IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUEtHX0NPTkZJRyIgPiY1CiRh
c19lY2hvICIkUEtHX0NPTkZJRyIgPiY2OyB9CmVsc2UKICB7ICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQpm
aQoKCmZpCmlmIHRlc3QgLXogIiRhY19jdl9wYXRoX1BLR19DT05GSUciOyB0aGVuCiAgYWNfcHRf
UEtHX0NPTkZJRz0kUEtHX0NPTkZJRwogICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAicGtn
LWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCnNldCBkdW1t
eSBwa2ctY29uZmlnOyBhY193b3JkPSQyCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k
TElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcg
Zm9yICRhY193b3JkLi4uICIgPiY2OyB9CmlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9hY19wdF9QS0df
Q09ORklHK3NldH0iID0gc2V0OyB0aGVuIDoKICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgpl
bHNlCiAgY2FzZSAkYWNfcHRfUEtHX0NPTkZJRyBpbgogIFtcXC9dKiB8ID86W1xcL10qKQogIGFj
X2N2X3BhdGhfYWNfcHRfUEtHX0NPTkZJRz0iJGFjX3B0X1BLR19DT05GSUciICMgTGV0IHRoZSB1
c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgogIDs7CiAgKikKICBhc19zYXZlX0lG
Uz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9
JGFzX3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIGZvciBhY19l
eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogIGlmIHsgdGVzdCAt
ZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8k
YWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICAgIGFjX2N2X3BhdGhfYWNfcHRfUEtHX0NP
TkZJRz0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKICAgICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi
ID4mNQogICAgYnJlYWsgMgogIGZpCmRvbmUKICBkb25lCklGUz0kYXNfc2F2ZV9JRlMKCiAgOzsK
ZXNhYwpmaQphY19wdF9QS0dfQ09ORklHPSRhY19jdl9wYXRoX2FjX3B0X1BLR19DT05GSUcKaWYg
dGVzdCAtbiAiJGFjX3B0X1BLR19DT05GSUciOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19wdF9QS0dfQ09ORklHIiA+JjUKJGFzX2Vj
aG8gIiRhY19wdF9QS0dfQ09ORklHIiA+JjY7IH0KZWxzZQogIHsgJGFzX2VjaG8gIiRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9
CmZpCgogIGlmIHRlc3QgIngkYWNfcHRfUEtHX0NPTkZJRyIgPSB4OyB0aGVuCiAgICBQS0dfQ09O
RklHPSIiCiAgZWxzZQogICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBp
bgp5ZXM6KQp7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6
IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CiRh
c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3
aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KYWNfdG9vbF93YXJuZWQ9eWVzIDs7CmVzYWMKICAgIFBL
R19DT05GSUc9JGFjX3B0X1BLR19DT05GSUcKICBmaQplbHNlCiAgUEtHX0NPTkZJRz0iJGFjX2N2
X3BhdGhfUEtHX0NPTkZJRyIKZmkKCmZpCmlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgoJ
X3BrZ19taW5fdmVyc2lvbj0wLjkuMAoJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBjaGVja2luZyBwa2ctY29uZmlnIGlzIGF0IGxlYXN0IHZlcnNpb24gJF9wa2dfbWlu
X3ZlcnNpb24iID4mNQokYXNfZWNob19uICJjaGVja2luZyBwa2ctY29uZmlnIGlzIGF0IGxlYXN0
IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb24uLi4gIiA+JjY7IH0KCWlmICRQS0dfQ09ORklHIC0t
YXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAkX3BrZ19taW5fdmVyc2lvbjsgdGhlbgoJCXsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQokYXNf
ZWNobyAieWVzIiA+JjY7IH0KCWVsc2UKCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t
JExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsgfQoJCVBLR19DT05G
SUc9IiIKCWZpCgpmaQoKaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKICAgIHsgeyAkYXNf
ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJFBLR19DT05GSUcgLS1leGlzdHMg
LS1wcmludC1lcnJvcnMgXCJRdENvcmVcIiI7IH0gPiY1CiAgKCRQS0dfQ09ORklHIC0tZXhpc3Rz
IC0tcHJpbnQtZXJyb3JzICJRdENvcmUiKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgJGFzX2VjaG8g
IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgdGVz
dCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgoKCnBrZ19mYWlsZWQ9bm8KeyAkYXNfZWNobyAiJGFz
X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgUVRDT1JFIiA+JjUKJGFzX2Vj
aG9fbiAiY2hlY2tpbmcgZm9yIFFUQ09SRS4uLiAiID4mNjsgfQoKaWYgdGVzdCAtbiAiJFBLR19D
T05GSUciOyB0aGVuCiAgICBpZiB0ZXN0IC1uICIkUVRDT1JFX0NGTEFHUyI7IHRoZW4KICAgICAg
ICBwa2dfY3ZfUVRDT1JFX0NGTEFHUz0iJFFUQ09SRV9DRkxBR1MiCiAgICBlbHNlCiAgICAgICAg
aWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiBcJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMg
XCJRdENvcmVcIiI7IH0gPiY1CiAgKCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3Jz
ICJRdENvcmUiKSAyPiY1CiAgYWNfc3RhdHVzPSQ/CiAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp
bmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgdGVzdCAkYWNfc3RhdHVzID0g
MDsgfTsgdGhlbgogIHBrZ19jdl9RVENPUkVfQ0ZMQUdTPWAkUEtHX0NPTkZJRyAtLWNmbGFncyAi
UXRDb3JlIiAyPi9kZXYvbnVsbGAKZWxzZQogIHBrZ19mYWlsZWQ9eWVzCmZpCiAgICBmaQplbHNl
Cglwa2dfZmFpbGVkPXVudHJpZWQKZmkKaWYgdGVzdCAtbiAiJFBLR19DT05GSUciOyB0aGVuCiAg
ICBpZiB0ZXN0IC1uICIkUVRDT1JFX0xJQlMiOyB0aGVuCiAgICAgICAgcGtnX2N2X1FUQ09SRV9M
SUJTPSIkUVRDT1JFX0xJQlMiCiAgICBlbHNlCiAgICAgICAgaWYgdGVzdCAtbiAiJFBLR19DT05G
SUciICYmIFwKICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBc
JFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgXCJRdENvcmVcIiI7IH0gPiY1CiAg
KCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJRdENvcmUiKSAyPiY1CiAgYWNf
c3RhdHVzPSQ/CiAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgogIHBrZ19jdl9R
VENPUkVfTElCUz1gJFBLR19DT05GSUcgLS1saWJzICJRdENvcmUiIDI+L2Rldi9udWxsYAplbHNl
CiAgcGtnX2ZhaWxlZD15ZXMKZmkKICAgIGZpCmVsc2UKCXBrZ19mYWlsZWQ9dW50cmllZApmaQoK
CgppZiB0ZXN0ICRwa2dfZmFpbGVkID0geWVzOyB0aGVuCgppZiAkUEtHX0NPTkZJRyAtLWF0bGVh
c3QtcGtnY29uZmlnLXZlcnNpb24gMC4yMDsgdGhlbgogICAgICAgIF9wa2dfc2hvcnRfZXJyb3Jz
X3N1cHBvcnRlZD15ZXMKZWxzZQogICAgICAgIF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZD1u
bwpmaQogICAgICAgIGlmIHRlc3QgJF9wa2dfc2hvcnRfZXJyb3JzX3N1cHBvcnRlZCA9IHllczsg
dGhlbgoJICAgICAgICBRVENPUkVfUEtHX0VSUk9SUz1gJFBLR19DT05GSUcgLS1zaG9ydC1lcnJv
cnMgLS1lcnJvcnMtdG8tc3Rkb3V0IC0tcHJpbnQtZXJyb3JzICJRdENvcmUiYAogICAgICAgIGVs
c2UKCSAgICAgICAgUVRDT1JFX1BLR19FUlJPUlM9YCRQS0dfQ09ORklHIC0tZXJyb3JzLXRvLXN0
ZG91dCAtLXByaW50LWVycm9ycyAiUXRDb3JlImAKICAgICAgICBmaQoJIyBQdXQgdGhlIG5hc3R5
IGVycm9yIG1lc3NhZ2UgaW4gY29uZmlnLmxvZyB3aGVyZSBpdCBiZWxvbmdzCgllY2hvICIkUVRD
T1JFX1BLR19FUlJPUlMiID4mNQoKCWFzX2ZuX2Vycm9yICJQYWNrYWdlIHJlcXVpcmVtZW50cyAo
UXRDb3JlKSB3ZXJlIG5vdCBtZXQ6CgokUVRDT1JFX1BLR19FUlJPUlMKCkNvbnNpZGVyIGFkanVz
dGluZyB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIGlmIHlvdQppbnN0
YWxsZWQgc29mdHdhcmUgaW4gYSBub24tc3RhbmRhcmQgcHJlZml4LgoKQWx0ZXJuYXRpdmVseSwg
eW91IG1heSBzZXQgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBRVENPUkVfQ0ZMQUdTCmFuZCBR
VENPUkVfTElCUyB0byBhdm9pZCB0aGUgbmVlZCB0byBjYWxsIHBrZy1jb25maWcuClNlZSB0aGUg
cGtnLWNvbmZpZyBtYW4gcGFnZSBmb3IgbW9yZSBkZXRhaWxzLgoiICIkTElORU5PIiA1CmVsaWYg
dGVzdCAkcGtnX2ZhaWxlZCA9IHVudHJpZWQ7IHRoZW4KCXsgeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQokYXNfZWNobyAi
JGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9CmFzX2ZuX2Vycm9yICJUaGUgcGtn
LWNvbmZpZyBzY3JpcHQgY291bGQgbm90IGJlIGZvdW5kIG9yIGlzIHRvbyBvbGQuICBNYWtlIHN1
cmUgaXQKaXMgaW4geW91ciBQQVRIIG9yIHNldCB0aGUgUEtHX0NPTkZJRyBlbnZpcm9ubWVudCB2
YXJpYWJsZSB0byB0aGUgZnVsbApwYXRoIHRvIHBrZy1jb25maWcuCgpBbHRlcm5hdGl2ZWx5LCB5
b3UgbWF5IHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIFFUQ09SRV9DRkxBR1MKYW5kIFFU
Q09SRV9MSUJTIHRvIGF2b2lkIHRoZSBuZWVkIHRvIGNhbGwgcGtnLWNvbmZpZy4KU2VlIHRoZSBw
a2ctY29uZmlnIG1hbiBwYWdlIGZvciBtb3JlIGRldGFpbHMuCgpUbyBnZXQgcGtnLWNvbmZpZywg
c2VlIDxodHRwOi8vcGtnLWNvbmZpZy5mcmVlZGVza3RvcC5vcmcvPi4KU2VlIFxgY29uZmlnLmxv
ZycgZm9yIG1vcmUgZGV0YWlscy4iICIkTElORU5PIiA1OyB9CmVsc2UKCVFUQ09SRV9DRkxBR1M9
JHBrZ19jdl9RVENPUkVfQ0ZMQUdTCglRVENPUkVfTElCUz0kcGtnX2N2X1FUQ09SRV9MSUJTCiAg
ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHll
cyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQoJOgpmaQogICAgICAjIFBhcmFub2lhOiBkb24n
dCB0cnVzdCB0aGUgcmVzdWx0IHJlcG9ydGVkIGJ5IHBrZy1jb25maWcsIGJ1dCB3aGVuCiAgICAg
ICMgcGtnLWNvbmZpZyByZXBvcnRzIHRoYXQgUXRDb3JlIGhhcyBiZWVuIGZvdW5kLCB2ZXJpZnkg
d2hldGhlciBsaW5raW5nCiAgICAgICMgcHJvZ3JhbXMgd2l0aCBRdENvcmUgc3VjY2VlZHMuCiAg
ICAgIGFjX2V4dD1jcHAKYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKYWNfY29tcGlsZT0nJENY
WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwphY19saW5rPSck
Q1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNv
bmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w
aWxlcl9nbnUKCiAgICAgIHNhZmVfQ1hYRkxBR1M9IiR7Q1hYRkxBR1N9IgogICAgICBDWFhGTEFH
Uz0iJHtRVENPUkVfQ0ZMQUdTfSAke1FUQ09SRV9MSUJTfSAkbWZsYWdfcHJpbWFyeSIKICAgICAg
Y2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRl
ZnMuaC4gICovCiNpbmNsdWRlIDxRTXV0ZXg+CmludAptYWluICgpCnsKUU11dGV4IE11dGV4Owog
IDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsg
dGhlbiA6CiAgYWNfaGF2ZV9xdGNvcmU9eWVzCmVsc2UKCiAgICAgICAgICB7ICRhc19lY2hvICIk
YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IEFsdGhvdWdoIHBrZy1jb25maWcg
ZGV0ZWN0ZWQgUXQ0LCBsaW5raW5nIFF0NCBwcm9ncmFtcyBmYWlscy4gU2tpcHBpbmcgUXQ0LiIg
PiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IEFsdGhvdWdoIHBrZy1jb25maWcgZGV0ZWN0
ZWQgUXQ0LCBsaW5raW5nIFF0NCBwcm9ncmFtcyBmYWlscy4gU2tpcHBpbmcgUXQ0LiIgPiYyO30K
ICAgICAgICAgIGFjX2hhdmVfcXRjb3JlPW5vCgoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg
Y29uZnRlc3QuJGFjX29iamV4dCBcCiAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFj
X2V4dAogICAgICBDWFhGTEFHUz0iJHtzYWZlX0NYWEZMQUdTfSIKCmVsc2UKCiAgICAgIGFjX2hh
dmVfcXRjb3JlPW5vCgoKZmkKCgogaWYgdGVzdCB4JGFjX2hhdmVfcXRjb3JlID0geHllczsgdGhl
bgogIEhBVkVfUVRDT1JFX1RSVUU9CiAgSEFWRV9RVENPUkVfRkFMU0U9JyMnCmVsc2UKICBIQVZF
X1FUQ09SRV9UUlVFPScjJwogIEhBVkVfUVRDT1JFX0ZBTFNFPQpmaQoKCgojIFRlc3QgZm9yIFFN
dXRleDo6dHJ5TG9jayhpbnQpLCB3aGljaCBoYXMgYmVlbiBpbnRyb2R1Y2VkIGluIFF0IDQuMy4K
IyBTZWUgYWxzbyBodHRwOi8vZG9jLnRyb2xsdGVjaC5jb20vNC4zL3FtdXRleC5odG1sLgppZiB0
ZXN0IHgkYWNfaGF2ZV9xdGNvcmUgPSB4eWVzOyB0aGVuCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgUXQ0IFFNdXRleDo6dHJ5TG9jayhpbnQp
IiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIFF0NCBRTXV0ZXg6OnRyeUxvY2soaW50KS4u
LiAiID4mNjsgfQogIGFjX2V4dD1jcHAKYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKYWNfY29t
cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwph
Y19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRM
REZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2
X2N4eF9jb21waWxlcl9nbnUKCiAgc2FmZV9DWFhGTEFHUz0iJHtDWFhGTEFHU30iCiAgQ1hYRkxB
R1M9IiR7UVRDT1JFX0NGTEFHU30gJG1mbGFnX3ByaW1hcnkiCiAgY2F0IGNvbmZkZWZzLmggLSA8
PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgogICAgI2lu
Y2x1ZGUgPFF0Q29yZS9RTXV0ZXg+CgppbnQKbWFpbiAoKQp7CgogICAgUU11dGV4IE07CiAgICBN
LnRyeUxvY2soMSk7CiAgICBNLnVubG9jaygpOwogICAgcmV0dXJuIDA7CgogIDsKICByZXR1cm4g
MDsKfQpfQUNFT0YKaWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Cgog
ICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIg
PiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQoKJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9RVENPUkVf
UU1VVEVYX1RSWUxPQ0tfSU5UIDEiID4+Y29uZmRlZnMuaAoKCmVsc2UKCiAgICB7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAi
bm8iID4mNjsgfQoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4
dCBjb25mdGVzdC4kYWNfZXh0CiAgQ1hYRkxBR1M9IiR7c2FmZV9DWFhGTEFHU30iCiAgYWNfZXh0
PWMKYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQ
UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwphY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNf
ZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMg
PiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CgpmaQoKCiMgVGVzdCBm
b3IgUUF0b21pY0ludCwgd2hpY2ggaGFzIGJlZW4gaW50cm9kdWNlZCBpbiBRdCA0LjQuCiMgU2Vl
IGFsc28gaHR0cDovL2RvYy50cm9sbHRlY2guY29tLzQuNC9xYXRvbWljaW50Lmh0bWwuCmlmIHRl
c3QgeCRhY19oYXZlX3F0Y29yZSA9IHh5ZXM7IHRoZW4KICB7ICRhc19lY2hvICIkYXNfbWU6JHth
c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBRdDQgUUF0b21pY0ludCIgPiY1CiRhc19l
Y2hvX24gImNoZWNraW5nIGZvciBRdDQgUUF0b21pY0ludC4uLiAiID4mNjsgfQogIGFjX2V4dD1j
cHAKYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxB
R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwphY19saW5rPSckQ1hYIC1vIGNvbmZ0
ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l
eHQgJExJQlMgPiY1JwphY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKCiAg
c2FmZV9DWFhGTEFHUz0iJHtDWFhGTEFHU30iCiAgQ1hYRkxBR1M9IiR7UVRDT1JFX0NGTEFHU30g
JG1mbGFnX3ByaW1hcnkiCiAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj
X2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgogICAgI2luY2x1ZGUgPFF0Q29yZS9RQXRvbWlj
SW50PgoKaW50Cm1haW4gKCkKewoKICAgIFFBdG9taWNJbnQgSTsKICAgIEkudGVzdEFuZFNldE9y
ZGVyZWQoMCwgMSk7CiAgICByZXR1cm4gMDsKCiAgOwogIHJldHVybiAwOwp9Cl9BQ0VPRgppZiBh
Y19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKCiAgICBhY19oYXZlX3F0Y29y
ZV9xYXRvbWljaW50PXllcwogICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F
Tk99OiByZXN1bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQoKJGFzX2VjaG8gIiNk
ZWZpbmUgSEFWRV9RVENPUkVfUUFUT01JQ0lOVCAxIiA+PmNvbmZkZWZzLmgKCgplbHNlCgogICAg
YWNfaGF2ZV9xdGNvcmVfcWF0b21pY2ludD1ubwogICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf
bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7IH0KCmZp
CnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFj
X2V4dAogIENYWEZMQUdTPSIke3NhZmVfQ1hYRkxBR1N9IgogIGFjX2V4dD1jCmFjX2NwcD0nJENQ
UCAkQ1BQRkxBR1MnCmFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVz
dC4kYWNfZXh0ID4mNScKYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdT
ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKYWNfY29tcGls
ZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQoKZmkKCiBpZiB0ZXN0IHgkYWNfaGF2ZV9xdGNv
cmVfcWF0b21pY2ludCA9IHh5ZXM7IHRoZW4KICBIQVZFX1FUQ09SRV9RQVRPTUlDSU5UX1RSVUU9
CiAgSEFWRV9RVENPUkVfUUFUT01JQ0lOVF9GQUxTRT0nIycKZWxzZQogIEhBVkVfUVRDT1JFX1FB
VE9NSUNJTlRfVFJVRT0nIycKICBIQVZFX1FUQ09SRV9RQVRPTUlDSU5UX0ZBTFNFPQpmaQoKCgoK
IyBDaGVjayB3aGV0aGVyIHRoZSBib29zdCBsaWJyYXJ5IDEuMzUgb3IgbGF0ZXIgaGFzIGJlZW4g
aW5zdGFsbGVkLgojIFRoZSBCb29zdC5UaHJlYWRzIGxpYnJhcnkgaGFzIHVuZGVyZ29uZSBhIG1h
am9yIHJld3JpdGUgaW4gdmVyc2lvbiAxLjM1LjAuCgp7ICRhc19lY2hvICIkYXNfbWU6JHthc19s
aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBib29zdCIgPiY1CiRhc19lY2hvX24gImNoZWNr
aW5nIGZvciBib29zdC4uLiAiID4mNjsgfQoKYWNfZXh0PWNwcAphY19jcHA9JyRDWFhDUFAgJENQ
UEZMQUdTJwphY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu
JGFjX2V4dCA+JjUnCmFjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFH
UyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCmFjX2NvbXBp
bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQoKc2FmZV9DWFhGTEFHUz0kQ1hYRkxBR1MK
Q1hYRkxBR1M9Ii1sYm9vc3RfdGhyZWFkLW10ICRtZmxhZ19wcmltYXJ5IgoKY2F0IGNvbmZkZWZz
LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMuaC4gICovCgoj
aW5jbHVkZSA8Ym9vc3QvdGhyZWFkLmhwcD4Kc3RhdGljIHZvaWQgdGhyZWFkX2Z1bmModm9pZCkK
eyB9CmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKewogIGJvb3N0Ojp0aHJlYWQgdCh0
aHJlYWRfZnVuYyk7CiAgcmV0dXJuIDA7Cn0KCl9BQ0VPRgppZiBhY19mbl9jeHhfdHJ5X2xpbmsg
IiRMSU5FTk8iOyB0aGVuIDoKCmFjX2hhdmVfYm9vc3RfMV8zNT15ZXMKCkJPT1NUX0xJQlM9IiR7
Q1hYRkxBR1N9IgoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1
bHQ6IHllcyIgPiY1CiRhc19lY2hvICJ5ZXMiID4mNjsgfQoKZWxzZQoKYWNfaGF2ZV9ib29zdF8x
XzM1PW5vCnsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBu
byIgPiY1CiRhc19lY2hvICJubyIgPiY2OyB9CgpmaQpybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBj
b25mdGVzdC4kYWNfb2JqZXh0IFwKICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNf
ZXh0CgpDWFhGTEFHUz0kc2FmZV9DWFhGTEFHUwphY19leHQ9YwphY19jcHA9JyRDUFAgJENQUEZM
QUdTJwphY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4
dCA+JjUnCmFjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxB
R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCmFjX2NvbXBpbGVyX2dudT0k
YWNfY3ZfY19jb21waWxlcl9nbnUKCgogaWYgdGVzdCB4JGFjX2hhdmVfYm9vc3RfMV8zNSA9IHh5
ZXM7IHRoZW4KICBIQVZFX0JPT1NUXzFfMzVfVFJVRT0KICBIQVZFX0JPT1NUXzFfMzVfRkFMU0U9
JyMnCmVsc2UKICBIQVZFX0JPT1NUXzFfMzVfVFJVRT0nIycKICBIQVZFX0JPT1NUXzFfMzVfRkFM
U0U9CmZpCgoKCiMgZG9lcyB0aGlzIGNvbXBpbGVyIHN1cHBvcnQgLWZvcGVubXAsIGRvZXMgaXQg
aGF2ZSB0aGUgaW5jbHVkZSBmaWxlCiMgPG9tcC5oPiBhbmQgZG9lcyBpdCBoYXZlIGxpYmdvbXAg
PwoKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig
T3Blbk1QIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIE9wZW5NUC4uLiAiID4mNjsgfQoK
c2FmZV9DRkxBR1M9JENGTEFHUwpDRkxBR1M9Ii1mb3Blbm1wICRtZmxhZ19wcmltYXJ5IgoKY2F0
IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAovKiBlbmQgY29uZmRlZnMu
aC4gICovCgojaW5jbHVkZSA8b21wLmg+CmludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikK
ewogIG9tcF9zZXRfZHluYW1pYygwKTsKICByZXR1cm4gMDsKfQoKX0FDRU9GCmlmIGFjX2ZuX2Nf
dHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKCmFjX2hhdmVfb3Blbm1wPXllcwp7ICRhc19lY2hv
ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKJGFzX2VjaG8g
InllcyIgPiY2OyB9CgplbHNlCgphY19oYXZlX29wZW5tcD1ubwp7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQokYXNfZWNobyAibm8iID4mNjsg
fQoKZmkKcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCiAgICBj
b25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dApDRkxBR1M9JHNhZmVfQ0ZMQUdTCgog
aWYgdGVzdCB4JGFjX2hhdmVfb3Blbm1wID0geHllczsgdGhlbgogIEhBVkVfT1BFTk1QX1RSVUU9
CiAgSEFWRV9PUEVOTVBfRkFMU0U9JyMnCmVsc2UKICBIQVZFX09QRU5NUF9UUlVFPScjJwogIEhB
VkVfT1BFTk1QX0ZBTFNFPQpmaQoKCgojIGRvZXMgdGhpcyBjb21waWxlciBoYXZlIGJ1aWx0LWlu
IGZ1bmN0aW9ucyBmb3IgYXRvbWljIG1lbW9yeSBhY2Nlc3MgPwp7ICRhc19lY2hvICIkYXNfbWU6
JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIGdjYyBzdXBwb3J0cyBfX3N5bmNfYm9v
bF9jb21wYXJlX2FuZF9zd2FwIiA+JjUKJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgZ2NjIHN1cHBv
cnRzIF9fc3luY19ib29sX2NvbXBhcmVfYW5kX3N3YXAuLi4gIiA+JjY7IH0KCnNhZmVfQ0ZMQUdT
PSRDRkxBR1MKQ0ZMQUdTPSIkbWZsYWdfcHJpbWFyeSIKCmNhdCBjb25mZGVmcy5oIC0gPDxfQUNF
T0YgPmNvbmZ0ZXN0LiRhY19leHQKLyogZW5kIGNvbmZkZWZzLmguICAqLwoKaW50Cm1haW4gKCkK
ewoKICBpbnQgdmFyaWFibGUgPSAxOwogIHJldHVybiAoX19zeW5jX2Jvb2xfY29tcGFyZV9hbmRf
c3dhcCgmdmFyaWFibGUsIDEsIDIpCiAgICAgICAgICAmJiBfX3N5bmNfYWRkX2FuZF9mZXRjaCgm
dmFyaWFibGUsIDEpID8gMSA6IDApCgogIDsKICByZXR1cm4gMDsKfQpfQUNFT0YKaWYgYWNfZm5f
Y190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgoKICBhY19oYXZlX2J1aWx0aW5fYXRvbWljPXll
cwogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMi
ID4mNQokYXNfZWNobyAieWVzIiA+JjY7IH0KCiRhc19lY2hvICIjZGVmaW5lIEhBVkVfQlVJTFRJ
Tl9BVE9NSUMgMSIgPj5jb25mZGVmcy5oCgoKZWxzZQoKICBhY19oYXZlX2J1aWx0aW5fYXRvbWlj
PW5vCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v
IiA+JjUKJGFzX2VjaG8gIm5vIiA+JjY7IH0KCmZpCnJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv
bmZ0ZXN0LiRhY19vYmpleHQgXAogICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19l
eHQKCkNGTEFHUz0kc2FmZV9DRkxBR1MKCiBpZiB0ZXN0IHgkYWNfaGF2ZV9idWlsdGluX2F0b21p
YyA9IHh5ZXM7IHRoZW4KICBIQVZFX0JVSUxUSU5fQVRPTUlDX1RSVUU9CiAgSEFWRV9CVUlMVElO
X0FUT01JQ19GQUxTRT0nIycKZWxzZQogIEhBVkVfQlVJTFRJTl9BVE9NSUNfVFJVRT0nIycKICBI
QVZFX0JVSUxUSU5fQVRPTUlDX0ZBTFNFPQpmaQoKCgojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIE9r
LiAgV2UncmUgZG9uZSBjaGVja2luZy4KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgTmI6IFZFWC9N
YWtlZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSBNYWtlZmlsZS52ZXguaW4uCmFjX2NvbmZpZ19maWxl
cz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBWRVgvTWFrZWZpbGU6TWFrZWZpbGUudmV4Lmlu
IHZhbGdyaW5kLnNwZWMgdmFsZ3JpbmQucGMgZ2xpYmMtMi5YLnN1cHAgZG9jcy9NYWtlZmlsZSB0
ZXN0cy9NYWtlZmlsZSB0ZXN0cy92Z19yZWd0ZXN0IHBlcmYvTWFrZWZpbGUgcGVyZi92Z19wZXJm
IGluY2x1ZGUvTWFrZWZpbGUgYXV4cHJvZ3MvTWFrZWZpbGUgbXBpL01ha2VmaWxlIGNvcmVncmlu
ZC9NYWtlZmlsZSBtZW1jaGVjay9NYWtlZmlsZSBtZW1jaGVjay90ZXN0cy9NYWtlZmlsZSBtZW1j
aGVjay90ZXN0cy9hbWQ2NC9NYWtlZmlsZSBtZW1jaGVjay90ZXN0cy94ODYvTWFrZWZpbGUgbWVt
Y2hlY2svdGVzdHMvbGludXgvTWFrZWZpbGUgbWVtY2hlY2svdGVzdHMvZGFyd2luL01ha2VmaWxl
IG1lbWNoZWNrL3Rlc3RzL2FtZDY0LWxpbnV4L01ha2VmaWxlIG1lbWNoZWNrL3Rlc3RzL3g4Ni1s
aW51eC9NYWtlZmlsZSBtZW1jaGVjay90ZXN0cy9wcGMzMi9NYWtlZmlsZSBtZW1jaGVjay90ZXN0
cy9wcGM2NC9NYWtlZmlsZSBtZW1jaGVjay9wZXJmL01ha2VmaWxlIGNhY2hlZ3JpbmQvTWFrZWZp
bGUgY2FjaGVncmluZC90ZXN0cy9NYWtlZmlsZSBjYWNoZWdyaW5kL3Rlc3RzL3g4Ni9NYWtlZmls
ZSBjYWNoZWdyaW5kL2NnX2Fubm90YXRlIGNhY2hlZ3JpbmQvY2dfZGlmZiBjYWxsZ3JpbmQvTWFr
ZWZpbGUgY2FsbGdyaW5kL2NhbGxncmluZF9hbm5vdGF0ZSBjYWxsZ3JpbmQvY2FsbGdyaW5kX2Nv
bnRyb2wgY2FsbGdyaW5kL3Rlc3RzL01ha2VmaWxlIGhlbGdyaW5kL01ha2VmaWxlIGhlbGdyaW5k
L3Rlc3RzL01ha2VmaWxlIG1hc3NpZi9NYWtlZmlsZSBtYXNzaWYvdGVzdHMvTWFrZWZpbGUgbWFz
c2lmL3BlcmYvTWFrZWZpbGUgbWFzc2lmL21zX3ByaW50IGxhY2tleS9NYWtlZmlsZSBsYWNrZXkv
dGVzdHMvTWFrZWZpbGUgbm9uZS9NYWtlZmlsZSBub25lL3Rlc3RzL01ha2VmaWxlIG5vbmUvdGVz
dHMvYW1kNjQvTWFrZWZpbGUgbm9uZS90ZXN0cy9wcGMzMi9NYWtlZmlsZSBub25lL3Rlc3RzL3Bw
YzY0L01ha2VmaWxlIG5vbmUvdGVzdHMveDg2L01ha2VmaWxlIG5vbmUvdGVzdHMvYXJtL01ha2Vm
aWxlIG5vbmUvdGVzdHMvbGludXgvTWFrZWZpbGUgbm9uZS90ZXN0cy9kYXJ3aW4vTWFrZWZpbGUg
bm9uZS90ZXN0cy94ODYtbGludXgvTWFrZWZpbGUgZXhwLXB0cmNoZWNrL01ha2VmaWxlIGV4cC1w
dHJjaGVjay90ZXN0cy9NYWtlZmlsZSBkcmQvTWFrZWZpbGUgZHJkL3NjcmlwdHMvZG93bmxvYWQt
YW5kLWJ1aWxkLXNwbGFzaDIgZHJkL3Rlc3RzL01ha2VmaWxlIGV4cC1iYnYvTWFrZWZpbGUgZXhw
LWJidi90ZXN0cy9NYWtlZmlsZSBleHAtYmJ2L3Rlc3RzL3g4Ni9NYWtlZmlsZSBleHAtYmJ2L3Rl
c3RzL3g4Ni1saW51eC9NYWtlZmlsZSBleHAtYmJ2L3Rlc3RzL2FtZDY0LWxpbnV4L01ha2VmaWxl
IGV4cC1iYnYvdGVzdHMvcHBjMzItbGludXgvTWFrZWZpbGUgZXhwLWJidi90ZXN0cy9hcm0tbGlu
dXgvTWFrZWZpbGUgZXhwLWRoYXQvTWFrZWZpbGUgZXhwLWRoYXQvdGVzdHMvTWFrZWZpbGUiCgph
Y19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgY29yZWdyaW5kL2xpbmtfdG9vbF9leGVf
bGludXgiCgphY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgY29yZWdyaW5kL2xpbmtf
dG9vbF9leGVfZGFyd2luIgoKYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIGNvcmVn
cmluZC9saW5rX3Rvb2xfZXhlX2FpeDUiCgpjYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKIyBUaGlz
IGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgY29uZmln
dXJlCiMgdGVzdHMgcnVuIG9uIHRoaXMgc3lzdGVtIHNvIHRoZXkgY2FuIGJlIHNoYXJlZCBiZXR3
ZWVuIGNvbmZpZ3VyZQojIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJl
J3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgojIEl0IGlzIG5vdCB1c2VmdWwgb24gb3RoZXIgc3lz
dGVtcy4gIElmIGl0IGNvbnRhaW5zIHJlc3VsdHMgeW91IGRvbid0CiMgd2FudCB0byBrZWVwLCB5
b3UgbWF5IHJlbW92ZSBvciBlZGl0IGl0LgojCiMgY29uZmlnLnN0YXR1cyBvbmx5IHBheXMgYXR0
ZW50aW9uIHRvIHRoZSBjYWNoZSBmaWxlIGlmIHlvdSBnaXZlIGl0CiMgdGhlIC0tcmVjaGVjayBv
cHRpb24gdG8gcmVydW4gY29uZmlndXJlLgojCiMgYGFjX2N2X2Vudl9mb28nIHZhcmlhYmxlcyAo
c2V0IG9yIHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hlbgojIGxvYWRpbmcgdGhpcyBmaWxl
LCBvdGhlciAqdW5zZXQqIGBhY19jdl9mb28nIHdpbGwgYmUgYXNzaWduZWQgdGhlCiMgZm9sbG93
aW5nIHZhbHVlcy4KCl9BQ0VPRgoKIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBj
YWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKIyBidXQgd2Uga25vdyBvZiBubyB3
b3JrYXJvdW5kIHRoYXQgaXMgc2ltcGxlLCBwb3J0YWJsZSwgYW5kIGVmZmljaWVudC4KIyBTbywg
d2Uga2lsbCB2YXJpYWJsZXMgY29udGFpbmluZyBuZXdsaW5lcy4KIyBVbHRyaXggc2ggc2V0IHdy
aXRlcyB0byBzdGRlcnIgYW5kIGNhbid0IGJlIHJlZGlyZWN0ZWQgZGlyZWN0bHksCiMgYW5kIHNl
dHMgdGhlIGhpZ2ggYml0IGluIHRoZSBjYWNoZSBmaWxlIHVubGVzcyB3ZSBhc3NpZ24gdG8gdGhl
IHZhcnMuCigKICBmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwgc2VkIC1uICdzL15cKFthLXpB
LVpfXVthLXpBLVowLTlfXSpcKT0uKi9cMS9wJ2A7IGRvCiAgICBldmFsIGFjX3ZhbD1cJCRhY192
YXIKICAgIGNhc2UgJGFjX3ZhbCBpbiAjKAogICAgKiR7YXNfbmx9KikKICAgICAgY2FzZSAkYWNf
dmFyIGluICMoCiAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM
SU5FTk99OiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGlu
ZSIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhY2hlIHZhcmlhYmxlICRhY192YXIg
Y29udGFpbnMgYSBuZXdsaW5lIiA+JjI7fSA7OwogICAgICBlc2FjCiAgICAgIGNhc2UgJGFjX3Zh
ciBpbiAjKAogICAgICBfIHwgSUZTIHwgYXNfbmwpIDs7ICMoCiAgICAgIEJBU0hfQVJHViB8IEJB
U0hfU09VUkNFKSBldmFsICRhY192YXI9IDs7ICMoCiAgICAgICopIHsgZXZhbCAkYWNfdmFyPTsg
dW5zZXQgJGFjX3Zhcjt9IDs7CiAgICAgIGVzYWMgOzsKICAgIGVzYWMKICBkb25lCgogIChzZXQp
IDI+JjEgfAogICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsgc2V0KSAyPiYxYCBpbiAjKAog
ICAgKiR7YXNfbmx9YWNfc3BhY2U9XCAqKQogICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNv
cnJlY3RseSwgc28gYWRkIHF1b3RlczogZG91YmxlLXF1b3RlCiAgICAgICMgc3Vic3RpdHV0aW9u
IHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBcXCBpbnRvIFwuCiAgICAgIHNlZCAt
biBcCgkicy8nLydcXFxcJycvZzsKCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19j
cl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwyJy9wIgogICAgICA7OyAjKAogICAgKikKICAg
ICAgIyBgc2V0JyBxdW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBu
b3QgYWRkIHF1b3Rlcy4KICAgICAgc2VkIC1uICIvXltfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNf
Y3JfYWxudW1dKj0vcCIKICAgICAgOzsKICAgIGVzYWMgfAogICAgc29ydAopIHwKICBzZWQgJwog
ICAgIC9eYWNfY3ZfZW52Xy9iIGVuZAogICAgIHQgY2xlYXIKICAgICA6Y2xlYXIKICAgICBzL15c
KFtePV0qXCk9XCguKlt7fV0uKlwpJC90ZXN0ICIke1wxK3NldH0iID0gc2V0IHx8ICYvCiAgICAg
dCBlbmQKICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wxPVwyfS8KICAgICA6ZW5kJyA+
PmNvbmZjYWNoZQppZiBkaWZmICIkY2FjaGVfZmlsZSIgY29uZmNhY2hlID4vZGV2L251bGwgMj4m
MTsgdGhlbiA6OyBlbHNlCiAgaWYgdGVzdCAtdyAiJGNhY2hlX2ZpbGUiOyB0aGVuCiAgICB0ZXN0
ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJgogICAgICB7ICRhc19lY2hvICIkYXNf
bWU6JHthc19saW5lbm8tJExJTkVOT306IHVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjUK
JGFzX2VjaG8gIiRhc19tZTogdXBkYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CiAgICBj
YXQgY29uZmNhY2hlID4kY2FjaGVfZmlsZQogIGVsc2UKICAgIHsgJGFzX2VjaG8gIiRhc19tZTok
e2FzX2xpbmVuby0kTElORU5PfTogbm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hl
X2ZpbGUiID4mNQokYXNfZWNobyAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNo
ZSAkY2FjaGVfZmlsZSIgPiY2O30KICBmaQpmaQpybSAtZiBjb25mY2FjaGUKCnRlc3QgIngkcHJl
Zml4IiA9IHhOT05FICYmIHByZWZpeD0kYWNfZGVmYXVsdF9wcmVmaXgKIyBMZXQgbWFrZSBleHBh
bmQgZXhlY19wcmVmaXguCnRlc3QgIngkZXhlY19wcmVmaXgiID0geE5PTkUgJiYgZXhlY19wcmVm
aXg9JyR7cHJlZml4fScKCkRFRlM9LURIQVZFX0NPTkZJR19ICgphY19saWJvYmpzPQphY19sdGxp
Ym9ianM9CmZvciBhY19pIGluIDogJExJQk9CSlM7IGRvIHRlc3QgIngkYWNfaSIgPSB4OiAmJiBj
b250aW51ZQogICMgMS4gUmVtb3ZlIHRoZSBleHRlbnNpb24sIGFuZCAkVSBpZiBhbHJlYWR5IGlu
c3RhbGxlZC4KICBhY19zY3JpcHQ9J3MvXCRVXC4vLi87cy9cLm8kLy87cy9cLm9iaiQvLycKICBh
Y19pPWAkYXNfZWNobyAiJGFjX2kiIHwgc2VkICIkYWNfc2NyaXB0ImAKICAjIDIuIFByZXBlbmQg
TElCT0JKRElSLiAgV2hlbiB1c2VkIHdpdGggYXV0b21ha2U+PTEuMTAgTElCT0JKRElSCiAgIyAg
ICB3aWxsIGJlIHNldCB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIExJQk9CSlMgb2JqZWN0cyBhcmUg
YnVpbHQuCiAgYXNfZm5fYXBwZW5kIGFjX2xpYm9ianMgIiBcJHtMSUJPQkpESVJ9JGFjX2lcJFUu
JGFjX29iamV4dCIKICBhc19mbl9hcHBlbmQgYWNfbHRsaWJvYmpzICIgXCR7TElCT0JKRElSfSRh
Y19pIickVS5sbycKZG9uZQpMSUJPQkpTPSRhY19saWJvYmpzCgpMVExJQk9CSlM9JGFjX2x0bGli
b2JqcwoKCiBpZiB0ZXN0IC1uICIkRVhFRVhUIjsgdGhlbgogIGFtX19FWEVFWFRfVFJVRT0KICBh
bV9fRVhFRVhUX0ZBTFNFPScjJwplbHNlCiAgYW1fX0VYRUVYVF9UUlVFPScjJwogIGFtX19FWEVF
WFRfRkFMU0U9CmZpCgppZiB0ZXN0IC16ICIke01BSU5UQUlORVJfTU9ERV9UUlVFfSIgJiYgdGVz
dCAteiAiJHtNQUlOVEFJTkVSX01PREVfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25k
aXRpb25hbCBcIk1BSU5UQUlORVJfTU9ERVwiIHdhcyBuZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRo
aXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElO
RU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7QU1ERVBfVFJVRX0iICYmIHRlc3QgLXogIiR7QU1ERVBf
RkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5l
dmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tl
ZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHthbV9fZmFzdGRl
cENDX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgogIGFz
X2ZuX2Vycm9yICJjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5l
ZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlv
bmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX1RSVUV9
IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ1hYX0ZBTFNFfSI7IHRoZW4KICBhc19mbl9lcnJv
ciAiY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENYWFwiIHdhcyBuZXZlciBkZWZpbmVkLgpVc3Vh
bGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4i
ICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ0FTX1RSVUV9IiAmJiB0
ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NBU19GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNv
bmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ0FTXCIgd2FzIG5ldmVyIGRlZmluZWQuClVzdWFsbHkg
dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRM
SU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtWR0NPTkZfQVJDSFNfSU5DTFVERV9YODZfVFJVRX0i
ICYmIHRlc3QgLXogIiR7VkdDT05GX0FSQ0hTX0lOQ0xVREVfWDg2X0ZBTFNFfSI7IHRoZW4KICBh
c19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJWR0NPTkZfQVJDSFNfSU5DTFVERV9YODZcIiB3YXMg
bmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv
a2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0ZXN0IC16ICIke1ZHQ09ORl9B
UkNIU19JTkNMVURFX0FNRDY0X1RSVUV9IiAmJiB0ZXN0IC16ICIke1ZHQ09ORl9BUkNIU19JTkNM
VURFX0FNRDY0X0ZBTFNFfSI7IHRoZW4KICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJWR0NP
TkZfQVJDSFNfSU5DTFVERV9BTUQ2NFwiIHdhcyBuZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMg
bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5P
IiA1CmZpCmlmIHRlc3QgLXogIiR7VkdDT05GX0FSQ0hTX0lOQ0xVREVfUFBDMzJfVFJVRX0iICYm
IHRlc3QgLXogIiR7VkdDT05GX0FSQ0hTX0lOQ0xVREVfUFBDMzJfRkFMU0V9IjsgdGhlbgogIGFz
X2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlZHQ09ORl9BUkNIU19JTkNMVURFX1BQQzMyXCIgd2Fz
IG5ldmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52
b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtWR0NPTkZf
QVJDSFNfSU5DTFVERV9QUEM2NF9UUlVFfSIgJiYgdGVzdCAteiAiJHtWR0NPTkZfQVJDSFNfSU5D
TFVERV9QUEM2NF9GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiVkdD
T05GX0FSQ0hTX0lOQ0xVREVfUFBDNjRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlz
IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVO
TyIgNQpmaQppZiB0ZXN0IC16ICIke1ZHQ09ORl9BUkNIU19JTkNMVURFX0FSTV9UUlVFfSIgJiYg
dGVzdCAteiAiJHtWR0NPTkZfQVJDSFNfSU5DTFVERV9BUk1fRkFMU0V9IjsgdGhlbgogIGFzX2Zu
X2Vycm9yICJjb25kaXRpb25hbCBcIlZHQ09ORl9BUkNIU19JTkNMVURFX0FSTVwiIHdhcyBuZXZl
ciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg
Y29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7VkdDT05GX1BMQVRG
T1JNU19JTkNMVURFX1g4Nl9MSU5VWF9UUlVFfSIgJiYgdGVzdCAteiAiJHtWR0NPTkZfUExBVEZP
Uk1TX0lOQ0xVREVfWDg2X0xJTlVYX0ZBTFNFfSI7IHRoZW4KICBhc19mbl9lcnJvciAiY29uZGl0
aW9uYWwgXCJWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfWDg2X0xJTlVYXCIgd2FzIG5ldmVyIGRl
ZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k
aXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtWR0NPTkZfUExBVEZPUk1T
X0lOQ0xVREVfQU1ENjRfTElOVVhfVFJVRX0iICYmIHRlc3QgLXogIiR7VkdDT05GX1BMQVRGT1JN
U19JTkNMVURFX0FNRDY0X0xJTlVYX0ZBTFNFfSI7IHRoZW4KICBhc19mbl9lcnJvciAiY29uZGl0
aW9uYWwgXCJWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfQU1ENjRfTElOVVhcIiB3YXMgbmV2ZXIg
ZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv
bmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0ZXN0IC16ICIke1ZHQ09ORl9QTEFURk9S
TVNfSU5DTFVERV9QUEMzMl9MSU5VWF9UUlVFfSIgJiYgdGVzdCAteiAiJHtWR0NPTkZfUExBVEZP
Uk1TX0lOQ0xVREVfUFBDMzJfTElOVVhfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25k
aXRpb25hbCBcIlZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9QUEMzMl9MSU5VWFwiIHdhcyBuZXZl
ciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg
Y29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7VkdDT05GX1BMQVRG
T1JNU19JTkNMVURFX1BQQzY0X0xJTlVYX1RSVUV9IiAmJiB0ZXN0IC16ICIke1ZHQ09ORl9QTEFU
Rk9STVNfSU5DTFVERV9QUEM2NF9MSU5VWF9GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNv
bmRpdGlvbmFsIFwiVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1BQQzY0X0xJTlVYXCIgd2FzIG5l
dmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tl
ZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtWR0NPTkZfUExB
VEZPUk1TX0lOQ0xVREVfQVJNX0xJTlVYX1RSVUV9IiAmJiB0ZXN0IC16ICIke1ZHQ09ORl9QTEFU
Rk9STVNfSU5DTFVERV9BUk1fTElOVVhfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25k
aXRpb25hbCBcIlZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9BUk1fTElOVVhcIiB3YXMgbmV2ZXIg
ZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNv
bmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0ZXN0IC16ICIke1ZHQ09ORl9QTEFURk9S
TVNfSU5DTFVERV9QUEMzMl9BSVg1X1RSVUV9IiAmJiB0ZXN0IC16ICIke1ZHQ09ORl9QTEFURk9S
TVNfSU5DTFVERV9QUEMzMl9BSVg1X0ZBTFNFfSI7IHRoZW4KICBhc19mbl9lcnJvciAiY29uZGl0
aW9uYWwgXCJWR0NPTkZfUExBVEZPUk1TX0lOQ0xVREVfUFBDMzJfQUlYNVwiIHdhcyBuZXZlciBk
ZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u
ZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7VkdDT05GX1BMQVRGT1JN
U19JTkNMVURFX1BQQzY0X0FJWDVfVFJVRX0iICYmIHRlc3QgLXogIiR7VkdDT05GX1BMQVRGT1JN
U19JTkNMVURFX1BQQzY0X0FJWDVfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRp
b25hbCBcIlZHQ09ORl9QTEFURk9STVNfSU5DTFVERV9QUEM2NF9BSVg1XCIgd2FzIG5ldmVyIGRl
ZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25k
aXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtWR0NPTkZfUExBVEZPUk1T
X0lOQ0xVREVfWDg2X0RBUldJTl9UUlVFfSIgJiYgdGVzdCAteiAiJHtWR0NPTkZfUExBVEZPUk1T
X0lOQ0xVREVfWDg2X0RBUldJTl9GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlv
bmFsIFwiVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX1g4Nl9EQVJXSU5cIiB3YXMgbmV2ZXIgZGVm
aW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRp
dGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0ZXN0IC16ICIke1ZHQ09ORl9QTEFURk9STVNf
SU5DTFVERV9BTUQ2NF9EQVJXSU5fVFJVRX0iICYmIHRlc3QgLXogIiR7VkdDT05GX1BMQVRGT1JN
U19JTkNMVURFX0FNRDY0X0RBUldJTl9GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRp
dGlvbmFsIFwiVkdDT05GX1BMQVRGT1JNU19JTkNMVURFX0FNRDY0X0RBUldJTlwiIHdhcyBuZXZl
ciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQg
Y29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7VkdDT05GX09TX0lT
X0xJTlVYX1RSVUV9IiAmJiB0ZXN0IC16ICIke1ZHQ09ORl9PU19JU19MSU5VWF9GQUxTRX0iOyB0
aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiVkdDT05GX09TX0lTX0xJTlVYXCIgd2Fz
IG5ldmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52
b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtWR0NPTkZf
T1NfSVNfQUlYNV9UUlVFfSIgJiYgdGVzdCAteiAiJHtWR0NPTkZfT1NfSVNfQUlYNV9GQUxTRX0i
OyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiVkdDT05GX09TX0lTX0FJWDVcIiB3
YXMgbmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBp
bnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0ZXN0IC16ICIke1ZHQ09O
Rl9PU19JU19EQVJXSU5fVFJVRX0iICYmIHRlc3QgLXogIiR7VkdDT05GX09TX0lTX0RBUldJTl9G
QUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiVkdDT05GX09TX0lTX0RB
UldJTlwiIHdhcyBuZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh
cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXog
IiR7VkdDT05GX0hBVkVfUExBVEZPUk1fU0VDX1RSVUV9IiAmJiB0ZXN0IC16ICIke1ZHQ09ORl9I
QVZFX1BMQVRGT1JNX1NFQ19GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFs
IFwiVkdDT05GX0hBVkVfUExBVEZPUk1fU0VDXCIgd2FzIG5ldmVyIGRlZmluZWQuClVzdWFsbHkg
dGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRM
SU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtIQVNfQUxUSVZFQ19UUlVFfSIgJiYgdGVzdCAteiAi
JHtIQVNfQUxUSVZFQ19GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwi
SEFTX0FMVElWRUNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt
YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0
ZXN0IC16ICIke0hBVkVfUFRIUkVBRF9DUkVBVEVfR0xJQkNfMl8wX1RSVUV9IiAmJiB0ZXN0IC16
ICIke0hBVkVfUFRIUkVBRF9DUkVBVEVfR0xJQkNfMl8wX0ZBTFNFfSI7IHRoZW4KICBhc19mbl9l
cnJvciAiY29uZGl0aW9uYWwgXCJIQVZFX1BUSFJFQURfQ1JFQVRFX0dMSUJDXzJfMFwiIHdhcyBu
ZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9r
ZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7QlVJTERfU1NF
M19URVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtCVUlMRF9TU0UzX1RFU1RTX0ZBTFNFfSI7IHRo
ZW4KICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJCVUlMRF9TU0UzX1RFU1RTXCIgd2FzIG5l
dmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tl
ZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtCVUlMRF9TU1NF
M19URVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtCVUlMRF9TU1NFM19URVNUU19GQUxTRX0iOyB0
aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiQlVJTERfU1NTRTNfVEVTVFNcIiB3YXMg
bmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv
a2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQppZiB0ZXN0IC16ICIke0JVSUxEX1BD
TE1VTFFEUV9URVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtCVUlMRF9QQ0xNVUxRRFFfVEVTVFNf
RkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkJVSUxEX1BDTE1VTFFE
UV9URVNUU1wiIHdhcyBuZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3Jv
IHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3Qg
LXogIiR7QlVJTERfTFpDTlRfVEVTVFNfVFJVRX0iICYmIHRlc3QgLXogIiR7QlVJTERfTFpDTlRf
VEVTVFNfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkJVSUxEX0xa
Q05UX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFj
cm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVz
dCAteiAiJHtIQVZFX1BUSFJFQURfQkFSUklFUl9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX1BU
SFJFQURfQkFSUklFUl9GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwi
SEFWRV9QVEhSRUFEX0JBUlJJRVJcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1l
YW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIg
NQpmaQppZiB0ZXN0IC16ICIke0hBVkVfUFRIUkVBRF9NVVRFWF9USU1FRExPQ0tfVFJVRX0iICYm
IHRlc3QgLXogIiR7SEFWRV9QVEhSRUFEX01VVEVYX1RJTUVETE9DS19GQUxTRX0iOyB0aGVuCiAg
YXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiSEFWRV9QVEhSRUFEX01VVEVYX1RJTUVETE9DS1wi
IHdhcyBuZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5
IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlmIHRlc3QgLXogIiR7SEFW
RV9QVEhSRUFEX1NQSU5MT0NLX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfUFRIUkVBRF9TUElO
TE9DS19GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiSEFWRV9QVEhS
RUFEX1NQSU5MT0NLXCIgd2FzIG5ldmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUg
bWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYg
dGVzdCAteiAiJHtCVUlMRF9NUElXUkFQX1BSSV9UUlVFfSIgJiYgdGVzdCAteiAiJHtCVUlMRF9N
UElXUkFQX1BSSV9GQUxTRX0iOyB0aGVuCiAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiQlVJ
TERfTVBJV1JBUF9QUklcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRo
ZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQpp
ZiB0ZXN0IC16ICIke0JVSUxEX01QSVdSQVBfU0VDX1RSVUV9IiAmJiB0ZXN0IC16ICIke0JVSUxE
X01QSVdSQVBfU0VDX0ZBTFNFfSI7IHRoZW4KICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJC
VUlMRF9NUElXUkFQX1NFQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMg
dGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZp
CmlmIHRlc3QgLXogIiR7SEFWRV9RVENPUkVfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9RVENP
UkVfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkhBVkVfUVRDT1JF
XCIgd2FzIG5ldmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u
bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtI
QVZFX1FUQ09SRV9RQVRPTUlDSU5UX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfUVRDT1JFX1FB
VE9NSUNJTlRfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkhBVkVf
UVRDT1JFX1FBVE9NSUNJTlRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5z
IHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpm
aQppZiB0ZXN0IC16ICIke0hBVkVfQk9PU1RfMV8zNV9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZF
X0JPT1NUXzFfMzVfRkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkhB
VkVfQk9PU1RfMV8zNVwiIHdhcyBuZXZlciBkZWZpbmVkLgpVc3VhbGx5IHRoaXMgbWVhbnMgdGhl
IG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CmZpCmlm
IHRlc3QgLXogIiR7SEFWRV9PUEVOTVBfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9PUEVOTVBf
RkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkhBVkVfT1BFTk1QXCIg
d2FzIG5ldmVyIGRlZmluZWQuClVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg
aW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKZmkKaWYgdGVzdCAteiAiJHtIQVZF
X0JVSUxUSU5fQVRPTUlDX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfQlVJTFRJTl9BVE9NSUNf
RkFMU0V9IjsgdGhlbgogIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkhBVkVfQlVJTFRJTl9B
VE9NSUNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3
YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQpmaQoKOiAke0NPTkZJ
R19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQphY193cml0ZV9mYWlsPTAKYWNfY2xlYW5fZmlsZXNf
c2F2ZT0kYWNfY2xlYW5fZmlsZXMKYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09O
RklHX1NUQVRVUyIKeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjcmVh
dGluZyAkQ09ORklHX1NUQVRVUyIgPiY1CiRhc19lY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05G
SUdfU1RBVFVTIiA+JjY7fQphc193cml0ZV9mYWlsPTAKY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9B
U0VPRiB8fCBhc193cml0ZV9mYWlsPTEKIyEgJFNIRUxMCiMgR2VuZXJhdGVkIGJ5ICRhc19tZS4K
IyBSdW4gdGhpcyBmaWxlIHRvIHJlY3JlYXRlIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uCiMg
Q29tcGlsZXIgb3V0cHV0IHByb2R1Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dp
bmcKIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgoKZGVidWc9ZmFs
c2UKYWNfY3NfcmVjaGVjaz1mYWxzZQphY19jc19zaWxlbnQ9ZmFsc2UKClNIRUxMPVwke0NPTkZJ
R19TSEVMTC0kU0hFTEx9CmV4cG9ydCBTSEVMTApfQVNFT0YKY2F0ID4+JENPTkZJR19TVEFUVVMg
PDxcX0FTRU9GIHx8IGFzX3dyaXRlX2ZhaWw9MQojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoj
IyBNNHNoIEluaXRpYWxpemF0aW9uLiAjIwojIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwoKIyBC
ZSBtb3JlIEJvdXJuZSBjb21wYXRpYmxlCkRVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZv
ciBNS1Mgc2gKaWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiAmJiAoZW11bGF0ZSBzaCkg
Pi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoKICBlbXVsYXRlIHNoCiAgTlVMTENNRD06CiAgIyBQcmUt
NC4yIHZlcnNpb25zIG9mIFpzaCBkbyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNo
CiAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KICBh
bGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKICBzZXRvcHQgTk9fR0xPQl9TVUJTVAplbHNlCiAg
Y2FzZSBgKHNldCAtbykgMj4vZGV2L251bGxgIGluICMoCiAgKnBvc2l4KikgOgogICAgc2V0IC1v
IHBvc2l4IDs7ICMoCiAgKikgOgogICAgIDs7CmVzYWMKZmkKCgphc19ubD0nCicKZXhwb3J0IGFz
X25sCiMgUHJpbnRpbmcgYSBsb25nIHN0cmluZyBjcmFzaGVzIFNvbGFyaXMgNyAvdXNyL2Jpbi9w
cmludGYuCmFzX2VjaG89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc
XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc
XFxcXFwnCmFzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwph
c19lY2hvPSRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwoj
IFByZWZlciBhIGtzaCBzaGVsbCBidWlsdGluIG92ZXIgYW4gZXh0ZXJuYWwgcHJpbnRmIHByb2dy
YW0gb24gU29sYXJpcywKIyBidXQgd2l0aG91dCB3YXN0aW5nIGZvcmtzIGZvciBiYXNoIG9yIHpz
aC4KaWYgdGVzdCAteiAiJEJBU0hfVkVSU0lPTiRaU0hfVkVSU0lPTiIgXAogICAgJiYgKHRlc3Qg
IlhgcHJpbnQgLXIgLS0gJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhl
bgogIGFzX2VjaG89J3ByaW50IC1yIC0tJwogIGFzX2VjaG9fbj0ncHJpbnQgLXJuIC0tJwplbGlm
ICh0ZXN0ICJYYHByaW50ZiAlcyAkYXNfZWNob2AiID0gIlgkYXNfZWNobyIpIDI+L2Rldi9udWxs
OyB0aGVuCiAgYXNfZWNobz0ncHJpbnRmICVzXG4nCiAgYXNfZWNob19uPSdwcmludGYgJXMnCmVs
c2UKICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVs
bGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KICAgIGFzX2VjaG9fYm9keT0nZXZhbCAvdXNyL3Vj
Yi9lY2hvIC1uICIkMSRhc19ubCInCiAgICBhc19lY2hvX249Jy91c3IvdWNiL2VjaG8gLW4nCiAg
ZWxzZQogICAgYXNfZWNob19ib2R5PSdldmFsIGV4cHIgIlgkMSIgOiAiWFxcKC4qXFwpIicKICAg
IGFzX2VjaG9fbl9ib2R5PSdldmFsCiAgICAgIGFyZz0kMTsKICAgICAgY2FzZSAkYXJnIGluICMo
CiAgICAgICoiJGFzX25sIiopCglleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKCWFy
Zz1gZXhwciAiWCRhcmciIDogIi4qJGFzX25sXFwoLipcXCkiYDs7CiAgICAgIGVzYWM7CiAgICAg
IGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKICAgICcKICAgIGV4
cG9ydCBhc19lY2hvX25fYm9keQogICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkg
YXNfZWNobycKICBmaQogIGV4cG9ydCBhc19lY2hvX2JvZHkKICBhc19lY2hvPSdzaCAtYyAkYXNf
ZWNob19ib2R5IGFzX2VjaG8nCmZpCgojIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KaWYgdGVz
dCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KICBQQVRIX1NFUEFSQVRPUj06
CiAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+
JjEgJiYgewogICAgKFBBVEg9Jy9iaW46L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rl
di9udWxsIDI+JjEgfHwKICAgICAgUEFUSF9TRVBBUkFUT1I9JzsnCiAgfQpmaQoKCiMgSUZTCiMg
V2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIu
ICBRdW90aW5nIGlzCiMgdGhlcmUgdG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcg
YWJvdXQgc3BhY2UtdGFiLgojIChJZiBfQVNfUEFUSF9XQUxLIHdlcmUgY2FsbGVkIHdpdGggSUZT
IHVuc2V0LCBpdCB3b3VsZCBkaXNhYmxlIHdvcmQKIyBzcGxpdHRpbmcgYnkgc2V0dGluZyBJRlMg
dG8gZW1wdHkgdmFsdWUuKQpJRlM9IiAiIgkkYXNfbmwiCgojIEZpbmQgd2hvIHdlIGFyZS4gIExv
b2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgpjYXNl
ICQwIGluICMoKAogICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKICAqKSBhc19zYXZlX0lGUz0k
SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCmZvciBhc19kaXIgaW4gJFBBVEgKZG8KICBJRlM9JGFz
X3NhdmVfSUZTCiAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgIHRlc3QgLXIgIiRh
c19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCiAgZG9uZQpJRlM9JGFz
X3NhdmVfSUZTCgogICAgIDs7CmVzYWMKIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0
IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwojIGluIHdoaWNoIGNhc2Ugd2Ug
YXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KaWYgdGVzdCAieCRhc19teXNlbGYiID0g
eDsgdGhlbgogIGFzX215c2VsZj0kMApmaQppZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVu
CiAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVu
IHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKICBleGl0IDEKZmkKCiMgVW5zZXQgdmFy
aWFibGVzIHRoYXQgd2UgZG8gbm90IG5lZWQgYW5kIHdoaWNoIGNhdXNlIGJ1Z3MgKGUuZy4gaW4K
IyBwcmUtMy4wIFVXSU4ga3NoKS4gIEJ1dCBkbyBub3QgY2F1c2UgYnVncyBpbiBiYXNoIDIuMDE7
IHRoZSAifHwgZXhpdCAxIgojIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRpb24gZmF1bHQiIG1l
c3NhZ2UgdGhlcmUuICAnKCgnIGNvdWxkCiMgdHJpZ2dlciBhIGJ1ZyBpbiBwZGtzaCA1LjIuMTQu
CmZvciBhc192YXIgaW4gQkFTSF9FTlYgRU5WIE1BSUwgTUFJTFBBVEgKZG8gZXZhbCB0ZXN0IHhc
JHskYXNfdmFyK3NldH0gPSB4c2V0IFwKICAmJiAoICh1bnNldCAkYXNfdmFyKSB8fCBleGl0IDEp
ID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCAkYXNfdmFyIHx8IDoKZG9uZQpQUzE9JyQgJwpQUzI9
Jz4gJwpQUzQ9JysgJwoKIyBOTFMgbnVpc2FuY2VzLgpMQ19BTEw9QwpleHBvcnQgTENfQUxMCkxB
TkdVQUdFPUMKZXhwb3J0IExBTkdVQUdFCgojIENEUEFUSC4KKHVuc2V0IENEUEFUSCkgPi9kZXYv
bnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAoKCiMgYXNfZm5fZXJyb3IgRVJST1IgW0xJTkVOTyBM
T0dfRkRdCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgT3V0cHV0ICJgYmFz
ZW5hbWUgJDBgOiBlcnJvcjogRVJST1IiIHRvIHN0ZGVyci4gSWYgTElORU5PIGFuZCBMT0dfRkQg
YXJlCiMgcHJvdmlkZWQsIGFsc28gb3V0cHV0IHRoZSBlcnJvciB0byBMT0dfRkQsIHJlZmVyZW5j
aW5nIExJTkVOTy4gVGhlbiBleGl0IHRoZQojIHNjcmlwdCB3aXRoIHN0YXR1cyAkPywgdXNpbmcg
MSBpZiB0aGF0IHdhcyAwLgphc19mbl9lcnJvciAoKQp7CiAgYXNfc3RhdHVzPSQ/OyB0ZXN0ICRh
c19zdGF0dXMgLWVxIDAgJiYgYXNfc3RhdHVzPTEKICBpZiB0ZXN0ICIkMyI7IHRoZW4KICAgIGFz
X2xpbmVubz0ke2FzX2xpbmVuby0iJDIifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNr
PSRhc19saW5lbm9fc3RhY2sKICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO
T306IGVycm9yOiAkMSIgPiYkMwogIGZpCiAgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6ICQxIiA+
JjIKICBhc19mbl9leGl0ICRhc19zdGF0dXMKfSAjIGFzX2ZuX2Vycm9yCgoKIyBhc19mbl9zZXRf
c3RhdHVzIFNUQVRVUwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU2V0ICQ/IHRvIFNUQVRV
Uywgd2l0aG91dCBmb3JraW5nLgphc19mbl9zZXRfc3RhdHVzICgpCnsKICByZXR1cm4gJDEKfSAj
IGFzX2ZuX3NldF9zdGF0dXMKCiMgYXNfZm5fZXhpdCBTVEFUVVMKIyAtLS0tLS0tLS0tLS0tLS0t
LQojIEV4aXQgdGhlIHNoZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIgb3IgInNl
dCAtZSIgY29udGV4dC4KYXNfZm5fZXhpdCAoKQp7CiAgc2V0ICtlCiAgYXNfZm5fc2V0X3N0YXR1
cyAkMQogIGV4aXQgJDEKfSAjIGFzX2ZuX2V4aXQKCiMgYXNfZm5fdW5zZXQgVkFSCiMgLS0tLS0t
LS0tLS0tLS0tCiMgUG9ydGFibHkgdW5zZXQgVkFSLgphc19mbl91bnNldCAoKQp7CiAgeyBldmFs
ICQxPTsgdW5zZXQgJDE7fQp9CmFzX3Vuc2V0PWFzX2ZuX3Vuc2V0CiMgYXNfZm5fYXBwZW5kIFZB
UiBWQUxVRQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBBcHBlbmQgdGhlIHRleHQgaW4gVkFM
VUUgdG8gdGhlIGVuZCBvZiB0aGUgZGVmaW5pdGlvbiBjb250YWluZWQgaW4gVkFSLiBUYWtlCiMg
YWR2YW50YWdlIG9mIGFueSBzaGVsbCBvcHRpbWl6YXRpb25zIHRoYXQgYWxsb3cgYW1vcnRpemVk
IGxpbmVhciBncm93dGggb3ZlcgojIHJlcGVhdGVkIGFwcGVuZHMsIGluc3RlYWQgb2YgdGhlIHR5
cGljYWwgcXVhZHJhdGljIGdyb3d0aCBwcmVzZW50IGluIG5haXZlCiMgaW1wbGVtZW50YXRpb25z
LgppZiAoZXZhbCAiYXNfdmFyPTE7IGFzX3Zhcis9MjsgdGVzdCB4XCRhc192YXIgPSB4MTIiKSAy
Pi9kZXYvbnVsbDsgdGhlbiA6CiAgZXZhbCAnYXNfZm5fYXBwZW5kICgpCiAgewogICAgZXZhbCAk
MSs9XCQyCiAgfScKZWxzZQogIGFzX2ZuX2FwcGVuZCAoKQogIHsKICAgIGV2YWwgJDE9XCQkMVwk
MgogIH0KZmkgIyBhc19mbl9hcHBlbmQKCiMgYXNfZm5fYXJpdGggQVJHLi4uCiMgLS0tLS0tLS0t
LS0tLS0tLS0tCiMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1YXRpb24gb24gdGhlIEFSR3MsIGFu
ZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZQojIGdsb2JhbCAkYXNfdmFsLiBUYWtlIGFkdmFudGFn
ZSBvZiBzaGVsbHMgdGhhdCBjYW4gYXZvaWQgZm9ya3MuIFRoZSBhcmd1bWVudHMKIyBtdXN0IGJl
IHBvcnRhYmxlIGFjcm9zcyAkKCgpKSBhbmQgZXhwci4KaWYgKGV2YWwgInRlc3QgXCQoKCAxICsg
MSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6CiAgZXZhbCAnYXNfZm5fYXJpdGggKCkKICB7
CiAgICBhc192YWw9JCgoICQqICkpCiAgfScKZWxzZQogIGFzX2ZuX2FyaXRoICgpCiAgewogICAg
YXNfdmFsPWBleHByICIkQCIgfHwgdGVzdCAkPyAtZXEgMWAKICB9CmZpICMgYXNfZm5fYXJpdGgK
CgppZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMSAmJgogICB0ZXN0ICJYYGV4cHIg
MDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgogIGFzX2V4cHI9ZXhwcgplbHNlCiAg
YXNfZXhwcj1mYWxzZQpmaQoKaWYgKGJhc2VuYW1lIC0tIC8pID4vZGV2L251bGwgMj4mMSAmJiB0
ZXN0ICJYYGJhc2VuYW1lIC0tIC8gMj4mMWAiID0gIlgvIjsgdGhlbgogIGFzX2Jhc2VuYW1lPWJh
c2VuYW1lCmVsc2UKICBhc19iYXNlbmFtZT1mYWxzZQpmaQoKaWYgKGFzX2Rpcj1gZGlybmFtZSAt
LSAvYCAmJiB0ZXN0ICJYJGFzX2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgYXNf
ZGlybmFtZT1kaXJuYW1lCmVsc2UKICBhc19kaXJuYW1lPWZhbHNlCmZpCgphc19tZT1gJGFzX2Jh
c2VuYW1lIC0tICIkMCIgfHwKJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQn
IFx8IFwKCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAoJIFgiJDAiIDogJ1hcKC9cKScgXHwgLiAy
Pi9kZXYvbnVsbCB8fAokYXNfZWNobyBYLyIkMCIgfAogICAgc2VkICcvXi4qXC9cKFteL11bXi9d
KlwpXC8qJC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwvXChcL1wvXCkkL3sKCSAg
ICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXC9cKFwvXCkuKi97CgkgICAgcy8vXDEvCgkgICAg
cQoJICB9CgkgIHMvLiovLi87IHEnYAoKIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIg
UmFuZ2VzLgphc19jcl9sZXR0ZXJzPSdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKYXNfY3Jf
TEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonCmFzX2NyX0xldHRlcnM9JGFzX2Ny
X2xldHRlcnMkYXNfY3JfTEVUVEVSUwphc19jcl9kaWdpdHM9JzAxMjM0NTY3ODknCmFzX2NyX2Fs
bnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cwoKRUNIT19DPSBFQ0hPX049IEVDSE9fVD0K
Y2FzZSBgZWNobyAtbiB4YCBpbiAjKCgoKCgKLW4qKQogIGNhc2UgYGVjaG8gJ3h5XGMnYCBpbgog
ICpjKikgRUNIT19UPScJJzs7CSMgRUNIT19UIGlzIHNpbmdsZSB0YWIgY2hhcmFjdGVyLgogIHh5
KSAgRUNIT19DPSdcYyc7OwogICopICAgZWNobyBgZWNobyBrc2g4OCBidWcgb24gQUlYIDYuMWAg
PiAvZGV2L251bGwKICAgICAgIEVDSE9fVD0nCSc7OwogIGVzYWM7OwoqKQogIEVDSE9fTj0nLW4n
OzsKZXNhYwoKcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKaWYgdGVzdCAtZCBj
b25mJCQuZGlyOyB0aGVuCiAgcm0gLWYgY29uZiQkLmRpci9jb25mJCQuZmlsZQplbHNlCiAgcm0g
LWYgY29uZiQkLmRpcgogIG1rZGlyIGNvbmYkJC5kaXIgMj4vZGV2L251bGwKZmkKaWYgKGVjaG8g
PmNvbmYkJC5maWxlKSAyPi9kZXYvbnVsbDsgdGhlbgogIGlmIGxuIC1zIGNvbmYkJC5maWxlIGNv
bmYkJCAyPi9kZXYvbnVsbDsgdGhlbgogICAgYXNfbG5fcz0nbG4gLXMnCiAgICAjIC4uLiBidXQg
dGhlcmUgYXJlIHR3byBnb3RjaGFzOgogICAgIyAxKSBPbiBNU1lTLCBib3RoIGBsbiAtcyBmaWxl
IGRpcicgYW5kIGBsbiBmaWxlIGRpcicgZmFpbC4KICAgICMgMikgREpHUFAgPCAyLjA0IGhhcyBu
byBzeW1saW5rczsgYGxuIC1zJyBjcmVhdGVzIGEgd3JhcHBlciBleGVjdXRhYmxlLgogICAgIyBJ
biBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KICAgIGxuIC1zIGNv
bmYkJC5maWxlIGNvbmYkJC5kaXIgMj4vZGV2L251bGwgJiYgdGVzdCAhIC1mIGNvbmYkJC5leGUg
fHwKICAgICAgYXNfbG5fcz0nY3AgLXAnCiAgZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4v
ZGV2L251bGw7IHRoZW4KICAgIGFzX2xuX3M9bG4KICBlbHNlCiAgICBhc19sbl9zPSdjcCAtcCcK
ICBmaQplbHNlCiAgYXNfbG5fcz0nY3AgLXAnCmZpCnJtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNv
bmYkJC5kaXIvY29uZiQkLmZpbGUgY29uZiQkLmZpbGUKcm1kaXIgY29uZiQkLmRpciAyPi9kZXYv
bnVsbAoKCiMgYXNfZm5fbWtkaXJfcAojIC0tLS0tLS0tLS0tLS0KIyBDcmVhdGUgIiRhc19kaXIi
IGFzIGEgZGlyZWN0b3J5LCBpbmNsdWRpbmcgcGFyZW50cyBpZiBuZWNlc3NhcnkuCmFzX2ZuX21r
ZGlyX3AgKCkKewoKICBjYXNlICRhc19kaXIgaW4gIygKICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7
CiAgZXNhYwogIHRlc3QgLWQgIiRhc19kaXIiIHx8IGV2YWwgJGFzX21rZGlyX3AgfHwgewogICAg
YXNfZGlycz0KICAgIHdoaWxlIDo7IGRvCiAgICAgIGNhc2UgJGFzX2RpciBpbiAjKAogICAgICAq
XCcqKSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9n
ImA7OyAjJygKICAgICAgKikgYXNfcWRpcj0kYXNfZGlyOzsKICAgICAgZXNhYwogICAgICBhc19k
aXJzPSInJGFzX3FkaXInICRhc19kaXJzIgogICAgICBhc19kaXI9YCRhc19kaXJuYW1lIC0tICIk
YXNfZGlyIiB8fAokYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10q
LyokJyBcfCBcCgkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAoJIFgiJGFzX2RpciIg
OiAnWFwoLy9cKSQnIFx8IFwKCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVs
bCB8fAokYXNfZWNobyBYIiRhc19kaXIiIHwKICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14v
XVteL10qXC8qJC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cL1wpW14vXS4q
L3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wvXCkkL3sKCSAgICBzLy9cMS8K
CSAgICBxCgkgIH0KCSAgL15YXChcL1wpLiovewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICBz
Ly4qLy4vOyBxJ2AKICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKICAgIGRvbmUKICAg
IHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGlycyIKICB9IHx8IHRlc3Qg
LWQgIiRhc19kaXIiIHx8IGFzX2ZuX2Vycm9yICJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNf
ZGlyIgoKCn0gIyBhc19mbl9ta2Rpcl9wCmlmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4K
ICBhc19ta2Rpcl9wPSdta2RpciAtcCAiJGFzX2RpciInCmVsc2UKICB0ZXN0IC1kIC4vLXAgJiYg
cm1kaXIgLi8tcAogIGFzX21rZGlyX3A9ZmFsc2UKZmkKCmlmIHRlc3QgLXggLyA+L2Rldi9udWxs
IDI+JjE7IHRoZW4KICBhc190ZXN0X3g9J3Rlc3QgLXgnCmVsc2UKICBpZiBscyAtZEwgLyA+L2Rl
di9udWxsIDI+JjE7IHRoZW4KICAgIGFzX2xzX0xfb3B0aW9uPUwKICBlbHNlCiAgICBhc19sc19M
X29wdGlvbj0KICBmaQogIGFzX3Rlc3RfeD0nCiAgICBldmFsIHNoIC1jICdcJycKICAgICAgaWYg
dGVzdCAtZCAiJDEiOyB0aGVuCgl0ZXN0IC1kICIkMS8uIjsKICAgICAgZWxzZQoJY2FzZSAkMSBp
biAjKAoJLSopc2V0ICIuLyQxIjs7Cgllc2FjOwoJY2FzZSBgbHMgLWxkJyRhc19sc19MX29wdGlv
bicgIiQxIiAyPi9kZXYvbnVsbGAgaW4gIygoCgk/Pz9bc3hdKik6OzsqKWZhbHNlOztlc2FjO2Zp
CiAgICAnXCcnIHNoCiAgJwpmaQphc19leGVjdXRhYmxlX3A9JGFzX3Rlc3RfeAoKIyBTZWQgZXhw
cmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgphc190cl9jcHA9
ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2Ny
X2FsbnVtXSVfJWcnIgoKIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZh
bGlkIHZhcmlhYmxlIG5hbWUuCmFzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNf
Y3JfYWxudW1dJV8lZyciCgoKZXhlYyA2PiYxCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICMjCiMjIE1haW4gYm9keSBvZiAkQ09ORklHX1NUQVRVUyBzY3JpcHQuICMjCiMj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCl9BU0VPRgp0ZXN0ICRhc193
cml0ZV9mYWlsID0gMCAmJiBjaG1vZCAreCAkQ09ORklHX1NUQVRVUyB8fCBhY193cml0ZV9mYWls
PTEKCmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKIyBT
YXZlIHRoZSBsb2cgbWVzc2FnZSwgdG8ga2VlcCAkMCBhbmQgc28gb24gbWVhbmluZ2Z1bCwgYW5k
IHRvCiMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5z
dGVhZCBvZiB0aGVpcgojIHZhbHVlcyBhZnRlciBvcHRpb25zIGhhbmRsaW5nLgphY19sb2c9IgpU
aGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFZhbGdyaW5kICRhc19tZSAzLjYuMSwgd2hpY2ggd2Fz
CmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5l
IHdhcwoKICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCiAgQ09ORklHX0hFQURFUlMg
ID0gJENPTkZJR19IRUFERVJTCiAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5LUwogIENP
TkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKICAkICQwICRACgpvbiBgKGhvc3RuYW1l
IHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKIgoKX0FDRU9GCgpjYXNlICRhY19j
b25maWdfZmlsZXMgaW4gKiIKIiopIHNldCB4ICRhY19jb25maWdfZmlsZXM7IHNoaWZ0OyBhY19j
b25maWdfZmlsZXM9JCo7Owplc2FjCgpjYXNlICRhY19jb25maWdfaGVhZGVycyBpbiAqIgoiKikg
c2V0IHggJGFjX2NvbmZpZ19oZWFkZXJzOyBzaGlmdDsgYWNfY29uZmlnX2hlYWRlcnM9JCo7Owpl
c2FjCgoKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCiMg
RmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdhcyBtYWRlIGZvci4KY29uZmlnX2ZpbGVzPSIkYWNf
Y29uZmlnX2ZpbGVzIgpjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIgpjb25maWdf
Y29tbWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMiCgpfQUNFT0YKCmNhdCA+PiRDT05GSUdfU1RB
VFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKYWNfY3NfdXNhZ2U9IlwKXGAkYXNfbWUn
IGluc3RhbnRpYXRlcyBmaWxlcyBhbmQgb3RoZXIgY29uZmlndXJhdGlvbiBhY3Rpb25zCmZyb20g
dGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLiAgVW5sZXNz
IHRoZSBmaWxlcwphbmQgYWN0aW9ucyBhcmUgc3BlY2lmaWVkIGFzIFRBR3MsIGFsbCBhcmUgaW5z
dGFudGlhdGVkIGJ5IGRlZmF1bHQuCgpVc2FnZTogJDAgW09QVElPTl0uLi4gW1RBR10uLi4KCiAg
LWgsIC0taGVscCAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAogIC1WLCAtLXZlcnNp
b24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIgYW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsIHRo
ZW4gZXhpdAogICAgICAtLWNvbmZpZyAgICAgcHJpbnQgY29uZmlndXJhdGlvbiwgdGhlbiBleGl0
CiAgLXEsIC0tcXVpZXQsIC0tc2lsZW50CiAgICAgICAgICAgICAgICAgICBkbyBub3QgcHJpbnQg
cHJvZ3Jlc3MgbWVzc2FnZXMKICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3Jh
cnkgZmlsZXMKICAgICAgLS1yZWNoZWNrICAgIHVwZGF0ZSAkYXNfbWUgYnkgcmVjb25maWd1cmlu
ZyBpbiB0aGUgc2FtZSBjb25kaXRpb25zCiAgICAgIC0tZmlsZT1GSUxFWzpURU1QTEFURV0KICAg
ICAgICAgICAgICAgICAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQog
ICAgICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KICAgICAgICAgICAgICAgICAgIGluc3RhbnRp
YXRlIHRoZSBjb25maWd1cmF0aW9uIGhlYWRlciBGSUxFCgpDb25maWd1cmF0aW9uIGZpbGVzOgok
Y29uZmlnX2ZpbGVzCgpDb25maWd1cmF0aW9uIGhlYWRlcnM6CiRjb25maWdfaGVhZGVycwoKQ29u
ZmlndXJhdGlvbiBjb21tYW5kczoKJGNvbmZpZ19jb21tYW5kcwoKUmVwb3J0IGJ1Z3MgdG8gPHZh
bGdyaW5kLXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4uIgoKX0FDRU9GCmNhdCA+PiRDT05G
SUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQphY19jc19jb25maWc9ImAkYXNf
ZWNobyAiJGFjX2NvbmZpZ3VyZV9hcmdzIiB8IHNlZCAncy9eIC8vOyBzL1tcXCIiXGBcJF0vXFxc
XCYvZydgIgphY19jc192ZXJzaW9uPSJcXApWYWxncmluZCBjb25maWcuc3RhdHVzIDMuNi4xCmNv
bmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NSwKICB3aXRoIG9w
dGlvbnMgXFwiXCRhY19jc19jb25maWdcXCIKCkNvcHlyaWdodCAoQykgMjAwOSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4KVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNv
ZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCmdpdmVzIHVubGltaXRlZCBwZXJt
aXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCgphY19wd2Q9JyRhY19w
d2QnCnNyY2Rpcj0nJHNyY2RpcicKSU5TVEFMTD0nJElOU1RBTEwnCk1LRElSX1A9JyRNS0RJUl9Q
JwpBV0s9JyRBV0snCnRlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCl9BQ0VPRgoKY2F0ID4+JENP
TkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQojIFRoZSBkZWZhdWx0IGxp
c3RzIGFwcGx5IGlmIHRoZSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYW55IGZpbGUuCmFjX25lZWRf
ZGVmYXVsdHM9Ogp3aGlsZSB0ZXN0ICQjICE9IDAKZG8KICBjYXNlICQxIGluCiAgLS0qPSopCiAg
ICBhY19vcHRpb249YGV4cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAogICAgYWNfb3B0YXJnPWBl
eHByICJYJDEiIDogJ1hbXj1dKj1cKC4qXCknYAogICAgYWNfc2hpZnQ9OgogICAgOzsKICAqKQog
ICAgYWNfb3B0aW9uPSQxCiAgICBhY19vcHRhcmc9JDIKICAgIGFjX3NoaWZ0PXNoaWZ0CiAgICA7
OwogIGVzYWMKCiAgY2FzZSAkYWNfb3B0aW9uIGluCiAgIyBIYW5kbGluZyBvZiB0aGUgb3B0aW9u
cy4KICAtcmVjaGVjayB8IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8
IC0tcmVjIHwgLS1yZSB8IC0tcikKICAgIGFjX2NzX3JlY2hlY2s9OiA7OwogIC0tdmVyc2lvbiB8
IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC0tdmVyIHwgLS12ZSB8IC0tdiB8IC1WICkK
ICAgICRhc19lY2hvICIkYWNfY3NfdmVyc2lvbiI7IGV4aXQgOzsKICAtLWNvbmZpZyB8IC0tY29u
ZmkgfCAtLWNvbmYgfCAtLWNvbiB8IC0tY28gfCAtLWMgKQogICAgJGFzX2VjaG8gIiRhY19jc19j
b25maWciOyBleGl0IDs7CiAgLS1kZWJ1ZyB8IC0tZGVidSB8IC0tZGViIHwgLS1kZSB8IC0tZCB8
IC1kICkKICAgIGRlYnVnPTogOzsKICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQogICAg
JGFjX3NoaWZ0CiAgICBjYXNlICRhY19vcHRhcmcgaW4KICAgICpcJyopIGFjX29wdGFyZz1gJGFz
X2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CiAgICBlc2Fj
CiAgICBhc19mbl9hcHBlbmQgQ09ORklHX0ZJTEVTICIgJyRhY19vcHRhcmcnIgogICAgYWNfbmVl
ZF9kZWZhdWx0cz1mYWxzZTs7CiAgLS1oZWFkZXIgfCAtLWhlYWRlIHwgLS1oZWFkIHwgLS1oZWEg
KQogICAgJGFjX3NoaWZ0CiAgICBjYXNlICRhY19vcHRhcmcgaW4KICAgICpcJyopIGFjX29wdGFy
Zz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CiAg
ICBlc2FjCiAgICBhc19mbl9hcHBlbmQgQ09ORklHX0hFQURFUlMgIiAnJGFjX29wdGFyZyciCiAg
ICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKICAtLWhlIHwgLS1oKQogICAgIyBDb25mbGljdCBi
ZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFkZXIKICAgIGFzX2ZuX2Vycm9yICJhbWJpZ3VvdXMgb3B0
aW9uOiBcYCQxJwpUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiI7OwogIC0t
aGVscCB8IC0taGVsIHwgLWggKQogICAgJGFzX2VjaG8gIiRhY19jc191c2FnZSI7IGV4aXQgOzsK
ICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAog
IHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsIHwgLS1zaSB8
IC0tcykKICAgIGFjX2NzX3NpbGVudD06IDs7CgogICMgVGhpcyBpcyBhbiBlcnJvci4KICAtKikg
YXNfZm5fZXJyb3IgInVucmVjb2duaXplZCBvcHRpb246IFxgJDEnClRyeSBcYCQwIC0taGVscCcg
Zm9yIG1vcmUgaW5mb3JtYXRpb24uIiA7OwoKICAqKSBhc19mbl9hcHBlbmQgYWNfY29uZmlnX3Rh
cmdldHMgIiAkMSIKICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlIDs7CgogIGVzYWMKICBzaGlm
dApkb25lCgphY19jb25maWd1cmVfZXh0cmFfYXJncz0KCmlmICRhY19jc19zaWxlbnQ7IHRoZW4K
ICBleGVjIDY+L2Rldi9udWxsCiAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1
cmVfZXh0cmFfYXJncyAtLXNpbGVudCIKZmkKCl9BQ0VPRgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8
PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKaWYgXCRhY19jc19yZWNoZWNrOyB0aGVuCiAgc2V0
IFggJyRTSEVMTCcgJyQwJyAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFf
YXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgogIHNoaWZ0CiAgXCRhc19lY2hvICJydW5u
aW5nIENPTkZJR19TSEVMTD0kU0hFTEwgXCQqIiA+JjYKICBDT05GSUdfU0hFTEw9JyRTSEVMTCcK
ICBleHBvcnQgQ09ORklHX1NIRUxMCiAgZXhlYyAiXCRAIgpmaQoKX0FDRU9GCmNhdCA+PiRDT05G
SUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKZXhlYyA1Pj5jb25maWcubG9n
CnsKICBlY2hvCiAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4kLyAjIy87cDt4O3A7
eCcgPDxfQVNCT1gKIyMgUnVubmluZyAkYXNfbWUuICMjCl9BU0JPWAogICRhc19lY2hvICIkYWNf
bG9nIgp9ID4mNQoKX0FDRU9GCmNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dy
aXRlX2ZhaWw9MQojCiMgSU5JVC1DT01NQU5EUwojCkFNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBh
Y19hdXhfZGlyPSIkYWNfYXV4X2RpciIKCl9BQ0VPRgoKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxc
X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQoKIyBIYW5kbGluZyBvZiBhcmd1bWVudHMuCmZvciBh
Y19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwpkbwogIGNhc2UgJGFjX2NvbmZp
Z190YXJnZXQgaW4KICAgICJjb25maWcuaCIpIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURF
UlMgY29uZmlnLmgiIDs7CiAgICAiZGVwZmlsZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdf
Q09NTUFORFMgZGVwZmlsZXMiIDs7CiAgICAiTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G
SUdfRklMRVMgTWFrZWZpbGUiIDs7CiAgICAiVkVYL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIk
Q09ORklHX0ZJTEVTIFZFWC9NYWtlZmlsZTpNYWtlZmlsZS52ZXguaW4iIDs7CiAgICAidmFsZ3Jp
bmQuc3BlYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyB2YWxncmluZC5zcGVjIiA7Owog
ICAgInZhbGdyaW5kLnBjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHZhbGdyaW5kLnBj
IiA7OwogICAgImdsaWJjLTIuWC5zdXBwIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGds
aWJjLTIuWC5zdXBwIiA7OwogICAgImRvY3MvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G
SUdfRklMRVMgZG9jcy9NYWtlZmlsZSIgOzsKICAgICJ0ZXN0cy9NYWtlZmlsZSIpIENPTkZJR19G
SUxFUz0iJENPTkZJR19GSUxFUyB0ZXN0cy9NYWtlZmlsZSIgOzsKICAgICJ0ZXN0cy92Z19yZWd0
ZXN0IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHRlc3RzL3ZnX3JlZ3Rlc3QiIDs7CiAg
ICAicGVyZi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBwZXJmL01ha2Vm
aWxlIiA7OwogICAgInBlcmYvdmdfcGVyZiIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBw
ZXJmL3ZnX3BlcmYiIDs7CiAgICAiaW5jbHVkZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENP
TkZJR19GSUxFUyBpbmNsdWRlL01ha2VmaWxlIiA7OwogICAgImF1eHByb2dzL01ha2VmaWxlIikg
Q09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGF1eHByb2dzL01ha2VmaWxlIiA7OwogICAgIm1w
aS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtcGkvTWFrZWZpbGUiIDs7
CiAgICAiY29yZWdyaW5kL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGNv
cmVncmluZC9NYWtlZmlsZSIgOzsKICAgICJtZW1jaGVjay9NYWtlZmlsZSIpIENPTkZJR19GSUxF
Uz0iJENPTkZJR19GSUxFUyBtZW1jaGVjay9NYWtlZmlsZSIgOzsKICAgICJtZW1jaGVjay90ZXN0
cy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtZW1jaGVjay90ZXN0cy9N
YWtlZmlsZSIgOzsKICAgICJtZW1jaGVjay90ZXN0cy9hbWQ2NC9NYWtlZmlsZSIpIENPTkZJR19G
SUxFUz0iJENPTkZJR19GSUxFUyBtZW1jaGVjay90ZXN0cy9hbWQ2NC9NYWtlZmlsZSIgOzsKICAg
ICJtZW1jaGVjay90ZXN0cy94ODYvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM
RVMgbWVtY2hlY2svdGVzdHMveDg2L01ha2VmaWxlIiA7OwogICAgIm1lbWNoZWNrL3Rlc3RzL2xp
bnV4L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG1lbWNoZWNrL3Rlc3Rz
L2xpbnV4L01ha2VmaWxlIiA7OwogICAgIm1lbWNoZWNrL3Rlc3RzL2Rhcndpbi9NYWtlZmlsZSIp
IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtZW1jaGVjay90ZXN0cy9kYXJ3aW4vTWFrZWZp
bGUiIDs7CiAgICAibWVtY2hlY2svdGVzdHMvYW1kNjQtbGludXgvTWFrZWZpbGUiKSBDT05GSUdf
RklMRVM9IiRDT05GSUdfRklMRVMgbWVtY2hlY2svdGVzdHMvYW1kNjQtbGludXgvTWFrZWZpbGUi
IDs7CiAgICAibWVtY2hlY2svdGVzdHMveDg2LWxpbnV4L01ha2VmaWxlIikgQ09ORklHX0ZJTEVT
PSIkQ09ORklHX0ZJTEVTIG1lbWNoZWNrL3Rlc3RzL3g4Ni1saW51eC9NYWtlZmlsZSIgOzsKICAg
ICJtZW1jaGVjay90ZXN0cy9wcGMzMi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G
SUxFUyBtZW1jaGVjay90ZXN0cy9wcGMzMi9NYWtlZmlsZSIgOzsKICAgICJtZW1jaGVjay90ZXN0
cy9wcGM2NC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtZW1jaGVjay90
ZXN0cy9wcGM2NC9NYWtlZmlsZSIgOzsKICAgICJtZW1jaGVjay9wZXJmL01ha2VmaWxlIikgQ09O
RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG1lbWNoZWNrL3BlcmYvTWFrZWZpbGUiIDs7CiAgICAi
Y2FjaGVncmluZC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBjYWNoZWdy
aW5kL01ha2VmaWxlIiA7OwogICAgImNhY2hlZ3JpbmQvdGVzdHMvTWFrZWZpbGUiKSBDT05GSUdf
RklMRVM9IiRDT05GSUdfRklMRVMgY2FjaGVncmluZC90ZXN0cy9NYWtlZmlsZSIgOzsKICAgICJj
YWNoZWdyaW5kL3Rlc3RzL3g4Ni9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF
UyBjYWNoZWdyaW5kL3Rlc3RzL3g4Ni9NYWtlZmlsZSIgOzsKICAgICJjYWNoZWdyaW5kL2NnX2Fu
bm90YXRlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGNhY2hlZ3JpbmQvY2dfYW5ub3Rh
dGUiIDs7CiAgICAiY2FjaGVncmluZC9jZ19kaWZmIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJ
TEVTIGNhY2hlZ3JpbmQvY2dfZGlmZiIgOzsKICAgICJjYWxsZ3JpbmQvTWFrZWZpbGUiKSBDT05G
SUdfRklMRVM9IiRDT05GSUdfRklMRVMgY2FsbGdyaW5kL01ha2VmaWxlIiA7OwogICAgImNhbGxn
cmluZC9jYWxsZ3JpbmRfYW5ub3RhdGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgY2Fs
bGdyaW5kL2NhbGxncmluZF9hbm5vdGF0ZSIgOzsKICAgICJjYWxsZ3JpbmQvY2FsbGdyaW5kX2Nv
bnRyb2wiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgY2FsbGdyaW5kL2NhbGxncmluZF9j
b250cm9sIiA7OwogICAgImNhbGxncmluZC90ZXN0cy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0i
JENPTkZJR19GSUxFUyBjYWxsZ3JpbmQvdGVzdHMvTWFrZWZpbGUiIDs7CiAgICAiaGVsZ3JpbmQv
TWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgaGVsZ3JpbmQvTWFrZWZpbGUi
IDs7CiAgICAiaGVsZ3JpbmQvdGVzdHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdf
RklMRVMgaGVsZ3JpbmQvdGVzdHMvTWFrZWZpbGUiIDs7CiAgICAibWFzc2lmL01ha2VmaWxlIikg
Q09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG1hc3NpZi9NYWtlZmlsZSIgOzsKICAgICJtYXNz
aWYvdGVzdHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgbWFzc2lmL3Rl
c3RzL01ha2VmaWxlIiA7OwogICAgIm1hc3NpZi9wZXJmL01ha2VmaWxlIikgQ09ORklHX0ZJTEVT
PSIkQ09ORklHX0ZJTEVTIG1hc3NpZi9wZXJmL01ha2VmaWxlIiA7OwogICAgIm1hc3NpZi9tc19w
cmludCIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBtYXNzaWYvbXNfcHJpbnQiIDs7CiAg
ICAibGFja2V5L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGxhY2tleS9N
YWtlZmlsZSIgOzsKICAgICJsYWNrZXkvdGVzdHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRD
T05GSUdfRklMRVMgbGFja2V5L3Rlc3RzL01ha2VmaWxlIiA7OwogICAgIm5vbmUvTWFrZWZpbGUi
KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgbm9uZS9NYWtlZmlsZSIgOzsKICAgICJub25l
L3Rlc3RzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG5vbmUvdGVzdHMv
TWFrZWZpbGUiIDs7CiAgICAibm9uZS90ZXN0cy9hbWQ2NC9NYWtlZmlsZSIpIENPTkZJR19GSUxF
Uz0iJENPTkZJR19GSUxFUyBub25lL3Rlc3RzL2FtZDY0L01ha2VmaWxlIiA7OwogICAgIm5vbmUv
dGVzdHMvcHBjMzIvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgbm9uZS90
ZXN0cy9wcGMzMi9NYWtlZmlsZSIgOzsKICAgICJub25lL3Rlc3RzL3BwYzY0L01ha2VmaWxlIikg
Q09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG5vbmUvdGVzdHMvcHBjNjQvTWFrZWZpbGUiIDs7
CiAgICAibm9uZS90ZXN0cy94ODYvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklM
RVMgbm9uZS90ZXN0cy94ODYvTWFrZWZpbGUiIDs7CiAgICAibm9uZS90ZXN0cy9hcm0vTWFrZWZp
bGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgbm9uZS90ZXN0cy9hcm0vTWFrZWZpbGUi
IDs7CiAgICAibm9uZS90ZXN0cy9saW51eC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ
R19GSUxFUyBub25lL3Rlc3RzL2xpbnV4L01ha2VmaWxlIiA7OwogICAgIm5vbmUvdGVzdHMvZGFy
d2luL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG5vbmUvdGVzdHMvZGFy
d2luL01ha2VmaWxlIiA7OwogICAgIm5vbmUvdGVzdHMveDg2LWxpbnV4L01ha2VmaWxlIikgQ09O
RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIG5vbmUvdGVzdHMveDg2LWxpbnV4L01ha2VmaWxlIiA7
OwogICAgImV4cC1wdHJjaGVjay9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF
UyBleHAtcHRyY2hlY2svTWFrZWZpbGUiIDs7CiAgICAiZXhwLXB0cmNoZWNrL3Rlc3RzL01ha2Vm
aWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGV4cC1wdHJjaGVjay90ZXN0cy9NYWtl
ZmlsZSIgOzsKICAgICJkcmQvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg
ZHJkL01ha2VmaWxlIiA7OwogICAgImRyZC9zY3JpcHRzL2Rvd25sb2FkLWFuZC1idWlsZC1zcGxh
c2gyIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGRyZC9zY3JpcHRzL2Rvd25sb2FkLWFu
ZC1idWlsZC1zcGxhc2gyIiA7OwogICAgImRyZC90ZXN0cy9NYWtlZmlsZSIpIENPTkZJR19GSUxF
Uz0iJENPTkZJR19GSUxFUyBkcmQvdGVzdHMvTWFrZWZpbGUiIDs7CiAgICAiZXhwLWJidi9NYWtl
ZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBleHAtYmJ2L01ha2VmaWxlIiA7Owog
ICAgImV4cC1iYnYvdGVzdHMvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg
ZXhwLWJidi90ZXN0cy9NYWtlZmlsZSIgOzsKICAgICJleHAtYmJ2L3Rlc3RzL3g4Ni9NYWtlZmls
ZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBleHAtYmJ2L3Rlc3RzL3g4Ni9NYWtlZmls
ZSIgOzsKICAgICJleHAtYmJ2L3Rlc3RzL3g4Ni1saW51eC9NYWtlZmlsZSIpIENPTkZJR19GSUxF
Uz0iJENPTkZJR19GSUxFUyBleHAtYmJ2L3Rlc3RzL3g4Ni1saW51eC9NYWtlZmlsZSIgOzsKICAg
ICJleHAtYmJ2L3Rlc3RzL2FtZDY0LWxpbnV4L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09O
RklHX0ZJTEVTIGV4cC1iYnYvdGVzdHMvYW1kNjQtbGludXgvTWFrZWZpbGUiIDs7CiAgICAiZXhw
LWJidi90ZXN0cy9wcGMzMi1saW51eC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G
SUxFUyBleHAtYmJ2L3Rlc3RzL3BwYzMyLWxpbnV4L01ha2VmaWxlIiA7OwogICAgImV4cC1iYnYv
dGVzdHMvYXJtLWxpbnV4L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGV4
cC1iYnYvdGVzdHMvYXJtLWxpbnV4L01ha2VmaWxlIiA7OwogICAgImV4cC1kaGF0L01ha2VmaWxl
IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGV4cC1kaGF0L01ha2VmaWxlIiA7OwogICAg
ImV4cC1kaGF0L3Rlc3RzL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGV4
cC1kaGF0L3Rlc3RzL01ha2VmaWxlIiA7OwogICAgImNvcmVncmluZC9saW5rX3Rvb2xfZXhlX2xp
bnV4IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGNvcmVncmluZC9saW5rX3Rvb2xfZXhl
X2xpbnV4IiA7OwogICAgImNvcmVncmluZC9saW5rX3Rvb2xfZXhlX2RhcndpbiIpIENPTkZJR19G
SUxFUz0iJENPTkZJR19GSUxFUyBjb3JlZ3JpbmQvbGlua190b29sX2V4ZV9kYXJ3aW4iIDs7CiAg
ICAiY29yZWdyaW5kL2xpbmtfdG9vbF9leGVfYWl4NSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G
SUxFUyBjb3JlZ3JpbmQvbGlua190b29sX2V4ZV9haXg1IiA7OwoKICAqKSBhc19mbl9lcnJvciAi
aW52YWxpZCBhcmd1bWVudDogXGAkYWNfY29uZmlnX3RhcmdldCciICIkTElORU5PIiA1OzsKICBl
c2FjCmRvbmUKCgojIElmIHRoZSB1c2VyIGRpZCBub3QgdXNlIHRoZSBhcmd1bWVudHMgdG8gc3Bl
Y2lmeSB0aGUgaXRlbXMgdG8gaW5zdGFudGlhdGUsCiMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFj
ZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgojIFdlIHVzZSB0aGUgbG9u
ZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2YgYW4gZXh0cmVtZWx5
CiMgYml6YXJyZSBidWcgb24gU3VuT1MgNC4xLjMuCmlmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVu
CiAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0ZJTEVTPSRjb25m
aWdfZmlsZXMKICB0ZXN0ICIke0NPTkZJR19IRUFERVJTK3NldH0iID0gc2V0IHx8IENPTkZJR19I
RUFERVJTPSRjb25maWdfaGVhZGVycwogIHRlc3QgIiR7Q09ORklHX0NPTU1BTkRTK3NldH0iID0g
c2V0IHx8IENPTkZJR19DT01NQU5EUz0kY29uZmlnX2NvbW1hbmRzCmZpCgojIEhhdmUgYSB0ZW1w
b3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxkIHRy
ZWUKIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBpcyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQg
aGVyZSwgYW5kIGluIGFkZGl0aW9uLAojIGNyZWF0aW5nIGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAv
dG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMuCiMgSG9vayBmb3IgaXRzIHJlbW92YWwg
dW5sZXNzIGRlYnVnZ2luZy4KIyBOb3RlIHRoYXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4g
d2hpY2ggdGhlIGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBjbGVhbmVkOgojIGFmdGVyIGl0cyBjcmVh
dGlvbiBidXQgYmVmb3JlIGl0cyBuYW1lIGhhcyBiZWVuIGFzc2lnbmVkIHRvIGAkdG1wJy4KJGRl
YnVnIHx8CnsKICB0bXA9CiAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KICB7IHRlc3QgLXogIiR0bXAi
IHx8IHRlc3QgISAtZCAiJHRtcCIgfHwgcm0gLWZyICIkdG1wIjsgfSAmJiBleGl0ICRleGl0X3N0
YXR1cwonIDAKICB0cmFwICdhc19mbl9leGl0IDEnIDEgMiAxMyAxNQp9CiMgQ3JlYXRlIGEgKHNl
Y3VyZSkgdG1wIGRpcmVjdG9yeSBmb3IgdG1wIGZpbGVzLgoKewogIHRtcD1gKHVtYXNrIDA3NyAm
JiBta3RlbXAgLWQgIi4vY29uZlhYWFhYWCIpIDI+L2Rldi9udWxsYCAmJgogIHRlc3QgLW4gIiR0
bXAiICYmIHRlc3QgLWQgIiR0bXAiCn0gIHx8CnsKICB0bXA9Li9jb25mJCQtJFJBTkRPTQogICh1
bWFzayAwNzcgJiYgbWtkaXIgIiR0bXAiKQp9IHx8IGFzX2ZuX2Vycm9yICJjYW5ub3QgY3JlYXRl
IGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiAiJExJTkVOTyIgNQoKIyBTZXQgdXAgdGhlIHNj
cmlwdHMgZm9yIENPTkZJR19GSUxFUyBzZWN0aW9uLgojIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhl
bSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0ZJTEVTLgojIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFu
Y2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIGNvbmZpZy5oJy4KaWYgdGVzdCAtbiAiJENPTkZJR19G
SUxFUyI7IHRoZW4KCgphY19jcj1gZWNobyBYIHwgdHIgWCAnXDAxNSdgCiMgT24gY3lnd2luLCBi
YXNoIGNhbiBlYXQgXHIgaW5zaWRlIGBgIGlmIHRoZSB1c2VyIHJlcXVlc3RlZCBpZ25jci4KIyBC
dXQgd2Uga25vdyBvZiBubyBvdGhlciBzaGVsbCB3aGVyZSBhY19jciB3b3VsZCBiZSBlbXB0eSBh
dCB0aGlzCiMgcG9pbnQsIHNvIHdlIGNhbiB1c2UgYSBiYXNoaXNtIGFzIGEgZmFsbGJhY2suCmlm
IHRlc3QgIngkYWNfY3IiID0geDsgdGhlbgogIGV2YWwgYWNfY3I9XCRcJ1xcclwnCmZpCmFjX2Nz
X2F3a19jcj1gJEFXSyAnQkVHSU4geyBwcmludCAiYVxyYiIgfScgPC9kZXYvbnVsbCAyPi9kZXYv
bnVsbGAKaWYgdGVzdCAiJGFjX2NzX2F3a19jciIgPSAiYSR7YWNfY3J9YiI7IHRoZW4KICBhY19j
c19hd2tfY3I9J1xyJwplbHNlCiAgYWNfY3NfYXdrX2NyPSRhY19jcgpmaQoKZWNobyAnQkVHSU4g
eycgPiIkdG1wL3N1YnMxLmF3ayIgJiYKX0FDRU9GCgoKewogIGVjaG8gImNhdCA+Y29uZiQkc3Vi
cy5hd2sgPDxfQUNFT0YiICYmCiAgZWNobyAiJGFjX3N1YnN0X3ZhcnMiIHwgc2VkICdzLy4qLyYh
JCYkYWNfZGVsaW0vJyAmJgogIGVjaG8gIl9BQ0VPRiIKfSA+Y29uZiQkc3Vicy5zaCB8fAogIGFz
X2ZuX2Vycm9yICJjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgIiRMSU5FTk8iIDUKYWNf
ZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICckJ2AKYWNfZGVsaW09
JyUhXyEjICcKZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIGZhbHNlIGZhbHNlIGZhbHNl
IDo7IGRvCiAgLiAuL2NvbmYkJHN1YnMuc2ggfHwKICAgIGFzX2ZuX2Vycm9yICJjb3VsZCBub3Qg
bWFrZSAkQ09ORklHX1NUQVRVUyIgIiRMSU5FTk8iIDUKCiAgYWNfZGVsaW1fbj1gc2VkIC1uICJz
Ly4qJGFjX2RlbGltXCQvWC9wIiBjb25mJCRzdWJzLmF3ayB8IGdyZXAgLWMgWGAKICBpZiB0ZXN0
ICRhY19kZWxpbV9uID0gJGFjX2RlbGltX251bTsgdGhlbgogICAgYnJlYWsKICBlbGlmICRhY19s
YXN0X3RyeTsgdGhlbgogICAgYXNfZm5fZXJyb3IgImNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RB
VFVTIiAiJExJTkVOTyIgNQogIGVsc2UKICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2RlbGlt
IF8kYWNfZGVsaW0hISAiCiAgZmkKZG9uZQpybSAtZiBjb25mJCRzdWJzLnNoCgpjYXQgPj4kQ09O
RklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKY2F0ID4+IlwkdG1wL3N1YnMx
LmF3ayIgPDxcXF9BQ0FXSyAmJgpfQUNFT0YKc2VkIC1uICcKaApzL14vU1siLzsgcy8hLiovIl09
LwpwCmcKcy9eW14hXSohLy8KOnJlcGwKdCByZXBsCnMvJyIkYWNfZGVsaW0iJyQvLwp0IGRlbGlt
CjpubApoCnMvXCguXHsxNDhcfVwpLi4qL1wxLwp0IG1vcmUxCnMvWyJcXF0vXFwmL2c7IHMvXi8i
Lzsgcy8kL1xcbiJcXC8KcApuCmIgcmVwbAo6bW9yZTEKcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBz
LyQvIlxcLwpwCmcKcy8uXHsxNDhcfS8vCnQgbmwKOmRlbGltCmgKcy9cKC5cezE0OFx9XCkuLiov
XDEvCnQgbW9yZTIKcy9bIlxcXS9cXCYvZzsgcy9eLyIvOyBzLyQvIi8KcApiCjptb3JlMgpzL1si
XFxdL1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCnAKZwpzLy5cezE0OFx9Ly8KdCBkZWxpbQonIDxj
b25mJCRzdWJzLmF3ayB8IHNlZCAnCi9eW14iIl0vewogIE4KICBzL1xuLy8KfQonID4+JENPTkZJ
R19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCnJtIC1mIGNvbmYkJHN1YnMuYXdrCmNhdCA+PiRD
T05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQpfQUNBV0sKY2F0ID4+Ilwk
dG1wL3N1YnMxLmF3ayIgPDxfQUNBV0sgJiYKICBmb3IgKGtleSBpbiBTKSBTX2lzX3NldFtrZXld
ID0gMQogIEZTID0gIgciCgp9CnsKICBsaW5lID0gJCAwCiAgbmZpZWxkcyA9IHNwbGl0KGxpbmUs
IGZpZWxkLCAiQCIpCiAgc3Vic3RlZCA9IDAKICBsZW4gPSBsZW5ndGgoZmllbGRbMV0pCiAgZm9y
IChpID0gMjsgaSA8IG5maWVsZHM7IGkrKykgewogICAga2V5ID0gZmllbGRbaV0KICAgIGtleWxl
biA9IGxlbmd0aChrZXkpCiAgICBpZiAoU19pc19zZXRba2V5XSkgewogICAgICB2YWx1ZSA9IFNb
a2V5XQogICAgICBsaW5lID0gc3Vic3RyKGxpbmUsIDEsIGxlbikgIiIgdmFsdWUgIiIgc3Vic3Ry
KGxpbmUsIGxlbiArIGtleWxlbiArIDMpCiAgICAgIGxlbiArPSBsZW5ndGgodmFsdWUpICsgbGVu
Z3RoKGZpZWxkWysraV0pCiAgICAgIHN1YnN0ZWQgPSAxCiAgICB9IGVsc2UKICAgICAgbGVuICs9
IDEgKyBrZXlsZW4KICB9CgogIHByaW50IGxpbmUKfQoKX0FDQVdLCl9BQ0VPRgpjYXQgPj4kQ09O
RklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCmlmIHNlZCAicy8kYWNfY3Iv
LyIgPCAvZGV2L251bGwgPiAvZGV2L251bGwgMj4mMTsgdGhlbgogIHNlZCAicy8kYWNfY3JcJC8v
OyBzLyRhY19jci8kYWNfY3NfYXdrX2NyL2ciCmVsc2UKICBjYXQKZmkgPCAiJHRtcC9zdWJzMS5h
d2siID4gIiR0bXAvc3Vicy5hd2siIFwKICB8fCBhc19mbl9lcnJvciAiY291bGQgbm90IHNldHVw
IGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiICIkTElORU5PIiA1Cl9BQ0VPRgoKIyBWUEFUSCBtYXkg
Y2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUgbWFrZXMsIHNvIHdlIHJlbW92ZSAkKHNyY2RpciksCiMg
JHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0cmlw
IGxlYWRpbmcgYW5kCiMgdHJhaWxpbmcgY29sb25zIGFuZCB0aGVuIHJlbW92ZSB0aGUgd2hvbGUg
bGluZSBpZiBWUEFUSCBiZWNvbWVzIGVtcHR5CiMgKGFjdHVhbGx5IHdlIGxlYXZlIGFuIGVtcHR5
IGxpbmUgdG8gcHJlc2VydmUgbGluZSBudW1iZXJzKS4KaWYgdGVzdCAieCRzcmNkaXIiID0geC47
IHRoZW4KICBhY192cHN1Yj0nL15bCSBdKlZQQVRIWwkgXSo9L3sKcy86KlwkKHNyY2Rpcik6Ki86
LwpzLzoqXCR7c3JjZGlyfToqLzovCnMvOipAc3JjZGlyQDoqLzovCnMvXlwoW149XSo9WwkgXSpc
KToqL1wxLwpzLzoqJC8vCnMvXltePV0qPVsJIF0qJC8vCn0nCmZpCgpjYXQgPj4kQ09ORklHX1NU
QVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCmZpICMgdGVzdCAtbiAiJENPTkZJR19G
SUxFUyIKCiMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgoj
IE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUgbm8gQ09ORklHX0hFQURFUlMu
CiMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aXRoIGAuL2NvbmZpZy5zdGF0dXMgTWFrZWZp
bGUnLgppZiB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVuCmNhdCA+IiR0bXAvZGVmaW5l
cy5hd2siIDw8XF9BQ0FXSyB8fApCRUdJTiB7Cl9BQ0VPRgoKIyBUcmFuc2Zvcm0gY29uZmRlZnMu
aCBpbnRvIGFuIGF3ayBzY3JpcHQgYGRlZmluZXMuYXdrJywgZW1iZWRkZWQgYXMKIyBoZXJlLWRv
Y3VtZW50IGluIGNvbmZpZy5zdGF0dXMsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1
ZXMgaW50bwojIGNvbmZpZy5oLmluIHRvIHByb2R1Y2UgY29uZmlnLmguCgojIENyZWF0ZSBhIGRl
bGltaXRlciBzdHJpbmcgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBjb25mZGVmcy5oLCB0byBlYXNl
CiMgaGFuZGxpbmcgb2YgbG9uZyBsaW5lcy4KYWNfZGVsaW09JyUhXyEjICcKZm9yIGFjX2xhc3Rf
dHJ5IGluIGZhbHNlIGZhbHNlIDo7IGRvCiAgYWNfdD1gc2VkIC1uICIvJGFjX2RlbGltL3AiIGNv
bmZkZWZzLmhgCiAgaWYgdGVzdCAteiAiJGFjX3QiOyB0aGVuCiAgICBicmVhawogIGVsaWYgJGFj
X2xhc3RfdHJ5OyB0aGVuCiAgICBhc19mbl9lcnJvciAiY291bGQgbm90IG1ha2UgJENPTkZJR19I
RUFERVJTIiAiJExJTkVOTyIgNQogIGVsc2UKICAgIGFjX2RlbGltPSIkYWNfZGVsaW0hJGFjX2Rl
bGltIF8kYWNfZGVsaW0hISAiCiAgZmkKZG9uZQoKIyBGb3IgdGhlIGF3ayBzY3JpcHQsIEQgaXMg
YW4gYXJyYXkgb2YgbWFjcm8gdmFsdWVzIGtleWVkIGJ5IG5hbWUsCiMgbGlrZXdpc2UgUCBjb250
YWlucyBtYWNybyBwYXJhbWV0ZXJzIGlmIGFueS4gIFByZXNlcnZlIGJhY2tzbGFzaAojIG5ld2xp
bmUgc2VxdWVuY2VzLgoKYWNfd29yZF9yZT1bXyRhc19jcl9MZXR0ZXJzXVtfJGFzX2NyX2FsbnVt
XSoKc2VkIC1uICcKcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCnQgcnNldAo6cnNldApzL15b
CSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKi8gLwp0IGRlZgpkCjpkZWYKcy9cXCQvLwp0IGJzbmwK
cy9bIlxcXS9cXCYvZwpzL14gXCgnIiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0qXCgu
KlwpL1BbIlwxIl09IlwyIlwKRFsiXDEiXT0iIFwzIi9wCnMvXiBcKCciJGFjX3dvcmRfcmUiJ1wp
WwkgXSpcKC4qXCkvRFsiXDEiXT0iIFwyIi9wCmQKOmJzbmwKcy9bIlxcXS9cXCYvZwpzL14gXCgn
IiRhY193b3JkX3JlIidcKVwoKFteKCldKilcKVsJIF0qXCguKlwpL1BbIlwxIl09IlwyIlwKRFsi
XDEiXT0iIFwzXFxcXFxcbiJcXC9wCnQgY29udApzL14gXCgnIiRhY193b3JkX3JlIidcKVsJIF0q
XCguKlwpL0RbIlwxIl09IiBcMlxcXFxcXG4iXFwvcAp0IGNvbnQKZAo6Y29udApuCnMvLlx7MTQ4
XH0vJiciJGFjX2RlbGltIicvZwp0IGNsZWFyCjpjbGVhcgpzL1xcJC8vCnQgYnNubGMKcy9bIlxc
XS9cXCYvZzsgcy9eLyIvOyBzLyQvIi9wCmQKOmJzbmxjCnMvWyJcXF0vXFwmL2c7IHMvXi8iLzsg
cy8kL1xcXFxcXG4iXFwvcApiIGNvbnQKJyA8Y29uZmRlZnMuaCB8IHNlZCAnCnMvJyIkYWNfZGVs
aW0iJy8iXFxcCiIvZycgPj4kQ09ORklHX1NUQVRVUyB8fCBhY193cml0ZV9mYWlsPTEKCmNhdCA+
PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQogIGZvciAoa2V5IGlu
IEQpIERfaXNfc2V0W2tleV0gPSAxCiAgRlMgPSAiByIKfQovXltcdCBdKiNbXHQgXSooZGVmaW5l
fHVuZGVmKVtcdCBdKyRhY193b3JkX3JlKFtcdCAoXXxcJCkvIHsKICBsaW5lID0gXCQgMAogIHNw
bGl0KGxpbmUsIGFyZywgIiAiKQogIGlmIChhcmdbMV0gPT0gIiMiKSB7CiAgICBkZWZ1bmRlZiA9
IGFyZ1syXQogICAgbWFjMSA9IGFyZ1szXQogIH0gZWxzZSB7CiAgICBkZWZ1bmRlZiA9IHN1YnN0
cihhcmdbMV0sIDIpCiAgICBtYWMxID0gYXJnWzJdCiAgfQogIHNwbGl0KG1hYzEsIG1hYzIsICIo
IikgIykKICBtYWNybyA9IG1hYzJbMV0KICBwcmVmaXggPSBzdWJzdHIobGluZSwgMSwgaW5kZXgo
bGluZSwgZGVmdW5kZWYpIC0gMSkKICBpZiAoRF9pc19zZXRbbWFjcm9dKSB7CiAgICAjIFByZXNl
cnZlIHRoZSB3aGl0ZSBzcGFjZSBzdXJyb3VuZGluZyB0aGUgIiMiLgogICAgcHJpbnQgcHJlZml4
ICJkZWZpbmUiLCBtYWNybyBQW21hY3JvXSBEW21hY3JvXQogICAgbmV4dAogIH0gZWxzZSB7CiAg
ICAjIFJlcGxhY2UgI3VuZGVmIHdpdGggY29tbWVudHMuICBUaGlzIGlzIG5lY2Vzc2FyeSwgZm9y
IGV4YW1wbGUsCiAgICAjIGluIHRoZSBjYXNlIG9mIF9QT1NJWF9TT1VSQ0UsIHdoaWNoIGlzIHBy
ZWRlZmluZWQgYW5kIHJlcXVpcmVkCiAgICAjIG9uIHNvbWUgc3lzdGVtcyB3aGVyZSBjb25maWd1
cmUgd2lsbCBub3QgZGVjaWRlIHRvIGRlZmluZSBpdC4KICAgIGlmIChkZWZ1bmRlZiA9PSAidW5k
ZWYiKSB7CiAgICAgIHByaW50ICIvKiIsIHByZWZpeCBkZWZ1bmRlZiwgbWFjcm8sICIqLyIKICAg
ICAgbmV4dAogICAgfQogIH0KfQp7IHByaW50IH0KX0FDQVdLCl9BQ0VPRgpjYXQgPj4kQ09ORklH
X1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCiAgYXNfZm5fZXJyb3IgImNvdWxk
IG5vdCBzZXR1cCBjb25maWcgaGVhZGVycyBtYWNoaW5lcnkiICIkTElORU5PIiA1CmZpICMgdGVz
dCAtbiAiJENPTkZJR19IRUFERVJTIgoKCmV2YWwgc2V0IFggIiAgOkYgJENPTkZJR19GSUxFUyAg
OkggJENPTkZJR19IRUFERVJTICAgIDpDICRDT05GSUdfQ09NTUFORFMiCnNoaWZ0CmZvciBhY190
YWcKZG8KICBjYXNlICRhY190YWcgaW4KICA6W0ZITENdKSBhY19tb2RlPSRhY190YWc7IGNvbnRp
bnVlOzsKICBlc2FjCiAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KICA6W0ZITF0qOiopOzsKICA6
TCogfCA6Qyo6KikgYXNfZm5fZXJyb3IgImludmFsaWQgdGFnIFxgJGFjX3RhZyciICIkTElORU5P
IiA1OzsKICA6W0ZIXS0pIGFjX3RhZz0tOi07OwogIDpbRkhdKikgYWNfdGFnPSRhY190YWc6JGFj
X3RhZy5pbjs7CiAgZXNhYwogIGFjX3NhdmVfSUZTPSRJRlMKICBJRlM9OgogIHNldCB4ICRhY190
YWcKICBJRlM9JGFjX3NhdmVfSUZTCiAgc2hpZnQKICBhY19maWxlPSQxCiAgc2hpZnQKCiAgY2Fz
ZSAkYWNfbW9kZSBpbgogIDpMKSBhY19zb3VyY2U9JDE7OwogIDpbRkhdKQogICAgYWNfZmlsZV9p
bnB1dHM9CiAgICBmb3IgYWNfZgogICAgZG8KICAgICAgY2FzZSAkYWNfZiBpbgogICAgICAtKSBh
Y19mPSIkdG1wL3N0ZGluIjs7CiAgICAgICopICMgTG9vayBmb3IgdGhlIGZpbGUgZmlyc3QgaW4g
dGhlIGJ1aWxkIHRyZWUsIHRoZW4gaW4gdGhlIHNvdXJjZSB0cmVlCgkgIyAoaWYgdGhlIHBhdGgg
aXMgbm90IGFic29sdXRlKS4gIFRoZSBhYnNvbHV0ZSBwYXRoIGNhbm5vdCBiZSBET1Mtc3R5bGUs
CgkgIyBiZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KCSB0ZXN0IC1mICIkYWNfZiIg
fHwKCSAgIGNhc2UgJGFjX2YgaW4KCSAgIFtcXC8kXSopIGZhbHNlOzsKCSAgICopIHRlc3QgLWYg
IiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKCSAgIGVzYWMgfHwKCSAg
IGFzX2ZuX2Vycm9yICJjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiBcYCRhY19mJyIgIiRMSU5FTk8i
IDU7OwogICAgICBlc2FjCiAgICAgIGNhc2UgJGFjX2YgaW4gKlwnKikgYWNfZj1gJGFzX2VjaG8g
IiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7IGVzYWMKICAgICAgYXNfZm5fYXBw
ZW5kIGFjX2ZpbGVfaW5wdXRzICIgJyRhY19mJyIKICAgIGRvbmUKCiAgICAjIExldCdzIHN0aWxs
IHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24n
dAogICAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgog
ICAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBieSBjb25maWcuc3RhdHVzLiAgKi8KICAg
IGNvbmZpZ3VyZV9pbnB1dD0nR2VuZXJhdGVkIGZyb20gJ2AKCSAgJGFzX2VjaG8gIiQqIiB8IHNl
ZCAnc3xeW146XSovfHw7c3w6W146XSovfCwgfGcnCglgJyBieSBjb25maWd1cmUuJwogICAgaWYg
dGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgogICAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19m
aWxlLiAgJGNvbmZpZ3VyZV9pbnB1dCIKICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu
ZW5vLSRMSU5FTk99OiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1CiRhc19lY2hvICIkYXNfbWU6IGNy
ZWF0aW5nICRhY19maWxlIiA+JjY7fQogICAgZmkKICAgICMgTmV1dHJhbGl6ZSBzcGVjaWFsIGNo
YXJhY3RlcnMgaW50ZXJwcmV0ZWQgYnkgc2VkIGluIHJlcGxhY2VtZW50IHN0cmluZ3MuCiAgICBj
YXNlICRjb25maWd1cmVfaW5wdXQgaW4gIygKICAgICpcJiogfCAqXHwqIHwgKlxcKiApCiAgICAg
ICBhY19zZWRfY29uZl9pbnB1dD1gJGFzX2VjaG8gIiRjb25maWd1cmVfaW5wdXQiIHwKICAgICAg
IHNlZCAncy9bXFxcXCZ8XS9cXFxcJi9nJ2A7OyAjKAogICAgKikgYWNfc2VkX2NvbmZfaW5wdXQ9
JGNvbmZpZ3VyZV9pbnB1dDs7CiAgICBlc2FjCgogICAgY2FzZSAkYWNfdGFnIGluCiAgICAqOi06
KiB8ICo6LSkgY2F0ID4iJHRtcC9zdGRpbiIgXAogICAgICB8fCBhc19mbl9lcnJvciAiY291bGQg
bm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUgOzsKICAgIGVzYWMKICAgIDs7CiAgZXNh
YwoKICBhY19kaXI9YCRhc19kaXJuYW1lIC0tICIkYWNfZmlsZSIgfHwKJGFzX2V4cHIgWCIkYWNf
ZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKCSBYIiRhY19maWxlIiA6
ICdYXCgvL1wpW14vXScgXHwgXAoJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCgkgWCIk
YWNfZmlsZSIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CiRhc19lY2hvIFgiJGFjX2Zp
bGUiIHwKICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97CgkgICAgcy8v
XDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cL1wpW14vXS4qL3sKCSAgICBzLy9cMS8KCSAgICBx
CgkgIH0KCSAgL15YXChcL1wvXCkkL3sKCSAgICBzLy9cMS8KCSAgICBxCgkgIH0KCSAgL15YXChc
L1wpLiovewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICBzLy4qLy4vOyBxJ2AKICBhc19kaXI9
IiRhY19kaXIiOyBhc19mbl9ta2Rpcl9wCiAgYWNfYnVpbGRkaXI9LgoKY2FzZSAiJGFjX2RpciIg
aW4KLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9w
cmVmaXg9IDs7CiopCiAgYWNfZGlyX3N1ZmZpeD0vYCRhc19lY2hvICIkYWNfZGlyIiB8IHNlZCAn
c3xeXC5bXFwvXXx8J2AKICAjIEEgIi4uIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9z
dWZmaXguCiAgYWNfdG9wX2J1aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8
IHNlZCAnc3wvW15cXC9dKnwvLi58ZztzfC98fCdgCiAgY2FzZSAkYWNfdG9wX2J1aWxkZGlyX3N1
YiBpbgogICIiKSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9wX2J1aWxkX3ByZWZpeD0gOzsK
ICAqKSAgYWNfdG9wX2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKICBlc2Fj
IDs7CmVzYWMKYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCmFjX2Fic19idWlsZGRpcj0kYWNf
cHdkJGFjX2Rpcl9zdWZmaXgKIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eToKYWNfdG9wX2J1
aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4CgpjYXNlICRzcmNkaXIgaW4KICAuKSAgIyBXZSBh
cmUgYnVpbGRpbmcgaW4gcGxhY2UuCiAgICBhY19zcmNkaXI9LgogICAgYWNfdG9wX3NyY2Rpcj0k
YWNfdG9wX2J1aWxkZGlyX3N1YgogICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZCA7OwogIFtc
XC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgbmFtZS4KICAgIGFjX3NyY2Rpcj0kc3JjZGly
JGFjX2Rpcl9zdWZmaXg7CiAgICBhY190b3Bfc3JjZGlyPSRzcmNkaXIKICAgIGFjX2Fic190b3Bf
c3JjZGlyPSRzcmNkaXIgOzsKICAqKSAjIFJlbGF0aXZlIG5hbWUuCiAgICBhY19zcmNkaXI9JGFj
X3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKICAgIGFjX3RvcF9zcmNkaXI9
JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyCiAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdk
LyRzcmNkaXIgOzsKZXNhYwphY19hYnNfc3JjZGlyPSRhY19hYnNfdG9wX3NyY2RpciRhY19kaXJf
c3VmZml4CgoKICBjYXNlICRhY19tb2RlIGluCiAgOkYpCiAgIwogICMgQ09ORklHX0ZJTEUKICAj
CgogIGNhc2UgJElOU1RBTEwgaW4KICBbXFwvJF0qIHwgPzpbXFwvXSogKSBhY19JTlNUQUxMPSRJ
TlNUQUxMIDs7CiAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7
CiAgZXNhYwogIGFjX01LRElSX1A9JE1LRElSX1AKICBjYXNlICRNS0RJUl9QIGluCiAgW1xcLyRd
KiB8ID86W1xcL10qICkgOzsKICAqLyopIGFjX01LRElSX1A9JGFjX3RvcF9idWlsZF9wcmVmaXgk
TUtESVJfUCA7OwogIGVzYWMKX0FDRU9GCgpjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0Yg
fHwgYWNfd3JpdGVfZmFpbD0xCiMgSWYgdGhlIHRlbXBsYXRlIGRvZXMgbm90IGtub3cgYWJvdXQg
ZGF0YXJvb3RkaXIsIGV4cGFuZCBpdC4KIyBGSVhNRTogVGhpcyBoYWNrIHNob3VsZCBiZSByZW1v
dmVkIGEgZmV3IHllYXJzIGFmdGVyIDIuNjAuCmFjX2RhdGFyb290ZGlyX2hhY2s9OyBhY19kYXRh
cm9vdGRpcl9zZWVuPQphY19zZWRfZGF0YXJvb3Q9JwovZGF0YXJvb3RkaXIvIHsKICBwCiAgcQp9
Ci9AZGF0YWRpckAvcAovQGRvY2RpckAvcAovQGluZm9kaXJAL3AKL0Bsb2NhbGVkaXJAL3AKL0Bt
YW5kaXJAL3AnCmNhc2UgYGV2YWwgInNlZCAtbiBcIlwkYWNfc2VkX2RhdGFyb290XCIgJGFjX2Zp
bGVfaW5wdXRzImAgaW4KKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15ZXM7Owoq
QGRhdGFkaXJAKnwqQGRvY2RpckAqfCpAaW5mb2RpckAqfCpAbG9jYWxlZGlyQCp8KkBtYW5kaXJA
KikKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICRh
Y19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIg
PiY1CiRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBp
Z25vcmUgdGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiYyO30KX0FDRU9GCmNhdCA+PiRDT05G
SUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQogIGFjX2RhdGFyb290ZGlyX2hh
Y2s9JwogIHMmQGRhdGFkaXJAJiRkYXRhZGlyJmcKICBzJkBkb2NkaXJAJiRkb2NkaXImZwogIHMm
QGluZm9kaXJAJiRpbmZvZGlyJmcKICBzJkBsb2NhbGVkaXJAJiRsb2NhbGVkaXImZwogIHMmQG1h
bmRpckAmJG1hbmRpciZnCiAgcyZcXFwke2RhdGFyb290ZGlyfSYkZGF0YXJvb3RkaXImZycgOzsK
ZXNhYwpfQUNFT0YKCiMgTmV1dHJhbGl6ZSBWUEFUSCB3aGVuIGAkc3JjZGlyJyA9IGAuJy4KIyBT
aGVsbCBjb2RlIGluIGNvbmZpZ3VyZS5hYyBtaWdodCBzZXQgZXh0cmFzdWIuCiMgRklYTUU6IGRv
IHdlIHJlYWxseSB3YW50IHRvIG1haW50YWluIHRoaXMgZmVhdHVyZT8KY2F0ID4+JENPTkZJR19T
VEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCmFjX3NlZF9leHRyYT0iJGFjX3Zwc3Vi
CiRleHRyYXN1YgpfQUNFT0YKY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dy
aXRlX2ZhaWw9MQo6dAovQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiCnN8QGNvbmZpZ3VyZV9p
bnB1dEB8JGFjX3NlZF9jb25mX2lucHV0fDt0IHQKcyZAdG9wX2J1aWxkZGlyQCYkYWNfdG9wX2J1
aWxkZGlyX3N1YiY7dCB0CnMmQHRvcF9idWlsZF9wcmVmaXhAJiRhY190b3BfYnVpbGRfcHJlZml4
Jjt0IHQKcyZAc3JjZGlyQCYkYWNfc3JjZGlyJjt0IHQKcyZAYWJzX3NyY2RpckAmJGFjX2Fic19z
cmNkaXImO3QgdApzJkB0b3Bfc3JjZGlyQCYkYWNfdG9wX3NyY2RpciY7dCB0CnMmQGFic190b3Bf
c3JjZGlyQCYkYWNfYWJzX3RvcF9zcmNkaXImO3QgdApzJkBidWlsZGRpckAmJGFjX2J1aWxkZGly
Jjt0IHQKcyZAYWJzX2J1aWxkZGlyQCYkYWNfYWJzX2J1aWxkZGlyJjt0IHQKcyZAYWJzX3RvcF9i
dWlsZGRpckAmJGFjX2Fic190b3BfYnVpbGRkaXImO3QgdApzJkBJTlNUQUxMQCYkYWNfSU5TVEFM
TCY7dCB0CnMmQE1LRElSX1BAJiRhY19NS0RJUl9QJjt0IHQKJGFjX2RhdGFyb290ZGlyX2hhY2sK
IgpldmFsIHNlZCBcIlwkYWNfc2VkX2V4dHJhXCIgIiRhY19maWxlX2lucHV0cyIgfCAkQVdLIC1m
ICIkdG1wL3N1YnMuYXdrIiA+JHRtcC9vdXQgXAogIHx8IGFzX2ZuX2Vycm9yICJjb3VsZCBub3Qg
Y3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNQoKdGVzdCAteiAiJGFjX2RhdGFyb290ZGlyX2hh
Y2skYWNfZGF0YXJvb3RkaXJfc2VlbiIgJiYKICB7IGFjX291dD1gc2VkIC1uICcvXCR7ZGF0YXJv
b3RkaXJ9L3AnICIkdG1wL291dCJgOyB0ZXN0IC1uICIkYWNfb3V0IjsgfSAmJgogIHsgYWNfb3V0
PWBzZWQgLW4gJy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnICIkdG1wL291dCJgOyB0ZXN0
IC16ICIkYWNfb3V0IjsgfSAmJgogIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO
RU5PfTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlh
YmxlIFxgZGF0YXJvb3RkaXInCndoaWNoIHNlZW1zIHRvIGJlIHVuZGVmaW5lZC4gIFBsZWFzZSBt
YWtlIHN1cmUgaXQgaXMgZGVmaW5lZC4iID4mNQokYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAk
YWNfZmlsZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRp
cicKd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBk
ZWZpbmVkLiIgPiYyO30KCiAgcm0gLWYgIiR0bXAvc3RkaW4iCiAgY2FzZSAkYWNfZmlsZSBpbgog
IC0pIGNhdCAiJHRtcC9vdXQiICYmIHJtIC1mICIkdG1wL291dCI7OwogICopIHJtIC1mICIkYWNf
ZmlsZSIgJiYgbXYgIiR0bXAvb3V0IiAiJGFjX2ZpbGUiOzsKICBlc2FjIFwKICB8fCBhc19mbl9l
cnJvciAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKIDs7CiAgOkgpCiAg
IwogICMgQ09ORklHX0hFQURFUgogICMKICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVu
CiAgICB7CiAgICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAogICAgICAm
JiBldmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIKICAg
IH0gPiIkdG1wL2NvbmZpZy5oIiBcCiAgICAgIHx8IGFzX2ZuX2Vycm9yICJjb3VsZCBub3QgY3Jl
YXRlICRhY19maWxlIiAiJExJTkVOTyIgNQogICAgaWYgZGlmZiAiJGFjX2ZpbGUiICIkdG1wL2Nv
bmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7
YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNQokYXNfZWNobyAi
JGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CiAgICBlbHNlCiAgICAgIHJtIC1m
ICIkYWNfZmlsZSIKICAgICAgbXYgIiR0bXAvY29uZmlnLmgiICIkYWNfZmlsZSIgXAoJfHwgYXNf
Zm5fZXJyb3IgImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1CiAgICBmaQog
IGVsc2UKICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAogICAgICAmJiBl
dmFsICckQVdLIC1mICIkdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIgXAogICAg
ICB8fCBhc19mbl9lcnJvciAiY291bGQgbm90IGNyZWF0ZSAtIiAiJExJTkVOTyIgNQogIGZpCiMg
Q29tcHV0ZSAiJGFjX2ZpbGUiJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgpfYW1fYXJnPSIk
YWNfZmlsZSIKX2FtX3N0YW1wX2NvdW50PTEKZm9yIF9hbV9oZWFkZXIgaW4gJGNvbmZpZ19oZWFk
ZXJzIDo7IGRvCiAgY2FzZSAkX2FtX2hlYWRlciBpbgogICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoq
ICkKICAgICAgYnJlYWsgOzsKICAgICogKQogICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9h
bV9zdGFtcF9jb3VudCArIDFgIDs7CiAgZXNhYwpkb25lCmVjaG8gInRpbWVzdGFtcCBmb3IgJF9h
bV9hcmciID5gJGFzX2Rpcm5hbWUgLS0gIiRfYW1fYXJnIiB8fAokYXNfZXhwciBYIiRfYW1fYXJn
IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAoJIFgiJF9hbV9hcmciIDogJ1hc
KC8vXClbXi9dJyBcfCBcCgkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKSQnIFx8IFwKCSBYIiRfYW1f
YXJnIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKJGFzX2VjaG8gWCIkX2FtX2FyZyIg
fAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKCSAgICBzLy9cMS8K
CSAgICBxCgkgIH0KCSAgL15YXChcL1wvXClbXi9dLiovewoJICAgIHMvL1wxLwoJICAgIHEKCSAg
fQoJICAvXlhcKFwvXC9cKSQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwvXCku
Ki97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIHMvLiovLi87IHEnYC9zdGFtcC1oJF9hbV9z
dGFtcF9jb3VudAogOzsKCiAgOkMpICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ
TkVOT306IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY1CiRhc19lY2hvICIkYXNfbWU6
IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY2O30KIDs7CiAgZXNhYwoKCiAgY2FzZSAk
YWNfZmlsZSRhY19tb2RlIGluCiAgICAiZGVwZmlsZXMiOkMpIHRlc3QgeCIkQU1ERVBfVFJVRSIg
IT0geCIiIHx8IHsKICAjIEF1dG9jb25mIDIuNjIgcXVvdGVzIC0tZmlsZSBhcmd1bWVudHMgZm9y
IGV2YWwsIGJ1dCBub3Qgd2hlbiBmaWxlcwogICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4g
IExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhlIGV2YWwKICAjIGlmIHdlIGRldGVj
dCB0aGUgcXVvdGluZy4KICBjYXNlICRDT05GSUdfRklMRVMgaW4KICAqXCcqKSBldmFsIHNldCB4
ICIkQ09ORklHX0ZJTEVTIiA7OwogICopICAgc2V0IHggJENPTkZJR19GSUxFUyA7OwogIGVzYWMK
ICBzaGlmdAogIGZvciBtZgogIGRvCiAgICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRo
ZSBuYW1lIG9mIHRoZSBmaWxlLgogICAgbWY9YGVjaG8gIiRtZiIgfCBzZWQgLWUgJ3MvOi4qJC8v
J2AKICAgICMgQ2hlY2sgd2hldGhlciB0aGlzIGlzIGFuIEF1dG9tYWtlIGdlbmVyYXRlZCBNYWtl
ZmlsZSBvciBub3QuCiAgICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQg
YE1ha2VmaWxlLmluJywgYnV0CiAgICAjIHNvbWUgcGVvcGxlIHJlbmFtZSB0aGVtOyBzbyBpbnN0
ZWFkIHdlIGxvb2sgYXQgdGhlIGZpbGUgY29udGVudC4KICAgICMgR3JlcCdpbmcgdGhlIGZpcnN0
IGxpbmUgaXMgbm90IGVub3VnaDogc29tZSBwZW9wbGUgcG9zdC1wcm9jZXNzCiAgICAjIGVhY2gg
TWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5
IHNvLgogICAgIyBHcmVwJ2luZyB0aGUgd2hvbGUgZmlsZSBpcyBub3QgZ29vZCBlaXRoZXI6IEFJ
WCBncmVwIGhhcyBhIGxpbmUKICAgICMgbGltaXQgb2YgMjA0OCwgYnV0IGFsbCBzZWQncyB3ZSBr
bm93IGhhdmUgdW5kZXJzdGFuZCBhdCBsZWFzdCA0MDAwLgogICAgaWYgc2VkIC1uICdzLF4jLipn
ZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4m
MTsgdGhlbgogICAgICBkaXJwYXJ0PWAkYXNfZGlybmFtZSAtLSAiJG1mIiB8fAokYXNfZXhwciBY
IiRtZiIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKCSBYIiRtZiIgOiAnWFwo
Ly9cKVteL10nIFx8IFwKCSBYIiRtZiIgOiAnWFwoLy9cKSQnIFx8IFwKCSBYIiRtZiIgOiAnWFwo
L1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8CiRhc19lY2hvIFgiJG1mIiB8CiAgICBzZWQgJy9eWFwo
LipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAv
XlhcKFwvXC9cKVteL10uKi97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cL1wp
JC97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIC9eWFwoXC9cKS4qL3sKCSAgICBzLy9cMS8K
CSAgICBxCgkgIH0KCSAgcy8uKi8uLzsgcSdgCiAgICBlbHNlCiAgICAgIGNvbnRpbnVlCiAgICBm
aQogICAgIyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFu
ZCBhbV9fcXVvdGUKICAgICMgZnJvbSB0aGUgTWFrZWZpbGUgd2l0aG91dCBydW5uaW5nIGBtYWtl
Jy4KICAgIERFUERJUj1gc2VkIC1uICdzL15ERVBESVIgPSAvL3AnIDwgIiRtZiJgCiAgICB0ZXN0
IC16ICIkREVQRElSIiAmJiBjb250aW51ZQogICAgYW1fX2luY2x1ZGU9YHNlZCAtbiAncy9eYW1f
X2luY2x1ZGUgPSAvL3AnIDwgIiRtZiJgCiAgICB0ZXN0IC16ICJhbV9faW5jbHVkZSIgJiYgY29u
dGludWUKICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJg
CiAgICAjIFdoZW4gdXNpbmcgYW5zaTJrbnIsIFUgbWF5IGJlIGVtcHR5IG9yIGFuIHVuZGVyc2Nv
cmU7IGV4cGFuZCBpdAogICAgVT1gc2VkIC1uICdzL15VID0gLy9wJyA8ICIkbWYiYAogICAgIyBG
aW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMg
d2l0aAogICAgIyAkKERFUERJUikgaW4gdGhlaXIgbmFtZXMuICBXZSBpbnZva2Ugc2VkIHR3aWNl
IGJlY2F1c2UgaXQgaXMgdGhlCiAgICAjIHNpbXBsZXN0IGFwcHJvYWNoIHRvIGNoYW5naW5nICQo
REVQRElSKSB0byBpdHMgYWN0dWFsIHZhbHVlIGluIHRoZQogICAgIyBleHBhbnNpb24uCiAgICBm
b3IgZmlsZSBpbiBgc2VkIC1uICIKICAgICAgcy9eJGFtX19pbmNsdWRlICRhbV9fcXVvdGVcKC4q
KERFUERJUikuKlwpJGFtX19xdW90ZSInJC9cMS9wJyA8IiRtZiIgfCBcCgkgc2VkIC1lICdzL1wk
KERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7IGRvCiAgICAgICMg
TWFrZSBzdXJlIHRoZSBkaXJlY3RvcnkgZXhpc3RzLgogICAgICB0ZXN0IC1mICIkZGlycGFydC8k
ZmlsZSIgJiYgY29udGludWUKICAgICAgZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRmaWxlIiB8fAok
YXNfZXhwciBYIiRmaWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAoJIFgi
JGZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCgkgWCIkZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwK
CSBYIiRmaWxlIiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKJGFzX2VjaG8gWCIkZmls
ZSIgfAogICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKCSAgICBzLy9c
MS8KCSAgICBxCgkgIH0KCSAgL15YXChcL1wvXClbXi9dLiovewoJICAgIHMvL1wxLwoJICAgIHEK
CSAgfQoJICAvXlhcKFwvXC9cKSQvewoJICAgIHMvL1wxLwoJICAgIHEKCSAgfQoJICAvXlhcKFwv
XCkuKi97CgkgICAgcy8vXDEvCgkgICAgcQoJICB9CgkgIHMvLiovLi87IHEnYAogICAgICBhc19k
aXI9JGRpcnBhcnQvJGZkaXI7IGFzX2ZuX21rZGlyX3AKICAgICAgIyBlY2hvICJjcmVhdGluZyAk
ZGlycGFydC8kZmlsZSIKICAgICAgZWNobyAnIyBkdW1teScgPiAiJGRpcnBhcnQvJGZpbGUiCiAg
ICBkb25lCiAgZG9uZQp9CiA7OwogICAgImNvcmVncmluZC9saW5rX3Rvb2xfZXhlX2xpbnV4IjpG
KSBjaG1vZCAreCBjb3JlZ3JpbmQvbGlua190b29sX2V4ZV9saW51eCA7OwogICAgImNvcmVncmlu
ZC9saW5rX3Rvb2xfZXhlX2RhcndpbiI6RikgY2htb2QgK3ggY29yZWdyaW5kL2xpbmtfdG9vbF9l
eGVfZGFyd2luIDs7CiAgICAiY29yZWdyaW5kL2xpbmtfdG9vbF9leGVfYWl4NSI6RikgY2htb2Qg
K3ggY29yZWdyaW5kL2xpbmtfdG9vbF9leGVfYWl4NSA7OwoKICBlc2FjCmRvbmUgIyBmb3IgYWNf
dGFnCgoKYXNfZm5fZXhpdCAwCl9BQ0VPRgphY19jbGVhbl9maWxlcz0kYWNfY2xlYW5fZmlsZXNf
c2F2ZQoKdGVzdCAkYWNfd3JpdGVfZmFpbCA9IDAgfHwKICBhc19mbl9lcnJvciAid3JpdGUgZmFp
bHVyZSBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgIiRMSU5FTk8iIDUKCgojIGNvbmZpZ3VyZSBp
cyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCiMg
Y29uZmlnLnN0YXR1cyBkb2VzIGl0cyBvd24gcmVkaXJlY3Rpb24sIGFwcGVuZGluZyB0byBjb25m
aWcubG9nLgojIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9n
IGlzIHN0aWxsIGtlcHQgb3BlbgojIGJ5IGNvbmZpZ3VyZSwgc28gY29uZmlnLnN0YXR1cyB3b24n
dCBiZSBhYmxlIHRvIHdyaXRlIHRvIGl0OyBpdHMKIyBvdXRwdXQgaXMgc2ltcGx5IGRpc2NhcmRl
ZC4gIFNvIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwKIyBlZmZlY3RpdmVseSBjbG9zaW5n
IGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAojIGFwcGVu
ZGVkIHRvIGJ5IGNvbmZpZy5zdGF0dXMuICBXaGVuIGNvbWluZyBiYWNrIHRvIGNvbmZpZ3VyZSwg
d2UKIyBuZWVkIHRvIG1ha2UgdGhlIEZEIGF2YWlsYWJsZSBhZ2Fpbi4KaWYgdGVzdCAiJG5vX2Ny
ZWF0ZSIgIT0geWVzOyB0aGVuCiAgYWNfY3Nfc3VjY2Vzcz06CiAgYWNfY29uZmlnX3N0YXR1c19h
cmdzPQogIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCiAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9
IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKICBleGVjIDU+L2Rldi9udWxsCiAgJFNI
RUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vz
cz1mYWxzZQogIGV4ZWMgNT4+Y29uZmlnLmxvZwogICMgVXNlIHx8LCBub3QgJiYsIHRvIGF2b2lk
IGV4aXRpbmcgZnJvbSB0aGUgaWYgd2l0aCAkPyA9IDEsIHdoaWNoCiAgIyB3b3VsZCBtYWtlIGNv
bmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCiAgJGFjX2NzX3N1
Y2Nlc3MgfHwgYXNfZm5fZXhpdCAkPwpmaQppZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25pemVkX29w
dHMiICYmIHRlc3QgIiRlbmFibGVfb3B0aW9uX2NoZWNraW5nIiAhPSBubzsgdGhlbgogIHsgJGFz
X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdW5yZWNvZ25pemVk
IG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiY1CiRhc19lY2hvICIkYXNfbWU6IFdB
Uk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mMjt9
CmZpCgoKY2F0PDxFT0YKCiAgICAgICAgIE1heGltdW0gYnVpbGQgYXJjaDogJHtBUkNIX01BWH0K
ICAgICAgICAgUHJpbWFyeSBidWlsZCBhcmNoOiAke1ZHQ09ORl9BUkNIX1BSSX0KICAgICAgIFNl
Y29uZGFyeSBidWlsZCBhcmNoOiAke1ZHQ09ORl9BUkNIX1NFQ30KICAgICAgICAgICAgICAgICAg
IEJ1aWxkIE9TOiAke1ZHQ09ORl9PU30KICAgICAgIFByaW1hcnkgYnVpbGQgdGFyZ2V0OiAke1ZH
Q09ORl9QTEFURk9STV9QUklfQ0FQU30KICAgICBTZWNvbmRhcnkgYnVpbGQgdGFyZ2V0OiAke1ZH
Q09ORl9QTEFURk9STV9TRUNfQ0FQU30KICAgICAgICAgRGVmYXVsdCBzdXBwIGZpbGVzOiAke0RF
RkFVTFRfU1VQUH0KCkVPRgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63118</attachid>
            <date>2011-08-24 15:47:18 +0000</date>
            <delta_ts>2011-08-24 15:47:18 +0000</delta_ts>
            <desc>Patch for configure.in</desc>
            <filename>build_lion.diff</filename>
            <type>text/plain</type>
            <size>881</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">SW5kZXg6IGNvbmZpZ3VyZS5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuaW4JKHJldmlzaW9u
IDEyMDAyKQorKysgY29uZmlndXJlLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsOSArMjY0LDE2
IEBACiAJCSAgREVGQVVMVF9TVVBQPSJkYXJ3aW4xMC5zdXBwICR7REVGQVVMVF9TVVBQfSIKIAkJ
ICBERUZBVUxUX1NVUFA9ImRhcndpbjEwLWRyZC5zdXBwICR7REVGQVVMVF9TVVBQfSIKIAkJICA7
OworCSAgICAgMTEuKikKKwkJICBBQ19NU0dfUkVTVUxUKFtEYXJ3aW4gMTAueCAoJHtrZXJuZWx9
KSAvIE1hYyBPUyBYIDEwLjcgTGlvbl0pCisJCSAgQUNfREVGSU5FKFtEQVJXSU5fVkVSU10sIERB
UldJTl8xMF83LCBbRGFyd2luIC8gTWFjIE9TIFggdmVyc2lvbl0pCisgICAgICAgICAgICAgICAg
ICAjIEZJWE1FOiBjcmVhdGUgdGhlIHN1cHByZXNzaW9uIGZpbGVzIGZvciBMaW9uLgorCQkgIERF
RkFVTFRfU1VQUD0iZGFyd2luMTAuc3VwcCAke0RFRkFVTFRfU1VQUH0iCisJCSAgREVGQVVMVF9T
VVBQPSJkYXJ3aW4xMC1kcmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCisJCSAgOzsKICAgICAgKikg
CiAJCSAgQUNfTVNHX1JFU1VMVChbdW5zdXBwb3J0ZWQgKCR7a2VybmVsfSldKQotCQkgIEFDX01T
R19FUlJPUihbVmFsZ3JpbmQgd29ya3Mgb24gRGFyd2luIDkueCBhbmQgMTAueCAoTWFjIE9TIFgg
MTAuNSBhbmQgMTAuNildKQorCQkgIEFDX01TR19FUlJPUihbVmFsZ3JpbmQgd29ya3Mgb24gRGFy
d2luIDkueCwgMTAueCBhbmQgMTEueCAoTWFjIE9TIFggMTAuNSwgMTAuNiBhbmQgMTAuNyldKQog
CQkgIDs7CiAJZXNhYwogICAgICAgICA7Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63181</attachid>
            <date>2011-08-27 19:57:46 +0000</date>
            <delta_ts>2011-08-27 19:57:46 +0000</delta_ts>
            <desc>Patch to implement 2 missing taskmsgs, a syscall and __pthread_sigmask</desc>
            <filename>valgrind-darwin11-sycall357+taskmsg3414+taskmsg3229-patch.diff</filename>
            <type>text/plain</type>
            <size>7327</size>
            <attacher name="Jack Jost">jackjost</attacher>
            
              <data encoding="base64">SW5kZXg6IGRhcndpbjExLWRyZC5zdXBwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IGRhcndpbjExLnN1cHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpJbmRleDogY29uZmlndXJlLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNvbmZpZ3VyZS5p
bgkocmV2aXNpb24gMTIwMDMpCisrKyBjb25maWd1cmUuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI2
NCw2ICsyNjQsMTIgQEAKIAkJICBERUZBVUxUX1NVUFA9ImRhcndpbjEwLnN1cHAgJHtERUZBVUxU
X1NVUFB9IgogCQkgIERFRkFVTFRfU1VQUD0iZGFyd2luMTAtZHJkLnN1cHAgJHtERUZBVUxUX1NV
UFB9IgogCQkgIDs7CisJICAgICAxMS4qKQorCQkgIEFDX01TR19SRVNVTFQoW0RhcndpbiAxMS54
ICgke2tlcm5lbH0pIC8gTWFjIE9TIFggMTAuNyBMaW9uXSkKKwkJICBBQ19ERUZJTkUoW0RBUldJ
Tl9WRVJTXSwgREFSV0lOXzEwXzcsIFtEYXJ3aW4gLyBNYWMgT1MgWCB2ZXJzaW9uXSkKKwkJICBE
RUZBVUxUX1NVUFA9ImRhcndpbjExLnN1cHAgJHtERUZBVUxUX1NVUFB9IgorCQkgIERFRkFVTFRf
U1VQUD0iZGFyd2luMTEtZHJkLnN1cHAgJHtERUZBVUxUX1NVUFB9IgorCQkgIDs7CiAgICAgICop
IAogCQkgIEFDX01TR19SRVNVTFQoW3Vuc3VwcG9ydGVkICgke2tlcm5lbH0pXSkKIAkJICBBQ19N
U0dfRVJST1IoW1ZhbGdyaW5kIHdvcmtzIG9uIERhcndpbiA5LnggYW5kIDEwLnggKE1hYyBPUyBY
IDEwLjUgYW5kIDEwLjYpXSkKSW5kZXg6IGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFw
LWRhcndpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFw
LWRhcndpbi5oCShyZXZpc2lvbiAxMjAwMykKKysrIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9z
eXN3cmFwLWRhcndpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00MTYsNyArNDE2LDcgQEAKIC8vIE5Z
SSBzZXRhdWlkIDM1NAogLy8gTllJIGdldGF1ZGl0IDM1NQogLy8gTllJIHNldGF1ZGl0IDM1Ngot
Ly8gTllJIGdldGF1ZGl0X2FkZHIgMzU3CitERUNMX1RFTVBMQVRFKGRhcndpbiwgZ2V0YXVkaXRf
YWRkcik7ICAgICAgICAgICAvLyAzNjAKIC8vIE5ZSSBzZXRhdWRpdF9hZGRyIDM1OAogLy8gTllJ
IGF1ZGl0Y3RsIDM1OQogREVDTF9URU1QTEFURShkYXJ3aW4sIGJzZHRocmVhZF9jcmVhdGUpOyAg
ICAgICAgLy8gMzYwCkBAIC01MTEsNyArNTExLDkgQEAKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBt
YWNoX3BvcnRfZ2V0X2F0dHJpYnV0ZXMpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIG1hY2hfcG9y
dF9zZXRfYXR0cmlidXRlcyk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgbWFjaF9wb3J0X2luc2Vy
dF9tZW1iZXIpOworREVDTF9URU1QTEFURShkYXJ3aW4sIG1hY2hfcG9ydF9zZXRfY29udGV4dCk7
CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgdGFza19nZXRfc3BlY2lhbF9wb3J0KTsKK0RFQ0xfVEVN
UExBVEUoZGFyd2luLCB0YXNrX2dldF9leGNlcHRpb25fcG9ydHMpOwogREVDTF9URU1QTEFURShk
YXJ3aW4sIHNlbWFwaG9yZV9jcmVhdGUpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIHNlbWFwaG9y
ZV9kZXN0cm95KTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRzX2xvb2t1cCk7Cklu
ZGV4OiBjb3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZGFyd2luLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
Y29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWRhcndpbi5jCShyZXZpc2lvbiAxMjAwMykKKysr
IGNvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYwkod29ya2luZyBjb3B5KQpAQCAt
MTYxNSwxOSArMTYxNSw0OCBAQAogCiBQUkUoX19wdGhyZWFkX3NpZ21hc2spCiB7Ci0gICAvLyBH
clAgZml4bWUKLSAgIC8vIEpSUzogYXJndW1lbnRzIGFyZSBpZGVudGljYWwgdG8gc2lncHJvY21h
c2sgCi0gICAvLyAoaG93LCBzaWdzZXRfdCosIHNpZ3NldF90KikuICBQZXJoYXBzIGJlaGF2ZSBp
ZGVudGljYWxseT8KLSAgIHN0YXRpYyBCb29sIHdhcm5lZDsKLSAgIGlmICghd2FybmVkKSB7Ci0g
ICAgICBWR18ocHJpbnRmKSgiVU5LTk9XTiBfX3B0aHJlYWRfc2lnbWFzayBpcyB1bnN1cHBvcnRl
ZC4gIgotICAgICAgICAgICAgICAgICAgIlRoaXMgd2FybmluZyB3aWxsIG5vdCBiZSByZXBlYXRl
ZC5cbiIpOwotICAgICAgd2FybmVkID0gVHJ1ZTsKKyAgIFVXb3JkIGFyZzE7CisgICBQUklOVCgi
c2lncHJvY21hc2sgKCAlbGQsICUjbHgsICUjbHggKSIsIEFSRzEsIEFSRzIsIEFSRzMpOworICAg
UFJFX1JFR19SRUFEMyhsb25nLCAic2lncHJvY21hc2siLAorICAgICAgICAgICAgICAgICBpbnQs
IGhvdywgdmtpX3NpZ3NldF90ICosIHNldCwgdmtpX3NpZ3NldF90ICosIG9sZHNldCk7CisgICBp
ZiAoQVJHMiAhPSAwKQorICAgICAgUFJFX01FTV9SRUFEKCAic2lncHJvY21hc2soc2V0KSIsIEFS
RzIsIHNpemVvZih2a2lfc2lnc2V0X3QpKTsKKyAgIGlmIChBUkczICE9IDApCisgICAgICBQUkVf
TUVNX1dSSVRFKCAic2lncHJvY21hc2sob2xkc2V0KSIsIEFSRzMsIHNpemVvZih2a2lfc2lnc2V0
X3QpKTsKKworICAgLyogTWFzc2FnZSBBUkcxICgnaG93JykuICBJZiBBUkcyICh0aGUgbmV3IG1h
c2spIGlzIE5VTEwgdGhlbiB0aGUKKyAgICAgIHZhbHVlIG9mICdob3cnIGlzIGlycmVsZXZhbnQs
IGFuZCBpdCBhcHBlYXJzIHRoYXQgRGFyd2luJ3MgbGliYworICAgICAgcGFzc2VzIHplcm8sIHdo
aWNoIGlzIG5vdCBlcXVhbCB0byBhbnkgb2YKKyAgICAgIFNJR197QkxPQ0ssVU5CTE9DSyxTRVRN
QVNLfS4gIFRoaXMgY2F1c2VzCisgICAgICBWR18oZG9fc3lzX3NpZ3Byb2NtYXNrKSB0byBjb21w
bGFpbiwgc2luY2UgaXQgY2hlY2tzIHRoZSAnaG93JworICAgICAgdmFsdWUgaW5kZXBlbmRlbnRs
eSBvZiB0aGUgb3RoZXIgYXJncy4gIFNvbHV0aW9uOiBpbiB0aGlzIGNhc2UsCisgICAgICBzaW1w
bHkgcGFzcyBhIHZhbGlkIChidXQgaXJyZWxldmFudCkgdmFsdWUgZm9yICdob3cnLiAqLworICAg
LyogQWxzbywgaW4gdGhpcyBjYXNlIHRoZSBuZXcgc2V0IGlzIHBhc3NlZCB0byB0aGUga2VybmVs
IGJ5CisgICAgICByZWZlcmVuY2UsIG5vdCB2YWx1ZSwgYXMgaW4gc29tZSBvdGhlciBzaWdtYXNr
IHJlbGF0ZWQgRGFyd2luCisgICAgICBzeXNjYWxscy4gKi8KKyAgIGFyZzEgPSBBUkcxOworICAg
aWYgKEFSRzIgPT0gMCAgLyogdGhlIG5ldy1zZXQgaXMgTlVMTCAqLworICAgICAgICYmIEFSRzEg
IT0gVktJX1NJR19CTE9DSworICAgICAgICYmIEFSRzEgIT0gVktJX1NJR19VTkJMT0NLICYmIEFS
RzEgIT0gVktJX1NJR19TRVRNQVNLKSB7CisgICAgICBhcmcxID0gVktJX1NJR19TRVRNQVNLOwog
ICAgfQotICAgU0VUX1NUQVRVU19TdWNjZXNzKCAwICk7CisgICBTRVRfU1RBVFVTX2Zyb21fU3lz
UmVzKAorICAgICAgVkdfKGRvX3N5c19zaWdwcm9jbWFzaykgKCB0aWQsIGFyZzEsICh2a2lfc2ln
c2V0X3QqKUFSRzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHZraV9zaWdzZXRfdCopQVJHMyApCisgICApOworCisgICBpZiAoU1VDQ0VTUykKKyAgICAgICpm
bGFncyB8PSBTZlBvbGxBZnRlcjsKIH0KIAorUE9TVChfX3B0aHJlYWRfc2lnbWFzaykKK3sKKyAg
IHZnX2Fzc2VydChTVUNDRVNTKTsKKyAgIGlmIChSRVMgPT0gMCAmJiBBUkczICE9IDApCisgICAg
ICBQT1NUX01FTV9XUklURSggQVJHMywgc2l6ZW9mKHZraV9zaWdzZXRfdCkpOworfQogCisKIFBS
RShfX3B0aHJlYWRfY2FuY2VsZWQpCiB7CiAgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsgLyogbWln
aHQga2lsbCB0aGlzIHRocmVhZD8/PyAqLwpAQCAtMzUxNyw3ICszNTQ2LDE5IEBACiAgICB9ICAg
IAogfQogCitQUkUoZ2V0YXVkaXRfYWRkcikKK3sKKyAgIFBSSU5UKCJnZXRhdWRpdF9hZGRyICgg
JSNseCwgJWxkICkiLCBBUkcxLCBBUkcyKTsKIAorICAgUFJFX01FTV9XUklURSggImdldGF1ZGl0
X2FkZHIoYXVkaXRpbmZvX2FkZHIpIiwgQVJHMSwgQVJHMik7Cit9CisKK1BPU1QoZ2V0YXVkaXRf
YWRkcikKK3sKKyAgIFBPU1RfTUVNX1dSSVRFKEFSRzEsIEFSRzIpOworfQorCisKIFBSRShtbWFw
KQogewogICAgLy8gU3lzUmVzIHI7CkBAIC00ODg2LDcgKzQ5MjcsMzAgQEAKIHsKIH0KIAorUFJF
KG1hY2hfcG9ydF9zZXRfY29udGV4dCkKK3sKKyNwcmFnbWEgcGFjayg0KQorICAgdHlwZWRlZiBz
dHJ1Y3QgeworICAgICAgbWFjaF9tc2dfaGVhZGVyX3QgSGVhZDsKKyAgICAgIE5EUl9yZWNvcmRf
dCBORFI7CisgICAgICBtYWNoX3BvcnRfbmFtZV90IG5hbWU7CisgICAgICBtYWNoX3ZtX2FkZHJl
c3NfdCBjb250ZXh0OworICAgfSBSZXF1ZXN0OworI3ByYWdtYSBwYWNrKCkKIAorICAgUmVxdWVz
dCAqcmVxID0gKFJlcXVlc3QgKilBUkcxOworCisgICBQUklOVCgibWFjaF9wb3J0X3NldF9jb250
ZXh0KCVzLCAweCV4LCAlbGx4KSIsCisgICAgICAgICBuYW1lX2Zvcl9wb3J0KE1BQ0hfUkVNT1RF
KSwgcmVxLT5uYW1lLCByZXEtPmNvbnRleHQpOworCisgICBBRlRFUiA9IFBPU1RfRk4obWFjaF9w
b3J0X3NldF9jb250ZXh0KTsKK30KKworUE9TVChtYWNoX3BvcnRfc2V0X2NvbnRleHQpCit7Cit9
CisKKwogUFJFKHRhc2tfZ2V0X3NwZWNpYWxfcG9ydCkKIHsKICNwcmFnbWEgcGFjayg0KQpAQCAt
NDk3Miw3ICs1MDM2LDQxIEBACiAgICBQUklOVCgiJXMiLCBuYW1lX2Zvcl9wb3J0KHJlcGx5LT5z
cGVjaWFsX3BvcnQubmFtZSkpOwogfQogCitQUkUodGFza19nZXRfZXhjZXB0aW9uX3BvcnRzKQor
eworI3ByYWdtYSBwYWNrKDQpCisgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICBtYWNoX21zZ19o
ZWFkZXJfdCBIZWFkOworICAgICAgTkRSX3JlY29yZF90IE5EUjsKKyAgICAgIGV4Y2VwdGlvbl9t
YXNrX3QgZXhjZXB0aW9uX21hc2s7CisgICB9IFJlcXVlc3Q7CisjcHJhZ21hIHBhY2soKQogCisg
ICBBRlRFUiA9IFBPU1RfRk4odGFza19nZXRfZXhjZXB0aW9uX3BvcnRzKTsKK30KKworUE9TVCh0
YXNrX2dldF9leGNlcHRpb25fcG9ydHMpCit7CisjcHJhZ21hIHBhY2soNCkKKyAgIHR5cGVkZWYg
c3RydWN0IHsKKyAgICAgIG1hY2hfbXNnX2hlYWRlcl90IEhlYWQ7CisgICAgICAvKiBzdGFydCBv
ZiB0aGUga2VybmVsIHByb2Nlc3NlZCBkYXRhICovCisgICAgICBtYWNoX21zZ19ib2R5X3QgbXNn
aF9ib2R5OworICAgICAgbWFjaF9tc2dfcG9ydF9kZXNjcmlwdG9yX3Qgb2xkX2hhbmRsZXJzWzMy
XTsKKyAgICAgIC8qIGVuZCBvZiB0aGUga2VybmVsIHByb2Nlc3NlZCBkYXRhICovCisgICAgICBO
RFJfcmVjb3JkX3QgTkRSOworICAgICAgbWFjaF9tc2dfdHlwZV9udW1iZXJfdCBtYXNrc0NudDsK
KyAgICAgIGV4Y2VwdGlvbl9tYXNrX3QgbWFza3NbMzJdOworICAgICAgZXhjZXB0aW9uX2JlaGF2
aW9yX3Qgb2xkX2JlaGF2aW9yc1szMl07CisgICAgICB0aHJlYWRfc3RhdGVfZmxhdm9yX3Qgb2xk
X2ZsYXZvcnNbMzJdOworICAgfSBSZXBseTsKKyNwcmFnbWEgcGFjaygpCisKKyAgIFJlcGx5ICpy
ZXBseSA9IChSZXBseSAqKUFSRzE7CisKKyAgIC8qIEZJWE1FOiBhbnl0aGluZyB0byBkbz8gKi8K
K30KKwogUFJFKHNlbWFwaG9yZV9jcmVhdGUpCiB7CiAjcHJhZ21hIHBhY2soNCkKQEAgLTY4MDQs
NiArNjkwMiwxNSBAQAogICAgY2FzZSAzMjI3OgogICAgICAgQ0FMTF9QUkUobWFjaF9wb3J0X2V4
dHJhY3RfbWVtYmVyKTsKICAgICAgIHJldHVybjsKKyAgIC8vVE9ETzogY2FzZSAzMjI4OgorICAg
Ly8gICBDQUxMX1BSRShtYWNoX3BvcnRfZ2V0X2NvbnRleHQpOworICAgLy8gICByZXR1cm47Cisg
ICBjYXNlIDMyMjk6CisgICAgICBDQUxMX1BSRShtYWNoX3BvcnRfc2V0X2NvbnRleHQpOworICAg
ICAgcmV0dXJuOworICAgLy9UT0RPOiBjYXNlIDMyMzA6CisgICAvLyAgIENBTExfUFJFKG1hY2hf
cG9ydF9rb2JqZWN0KTsKKyAgIC8vICAgcmV0dXJuOwogICAgICAgICAKICAgIGNhc2UgMzQwMjoK
ICAgICAgIENBTExfUFJFKHRhc2tfdGhyZWFkcyk7CkBAIC02ODIyLDEzICs2OTI5LDMwIEBACiAg
ICBjYXNlIDM0MDk6CiAgICAgICBDQUxMX1BSRSh0YXNrX2dldF9zcGVjaWFsX3BvcnQpOwogICAg
ICAgcmV0dXJuOworICAgLy9UT0RPOiBjYXNlIDM0MTA6CisgICAvLyAgIENBTExfUFJFKHRhc2tf
c2V0X3NwZWNpYWxfcG9ydCk7CisgICAvLyAgIHJldHVybjsKICAgIGNhc2UgMzQxMToKICAgICAg
IENBTExfUFJFKHRocmVhZF9jcmVhdGUpOwogICAgICAgcmV0dXJuOwogICAgY2FzZSAzNDEyOgog
ICAgICAgQ0FMTF9QUkUodGhyZWFkX2NyZWF0ZV9ydW5uaW5nKTsKICAgICAgIHJldHVybjsKLSAg
ICAgIAorICAgLy9UT0RPOiBjYXNlIDM0MTM6CisgICAvLyAgIENBTExfUFJFKHRhc2tfc2V0X2V4
Y2VwdGlvbl9wb3J0cyk7CisgICAvLyAgIHJldHVybjsKKyAgIGNhc2UgMzQxNDoKKyAgICAgIENB
TExfUFJFKHRhc2tfZ2V0X2V4Y2VwdGlvbl9wb3J0cyk7CisgICAgICByZXR1cm47CisgICAvL1RP
RE86IGNhc2UgMzQxNToKKyAgIC8vICAgQ0FMTF9QUkUodGFza19zd2FwX2V4Y2VwdGlvbl9wb3J0
cyk7CisgICAvLyAgIHJldHVybjsKKyAgIC8vVE9ETzogY2FzZSAzNDE2OgorICAgLy8gICBDQUxM
X1BSRShsb2NrX3NldF9jcmVhdGUpOworICAgLy8gICByZXR1cm47CisgICAvL1RPRE86IGNhc2Ug
MzQxNzoKKyAgIC8vICAgQ0FMTF9QUkUobG9ja19zZXRfZGVzdHJveSk7CisgICAvLyAgIHJldHVy
bjsKICAgIGNhc2UgMzQxODoKICAgICAgIENBTExfUFJFKHNlbWFwaG9yZV9jcmVhdGUpOwogICAg
ICAgcmV0dXJuOwpAQCAtODAyOCw3ICs4MTUyLDcgQEAKIC8vIF9fX19fKF9fTlJfc2V0YXVpZCks
IAogLy8gX19fX18oX19OUl9nZXRhdWRpdCksIAogLy8gX19fX18oX19OUl9zZXRhdWRpdCksIAot
Ly8gX19fX18oX19OUl9nZXRhdWRpdF9hZGRyKSwgCisgICBNQUNYWShfX05SX2dldGF1ZGl0X2Fk
ZHIsIGdldGF1ZGl0X2FkZHIpLCAKIC8vIF9fX19fKF9fTlJfc2V0YXVkaXRfYWRkciksIAogLy8g
X19fX18oX19OUl9hdWRpdGN0bCksIAogICAgTUFDWFkoX19OUl9ic2R0aHJlYWRfY3JlYXRlLCAg
ICAgYnNkdGhyZWFkX2NyZWF0ZSksICAgLy8gMzYwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63186</attachid>
            <date>2011-08-27 21:21:22 +0000</date>
            <delta_ts>2011-09-10 12:53:00 +0000</delta_ts>
            <desc>WI{P patch, 27 Aug 2011</desc>
            <filename>osx107-wip-27-aug-2011.diff</filename>
            <type>text/plain</type>
            <size>50402</size>
            <attacher name="Julian Seward">jseward</attacher>
            
              <data encoding="base64">SW5kZXg6IG1lbWNoZWNrL21jX3JlcGxhY2Vfc3RybWVtLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWVtY2hl
Y2svbWNfcmVwbGFjZV9zdHJtZW0uYwkocmV2aXNpb24gMTIwMDMpCisrKyBtZW1jaGVjay9tY19y
ZXBsYWNlX3N0cm1lbS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotCisjaWYgMQog
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSovCiAvKi0tLSBSZXBsYWNlbWVudHMgZm9yIHN0cmNweSgpLCBtZW1jcHko
KSBldCBhbCwgd2hpY2ggcnVuIG9uIHRoZSAgLS0tKi8KIC8qLS0tIHNpbXVsYXRlZCBDUFUuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0qLwpAQCAtMTY5
LDE0ICsxNjksMTYgQEAKICAgIH0KIAogLy8gQXBwYXJlbnRseSByaW5kZXgoKSBpcyB0aGUgc2Ft
ZSB0aGluZyBhcyBzdHJyY2hyKCkKLVNUUlJDSFIoVkdfWl9MSUJDX1NPTkFNRSwgICBzdHJyY2hy
KQotU1RSUkNIUihWR19aX0xJQkNfU09OQU1FLCAgIHJpbmRleCkKKy8vU1RSUkNIUihWR19aX0xJ
QkNfU09OQU1FLCAgIHN0cnJjaHIpCisvL1NUUlJDSFIoVkdfWl9MSUJDX1NPTkFNRSwgICByaW5k
ZXgpCiAjaWYgZGVmaW5lZChWR09fbGludXgpCi1TVFJSQ0hSKFZHX1pfTElCQ19TT05BTUUsICAg
X19HSV9zdHJyY2hyKQotU1RSUkNIUihWR19aX0xEX0xJTlVYX1NPXzIsIHJpbmRleCkKKy8vU1RS
UkNIUihWR19aX0xJQkNfU09OQU1FLCAgIF9fR0lfc3RycmNocikKKy8vU1RSUkNIUihWR19aX0xE
X0xJTlVYX1NPXzIsIHJpbmRleCkKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLVNUUlJDSFIo
VkdfWl9EWUxELCAgICAgICAgICBzdHJyY2hyKQotU1RSUkNIUihWR19aX0RZTEQsICAgICAgICAg
IHJpbmRleCkKKy8vU1RSUkNIUihWR19aX0RZTEQsICAgICAgICAgIHN0cnJjaHIpCisvL1NUUlJD
SFIoVkdfWl9EWUxELCAgICAgICAgICByaW5kZXgpCisKK1NUUlJDSFIobGlic3lzdGVtWnVjWmRk
eWxpYiwgc3RycmNocikKICNlbmRpZgogICAgCiAKQEAgLTE5NCwxOSArMTk2LDIxIEBACiAgICB9
CiAKIC8vIEFwcGFyZW50bHkgaW5kZXgoKSBpcyB0aGUgc2FtZSB0aGluZyBhcyBzdHJjaHIoKQot
U1RSQ0hSKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cmNocikKLVNUUkNIUihWR19aX0xJ
QkNfU09OQU1FLCAgICAgICAgICBpbmRleCkKKy8vU1RSQ0hSKFZHX1pfTElCQ19TT05BTUUsICAg
ICAgICAgIHN0cmNocikKKy8vU1RSQ0hSKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIGluZGV4
KQogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQotU1RSQ0hSKFZHX1pfTElCQ19TT05BTUUsICAgICAg
ICAgIF9fR0lfc3RyY2hyKQorLy9TVFJDSFIoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgICAgX19H
SV9zdHJjaHIpCiAjaWYgIWRlZmluZWQoVkdQX3g4Nl9saW51eCkKLSBTVFJDSFIoVkdfWl9MRF9M
SU5VWF9TT18yLCAgICAgICAgc3RyY2hyKQotIFNUUkNIUihWR19aX0xEX0xJTlVYX1NPXzIsICAg
ICAgICBpbmRleCkKLSBTVFJDSFIoVkdfWl9MRF9MSU5VWF9YODZfNjRfU09fMiwgc3RyY2hyKQot
IFNUUkNIUihWR19aX0xEX0xJTlVYX1g4Nl82NF9TT18yLCBpbmRleCkKKy8vIFNUUkNIUihWR19a
X0xEX0xJTlVYX1NPXzIsICAgICAgICBzdHJjaHIpCisvLyBTVFJDSFIoVkdfWl9MRF9MSU5VWF9T
T18yLCAgICAgICAgaW5kZXgpCisvLyBTVFJDSFIoVkdfWl9MRF9MSU5VWF9YODZfNjRfU09fMiwg
c3RyY2hyKQorLy8gU1RSQ0hSKFZHX1pfTERfTElOVVhfWDg2XzY0X1NPXzIsIGluZGV4KQogI2Vu
ZGlmCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi1TVFJDSFIoVkdfWl9EWUxELCAgICAgICAg
ICAgICAgICAgc3RyY2hyKQotU1RSQ0hSKFZHX1pfRFlMRCwgICAgICAgICAgICAgICAgIGluZGV4
KQorLy9TVFJDSFIoVkdfWl9EWUxELCAgICAgICAgICAgICAgICAgc3RyY2hyKQorLy9TVFJDSFIo
VkdfWl9EWUxELCAgICAgICAgICAgICAgICAgaW5kZXgpCisKK1NUUkNIUihsaWJzeXN0ZW1adWNa
ZGR5bGliLCBzdHJjaHIpCiAjZW5kaWYKIAogCkBAIC0yMzMsOSArMjM3LDkgQEAKICAgICAgIHJl
dHVybiBkc3Rfb3JpZzsgXAogICAgfQogCi1TVFJDQVQoVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2F0
KQorLy9TVFJDQVQoVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2F0KQogI2lmIGRlZmluZWQoVkdPX2xp
bnV4KQotU1RSQ0FUKFZHX1pfTElCQ19TT05BTUUsIF9fR0lfc3RyY2F0KQorLy9TVFJDQVQoVkdf
Wl9MSUJDX1NPTkFNRSwgX19HSV9zdHJjYXQpCiAjZW5kaWYKIAogI2RlZmluZSBTVFJOQ0FUKHNv
bmFtZSwgZm5uYW1lKSBcCkBAIC0yNjMsOSArMjY3LDkgQEAKICAgICAgIHJldHVybiBkc3Rfb3Jp
ZzsgXAogICAgfQogCi1TVFJOQ0FUKFZHX1pfTElCQ19TT05BTUUsIHN0cm5jYXQpCisvL1NUUk5D
QVQoVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNhdCkKICNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi1T
VFJOQ0FUKFZHX1pfRFlMRCwgICAgICAgIHN0cm5jYXQpCisvL1NUUk5DQVQoVkdfWl9EWUxELCAg
ICAgICAgc3RybmNhdCkKICNlbmRpZgogCiAKQEAgLTMwNiw4ICszMTAsOSBAQAogICAgfQogCiAj
aWYgZGVmaW5lZChWR09fZGFyd2luKQotU1RSTENBVChWR19aX0xJQkNfU09OQU1FLCBzdHJsY2F0
KQotU1RSTENBVChWR19aX0RZTEQsICAgICAgICBzdHJsY2F0KQorLy9TVFJMQ0FUKFZHX1pfTElC
Q19TT05BTUUsIHN0cmxjYXQpCisvL1NUUkxDQVQoVkdfWl9EWUxELCAgICAgICAgc3RybGNhdCkK
K1NUUkxDQVQobGlic3lzdGVtWnVjWmRkeWxpYiwgc3RybGNhdCkKICNlbmRpZgogCiAKQEAgLTMy
Miw5ICszMjcsOSBAQAogICAgICAgcmV0dXJuIGk7IFwKICAgIH0KIAotU1RSTkxFTihWR19aX0xJ
QkNfU09OQU1FLCBzdHJubGVuKQorLy9TVFJOTEVOKFZHX1pfTElCQ19TT05BTUUsIHN0cm5sZW4p
CiAjaWYgZGVmaW5lZChWR09fbGludXgpCi1TVFJOTEVOKFZHX1pfTElCQ19TT05BTUUsIF9fR0lf
c3RybmxlbikKKy8vU1RSTkxFTihWR19aX0xJQkNfU09OQU1FLCBfX0dJX3N0cm5sZW4pCiAjZW5k
aWYKICAgIAogCkBAIC0zNDMsMTAgKzM0OCwxMyBAQAogICAgICAgcmV0dXJuIGk7IFwKICAgIH0K
IAotU1RSTEVOKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cmxlbikKKy8vU1RSTEVOKFZH
X1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cmxlbikKICNpZiBkZWZpbmVkKFZHT19saW51eCkK
LVNUUkxFTihWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBfX0dJX3N0cmxlbikKKy8vU1RSTEVO
KFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIF9fR0lfc3RybGVuKQogI2VuZGlmCisjaWYgZGVm
aW5lZChWR09fZGFyd2luKQorU1RSTEVOKGxpYnN5c3RlbVp1Y1pkZHlsaWIsIHN0cmxlbikKKyNl
bmRpZgogCiAKICNkZWZpbmUgU1RSQ1BZKHNvbmFtZSwgZm5uYW1lKSBcCkBAIC0zNzIsMTEgKzM4
MCwxMyBAQAogICAgICAgcmV0dXJuIGRzdF9vcmlnOyBcCiAgICB9CiAKLVNUUkNQWShWR19aX0xJ
QkNfU09OQU1FLCBzdHJjcHkpCisvL1NUUkNQWShWR19aX0xJQkNfU09OQU1FLCBzdHJjcHkpCiAj
aWYgZGVmaW5lZChWR09fbGludXgpCi1TVFJDUFkoVkdfWl9MSUJDX1NPTkFNRSwgX19HSV9zdHJj
cHkpCisvL1NUUkNQWShWR19aX0xJQkNfU09OQU1FLCBfX0dJX3N0cmNweSkKICNlbGlmIGRlZmlu
ZWQoVkdPX2RhcndpbikKLVNUUkNQWShWR19aX0RZTEQsICAgICAgICBzdHJjcHkpCisvL1NUUkNQ
WShWR19aX0RZTEQsICAgICAgICBzdHJjcHkpCisKK1NUUkNQWShsaWJzeXN0ZW1adWNaZGR5bGli
LCBzdHJjcHkpCiAjZW5kaWYKIAogCkBAIC00MDAsMTEgKzQxMCwxMyBAQAogICAgICAgcmV0dXJu
IGRzdF9vcmlnOyBcCiAgICB9CiAKLVNUUk5DUFkoVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNweSkK
Ky8vU1RSTkNQWShWR19aX0xJQkNfU09OQU1FLCBzdHJuY3B5KQogI2lmIGRlZmluZWQoVkdPX2xp
bnV4KQotU1RSTkNQWShWR19aX0xJQkNfU09OQU1FLCBfX0dJX3N0cm5jcHkpCisvL1NUUk5DUFko
VkdfWl9MSUJDX1NPTkFNRSwgX19HSV9zdHJuY3B5KQogI2VsaWYgZGVmaW5lZChWR09fZGFyd2lu
KQotU1RSTkNQWShWR19aX0RZTEQsICAgICAgICBzdHJuY3B5KQorLy9TVFJOQ1BZKFZHX1pfRFlM
RCwgICAgICAgIHN0cm5jcHkpCisKK1NUUk5DUFkobGlic3lzdGVtWnVjWmRkeWxpYiwgc3RybmNw
eSkKICNlbmRpZgogCiAKQEAgLTQzNCw4ICs0NDYsOSBAQAogICAgfQogCiAjaWYgZGVmaW5lZChW
R09fZGFyd2luKQotU1RSTENQWShWR19aX0xJQkNfU09OQU1FLCBzdHJsY3B5KQotU1RSTENQWShW
R19aX0RZTEQsICAgICAgICBzdHJsY3B5KQorLy9TVFJMQ1BZKFZHX1pfTElCQ19TT05BTUUsIHN0
cmxjcHkpCisvL1NUUkxDUFkoVkdfWl9EWUxELCAgICAgICAgc3RybGNweSkKK1NUUkxDUFkobGli
c3lzdGVtWnVjWmRkeWxpYiwgc3RybGNweSkKICNlbmRpZgogCiAKQEAgLTQ1OSwxMSArNDcyLDEx
IEBACiAgICAgICB9IFwKICAgIH0KIAotU1RSTkNNUChWR19aX0xJQkNfU09OQU1FLCBzdHJuY21w
KQorLy9TVFJOQ01QKFZHX1pfTElCQ19TT05BTUUsIHN0cm5jbXApCiAjaWYgZGVmaW5lZChWR09f
bGludXgpCi1TVFJOQ01QKFZHX1pfTElCQ19TT05BTUUsIF9fR0lfc3RybmNtcCkKKy8vU1RSTkNN
UChWR19aX0xJQkNfU09OQU1FLCBfX0dJX3N0cm5jbXApCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3
aW4pCi1TVFJOQ01QKFZHX1pfRFlMRCwgICAgICAgIHN0cm5jbXApCitTVFJOQ01QKGxpYnN5c3Rl
bVp1Y1pkZHlsaWIsICAgICAgICBzdHJuY21wKQogI2VuZGlmCiAKIApAQCAtNDg5LDEwICs1MDIs
MTAgQEAKICAgIH0KIAogI2lmICFkZWZpbmVkKFZHUFZfYXJtX2xpbnV4X2FuZHJvaWQpCi1TVFJD
QVNFQ01QKFZHX1pfTElCQ19TT05BTUUsIHN0cmNhc2VjbXApCisvL1NUUkNBU0VDTVAoVkdfWl9M
SUJDX1NPTkFNRSwgc3RyY2FzZWNtcCkKICNlbmRpZgogI2lmIGRlZmluZWQoVkdPX2xpbnV4KSAm
JiAhZGVmaW5lZChWR1BWX2FybV9saW51eF9hbmRyb2lkKQotU1RSQ0FTRUNNUChWR19aX0xJQkNf
U09OQU1FLCBfX0dJX3N0cmNhc2VjbXApCisvL1NUUkNBU0VDTVAoVkdfWl9MSUJDX1NPTkFNRSwg
X19HSV9zdHJjYXNlY21wKQogI2VuZGlmCiAKIApAQCAtNTIwLDEyICs1MzMsMTIgQEAKICAgIH0K
IAogI2lmICFkZWZpbmVkKFZHUFZfYXJtX2xpbnV4X2FuZHJvaWQpCi1TVFJOQ0FTRUNNUChWR19a
X0xJQkNfU09OQU1FLCBzdHJuY2FzZWNtcCkKKy8vU1RSTkNBU0VDTVAoVkdfWl9MSUJDX1NPTkFN
RSwgc3RybmNhc2VjbXApCiAjZW5kaWYKICNpZiBkZWZpbmVkKFZHT19saW51eCkgJiYgIWRlZmlu
ZWQoVkdQVl9hcm1fbGludXhfYW5kcm9pZCkKLVNUUk5DQVNFQ01QKFZHX1pfTElCQ19TT05BTUUs
IF9fR0lfc3RybmNhc2VjbXApCisvL1NUUk5DQVNFQ01QKFZHX1pfTElCQ19TT05BTUUsIF9fR0lf
c3RybmNhc2VjbXApCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi1TVFJOQ0FTRUNNUChWR19a
X0RZTEQsICAgICAgICBzdHJuY2FzZWNtcCkKKy8vU1RSTkNBU0VDTVAoVkdfWl9EWUxELCAgICAg
ICAgc3RybmNhc2VjbXApCiAjZW5kaWYKIAogCkBAIC01NTAsMTAgKzU2MywxMCBAQAogICAgICAg
cmV0dXJuIDA7IFwKICAgIH0KIAotU1RSQ0FTRUNNUF9MKFZHX1pfTElCQ19TT05BTUUsIHN0cmNh
c2VjbXBfbCkKKy8vU1RSQ0FTRUNNUF9MKFZHX1pfTElCQ19TT05BTUUsIHN0cmNhc2VjbXBfbCkK
ICNpZiBkZWZpbmVkKFZHT19saW51eCkKLVNUUkNBU0VDTVBfTChWR19aX0xJQkNfU09OQU1FLCBf
X0dJX3N0cmNhc2VjbXBfbCkKLVNUUkNBU0VDTVBfTChWR19aX0xJQkNfU09OQU1FLCBfX0dJX19f
c3RyY2FzZWNtcF9sKQorLy9TVFJDQVNFQ01QX0woVkdfWl9MSUJDX1NPTkFNRSwgX19HSV9zdHJj
YXNlY21wX2wpCisvL1NUUkNBU0VDTVBfTChWR19aX0xJQkNfU09OQU1FLCBfX0dJX19fc3RyY2Fz
ZWNtcF9sKQogI2VuZGlmCiAKIApAQCAtNTgwLDExICs1OTMsMTEgQEAKICAgICAgIH0gXAogICAg
fQogCi1TVFJOQ0FTRUNNUF9MKFZHX1pfTElCQ19TT05BTUUsIHN0cm5jYXNlY21wX2wpCisvL1NU
Uk5DQVNFQ01QX0woVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNhc2VjbXBfbCkKICNpZiBkZWZpbmVk
KFZHT19saW51eCkKLVNUUk5DQVNFQ01QX0woVkdfWl9MSUJDX1NPTkFNRSwgX19HSV9zdHJuY2Fz
ZWNtcF9sKQorLy9TVFJOQ0FTRUNNUF9MKFZHX1pfTElCQ19TT05BTUUsIF9fR0lfc3RybmNhc2Vj
bXBfbCkKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLVNUUk5DQVNFQ01QX0woVkdfWl9EWUxE
LCAgICAgICAgc3RybmNhc2VjbXBfbCkKKy8vU1RSTkNBU0VDTVBfTChWR19aX0RZTEQsICAgICAg
ICBzdHJuY2FzZWNtcF9sKQogI2VuZGlmCiAKIApAQCAtNjA4LDExICs2MjEsMTIgQEAKICAgICAg
IHJldHVybiAwOyBcCiAgICB9CiAKLVNUUkNNUChWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBz
dHJjbXApCisvL1NUUkNNUChWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBzdHJjbXApCitTVFJD
TVAobGlic3lzdGVtWnVjWmRkeWxpYiwgc3RyY21wKQogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQot
U1RSQ01QKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIF9fR0lfc3RyY21wKQotU1RSQ01QKFZH
X1pfTERfTElOVVhfWDg2XzY0X1NPXzIsIHN0cmNtcCkKLVNUUkNNUChWR19aX0xENjRfU09fMSwg
ICAgICAgICAgICBzdHJjbXApCisvL1NUUkNNUChWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBf
X0dJX3N0cmNtcCkKKy8vU1RSQ01QKFZHX1pfTERfTElOVVhfWDg2XzY0X1NPXzIsIHN0cmNtcCkK
Ky8vU1RSQ01QKFZHX1pfTEQ2NF9TT18xLCAgICAgICAgICAgIHN0cmNtcCkKICNlbmRpZgogCiAK
QEAgLTYzMCw5ICs2NDQsOSBAQAogICAgICAgcmV0dXJuIE5VTEw7IFwKICAgIH0KIAotTUVNQ0hS
KFZHX1pfTElCQ19TT05BTUUsIG1lbWNocikKKy8vTUVNQ0hSKFZHX1pfTElCQ19TT05BTUUsIG1l
bWNocikKICNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi1NRU1DSFIoVkdfWl9EWUxELCAgICAgICAg
bWVtY2hyKQorLy9NRU1DSFIoVkdfWl9EWUxELCAgICAgICAgbWVtY2hyKQogI2VuZGlmCiAKIApA
QCAtNzE4LDE0ICs3MzIsMTUgQEAKICNpZiBkZWZpbmVkKFZHT19saW51eCkKIC8qIEZvciBvbGRl
ciBtZW1jcHkgd2UgaGF2ZSB0byB1c2UgbWVtbW92ZS1saWtlIHNlbWFudGljcyBhbmQgc2tpcCB0
aGUKICAgIG92ZXJsYXAgY2hlY2s7IHNpZ2g7IHNlZSAjMjc1Mjg0LiAqLwotTUVNTU9WRShWR19a
X0xJQkNfU09OQU1FLCBtZW1jcHlaQUdMSUJDWnUyWmQyWmQ1KSAvKiBtZW1jcHlAR0xJQkNfMi4y
LjUgKi8KLU1FTUNQWShWR19aX0xJQkNfU09OQU1FLCAgbWVtY3B5WkFaQUdMSUJDWnUyWmQxNCkg
LyogbWVtY3B5QEBHTElCQ18yLjE0ICovCi1NRU1DUFkoVkdfWl9MSUJDX1NPTkFNRSwgIG1lbWNw
eSkgLyogZmFsbGJhY2sgY2FzZSAqLwotTUVNQ1BZKFZHX1pfTERfU09fMSwgICAgICBtZW1jcHkp
IC8qIGxkLnNvLjEgKi8KLU1FTUNQWShWR19aX0xENjRfU09fMSwgICAgbWVtY3B5KSAvKiBsZDY0
LnNvLjEgKi8KKy8vTUVNTU9WRShWR19aX0xJQkNfU09OQU1FLCBtZW1jcHlaQUdMSUJDWnUyWmQy
WmQ1KSAvKiBtZW1jcHlAR0xJQkNfMi4yLjUgKi8KKy8vTUVNQ1BZKFZHX1pfTElCQ19TT05BTUUs
ICBtZW1jcHlaQVpBR0xJQkNadTJaZDE0KSAvKiBtZW1jcHlAQEdMSUJDXzIuMTQgKi8KKy8vTUVN
Q1BZKFZHX1pfTElCQ19TT05BTUUsICBtZW1jcHkpIC8qIGZhbGxiYWNrIGNhc2UgKi8KKy8vTUVN
Q1BZKFZHX1pfTERfU09fMSwgICAgICBtZW1jcHkpIC8qIGxkLnNvLjEgKi8KKy8vTUVNQ1BZKFZH
X1pfTEQ2NF9TT18xLCAgICBtZW1jcHkpIC8qIGxkNjQuc28uMSAqLwogI2VsaWYgZGVmaW5lZChW
R09fZGFyd2luKQotTUVNQ1BZKFZHX1pfTElCQ19TT05BTUUsICBtZW1jcHkpCi1NRU1DUFkoVkdf
Wl9EWUxELCAgICAgICAgIG1lbWNweSkKKy8vTUVNQ1BZKFZHX1pfTElCQ19TT05BTUUsICBtZW1j
cHkpCisvL01FTUNQWShWR19aX0RZTEQsICAgICAgICAgbWVtY3B5KQorTUVNQ1BZKGxpYnN5c3Rl
bVp1Y1pkZHlsaWIsICBtZW1jcHlaRFZBUklBTlRaRHNzZTN4KSAvKiBtZW1jcHkkVkFSSUFOVCRz
c2UzeCAqLwogI2VuZGlmCiAvKiBpY2M5IGJsYXRzIHRoZXNlIGFyb3VuZCBhbGwgb3ZlciB0aGUg
cGxhY2UuICBOb3Qgb25seSBpbiB0aGUgbWFpbgogICAgZXhlY3V0YWJsZSBidXQgdmFyaW91cyAu
c28ncy4gIFRoZXkgYXJlIGhpZ2hseSB0dW5lZCBhbmQgcmVhZApAQCAtNzM1LDcgKzc1MCw3IEBA
CiAgICBvbmx5IHVudGlsIHdlIHVuZGVyc3RhbmQgbW9yZSBhYm91dCB0aGUgcHJvYmxlbS4gIFNl
ZQogICAgaHR0cDovL2J1Z3Mua2RlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5Nzc2CiAgKi8KLU1F
TUNQWShOT05FLCBadWludGVsWnVmYXN0WnVtZW1jcHkpCisvL01FTUNQWShOT05FLCBadWludGVs
WnVmYXN0WnVtZW1jcHkpCiAKIAogI2RlZmluZSBNRU1DTVAoc29uYW1lLCBmbm5hbWUpIFwKQEAg
LTc2MywxMyArNzc4LDEzIEBACiAgICAgICByZXR1cm4gMDsgXAogICAgfQogCi1NRU1DTVAoVkdf
Wl9MSUJDX1NPTkFNRSwgbWVtY21wKQotTUVNQ01QKFZHX1pfTElCQ19TT05BTUUsIGJjbXApCisv
L01FTUNNUChWR19aX0xJQkNfU09OQU1FLCBtZW1jbXApCisvL01FTUNNUChWR19aX0xJQkNfU09O
QU1FLCBiY21wKQogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQotTUVNQ01QKFZHX1pfTERfU09fMSwg
ICAgIGJjbXApCisvL01FTUNNUChWR19aX0xEX1NPXzEsICAgICBiY21wKQogI2VsaWYgZGVmaW5l
ZChWR09fZGFyd2luKQotTUVNQ01QKFZHX1pfRFlMRCwgICAgICAgIG1lbWNtcCkKLU1FTUNNUChW
R19aX0RZTEQsICAgICAgICBiY21wKQorLy9NRU1DTVAoVkdfWl9EWUxELCAgICAgICAgbWVtY21w
KQorLy9NRU1DTVAoVkdfWl9EWUxELCAgICAgICAgYmNtcCkKICNlbmRpZgogCiAKQEAgLTc5OCwx
MyArODEzLDEzIEBACiAgICAgICByZXR1cm4gZHN0OyBcCiAgICB9CiAKLVNUUENQWShWR19aX0xJ
QkNfU09OQU1FLCAgICAgICAgICBzdHBjcHkpCisvL1NUUENQWShWR19aX0xJQkNfU09OQU1FLCAg
ICAgICAgICBzdHBjcHkpCiAjaWYgZGVmaW5lZChWR09fbGludXgpCi1TVFBDUFkoVkdfWl9MSUJD
X1NPTkFNRSwgICAgICAgICAgX19HSV9zdHBjcHkpCi1TVFBDUFkoVkdfWl9MRF9MSU5VWF9TT18y
LCAgICAgICAgc3RwY3B5KQotU1RQQ1BZKFZHX1pfTERfTElOVVhfWDg2XzY0X1NPXzIsIHN0cGNw
eSkKKy8vU1RQQ1BZKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIF9fR0lfc3RwY3B5KQorLy9T
VFBDUFkoVkdfWl9MRF9MSU5VWF9TT18yLCAgICAgICAgc3RwY3B5KQorLy9TVFBDUFkoVkdfWl9M
RF9MSU5VWF9YODZfNjRfU09fMiwgc3RwY3B5KQogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQot
U1RQQ1BZKFZHX1pfRFlMRCwgICAgICAgICAgICAgICAgIHN0cGNweSkKKy8vU1RQQ1BZKFZHX1pf
RFlMRCwgICAgICAgICAgICAgICAgIHN0cGNweSkKICNlbmRpZgogCiAKQEAgLTgyNywxNiArODQy
LDE4IEBACiAgICAgICByZXR1cm4gczsgXAogICAgfQogCi1NRU1TRVQoVkdfWl9MSUJDX1NPTkFN
RSwgbWVtc2V0KQorLy9NRU1TRVQoVkdfWl9MSUJDX1NPTkFNRSwgbWVtc2V0KQogI2lmIGRlZmlu
ZWQoVkdPX2RhcndpbikKLU1FTVNFVChWR19aX0RZTEQsICAgICAgICBtZW1zZXQpCisvL01FTVNF
VChWR19aX0RZTEQsICAgICAgICBtZW1zZXQpCitNRU1TRVQobGlic3lzdGVtWnVjWmRkeWxpYiwg
bWVtc2V0KQogI2VuZGlmCiAKIAogLyogbWVtbW92ZSAtLSB1c2UgdGhlIE1FTU1PVkUgZGVmbiBh
Ym92ZS4gKi8KLU1FTU1PVkUoVkdfWl9MSUJDX1NPTkFNRSwgbWVtbW92ZSkKKy8vTUVNTU9WRShW
R19aX0xJQkNfU09OQU1FLCBtZW1tb3ZlKQogI2lmIGRlZmluZWQoVkdPX2RhcndpbikKLU1FTU1P
VkUoVkdfWl9EWUxELCAgICAgICAgbWVtbW92ZSkKKy8vTUVNTU9WRShWR19aX0RZTEQsICAgICAg
ICBtZW1tb3ZlKQorTUVNTU9WRShsaWJzeXN0ZW1adWNaZGR5bGliLCAgbWVtbW92ZVpEVkFSSUFO
VFpEc3NlM3gpIC8qIG1lbW1vdmUkVkFSSUFOVCRzc2UzeCAqLwogI2VuZGlmCiAKIApAQCAtODYx
LDggKzg3OCw4IEBACiAgICB9CiAKICNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi1CQ09QWShWR19a
X0xJQkNfU09OQU1FLCBiY29weSkKLUJDT1BZKFZHX1pfRFlMRCwgICAgICAgIGJjb3B5KQorLy9C
Q09QWShWR19aX0xJQkNfU09OQU1FLCBiY29weSkKKy8vQkNPUFkoVkdfWl9EWUxELCAgICAgICAg
YmNvcHkpCiAjZW5kaWYKIAogCkBAIC04OTgsNyArOTE1LDcgQEAKICAgICAgcmV0dXJuIE5VTEw7
IFwKICAgIH0KIAotR0xJQkMyNV9fX01FTU1PVkVfQ0hLKFZHX1pfTElCQ19TT05BTUUsIF9fbWVt
bW92ZV9jaGspCisvL0dMSUJDMjVfX19NRU1NT1ZFX0NISyhWR19aX0xJQkNfU09OQU1FLCBfX21l
bW1vdmVfY2hrKQogCiAKIC8qIEZpbmQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgQyBpbiBTIG9y
IHRoZSBmaW5hbCBOVUwgYnl0ZS4gICovCkBAIC05MTcsNyArOTM0LDcgQEAKICAgICAgIH0gXAog
ICAgfQogCi1HTElCQzIzMl9TVFJDSFJOVUwoVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2hybnVsKQor
Ly9HTElCQzIzMl9TVFJDSFJOVUwoVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2hybnVsKQogCiAKIC8q
IEZpbmQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgQyBpbiBTLiAgKi8KQEAgLTkzNSw5ICs5NTIs
OSBAQAogICAgICAgfSBcCiAgICB9CiAKLUdMSUJDMjMyX1JBV01FTUNIUihWR19aX0xJQkNfU09O
QU1FLCByYXdtZW1jaHIpCisvL0dMSUJDMjMyX1JBV01FTUNIUihWR19aX0xJQkNfU09OQU1FLCBy
YXdtZW1jaHIpCiAjaWYgZGVmaW5lZCAoVkdPX2xpbnV4KQotR0xJQkMyMzJfUkFXTUVNQ0hSKFZH
X1pfTElCQ19TT05BTUUsIF9fR0lfX19yYXdtZW1jaHIpCisvL0dMSUJDMjMyX1JBV01FTUNIUihW
R19aX0xJQkNfU09OQU1FLCBfX0dJX19fcmF3bWVtY2hyKQogI2VuZGlmCiAKIC8qIGdsaWJjIHZh
cmlhbnQgb2Ygc3RyY3B5IHRoYXQgY2hlY2tzIHRoZSBkZXN0IGlzIGJpZyBlbm91Z2guCkBAIC05
NjQsNyArOTgxLDcgQEAKICAgICAgcmV0dXJuIE5VTEw7IFwKICAgIH0KIAotR0xJQkMyNV9fX1NU
UkNQWV9DSEsoVkdfWl9MSUJDX1NPTkFNRSwgX19zdHJjcHlfY2hrKQorLy9HTElCQzI1X19fU1RS
Q1BZX0NISyhWR19aX0xJQkNfU09OQU1FLCBfX3N0cmNweV9jaGspCiAKIAogLyogZ2xpYmMgdmFy
aWFudCBvZiBzdHBjcHkgdGhhdCBjaGVja3MgdGhlIGRlc3QgaXMgYmlnIGVub3VnaC4KQEAgLTk5
MCw3ICsxMDA3LDcgQEAKICAgICAgcmV0dXJuIE5VTEw7IFwKICAgIH0KIAotR0xJQkMyNV9fX1NU
UENQWV9DSEsoVkdfWl9MSUJDX1NPTkFNRSwgX19zdHBjcHlfY2hrKQorLy9HTElCQzI1X19fU1RQ
Q1BZX0NISyhWR19aX0xJQkNfU09OQU1FLCBfX3N0cGNweV9jaGspCiAKIAogLyogbWVtcGNweSAq
LwpAQCAtMTAyNiw5ICsxMDQzLDkgQEAKICAgICAgIHJldHVybiAodm9pZCopKCAoKGNoYXIqKWRz
dCkgKyBsZW5fc2F2ZWQgKTsgXAogICAgfQogCi1HTElCQzI1X01FTVBDUFkoVkdfWl9MSUJDX1NP
TkFNRSwgbWVtcGNweSkKKy8vR0xJQkMyNV9NRU1QQ1BZKFZHX1pfTElCQ19TT05BTUUsIG1lbXBj
cHkpCiAjaWYgZGVmaW5lZChWR09fbGludXgpCi1HTElCQzI1X01FTVBDUFkoVkdfWl9MRF9TT18x
LCAgICAgbWVtcGNweSkgLyogbGQuc28uMSAqLworLy9HTElCQzI1X01FTVBDUFkoVkdfWl9MRF9T
T18xLCAgICAgbWVtcGNweSkgLyogbGQuc28uMSAqLwogI2VuZGlmCiAKIApAQCAtMTA3Miw3ICsx
MDg5LDcgQEAKICAgICAgcmV0dXJuIE5VTEw7IFwKICAgIH0KIAotR0xJQkMyNl9fX01FTUNQWV9D
SEsoVkdfWl9MSUJDX1NPTkFNRSwgX19tZW1jcHlfY2hrKQorLy9HTElCQzI2X19fTUVNQ1BZX0NI
SyhWR19aX0xJQkNfU09OQU1FLCBfX21lbWNweV9jaGspCiAKIAogI2RlZmluZSBTVFJTVFIoc29u
YW1lLCBmbm5hbWUpIFwKQEAgLTExMTMsNyArMTEzMCw3IEBACiAgICB9CiAKICNpZiBkZWZpbmVk
KFZHT19saW51eCkKLVNUUlNUUihWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBzdHJzdHIpCisv
L1NUUlNUUihWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBzdHJzdHIpCiAjZW5kaWYKIAogCkBA
IC0xMTUwLDcgKzExNjcsNyBAQAogICAgfQogCiAjaWYgZGVmaW5lZChWR09fbGludXgpCi1TVFJQ
QlJLKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cnBicmspCisvL1NUUlBCUksoVkdfWl9M
SUJDX1NPTkFNRSwgICAgICAgICAgc3RycGJyaykKICNlbmRpZgogCiAKQEAgLTExODgsNyArMTIw
NSw3IEBACiAgICB9CiAKICNpZiBkZWZpbmVkKFZHT19saW51eCkKLVNUUkNTUE4oVkdfWl9MSUJD
X1NPTkFNRSwgICAgICAgICAgc3RyY3NwbikKKy8vU1RSQ1NQTihWR19aX0xJQkNfU09OQU1FLCAg
ICAgICAgICBzdHJjc3BuKQogI2VuZGlmCiAKIApAQCAtMTIyNywxMCArMTI0NCwzNiBAQAogICAg
fQogCiAjaWYgZGVmaW5lZChWR09fbGludXgpCi1TVFJTUE4oVkdfWl9MSUJDX1NPTkFNRSwgICAg
ICAgICAgc3Ryc3BuKQorLy9TVFJTUE4oVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgICAgc3Ryc3Bu
KQogI2VuZGlmCiAKIAorCisjZGVmaW5lIEJaRVJPKHNvbmFtZSwgZm5uYW1lKSBcCisgICB2b2lk
KiBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaWigyMDM1MCxzb25hbWUsZm5uYW1lKSBcCisgICAgICAg
ICAgICAodm9pZCAqcywgU2l6ZVQgbik7IFwKKyAgIHZvaWQqIFZHX1JFUExBQ0VfRlVOQ1RJT05f
RVpaKDIwMzUwLHNvbmFtZSxmbm5hbWUpIFwKKyAgICAgICAgICAgICh2b2lkICpzLCBTaXplVCBu
KSBcCisgICB7IFwKKyAgICAgIEludCAgYyAgPSAwOyBcCisgICAgICBBZGRyIGEgID0gKEFkZHIp
czsgICBcCisgICAgICBVSW50IGM0ID0gKGMgJiAweEZGKTsgXAorICAgICAgYzQgPSAoYzQgPDwg
OCkgfCBjNDsgXAorICAgICAgYzQgPSAoYzQgPDwgMTYpIHwgYzQ7IFwKKyAgICAgIHdoaWxlICgo
YSAmIDMpICE9IDAgJiYgbiA+PSAxKSBcCisgICAgICAgICB7ICooVUNoYXIqKWEgPSAoVUNoYXIp
YzsgYSArPSAxOyBuIC09IDE7IH0gXAorICAgICAgd2hpbGUgKG4gPj0gNCkgXAorICAgICAgICAg
eyAqKFVJbnQqKWEgPSBjNDsgYSArPSA0OyBuIC09IDQ7IH0gXAorICAgICAgd2hpbGUgKG4gPj0g
MSkgXAorICAgICAgICAgeyAqKFVDaGFyKilhID0gKFVDaGFyKWM7IGEgKz0gMTsgbiAtPSAxOyB9
IFwKKyAgICAgIHJldHVybiBzOyBcCisgICB9CisKKyNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCitC
WkVSTyhsaWJzeXN0ZW1adWNaZGR5bGliLCBiemVyb1pEVkFSSUFOVFpEc3NlMikgIC8qIGJ6ZXJv
JFZBUklBTlQkc3NlMiAqLworI2VuZGlmCisKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gSW1wcm92ZSBkZWZp
bmVkbmVzcyBjaGVja2luZyBvZiBwcm9jZXNzIGVudmlyb25tZW50ICAtLS0qLwogLyotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpA
QCAtMTMwMywzICsxMzQ2LDQgQEAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyotLS0gZW5kICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSovCiAv
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KKyNlbmRpZgpJbmRleDogZGFyd2luMTEuc3VwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBkYXJ3aW4xMS5zdXBwCShyZXZpc2lvbiAwKQorKysgZGFyd2luMTEuc3VwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMjIgQEAKKworIyBTdXBwcmVzc2lvbnMgZm9yIERhcndpbiAxMS54IC8g
TWFjIE9TIFggMTAuNyBMaW9uCisKKyMjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMjCisjIE1lbWNoZWNrCisjIy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0jIworCisjIER1bm5vIHdoZXJlIHRoaXMgaXMgYSByZWFsIGJ1Zywgb3IgZHVl
IHRvIGJvcmtlZCAxMC43LXNwZWNpZmljIHN5c2NhbGwKKyMgd3JhcHBlcnMuICA2NC1iaXQgbW9k
ZTsgbm90IHN1cmUgaWYgb2NjdXJzIGluIDMyLWJpdCBtb2RlLiAKKyMgQW55d2F5LCBmb3IgdGhl
IHRpbmUgYmVpbmc6CisjCisjIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVu
aW5pdGlhbGlzZWQgdmFsdWUocykKKyMgICAgYXQgMHgxOTczRTY6IF9fbXR4X2Ryb3Bsb2NrIChp
biAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX2MuZHlsaWIpCisjICAgIGJ5IDB4MTk3NkFBOiBw
dGhyZWFkX211dGV4X3VubG9jayAoaW4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jLmR5bGli
KQorIyAgICBieSAweDEwMEIzRDogdW5sb2NrX25vZGUgKGluIC91c3IvbGliL3N5c3RlbS9saWJr
ZXltZ3IuZHlsaWIpCit7CisgICBPU1gxMDc6X19tdHhfZHJvcGxvY2sKKyAgIE1lbWNoZWNrOkNv
bmQKKyAgIGZ1bjpfX210eF9kcm9wbG9jaworICAgZnVuOnB0aHJlYWRfbXV0ZXhfdW5sb2NrCisg
ICBmdW46dW5sb2NrX25vZGUKK30KKworIyBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5k
cyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisjICAgIGF0IDB4MkVCODgzOiA/Pz8gKGluIC91
c3IvbGliL3N5c3RlbS9saWJ4cGMuZHlsaWIpCisjICAgIGJ5IDB4MjM3QzY6ID8/PyAoaW4gL3Vz
ci9saWIvbGliU3lzdGVtLkIuZHlsaWIpCisjICAgIGJ5IDB4OEZFMTExNUE6IEltYWdlTG9hZGVy
TWFjaE86OmRvTW9kSW5pdEZ1bmN0aW9ucyhJbWFnZUxvYWRlcjo6TGlua0NvbnRleHQgY29uc3Qm
KSAoaW4gL3Vzci9saWIvZHlsZCkKK3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hl
cmU+CisgICBNZW1jaGVjazpDb25kCisgICBvYmo6L3Vzci9saWIvc3lzdGVtL2xpYnhwYy5keWxp
YgorICAgb2JqOi91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliCisgICBmdW46X1pOMTZJbWFnZUxv
YWRlck1hY2hPMThkb01vZEluaXRGdW5jdGlvbnNFUktOMTFJbWFnZUxvYWRlcjExTGlua0NvbnRl
eHRFCit9CisKKyMgWkxpYiBzdHVmZi4gIEhvdyBjb21lIHRoaXMgd2Fzbid0IG5lY2Vzc2FyeSBp
biAxMC42ID8KK3sKKyAgIE9TWDEwNzp6bGliLUMKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajov
dXNyL2xpYi9saWJ6LipkeWxpYgorICAgb2JqOi91c3IvbGliL2xpYnouKmR5bGliCit9Cit7Cisg
ICBPU1gxMDc6emxpYi04CisgICBNZW1jaGVjazpWYWx1ZTgKKyAgIG9iajovdXNyL2xpYi9saWJ6
LipkeWxpYgorICAgb2JqOi91c3IvbGliL2xpYnouKmR5bGliCit9CisKKyMgUmVhbGx5IGEgYnVn
PyAgSSBkb24ndCBrbm93LgorIyBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1
bmluaXRpYWxpc2VkIHZhbHVlKHMpCisjICAgIGF0IDB4M0EzMjJGRTogX19tdHhfZHJvcGxvY2sg
KGluIC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fYy5keWxpYikKKyMgICAgYnkgMHgzQTMyNkFB
OiBwdGhyZWFkX211dGV4X3VubG9jayAoaW4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jLmR5
bGliKQorIyAgICBieSAweDI2MzgyOiBsb2FkX2ltYWdlcyAoaW4gL3Vzci9saWIvbGlib2JqYy5B
LmR5bGliKQoreworICAgT1NYMTA3OmJsYWgKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIGZ1bjpfX210
eF9kcm9wbG9jaworICAgZnVuOnB0aHJlYWRfbXV0ZXhfdW5sb2NrCit9CisKK3sKKyAgIE9TWDEw
NzpibGFoCisgICBNZW1jaGVjazpDb25kCisgICBmdW46cHRocmVhZF9tdXRleF9sb2NrCit9CisK
KworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIFRoZSBvbmVzIGJlbG93IGFyZSBmcm9tIGRhcndp
bjEwLnN1cHAgKGZvciBTbm93IExlb3BhcmQpLiAgSSBkb24ndAorIyMjIGtub3cgd2hldGhlciB0
aGV5IGFyZSBzdGlsbCBuZWNlc3NhcnkuCisKKyMgYWZhaWN0IHRoaXMgaXMgbGVnaXQuICBNaWdo
dCBiZSBjYXVzZWQgYnkgc2V0ZW52KCJWQVI9IikKKyMgd2hlcmUgdGhlIHZhbHVlIHN0cmluZyBp
cyBlbXB0eSAobm90IHN1cmUpCit7CisgICBtYWNvcy1Db25kLTcKKyAgIE1lbWNoZWNrOkNvbmQK
KyAgIGZ1bjpfX3NldGVudgorfQorCisjIEZyb20gSmVzc2UgUnVkZXJtYW4uCisjeworIyAgIE1h
YyBPUyBYIDEwLjYuNC4gcmRhcjovLzgxNDUyODkuICJuZXdbXSIgcGFpcmVkIHdpdGggImRlbGV0
ZSIgaW4gdGhlIERlc2t0b3BTZXJ2aWNlc1ByaXYgZnJhbWV3b3JrLgorIyAgIE1lbWNoZWNrOkZy
ZWUKKyMgICBmdW46X1pkbFB2CisjICAgZnVuOl9aTjVUQ2hhcjE4UmVtb3ZlUHRyUmVmZXJlbmNl
RXYKKyMgfQorCisjIEZyb20gSmVzc2UgUnVkZXJtYW4uCisjeworIyAgIE1hYyBPUyBYIDEwLjYu
NC4gcmRhcjovLzgxNDUzMTguIFVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZyb20gSElNZW51QmFyVmll
dzo6TWVhc3VyZUFwcE1lbnVzIGlzIHVzZWQgaW4gSElNZW51QmFyVmlldzo6U2V0QWRqdXN0VGV4
dFRpdGxlQm91bmRzQXRJbmRleC4KKyMgICBNZW1jaGVjazpDb25kCisjICAgZnVuOl9aTjEzSElN
ZW51QmFyVmlldzMxU2V0QWRqdXN0VGV4dFRpdGxlQm91bmRzQXRJbmRleEVpaAorIyAgIGZ1bjpf
Wk4xM0hJTWVudUJhclZpZXcxNU1lYXN1cmVBcHBNZW51c0V2CisjfQorCisjeworIyAgIFRGb250
RmVhdHVyZXM6OlRGb250RmVhdHVyZXMoQ0dGb250KikgKGluIENvcmVUZXh0LmZyYW1ld29yaykK
KyMgICBNZW1jaGVjazpDb25kCisjICAgZnVuOl9aTjEzVEZvbnRGZWF0dXJlc0MyRVA2Q0dGb250
CisjICAgZnVuOl9aTks5VEJhc2VGb250MTJDb3B5RmVhdHVyZXNFdgorI30KKworIyBTZWUgaHR0
cHM6Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODU3MiBhYm91dCB0aGlzOyAgaXQn
cworIyB1bmF2b2lkYWJsZSBkdWUgdG8gQlNEIHNldGVudigpIHNlbWFudGljcy4KKyN7CisjICAg
bWFjb3MtX19zZXRlbnYtbGVhay1zZWUtb3VyLWJ1Zy0xODg1NzIKKyMgICBNZW1jaGVjazpMZWFr
CisjICAgZnVuOm1hbGxvY196b25lX21hbGxvYworIyAgIGZ1bjpfX3NldGVudgorI30KKworI3sK
KyMgICBsaWJTeXN0ZW0ta2V5bWdyLWxlYWstYXQtZXhpdAorIyAgIE1lbWNoZWNrOkxlYWsKKyMg
ICBmdW46bWFsbG9jCisjICAgZnVuOmdldF9vcl9jcmVhdGVfa2V5X2VsZW1lbnQKKyMgICBmdW46
X2tleW1ncl9nZXRfYW5kX2xvY2tfcHJvY2Vzc3dpZGVfcHRyXzIKKyMgICBmdW46X19rZXltZ3Jf
aW5pdGlhbGl6ZXIKKyMgICBmdW46bGliU3lzdGVtX2luaXRpYWxpemVyCisjfQpJbmRleDogaW5j
bHVkZS92a2kvdmtpLXNjbnVtcy1kYXJ3aW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpbmNsdWRlL3ZraS92
a2ktc2NudW1zLWRhcndpbi5oCShyZXZpc2lvbiAxMjAwMykKKysrIGluY2x1ZGUvdmtpL3ZraS1z
Y251bXMtZGFyd2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxNSwxOCArNTE1LDE4IEBACiAJCQkv
KiAyOTggIG9sZCBuZXdfc3lzdGVtX3NoYXJlZF9yZWdpb25zICovCiAJCQkvKiAyOTkgIG9sZCBz
aGFyZWRfcmVnaW9uX21hcF9maWxlX25wICovCiAJCQkvKiAzMDAgIG9sZCBzaGFyZWRfcmVnaW9u
X21ha2VfcHJpdmF0ZV9ucCAqLwotCQkJLyogMzAxICovCi0JCQkvKiAzMDIgKi8KLQkJCS8qIDMw
MyAqLwotCQkJLyogMzA0ICovCi0JCQkvKiAzMDUgKi8KLQkJCS8qIDMwNiAqLwotCQkJLyogMzA3
ICovCi0JCQkvKiAzMDggKi8KKyNkZWZpbmUgX19OUl9wc3luY2hfbXV0ZXh3YWl0IFZHX0RBUldJ
Tl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMSkKKyNkZWZpbmUgX19OUl9wc3luY2hfbXV0ZXhk
cm9wIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMikKKyNkZWZpbmUgX19OUl9w
c3luY2hfY3Zicm9hZCAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMykKKyNk
ZWZpbmUgX19OUl9wc3luY2hfY3ZzaWduYWwgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9V
TklYKDMwNCkKKyNkZWZpbmUgX19OUl9wc3luY2hfY3Z3YWl0ICAgIFZHX0RBUldJTl9TWVNDQUxM
X0NPTlNUUlVDVF9VTklYKDMwNSkKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfcmRsb2NrIFZHX0RB
UldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNikKKyNkZWZpbmUgX19OUl9wc3luY2hfcndf
d3Jsb2NrIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNykKKyNkZWZpbmUgX19O
Ul9wc3luY2hfcndfdW5sb2NrIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwOCkK
IAkJCS8qIDMwOSAqLwogI2RlZmluZQlfX05SX2dldHNpZCAgICAgICAgIFZHX0RBUldJTl9TWVND
QUxMX0NPTlNUUlVDVF9VTklYKDMxMCkKICNkZWZpbmUJX19OUl9zZXR0aWRfd2l0aF9waWQgVkdf
REFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzExKQotCQkJLyogMzEyICovCisjZGVmaW5l
IF9fTlJfcHN5bmNoX2N2Y2xycHJlcG9zdCBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5J
WCgzMTIpCiAjZGVmaW5lCV9fTlJfYWlvX2ZzeW5jICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09O
U1RSVUNUX1VOSVgoMzEzKQogI2RlZmluZQlfX05SX2Fpb19yZXR1cm4gICAgIFZHX0RBUldJTl9T
WVNDQUxMX0NPTlNUUlVDVF9VTklYKDMxNCkKICNkZWZpbmUJX19OUl9haW9fc3VzcGVuZCAgICBW
R19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMTUpCkluZGV4OiBjb25maWd1cmUuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gY29uZmlndXJlLmluCShyZXZpc2lvbiAxMjAwMykKKysrIGNvbmZpZ3Vy
ZS5pbgkod29ya2luZyBjb3B5KQpAQCAtMjY0LDkgKzI2NCwxNiBAQAogCQkgIERFRkFVTFRfU1VQ
UD0iZGFyd2luMTAuc3VwcCAke0RFRkFVTFRfU1VQUH0iCiAJCSAgREVGQVVMVF9TVVBQPSJkYXJ3
aW4xMC1kcmQuc3VwcCAke0RFRkFVTFRfU1VQUH0iCiAJCSAgOzsKLSAgICAgKikgCisJICAgICAx
MS4qKQorCQkgIEFDX01TR19SRVNVTFQoW0RhcndpbiAxMS54ICgke2tlcm5lbH0pIC8gTWFjIE9T
IFggMTAuNyBMaW9uXSkKKwkJICBBQ19ERUZJTkUoW0RBUldJTl9WRVJTXSwgREFSV0lOXzEwXzcs
IFtEYXJ3aW4gLyBNYWMgT1MgWCB2ZXJzaW9uXSkKKyAgICAgICAgICAgICAgICAgICMgRklYTUU6
IGNoYW5nZSB0aGVzZSB0byB4eDExLnN1cHAKKwkJICBERUZBVUxUX1NVUFA9ImRhcndpbjExLnN1
cHAgJHtERUZBVUxUX1NVUFB9IgorCQkgIERFRkFVTFRfU1VQUD0iZGFyd2luMTAtZHJkLnN1cHAg
JHtERUZBVUxUX1NVUFB9IgorCQkgIDs7CisgICAgICAgICAgICAgKikgCiAJCSAgQUNfTVNHX1JF
U1VMVChbdW5zdXBwb3J0ZWQgKCR7a2VybmVsfSldKQotCQkgIEFDX01TR19FUlJPUihbVmFsZ3Jp
bmQgd29ya3Mgb24gRGFyd2luIDkueCBhbmQgMTAueCAoTWFjIE9TIFggMTAuNSBhbmQgMTAuNild
KQorCQkgIEFDX01TR19FUlJPUihbVmFsZ3JpbmQgd29ya3Mgb24gRGFyd2luIDkueCwgMTAueCwg
MTEueCAoTWFjIE9TIFggMTAuNS82LzcpXSkKIAkJICA7OwogCWVzYWMKICAgICAgICAgOzsKSW5k
ZXg6IE1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIE1ha2VmaWxlLmFtCShyZXZpc2lvbiAxMjAw
MykKKysrIE1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBACiAJZXhw
LXNnY2hlY2suc3VwcCBcCiAJZGFyd2luOS5zdXBwIGRhcndpbjktZHJkLnN1cHAgXAogCWRhcndp
bjEwLnN1cHAgZGFyd2luMTAtZHJkLnN1cHAgXAorCWRhcndpbjExLnN1cHAgXAogCWJpb25pYy5z
dXBwCiBERUZBVUxUX1NVUFBfRklMRVMgPSBAREVGQVVMVF9TVVBQQAogCkluZGV4OiBjb3JlZ3Jp
bmQvbV9yZXBsYWNlbWFsbG9jL3ZnX3JlcGxhY2VfbWFsbG9jLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29y
ZWdyaW5kL21fcmVwbGFjZW1hbGxvYy92Z19yZXBsYWNlX21hbGxvYy5jCShyZXZpc2lvbiAxMjAw
MykKKysrIGNvcmVncmluZC9tX3JlcGxhY2VtYWxsb2MvdmdfcmVwbGFjZV9tYWxsb2MuYwkod29y
a2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLQorI2lmIDEKIC8qLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogLyot
LS0gUmVwbGFjZW1lbnRzIGZvciBtYWxsb2MoKSBldCBhbCwgd2hpY2ggcnVuIG9uIHRoZSBzaW11
bGF0ZWQgIC0tLSovCiAvKi0tLSBDUFUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZnX3JlcGxhY2VfbWFsbG9jLmMgLS0tKi8KQEAgLTI1NywzMiArMjU3LDM1IEBACiAvLyAg
ICAgKGZyb21fc28sIGZyb21fZm4sICB2J3MgcmVwbGFjZW1lbnQpCiAKIC8vIG1hbGxvYwotQUxM
T0Nfb3JfTlVMTChWR19aX0xJQlNURENYWF9TT05BTUUsIG1hbGxvYywgICAgICBtYWxsb2MpOwot
QUxMT0Nfb3JfTlVMTChWR19aX0xJQkNfU09OQU1FLCAgICAgIG1hbGxvYywgICAgICBtYWxsb2Mp
OworLy9BTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgbWFsbG9jLCAgICAgIG1h
bGxvYyk7CisvL0FMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBtYWxsb2MsICAg
ICAgbWFsbG9jKTsKICNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi1aT05FQUxMT0Nfb3JfTlVMTChW
R19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV9tYWxsb2MsIG1hbGxvYyk7CisvL1pPTkVBTExP
Q19vcl9OVUxMKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY196b25lX21hbGxvYywgbWFsbG9jKTsK
KworQUxMT0Nfb3JfTlVMTChsaWJzeXN0ZW1adWNaZGR5bGliLCBtYWxsb2MsIG1hbGxvYykKK1pP
TkVBTExPQ19vcl9OVUxMKGxpYnN5c3RlbVp1Y1pkZHlsaWIsIG1hbGxvY196b25lX21hbGxvYywg
bWFsbG9jKTsKICNlbmRpZgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBuZXcgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSovCiAKIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBpbnQpLCBub3Qg
bWFuZ2xlZCAoZm9yIGdjYyAyLjk2KQotQUxMT0Nfb3JfQk9NQihWR19aX0xJQlNURENYWF9TT05B
TUUsICBidWlsdGluX25ldywgICAgX19idWlsdGluX25ldyk7Ci1BTExPQ19vcl9CT01CKFZHX1pf
TElCQ19TT05BTUUsICAgICAgIGJ1aWx0aW5fbmV3LCAgICBfX2J1aWx0aW5fbmV3KTsKKy8vQUxM
T0Nfb3JfQk9NQihWR19aX0xJQlNURENYWF9TT05BTUUsICBidWlsdGluX25ldywgICAgX19idWls
dGluX25ldyk7CisvL0FMTE9DX29yX0JPTUIoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgYnVpbHRp
bl9uZXcsICAgIF9fYnVpbHRpbl9uZXcpOwogCi1BTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hY
X1NPTkFNRSwgIF9fYnVpbHRpbl9uZXcsICBfX2J1aWx0aW5fbmV3KTsKLUFMTE9DX29yX0JPTUIo
VkdfWl9MSUJDX1NPTkFNRSwgICAgICAgX19idWlsdGluX25ldywgIF9fYnVpbHRpbl9uZXcpOwor
Ly9BTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIF9fYnVpbHRpbl9uZXcsICBf
X2J1aWx0aW5fbmV3KTsKKy8vQUxMT0Nfb3JfQk9NQihWR19aX0xJQkNfU09OQU1FLCAgICAgICBf
X2J1aWx0aW5fbmV3LCAgX19idWlsdGluX25ldyk7CiAKIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25l
ZCBpbnQpLCBHTlUgbWFuZ2xpbmcKICNpZiBWR19XT1JEU0laRSA9PSA0Ci0gQUxMT0Nfb3JfQk9N
QihWR19aX0xJQlNURENYWF9TT05BTUUsIF9abndqLCAgICAgICAgICBfX2J1aWx0aW5fbmV3KTsK
LSBBTExPQ19vcl9CT01CKFZHX1pfTElCQ19TT05BTUUsICAgICAgX1pud2osICAgICAgICAgIF9f
YnVpbHRpbl9uZXcpOworLy8gQUxMT0Nfb3JfQk9NQihWR19aX0xJQlNURENYWF9TT05BTUUsIF9a
bndqLCAgICAgICAgICBfX2J1aWx0aW5fbmV3KTsKKy8vIEFMTE9DX29yX0JPTUIoVkdfWl9MSUJD
X1NPTkFNRSwgICAgICBfWm53aiwgICAgICAgICAgX19idWlsdGluX25ldyk7CiAjZW5kaWYKIAog
Ly8gb3BlcmF0b3IgbmV3KHVuc2lnbmVkIGxvbmcpLCBHTlUgbWFuZ2xpbmcKICNpZiBWR19XT1JE
U0laRSA9PSA4IHx8IGRlZmluZWQoVkdPX2RhcndpbikKLSBBTExPQ19vcl9CT01CKFZHX1pfTElC
U1REQ1hYX1NPTkFNRSwgX1pud20sICAgICAgICAgIF9fYnVpbHRpbl9uZXcpOwotIEFMTE9DX29y
X0JPTUIoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWm53bSwgICAgICAgICAgX19idWlsdGluX25l
dyk7CisvLyBBTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pud20sICAgICAg
ICAgIF9fYnVpbHRpbl9uZXcpOworLy8gQUxMT0Nfb3JfQk9NQihWR19aX0xJQkNfU09OQU1FLCAg
ICAgIF9abndtLCAgICAgICAgICBfX2J1aWx0aW5fbmV3KTsKICNlbmRpZgogCiAKQEAgLTI5MCwz
MyArMjkzLDMzIEBACiAKIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCwgc3RkOjpub3Rocm93X3Qg
Y29uc3QmKSwgR05VIG1hbmdsaW5nCiAjaWYgVkdfV09SRFNJWkUgPT0gNAotIEFMTE9DX29yX05V
TEwoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm53alJLU3Q5bm90aHJvd190LCAgX19idWlsdGlu
X25ldyk7Ci0gQUxMT0Nfb3JfTlVMTChWR19aX0xJQkNfU09OQU1FLCAgICAgIF9abndqUktTdDlu
b3Rocm93X3QsICBfX2J1aWx0aW5fbmV3KTsKKy8vIEFMTE9DX29yX05VTEwoVkdfWl9MSUJTVERD
WFhfU09OQU1FLCBfWm53alJLU3Q5bm90aHJvd190LCAgX19idWlsdGluX25ldyk7CisvLyBBTExP
Q19vcl9OVUxMKFZHX1pfTElCQ19TT05BTUUsICAgICAgX1pud2pSS1N0OW5vdGhyb3dfdCwgIF9f
YnVpbHRpbl9uZXcpOwogI2VuZGlmCiAKIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBsb25nLCBz
dGQ6Om5vdGhyb3dfdCBjb25zdCYpLCBHTlUgbWFuZ2xpbmcKICNpZiBWR19XT1JEU0laRSA9PSA4
IHx8IGRlZmluZWQoVkdPX2RhcndpbikKLSBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NP
TkFNRSwgX1pud21SS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOwotIEFMTE9DX29yX05V
TEwoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWm53bVJLU3Q5bm90aHJvd190LCAgX19idWlsdGlu
X25ldyk7CisvLyBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pud21SS1N0
OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOworLy8gQUxMT0Nfb3JfTlVMTChWR19aX0xJQkNf
U09OQU1FLCAgICAgIF9abndtUktTdDlub3Rocm93X3QsICBfX2J1aWx0aW5fbmV3KTsKICNlbmRp
ZgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBuZXcgW10gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSovCiAKIC8vIG9wZXJhdG9yIG5ld1tdKHVuc2lnbmVkIGludCksIG5vdCBtYW5nbGVkIChm
b3IgZ2NjIDIuOTYpCi1BTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIF9fYnVp
bHRpbl92ZWNfbmV3LCBfX2J1aWx0aW5fdmVjX25ldyApOwotQUxMT0Nfb3JfQk9NQihWR19aX0xJ
QkNfU09OQU1FLCAgICAgICBfX2J1aWx0aW5fdmVjX25ldywgX19idWlsdGluX3ZlY19uZXcgKTsK
Ky8vQUxMT0Nfb3JfQk9NQihWR19aX0xJQlNURENYWF9TT05BTUUsICBfX2J1aWx0aW5fdmVjX25l
dywgX19idWlsdGluX3ZlY19uZXcgKTsKKy8vQUxMT0Nfb3JfQk9NQihWR19aX0xJQkNfU09OQU1F
LCAgICAgICBfX2J1aWx0aW5fdmVjX25ldywgX19idWlsdGluX3ZlY19uZXcgKTsKIAogLy8gb3Bl
cmF0b3IgbmV3W10odW5zaWduZWQgaW50KSwgR05VIG1hbmdsaW5nCiAjaWYgVkdfV09SRFNJWkUg
PT0gNAotIEFMTE9DX29yX0JPTUIoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm5haiwgICAgICAg
ICAgICAgX19idWlsdGluX3ZlY19uZXcgKTsKLSBBTExPQ19vcl9CT01CKFZHX1pfTElCQ19TT05B
TUUsICAgICAgX1puYWosICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfbmV3ICk7CisvLyBBTExP
Q19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1puYWosICAgICAgICAgICAgIF9fYnVp
bHRpbl92ZWNfbmV3ICk7CisvLyBBTExPQ19vcl9CT01CKFZHX1pfTElCQ19TT05BTUUsICAgICAg
X1puYWosICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfbmV3ICk7CiAjZW5kaWYKIAogLy8gb3Bl
cmF0b3IgbmV3W10odW5zaWduZWQgbG9uZyksIEdOVSBtYW5nbGluZwogI2lmIFZHX1dPUkRTSVpF
ID09IDggfHwgZGVmaW5lZChWR09fZGFyd2luKQotIEFMTE9DX29yX0JPTUIoVkdfWl9MSUJTVERD
WFhfU09OQU1FLCBfWm5hbSwgICAgICAgICAgICAgX19idWlsdGluX3ZlY19uZXcgKTsKLSBBTExP
Q19vcl9CT01CKFZHX1pfTElCQ19TT05BTUUsICAgICAgX1puYW0sICAgICAgICAgICAgIF9fYnVp
bHRpbl92ZWNfbmV3ICk7CisvLyBBTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwg
X1puYW0sICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfbmV3ICk7CisvLyBBTExPQ19vcl9CT01C
KFZHX1pfTElCQ19TT05BTUUsICAgICAgX1puYW0sICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNf
bmV3ICk7CiAjZW5kaWYKIAogCkBAIC0zMjQsMTQgKzMyNywxNCBAQAogCiAvLyBvcGVyYXRvciBu
ZXdbXSh1bnNpZ25lZCwgc3RkOjpub3Rocm93X3QgY29uc3QmKSwgR05VIG1hbmdsaW5nCiAjaWYg
VkdfV09SRFNJWkUgPT0gNAotIEFMTE9DX29yX05VTEwoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBf
Wm5halJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX25ldyApOwotIEFMTE9DX29yX05VTEwo
VkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWm5halJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVj
X25ldyApOworLy8gQUxMT0Nfb3JfTlVMTChWR19aX0xJQlNURENYWF9TT05BTUUsIF9abmFqUktT
dDlub3Rocm93X3QsIF9fYnVpbHRpbl92ZWNfbmV3ICk7CisvLyBBTExPQ19vcl9OVUxMKFZHX1pf
TElCQ19TT05BTUUsICAgICAgX1puYWpSS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19uZXcg
KTsKICNlbmRpZgogCiAvLyBvcGVyYXRvciBuZXdbXSh1bnNpZ25lZCBsb25nLCBzdGQ6Om5vdGhy
b3dfdCBjb25zdCYpLCBHTlUgbWFuZ2xpbmcKICNpZiBWR19XT1JEU0laRSA9PSA4IHx8IGRlZmlu
ZWQoVkdPX2RhcndpbikKLSBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pu
YW1SS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19uZXcgKTsKLSBBTExPQ19vcl9OVUxMKFZH
X1pfTElCQ19TT05BTUUsICAgICAgX1puYW1SS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19u
ZXcgKTsKKy8vIEFMTE9DX29yX05VTEwoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm5hbVJLU3Q5
bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX25ldyApOworLy8gQUxMT0Nfb3JfTlVMTChWR19aX0xJ
QkNfU09OQU1FLCAgICAgIF9abmFtUktTdDlub3Rocm93X3QsIF9fYnVpbHRpbl92ZWNfbmV3ICk7
CiAjZW5kaWYKIAogCkBAIC0zNDYsNyArMzQ5LDcgQEAKICAgIHZvaWQgVkdfUkVQTEFDRV9GVU5D
VElPTl9FWlUoMTAwNDAsc29uYW1lLGZubmFtZSkgKHZvaWQgKnpvbmUsIHZvaWQgKnApICBcCiAg
ICB7IFwKICAgICAgIGlmICghaW5pdF9kb25lKSBpbml0KCk7IFwKLSAgICAgIE1BTExPQ19UUkFD
RSgjdmdfcmVwbGFjZW1lbnQgIiglcCwgJXApXG4iLCB6b25lLCBwICk7IFwKKyAgICAgIE1BTExP
Q19UUkFDRSgjZm5uYW1lICIoJXAsICVwKVxuIiwgem9uZSwgcCApOyBcCiAgICAgICBpZiAocCA9
PSBOVUxMKSAgXAogICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAodm9pZClWQUxHUklORF9OT05f
U0lNRF9DQUxMMSggaW5mby50bF8jI3ZnX3JlcGxhY2VtZW50LCBwICk7IFwKQEAgLTM1OCw1OSAr
MzYxLDYyIEBACiAgICB2b2lkIFZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMDUwLHNvbmFtZSxm
bm5hbWUpICh2b2lkICpwKSAgXAogICAgeyBcCiAgICAgICBpZiAoIWluaXRfZG9uZSkgaW5pdCgp
OyBcCi0gICAgICBNQUxMT0NfVFJBQ0UoI3ZnX3JlcGxhY2VtZW50ICIoJXApXG4iLCBwICk7IFwK
KyAgICAgIE1BTExPQ19UUkFDRSgjZm5uYW1lICIoJXApXG4iLCBwICk7IFwKICAgICAgIGlmIChw
ID09IE5VTEwpICBcCiAgICAgICAgICByZXR1cm47IFwKICAgICAgICh2b2lkKVZBTEdSSU5EX05P
Tl9TSU1EX0NBTEwxKCBpbmZvLnRsXyMjdmdfcmVwbGFjZW1lbnQsIHAgKTsgXAogICAgfQogCiAv
LyBmcmVlCi1GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIGZyZWUsICAgICAgICAgICAgICAg
ICBmcmVlICk7Ci1GUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAgIGZyZWUsICAgICAgICAgICAg
ICAgICBmcmVlICk7CisvL0ZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgZnJlZSwgICAgICAg
ICAgICAgICAgIGZyZWUgKTsKKy8vRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICBmcmVlLCAg
ICAgICAgICAgICAgICAgZnJlZSApOwogI2lmIGRlZmluZWQoVkdPX2RhcndpbikKLVpPTkVGUkVF
KFZHX1pfTElCQ19TT05BTUUsICAgbWFsbG9jX3pvbmVfZnJlZSwgICAgIGZyZWUgKTsKKy8vWk9O
RUZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICBtYWxsb2Nfem9uZV9mcmVlLCAgICAgZnJlZSApOwor
CitGUkVFKGxpYnN5c3RlbVp1Y1pkZHlsaWIsIGZyZWUsIGZyZWUpCitaT05FRlJFRShsaWJzeXN0
ZW1adWNaZGR5bGliLCAgIG1hbGxvY196b25lX2ZyZWUsICAgICBmcmVlICk7CiAjZW5kaWYKIAog
CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2ZyZWUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
CiAKIC8vIGNmcmVlCi1GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIGNmcmVlLCAgICAgICAg
ICAgICAgICBmcmVlICk7Ci1GUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAgIGNmcmVlLCAgICAg
ICAgICAgICAgICBmcmVlICk7CisvL0ZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgY2ZyZWUs
ICAgICAgICAgICAgICAgIGZyZWUgKTsKKy8vRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICBj
ZnJlZSwgICAgICAgICAgICAgICAgZnJlZSApOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBkZWxldGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAvLyBvcGVyYXRvciBkZWxldGUodm9p
ZCopLCBub3QgbWFuZ2xlZCAoZm9yIGdjYyAyLjk2KQotRlJFRShWR19aX0xJQlNURENYWF9TT05B
TUUsICAgX19idWlsdGluX2RlbGV0ZSwgICAgIF9fYnVpbHRpbl9kZWxldGUgKTsKLUZSRUUoVkdf
Wl9MSUJDX1NPTkFNRSwgICAgICAgIF9fYnVpbHRpbl9kZWxldGUsICAgICBfX2J1aWx0aW5fZGVs
ZXRlICk7CisvL0ZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgIF9fYnVpbHRpbl9kZWxldGUs
ICAgICBfX2J1aWx0aW5fZGVsZXRlICk7CisvL0ZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAg
IF9fYnVpbHRpbl9kZWxldGUsICAgICBfX2J1aWx0aW5fZGVsZXRlICk7CiAKIC8vIG9wZXJhdG9y
IGRlbGV0ZSh2b2lkKiksIEdOVSBtYW5nbGluZwotRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUs
ICBfWmRsUHYsICAgICAgICAgICAgICAgX19idWlsdGluX2RlbGV0ZSApOwotRlJFRShWR19aX0xJ
QkNfU09OQU1FLCAgICAgICBfWmRsUHYsICAgICAgICAgICAgICAgX19idWlsdGluX2RlbGV0ZSAp
OworLy9GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIF9aZGxQdiwgICAgICAgICAgICAgICBf
X2J1aWx0aW5fZGVsZXRlICk7CisvL0ZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgX1pkbFB2
LCAgICAgICAgICAgICAgIF9fYnVpbHRpbl9kZWxldGUgKTsKIAogCiAvKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gZGVsZXRlIG5vdGhyb3cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKIC8vIG9w
ZXJhdG9yIGRlbGV0ZSh2b2lkKiwgc3RkOjpub3Rocm93X3QgY29uc3QmKSwgR05VIG1hbmdsaW5n
Ci1GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pkbFB2UktTdDlub3Rocm93X3QsICBfX2J1
aWx0aW5fZGVsZXRlICk7Ci1GUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAgX1pkbFB2UktTdDlu
b3Rocm93X3QsICBfX2J1aWx0aW5fZGVsZXRlICk7CisvL0ZSRUUoVkdfWl9MSUJTVERDWFhfU09O
QU1FLCBfWmRsUHZSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9kZWxldGUgKTsKKy8vRlJFRShW
R19aX0xJQkNfU09OQU1FLCAgICAgIF9aZGxQdlJLU3Q5bm90aHJvd190LCAgX19idWlsdGluX2Rl
bGV0ZSApOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBkZWxldGUgW10gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSovCiAvLyBvcGVyYXRvciBkZWxldGVbXSh2b2lkKiksIG5vdCBtYW5nbGVk
IChmb3IgZ2NjIDIuOTYpCi1GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgICBfX2J1aWx0aW5f
dmVjX2RlbGV0ZSwgX19idWlsdGluX3ZlY19kZWxldGUgKTsKLUZSRUUoVkdfWl9MSUJDX1NPTkFN
RSwgICAgICAgIF9fYnVpbHRpbl92ZWNfZGVsZXRlLCBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOwor
Ly9GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgICBfX2J1aWx0aW5fdmVjX2RlbGV0ZSwgX19i
dWlsdGluX3ZlY19kZWxldGUgKTsKKy8vRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICAgX19i
dWlsdGluX3ZlY19kZWxldGUsIF9fYnVpbHRpbl92ZWNfZGVsZXRlICk7CiAKIC8vIG9wZXJhdG9y
IGRlbGV0ZVtdKHZvaWQqKSwgR05VIG1hbmdsaW5nCi1GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFN
RSwgIF9aZGFQdiwgICAgICAgICAgICAgICBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOwotRlJFRShW
R19aX0xJQkNfU09OQU1FLCAgICAgICBfWmRhUHYsICAgICAgICAgICAgICAgX19idWlsdGluX3Zl
Y19kZWxldGUgKTsKKy8vRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBfWmRhUHYsICAgICAg
ICAgICAgICAgX19idWlsdGluX3ZlY19kZWxldGUgKTsKKy8vRlJFRShWR19aX0xJQkNfU09OQU1F
LCAgICAgICBfWmRhUHYsICAgICAgICAgICAgICAgX19idWlsdGluX3ZlY19kZWxldGUgKTsKIAog
CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZGVsZXRlIFtdIG5vdGhyb3cgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCiAKIC8vIG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQqLCBzdGQ6Om5vdGhyb3df
dCBjb25zdCYpLCBHTlUgbWFuZ2xpbmcKLUZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgX1pk
YVB2UktTdDlub3Rocm93X3QsIF9fYnVpbHRpbl92ZWNfZGVsZXRlICk7Ci1GUkVFKFZHX1pfTElC
Q19TT05BTUUsICAgICAgIF9aZGFQdlJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX2RlbGV0
ZSApOworLy9GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIF9aZGFQdlJLU3Q5bm90aHJvd190
LCBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOworLy9GUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAg
IF9aZGFQdlJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOwogCiAKIC8qLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBjYWxsb2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCkBAIC00
MjUsNyArNDMxLDcgQEAKICAgICAgIHZvaWQqIHY7IFwKICAgICAgIFwKICAgICAgIGlmICghaW5p
dF9kb25lKSBpbml0KCk7IFwKLSAgICAgIE1BTExPQ19UUkFDRSgiY2FsbG9jKCVwLCAlbGx1LCVs
bHUpIiwgem9uZSwgKFVMb25nKW5tZW1iLCAoVUxvbmcpc2l6ZSApOyBcCisgICAgICBNQUxMT0Nf
VFJBQ0UoInpvbmVfY2FsbG9jKCVwLCAlbGx1LCVsbHUpIiwgem9uZSwgKFVMb25nKW5tZW1iLCAo
VUxvbmcpc2l6ZSApOyBcCiAgICAgICBcCiAgICAgICB2ID0gKHZvaWQqKVZBTEdSSU5EX05PTl9T
SU1EX0NBTEwyKCBpbmZvLnRsX2NhbGxvYywgbm1lbWIsIHNpemUgKTsgXAogICAgICAgTUFMTE9D
X1RSQUNFKCIgPSAlcFxuIiwgdiApOyBcCkBAIC00NTksOSArNDY1LDEyIEBACiAgICAgICByZXR1
cm4gdjsgXAogICAgfQogCi1DQUxMT0MoVkdfWl9MSUJDX1NPTkFNRSwgY2FsbG9jKTsKKy8vQ0FM
TE9DKFZHX1pfTElCQ19TT05BTUUsIGNhbGxvYyk7CiAjaWYgZGVmaW5lZChWR09fZGFyd2luKQot
Wk9ORUNBTExPQyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV9jYWxsb2MpOworLy9aT05F
Q0FMTE9DKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY196b25lX2NhbGxvYyk7CisKK0NBTExPQyhs
aWJzeXN0ZW1adWNaZGR5bGliLCBjYWxsb2MpCitaT05FQ0FMTE9DKGxpYnN5c3RlbVp1Y1pkZHls
aWIsIG1hbGxvY196b25lX2NhbGxvYyk7CiAjZW5kaWYKIAogCkBAIC00NzcsMTUgKzQ4NiwxNSBA
QAogICAgICAgdm9pZCogdjsgXAogICAgICAgXAogICAgICAgaWYgKCFpbml0X2RvbmUpIGluaXQo
KTsgXAotICAgICAgTUFMTE9DX1RSQUNFKCJyZWFsbG9jKCVwLCVwLCVsbHUpIiwgem9uZSwgcHRy
ViwgKFVMb25nKW5ld19zaXplICk7IFwKKyAgICAgIE1BTExPQ19UUkFDRSgiem9uZV9yZWFsbG9j
KCVwLCVwLCVsbHUpIiwgem9uZSwgcHRyViwgKFVMb25nKW5ld19zaXplICk7IFwKICAgICAgIFwK
ICAgICAgIGlmIChwdHJWID09IE5VTEwpIFwKICAgICAgICAgIC8qIFdlIG5lZWQgdG8gY2FsbCBh
IG1hbGxvYy1saWtlIGZ1bmN0aW9uOyBzbyBsZXQncyB1c2UgXAogICAgICAgICAgICAgb25lIHdo
aWNoIHdlIGtub3cgZXhpc3RzLiBHclAgZml4bWUgdXNlIHpvbmVtYWxsb2MgaW5zdGVhZD8gKi8g
XAotICAgICAgICAgcmV0dXJuIFZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMDEwLFZHX1pfTElC
Q19TT05BTUUsbWFsbG9jKSBcCisgICAgICAgICByZXR1cm4gVkdfUkVQTEFDRV9GVU5DVElPTl9F
WlUoMTAwMTAsbGlic3lzdGVtWnVjWmRkeWxpYixtYWxsb2MpIFwKICAgICAgICAgICAgICAgICAg
ICAobmV3X3NpemUpOyBcCiAgICAgICBpZiAobmV3X3NpemUgPD0gMCkgeyBcCi0gICAgICAgICBW
R19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDA1MCxWR19aX0xJQkNfU09OQU1FLGZyZWUpKHB0clYp
OyBcCisgICAgICAgICBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDA1MCxsaWJzeXN0ZW1adWNa
ZGR5bGliLGZyZWUpKHB0clYpOyBcCiAgICAgICAgICBNQUxMT0NfVFJBQ0UoIiA9IDBcbiIpOyBc
CiAgICAgICAgICByZXR1cm4gTlVMTDsgXAogICAgICAgfSBcCkBAIC01MDksMTAgKzUxOCwxMCBA
QAogICAgICAgaWYgKHB0clYgPT0gTlVMTCkgXAogICAgICAgICAgLyogV2UgbmVlZCB0byBjYWxs
IGEgbWFsbG9jLWxpa2UgZnVuY3Rpb247IHNvIGxldCdzIHVzZSBcCiAgICAgICAgICAgICBvbmUg
d2hpY2ggd2Uga25vdyBleGlzdHMuICovIFwKLSAgICAgICAgIHJldHVybiBWR19SRVBMQUNFX0ZV
TkNUSU9OX0VaVSgxMDAxMCxWR19aX0xJQkNfU09OQU1FLG1hbGxvYykgXAorICAgICAgICAgcmV0
dXJuIFZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMDEwLGxpYnN5c3RlbVp1Y1pkZHlsaWIsbWFs
bG9jKSBcCiAgICAgICAgICAgICAgICAgICAgKG5ld19zaXplKTsgXAogICAgICAgaWYgKG5ld19z
aXplIDw9IDApIHsgXAotICAgICAgICAgVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAwNTAsVkdf
Wl9MSUJDX1NPTkFNRSxmcmVlKShwdHJWKTsgXAorICAgICAgICAgVkdfUkVQTEFDRV9GVU5DVElP
Tl9FWlUoMTAwNTAsbGlic3lzdGVtWnVjWmRkeWxpYixmcmVlKShwdHJWKTsgXAogICAgICAgICAg
TUFMTE9DX1RSQUNFKCIgPSAwXG4iKTsgXAogICAgICAgICAgcmV0dXJuIE5VTEw7IFwKICAgICAg
IH0gXApAQCAtNTIxLDkgKzUzMCwxMiBAQAogICAgICAgcmV0dXJuIHY7IFwKICAgIH0KIAotUkVB
TExPQyhWR19aX0xJQkNfU09OQU1FLCByZWFsbG9jKTsKKy8vUkVBTExPQyhWR19aX0xJQkNfU09O
QU1FLCByZWFsbG9jKTsKICNpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi1aT05FUkVBTExPQyhWR19a
X0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV9yZWFsbG9jKTsKKy8vWk9ORVJFQUxMT0MoVkdfWl9M
SUJDX1NPTkFNRSwgbWFsbG9jX3pvbmVfcmVhbGxvYyk7CisKK1JFQUxMT0MobGlic3lzdGVtWnVj
WmRkeWxpYiwgcmVhbGxvYykKK1pPTkVSRUFMTE9DKGxpYnN5c3RlbVp1Y1pkZHlsaWIsIG1hbGxv
Y196b25lX3JlYWxsb2MpOwogI2VuZGlmCiAKIApAQCAtNTM5LDcgKzU1MSw3IEBACiAgICAgICB2
b2lkKiB2OyBcCiAgICAgICBcCiAgICAgICBpZiAoIWluaXRfZG9uZSkgaW5pdCgpOyBcCi0gICAg
ICBNQUxMT0NfVFJBQ0UoIm1lbWFsaWduKCVwLCBhbCAlbGx1LCBzaXplICVsbHUpIiwgXAorICAg
ICAgTUFMTE9DX1RSQUNFKCJ6b25lX21lbWFsaWduKCVwLCBhbCAlbGx1LCBzaXplICVsbHUpIiwg
XAogICAgICAgICAgICAgICAgICAgIHpvbmUsIChVTG9uZylhbGlnbm1lbnQsIChVTG9uZyluICk7
ICBcCiAgICAgICBcCiAgICAgICAvKiBSb3VuZCB1cCB0byBtaW5pbXVtIGFsaWdubWVudCBpZiBu
ZWNlc3NhcnkuICovIFwKQEAgLTU3OSw5ICs1OTEsMTAgQEAKICAgICAgIHJldHVybiB2OyBcCiAg
ICB9CiAKLU1FTUFMSUdOKFZHX1pfTElCQ19TT05BTUUsIG1lbWFsaWduKTsKKy8vTUVNQUxJR04o
VkdfWl9MSUJDX1NPTkFNRSwgbWVtYWxpZ24pOwogI2lmIGRlZmluZWQoVkdPX2RhcndpbikKLVpP
TkVNRU1BTElHTihWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV9tZW1hbGlnbik7CitaT05F
TUVNQUxJR04obGlic3lzdGVtWnVjWmRkeWxpYiwgbWFsbG9jX3pvbmVfbWVtYWxpZ24pOworTUVN
QUxJR04obGlic3lzdGVtWnVjWmRkeWxpYiwgbWVtYWxpZ24pCiAjZW5kaWYKIAogCkBAIC02MDks
MTMgKzYyMiwxNCBAQAogICAgICAgc3RhdGljIGludCBwc3pCID0gMDsgXAogICAgICAgaWYgKHBz
ekIgPT0gMCkgXAogICAgICAgICAgcHN6QiA9IG15X2dldHBhZ2VzaXplKCk7IFwKLSAgICAgIHJl
dHVybiBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDExMCxWR19aX0xJQkNfU09OQU1FLG1lbWFs
aWduKSBcCisgICAgICByZXR1cm4gVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAxMTAsbGlic3lz
dGVtWnVjWmRkeWxpYixtZW1hbGlnbikgXAogICAgICAgICAgICAgICAgICgoU2l6ZVQpcHN6Qiwg
c2l6ZSk7IFwKICAgIH0KIAotVkFMTE9DKFZHX1pfTElCQ19TT05BTUUsIHZhbGxvYyk7CisvL1ZB
TExPQyhWR19aX0xJQkNfU09OQU1FLCB2YWxsb2MpOwogI2lmIGRlZmluZWQoVkdPX2RhcndpbikK
LVpPTkVWQUxMT0MoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX3pvbmVfdmFsbG9jKTsKKy8vWk9O
RVZBTExPQyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV92YWxsb2MpOworWk9ORVZBTExP
QyhsaWJzeXN0ZW1adWNaZGR5bGliLCBtYWxsb2Nfem9uZV92YWxsb2MpOwogI2VuZGlmCiAKIApA
QCAtNjMzLDcgKzY0Nyw3IEBACiAgICAgICByZXR1cm4gMTsgXAogICAgfQogCi1NQUxMT1BUKFZH
X1pfTElCQ19TT05BTUUsIG1hbGxvcHQpOworLy9NQUxMT1BUKFZHX1pfTElCQ19TT05BTUUsIG1h
bGxvcHQpOwogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBtYWxsb2NfdHJpbSAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKi8KQEAgLTY2OSw3ICs2ODMsNyBAQAogICAgICAgcmV0dXJuIDA7IFwK
ICAgIH0KIAotTUFMTE9DX1RSSU0oVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX3RyaW0pOworLy9N
QUxMT0NfVFJJTShWR19aX0xJQkNfU09OQU1FLCBtYWxsb2NfdHJpbSk7CiAKIAogLyotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIHBvc2l4X21lbWFsaWduIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwpA
QCAtNzAwLDcgKzcxNCw3IEBACiAgICAgICByZXR1cm4gVktJX0VOT01FTTsgXAogICAgfQogCi1Q
T1NJWF9NRU1BTElHTihWR19aX0xJQkNfU09OQU1FLCBwb3NpeF9tZW1hbGlnbik7CisvL1BPU0lY
X01FTUFMSUdOKFZHX1pfTElCQ19TT05BTUUsIHBvc2l4X21lbWFsaWduKTsKIAogCiAvKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gbWFsbG9jX3VzYWJsZV9zaXplIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLwpAQCAtNzIzLDggKzczNyw4IEBACiAgICAgICByZXR1cm4gcHN6QjsgXAogICAgfQogCi1N
QUxMT0NfVVNBQkxFX1NJWkUoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX3VzYWJsZV9zaXplKTsK
LU1BTExPQ19VU0FCTEVfU0laRShWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfc2l6ZSk7CisvL01B
TExPQ19VU0FCTEVfU0laRShWR19aX0xJQkNfU09OQU1FLCBtYWxsb2NfdXNhYmxlX3NpemUpOwor
TUFMTE9DX1VTQUJMRV9TSVpFKGxpYnN5c3RlbVp1Y1pkZHlsaWIsIG1hbGxvY19zaXplKTsKIAog
CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKHVuaW1wbGVtZW50ZWQpIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLwpAQCAtNzQ2LDkgKzc2MCw5IEBACiAgICAgICBwYW5pYygjZm5uYW1lKTsgXAog
ICAgfQogCi1QQU5JQyhWR19aX0xJQkNfU09OQU1FLCBwdmFsbG9jKTsKLVBBTklDKFZHX1pfTElC
Q19TT05BTUUsIG1hbGxvY19nZXRfc3RhdGUpOwotUEFOSUMoVkdfWl9MSUJDX1NPTkFNRSwgbWFs
bG9jX3NldF9zdGF0ZSk7CisvL1BBTklDKFZHX1pfTElCQ19TT05BTUUsIHB2YWxsb2MpOworLy9Q
QU5JQyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2NfZ2V0X3N0YXRlKTsKKy8vUEFOSUMoVkdfWl9M
SUJDX1NPTkFNRSwgbWFsbG9jX3NldF9zdGF0ZSk7CiAKICNkZWZpbmUgTUFMTE9DX1NUQVRTKHNv
bmFtZSwgZm5uYW1lKSBcCiAgICBcCkBAIC03NTgsNyArNzcyLDcgQEAKICAgICAgIC8qIFZhbGdy
aW5kJ3MgbWFsbG9jX3N0YXRzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90aGluZy4gKi8gXAogICAg
fSAKIAotTUFMTE9DX1NUQVRTKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY19zdGF0cyk7CisvL01B
TExPQ19TVEFUUyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfc3RhdHMpOwogCiAKIC8qLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBtYWxsaW5mbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTc3
OCwyMCArNzkyLDIwIEBACiAgICAgICByZXR1cm4gbWk7IFwKICAgIH0KIAotTUFMTElORk8oVkdf
Wl9MSUJDX1NPTkFNRSwgbWFsbGluZm8pOworLy9NQUxMSU5GTyhWR19aX0xJQkNfU09OQU1FLCBt
YWxsaW5mbyk7CiAKIAogI2lmIGRlZmluZWQoVkdPX2RhcndpbikKIAogc3RhdGljIHZraV9tYWxs
b2Nfem9uZV90IHZnX2RlZmF1bHRfem9uZSA9IHsKLSAgICBOVUxMLCAvLyByZXNlcnZlZAotICAg
IE5VTEwsIC8vIHJlc2VydmVkCisgICAgTlVMTCwgLy8gcmVzZXJ2ZWQxCisgICAgTlVMTCwgLy8g
cmVzZXJ2ZWQyCiAgICAgTlVMTCwgLy8gR3JQIGZpeG1lIG1hbGxvY19zaXplCi0gICAgKHZvaWQq
KVZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMDIwLFZHX1pfTElCQ19TT05BTUUsbWFsbG9jX3pv
bmVfbWFsbG9jKSwgCi0gICAgKHZvaWQqKVZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMDYwLFZH
X1pfTElCQ19TT05BTUUsbWFsbG9jX3pvbmVfY2FsbG9jKSwgCi0gICAgKHZvaWQqKVZHX1JFUExB
Q0VfRlVOQ1RJT05fRVpVKDEwMTMwLFZHX1pfTElCQ19TT05BTUUsbWFsbG9jX3pvbmVfdmFsbG9j
KSwgCi0gICAgKHZvaWQqKVZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMDQwLFZHX1pfTElCQ19T
T05BTUUsbWFsbG9jX3pvbmVfZnJlZSksIAotICAgICh2b2lkKilWR19SRVBMQUNFX0ZVTkNUSU9O
X0VaVSgxMDA4MCxWR19aX0xJQkNfU09OQU1FLG1hbGxvY196b25lX3JlYWxsb2MpLCAKKyAgICAo
dm9pZCopVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAwMjAsbGlic3lzdGVtWnVjWmRkeWxpYixt
YWxsb2Nfem9uZV9tYWxsb2MpLCAKKyAgICAodm9pZCopVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUo
MTAwNjAsbGlic3lzdGVtWnVjWmRkeWxpYixtYWxsb2Nfem9uZV9jYWxsb2MpLCAKKyAgICAodm9p
ZCopVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAxMzAsbGlic3lzdGVtWnVjWmRkeWxpYixtYWxs
b2Nfem9uZV92YWxsb2MpLCAKKyAgICAodm9pZCopVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAw
NDAsbGlic3lzdGVtWnVjWmRkeWxpYixtYWxsb2Nfem9uZV9mcmVlKSwgCisgICAgKHZvaWQqKVZH
X1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMDgwLGxpYnN5c3RlbVp1Y1pkZHlsaWIsbWFsbG9jX3pv
bmVfcmVhbGxvYyksIAogICAgIE5VTEwsIC8vIEdyUCBmaXhtZSBkZXN0cm95CiAgICAgIlZhbGdy
aW5kTWFsbG9jWm9uZSIsIAogICAgIE5VTEwsIC8vIGJhdGNoX21hbGxvYwpAQCAtODAwLDEwICs4
MTQsMTUgQEAKICAgICAyLCAgLy8gdmVyc2lvbiAoR3JQIGZpeG1lIDM/KQogICAgIC8vIERERDog
dGhpcyBmaWVsZCBleGlzdHMgaW4gTWFjIE9TIDEwLjYsIGJ1dCBub3QgMTAuNS4KICAgICAjaWYg
MAotICAgICh2b2lkKilWR19SRVBMQUNFX0ZVTkNUSU9OX1pVKFZHX1pfTElCQ19TT05BTUUsIG1h
bGxvY196b25lX21lbWFsaWduKQorICAgICh2b2lkKilWR19SRVBMQUNFX0ZVTkNUSU9OX1pVKFZH
X1pfTElCQ19TT05BTUUsIG1hbGxvY196b25lX21lbWFsaWduKSwKKyAgICAjZWxzZQorICAgIE5V
TEwsCiAgICAgI2VuZGlmCisgICAgTlVMTCwgLyogZnJlZV9kZWZpbml0ZV9zaXplICovCisgICAg
TlVMTCwgLyogcHJlc3N1cmVfcmVsaWVmICovCiB9OwogCisKICNkZWZpbmUgREVGQVVMVF9aT05F
KHNvbmFtZSwgZm5uYW1lKSBcCiAgICBcCiAgICB2b2lkICpWR19SRVBMQUNFX0ZVTkNUSU9OX0Va
VSgxMDIxMCxzb25hbWUsZm5uYW1lKSAoIHZvaWQgKTsgXApAQCAtODEzLDIxICs4MzIsMzQgQEAK
ICAgIH0KIAogI2lmIGRlZmluZWQoVkdPX2RhcndpbikKLURFRkFVTFRfWk9ORShWR19aX0xJQkNf
U09OQU1FLCBtYWxsb2Nfem9uZV9mcm9tX3B0cik7Ci1ERUZBVUxUX1pPTkUoVkdfWl9MSUJDX1NP
TkFNRSwgbWFsbG9jX2RlZmF1bHRfem9uZSk7CitERUZBVUxUX1pPTkUobGlic3lzdGVtWnVjWmRk
eWxpYiwgbWFsbG9jX2RlZmF1bHRfem9uZSk7CiAjZW5kaWYKIAorCisjZGVmaW5lIFpPTkVfRlJP
TV9QVFIoc29uYW1lLCBmbm5hbWUpIFwKKyAgIFwKKyAgIHZvaWQgKlZHX1JFUExBQ0VfRlVOQ1RJ
T05fRVpVKDEwMjIwLHNvbmFtZSxmbm5hbWUpICggdm9pZCogcHRyICk7IFwKKyAgIHZvaWQgKlZH
X1JFUExBQ0VfRlVOQ1RJT05fRVpVKDEwMjIwLHNvbmFtZSxmbm5hbWUpICggdm9pZCogcHRyICkg
IFwKKyAgIHsgXAorICAgICAgcmV0dXJuICZ2Z19kZWZhdWx0X3pvbmU7IFwKKyAgIH0KKworI2lm
IGRlZmluZWQoVkdPX2RhcndpbikKK1pPTkVfRlJPTV9QVFIobGlic3lzdGVtWnVjWmRkeWxpYiwg
bWFsbG9jX3pvbmVfZnJvbV9wdHIpOworI2VuZGlmCisKKwogLy8gR3JQIGZpeG1lIGJ5cGFzcyBs
aWJjJ3MgdXNlIG9mIHpvbmUtPmludHJvc3BlY3QtPmNoZWNrCiAjZGVmaW5lIFpPTkVfQ0hFQ0so
c29uYW1lLCBmbm5hbWUpIFwKICAgIFwKLSAgIGludCBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgx
MDIyMCxzb25hbWUsZm5uYW1lKSh2b2lkKiB6b25lKTsgXAotICAgaW50IFZHX1JFUExBQ0VfRlVO
Q1RJT05fRVpVKDEwMjIwLHNvbmFtZSxmbm5hbWUpKHZvaWQqIHpvbmUpICBcCisgICBpbnQgVkdf
UkVQTEFDRV9GVU5DVElPTl9FWlUoMTAyMzAsc29uYW1lLGZubmFtZSkodm9pZCogem9uZSk7IFwK
KyAgIGludCBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDIzMCxzb25hbWUsZm5uYW1lKSh2b2lk
KiB6b25lKSAgXAogICAgeyBcCiAgICAgICByZXR1cm4gMTsgXAogICAgfQogCiAjaWYgZGVmaW5l
ZChWR09fZGFyd2luKQotWk9ORV9DSEVDSyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV9j
aGVjayk7ICAgIAorLy9aT05FX0NIRUNLKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY196b25lX2No
ZWNrKTsgICAgCiAjZW5kaWYKIAogI2VuZGlmCkBAIC04NjYsMyArODk4LDQgQEAKIC8qLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwogLyotLS0gZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC0tLSovCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNlbmRpZgpJbmRleDog
Y29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtZGFyd2luLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
Y29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtZGFyd2luLmgJKHJldmlzaW9uIDEyMDAz
KQorKysgY29yZWdyaW5kL21fc3lzd3JhcC9wcml2X3N5c3dyYXAtZGFyd2luLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQxNiw3ICs0MTYsOSBAQAogLy8gTllJIHNldGF1aWQgMzU0CiAvLyBOWUkgZ2V0
YXVkaXQgMzU1CiAvLyBOWUkgc2V0YXVkaXQgMzU2Ci0vLyBOWUkgZ2V0YXVkaXRfYWRkciAzNTcK
KyNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfNworREVDTF9URU1QTEFURShkYXJ3aW4sIGdl
dGF1ZGl0X2FkZHIpICAgICAgICAgICAgLy8gMzU3CisjZW5kaWYKIC8vIE5ZSSBzZXRhdWRpdF9h
ZGRyIDM1OAogLy8gTllJIGF1ZGl0Y3RsIDM1OQogREVDTF9URU1QTEFURShkYXJ3aW4sIGJzZHRo
cmVhZF9jcmVhdGUpOyAgICAgICAgLy8gMzYwCkBAIC00OTEsNiArNDkzLDcgQEAKIC8vIE5ZSSBh
dWRpdF9zZXNzaW9uX2pvaW4gNDI5CiAKIC8vIE1hY2ggbWVzc2FnZSBoZWxwZXJzCitERUNMX1RF
TVBMQVRFKGRhcndpbiwgbWFjaF9wb3J0X3NldF9jb250ZXh0KTsKIERFQ0xfVEVNUExBVEUoZGFy
d2luLCBob3N0X2luZm8pOwogREVDTF9URU1QTEFURShkYXJ3aW4sIGhvc3RfcGFnZV9zaXplKTsK
IERFQ0xfVEVNUExBVEUoZGFyd2luLCBob3N0X2dldF9pb19tYXN0ZXIpOwpAQCAtNTEyLDYgKzUx
NSw3IEBACiBERUNMX1RFTVBMQVRFKGRhcndpbiwgbWFjaF9wb3J0X3NldF9hdHRyaWJ1dGVzKTsK
IERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRfaW5zZXJ0X21lbWJlcik7CiBERUNMX1RF
TVBMQVRFKGRhcndpbiwgdGFza19nZXRfc3BlY2lhbF9wb3J0KTsKK0RFQ0xfVEVNUExBVEUoZGFy
d2luLCB0YXNrX2dldF9leGNlcHRpb25fcG9ydHMpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIHNl
bWFwaG9yZV9jcmVhdGUpOwogREVDTF9URU1QTEFURShkYXJ3aW4sIHNlbWFwaG9yZV9kZXN0cm95
KTsKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRzX2xvb2t1cCk7CkluZGV4OiBjb3Jl
Z3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtYW1kNjQtZGFyd2luLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29y
ZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFtZDY0LWRhcndpbi5jCShyZXZpc2lvbiAxMjAwMykK
KysrIGNvcmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1hbWQ2NC1kYXJ3aW4uYwkod29ya2luZyBj
b3B5KQpAQCAtMjgyLDcgKzI4Miw3IEBACiAgICAgICAgICAgICAgICAgICAvLyBvdGhlciB2YWx1
ZXMgc3RheSB3aGVyZSB0aGV5IGFyZSBpbiByZWdpc3RlcnMKICIgICBwdXNoICQwXG4iICAgIC8v
IGZha2UgcmV0dXJuIGFkZHJlc3MKICIgICBqbXAgX3B0aHJlYWRfaGlqYWNrXG4iCi0gICAgKTsK
Kyk7CiAKIAogCkBAIC0zNzIsNyArMzcyLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAvLyBv
dGhlciB2YWx1ZXMgc3RheSB3aGVyZSB0aGV5IGFyZSBpbiByZWdpc3RlcnMKICIgICBwdXNoICQw
XG4iICAgICAgICAvLyBmYWtlIHJldHVybiBhZGRyZXNzCiAiICAgam1wIF93cXRocmVhZF9oaWph
Y2tcbiIKLSAgICApOworKTsKIAogCiAvKiAgd3F0aHJlYWQgbm90ZTogVGhlIGtlcm5lbCBtYXkg
Y3JlYXRlIG9yIGRlc3Ryb3kgcHRocmVhZHMgaW4gdGhlIApAQCAtMzkwLDcgKzM5MCw3IEBACiAg
ICBBZGRyIHN0YWNrOwogICAgU2l6ZVQgc3RhY2tzaXplOwogICAgdmtpX3NpZ3NldF90IGJsb2Nr
YWxsOwotCisvL3JldXNlPTA7CiAgICAvKiBXaGVuIHdlIGVudGVyIGhlcmUgd2UgaG9sZCBubyBs
b2NrICghKSwgc28gd2UgYmV0dGVyIGFjcXVpcmUgaXQKICAgICAgIHByb250by4gIFdoeSBkbyB3
ZSBob2xkIG5vIGxvY2s/ICBCZWNhdXNlIChwcmVzdW1hYmx5KSB0aGUgb25seQogICAgICAgd2F5
IHRvIGdldCBoZXJlIGlzIGFzIGEgcmVzdWx0IG9mIGEgU2ZNYXlCbG9jayBzeXNjYWxsCkBAIC00
MDAsNyArNDAwLDcgQEAKICAgICAgIHB1bGxlZCBvdXQgb2YgYSBoYXQuICBJbiBhbnkgY2FzZSB3
ZSBzdGlsbCBuZWVkIHRvIHRha2UgYQogICAgICAgbG9jay4gKi8KICAgIFZHXyhhY3F1aXJlX0Jp
Z0xvY2tfTEwpKCJ3cXRocmVhZF9oaWphY2siKTsKLQorICAgVkdfKHByaW50ZikoIndxdGhyZWFk
X2hpamFjazogc2VsZiAlcCwga3BvcnQgJXAsIHN0YWNrYWRkciAlcCwgd29ya2l0ZW0gJXAsIHJl
dXNlICVkLCBzcCAlcFxuIiwgc2VsZiwga3BvcnQsIHN0YWNrYWRkciwgd29ya2l0ZW0sIHJldXNl
LCBzcCk7CiAgICAvKiBTdGFydCB0aGUgdGhyZWFkIHdpdGggYWxsIHNpZ25hbHMgYmxvY2tlZC4g
IFZHXyhzY2hlZHVsZXIpIHdpbGwKICAgICAgIHNldCB0aGUgbWFzayBjb3JyZWN0bHkgd2hlbiB3
ZSBmaW5hbGx5IGdldCB0aGVyZS4gKi8KICAgIFZHXyhzaWdmaWxsc2V0KSgmYmxvY2thbGwpOwpA
QCAtNDE2LDggKzQxNiwxMSBAQAogICAgICAgIHZnX2Fzc2VydChtYWNoX3RocmVhZF9zZWxmKCkg
PT0ga3BvcnQpOwogCiAgICAgICAgdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKyAg
ICAgICBWR18ocHJpbnRmKSgid3F0aHJlYWRfaGlqYWNrIHJldXNlICVzOiB0aWQgJWQsIHRzdCAl
cCwgdHN0LT5vc19zdGF0ZS5wdGhyZWFkICVwXG4iLCB0c3QtPm9zX3N0YXRlLnB0aHJlYWQgPT0g
c2VsZiA/ICJTQU1FIiA6ICJESUZGIiwgdGlkLCB0c3QsIHRzdC0+b3Nfc3RhdGUucHRocmVhZCk7
CiAgICAgICAgdmV4ID0gJnRzdC0+YXJjaC52ZXg7Ci0gICAgICAgdmdfYXNzZXJ0KHRzdC0+b3Nf
c3RhdGUucHRocmVhZCA9PSBzZWxmKTsKKyAgICAgICB2Z19hc3NlcnQodHN0LT5vc19zdGF0ZS5w
dGhyZWFkIC0gMHg2MCA9PSBzZWxmKTsKKy8vaWYgKHRzdC0+b3Nfc3RhdGUucHRocmVhZCA9PSBz
ZWxmKQorLy9yZXVzZSA9IDA7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAvLyBUaGlzIGlzIGEg
bmV3IHRocmVhZC4KQEAgLTQ1NSw2ICs0NTgsNyBAQAogICAgICAgICAgcmlnaHQgbm93LiAqLwog
ICAgICAgVkdfKHJlbGVhc2VfQmlnTG9ja19MTCkoIndxdGhyZWFkX2hpamFjaygxKSIpOwogICAg
ICAgTUxfKHdxdGhyZWFkX2NvbnRpbnVlX05PUkVUVVJOKSh0c3QtPnRpZCk7Cit2Z19hc3NlcnQo
MCk7CiAgICB9IAogICAgZWxzZSB7CiAgICAgICAvLyBSZWNvcmQgdGhyZWFkJ3Mgc3RhY2sgYW5k
IE1hY2ggcG9ydCBhbmQgcHRocmVhZCBzdHJ1Y3QKQEAgLTQ5OCw2ICs1MDIsNyBAQAogICAgICAg
VkdfKHJlbGVhc2VfQmlnTG9ja19MTCkoIndxdGhyZWFkX2hpamFjaygyKSIpOwogICAgICAgY2Fs
bF9vbl9uZXdfc3RhY2tfMF8xKHRzdC0+b3Nfc3RhdGUudmFsZ3JpbmRfc3RhY2tfaW5pdF9TUCwg
MCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfdGhyZWFkX05PUkVUVVJOLCAo
V29yZCl0c3QpOwordmdfYXNzZXJ0KDApOwogICAgfQogCiAgICAvKk5PVFJFQUNIRUQqLwpJbmRl
eDogY29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWRhcndpbi5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNv
cmVncmluZC9tX3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYwkocmV2aXNpb24gMTIwMDMpCisrKyBj
b3JlZ3JpbmQvbV9zeXN3cmFwL3N5c3dyYXAtZGFyd2luLmMJKHdvcmtpbmcgY29weSkKQEAgLTQz
MTYsNyArNDMxNiw4MCBAQAogICAgbWFjaF9tc2c6IG1lc3NhZ2VzIHRvIGEgdGFzawogICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tICovCiAKKy8vIEpSUyAyMDExLUF1Zy0yNToganVzdCBndWVzc2luZyBoZXJlLiAgSSBo
YXZlIG5vIGNsZWFyIGlkZWEgaG93CisvLyB0aGVzZSBzdHJ1Y3RzIGFyZSBkZXJpdmVkLiAgVGhl
eSBvYnZpb3VzbHkgcmVsYXRlIHRvIHRoZSB2YXJpb3VzCisvLyAuZGVmIGZpbGVzIGluIHRoZSB4
bnUgc291cmNlcywgYW5kIGNhbiBhbHNvIGJlIGZvdW5kIGluIHNvbWUKKy8vIGZvcm0gaW4gL3Vz
ci9pbmNsdWRlL21hY2gvKi5oLCBidXQgbm90IHN1cmUgaG93IHRoZXNlIGFsbAorLy8gcmVsYXRl
IHRvIGVhY2ggb3RoZXIuCiAKK1BSRShtYWNoX3BvcnRfc2V0X2NvbnRleHQpCit7CisjcHJhZ21h
IHBhY2soNCkKKyAgIHR5cGVkZWYgc3RydWN0IHsKKyAgICAgIG1hY2hfbXNnX2hlYWRlcl90IEhl
YWQ7CisgICAgICBORFJfcmVjb3JkX3QgTkRSOworICAgICAgbWFjaF9wb3J0X25hbWVfdCBuYW1l
OworICAgICAgbWFjaF92bV9hZGRyZXNzX3QgY29udGV4dDsKKyAgIH0gUmVxdWVzdDsKKyNwcmFn
bWEgcGFjaygpCisKKyAgIFJlcXVlc3QgKnJlcSA9IChSZXF1ZXN0ICopQVJHMTsKKworICAgUFJJ
TlQoIm1hY2hfcG9ydF9zZXRfY29udGV4dCglcywgJXMsIDB4JWxseCkiLAorICAgICAgICBuYW1l
X2Zvcl9wb3J0KE1BQ0hfUkVNT1RFKSwgCisgICAgICAgIG5hbWVfZm9yX3BvcnQocmVxLT5uYW1l
KSwgcmVxLT5jb250ZXh0KTsKKworICAgQUZURVIgPSBQT1NUX0ZOKG1hY2hfcG9ydF9zZXRfY29u
dGV4dCk7Cit9CisKK1BPU1QobWFjaF9wb3J0X3NldF9jb250ZXh0KQoreworI3ByYWdtYSBwYWNr
KDQpCisgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICBtYWNoX21zZ19oZWFkZXJfdCBIZWFkOwor
ICAgICAgTkRSX3JlY29yZF90IE5EUjsKKyAgICAgIGtlcm5fcmV0dXJuX3QgUmV0Q29kZTsKKyAg
IH0gUmVwbHk7CisjcHJhZ21hIHBhY2soKQorfQorCisKKy8vIEpSUyAyMDExLUF1Zy0yNSBGSVhN
RSBjb21wbGV0ZWx5IGJvZ3VzCitQUkUodGFza19nZXRfZXhjZXB0aW9uX3BvcnRzKQoreworI3By
YWdtYSBwYWNrKDQpCisgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICBtYWNoX21zZ19oZWFkZXJf
dCBIZWFkOworICAgICAgTkRSX3JlY29yZF90IE5EUjsKKyAgICAgIGV4Y2VwdGlvbl9tYXNrX3Qg
ZXhjZXB0aW9uX21hc2s7CisgICB9IFJlcXVlc3Q7CisjcHJhZ21hIHBhY2soKQorCisgICBQUklO
VCgidGFza19nZXRfZXhjZXB0aW9uX3BvcnRzKEJPR1VTKSIpOworICAgQUZURVIgPSBQT1NUX0ZO
KHRhc2tfZ2V0X2V4Y2VwdGlvbl9wb3J0cyk7Cit9CisKK1BPU1QodGFza19nZXRfZXhjZXB0aW9u
X3BvcnRzKQoreworI3ByYWdtYSBwYWNrKDQpCisgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICBt
YWNoX21zZ19oZWFkZXJfdCBIZWFkOworICAgICAgLyogc3RhcnQgb2YgdGhlIGtlcm5lbCBwcm9j
ZXNzZWQgZGF0YSAqLworICAgICAgbWFjaF9tc2dfYm9keV90IG1zZ2hfYm9keTsKKyAgICAgIG1h
Y2hfbXNnX3BvcnRfZGVzY3JpcHRvcl90IG9sZF9oYW5kbGVyc1szMl07CisgICAgICAvKiBlbmQg
b2YgdGhlIGtlcm5lbCBwcm9jZXNzZWQgZGF0YSAqLworICAgICAgTkRSX3JlY29yZF90IE5EUjsK
KyAgICAgIG1hY2hfbXNnX3R5cGVfbnVtYmVyX3QgbWFza3NDbnQ7CisgICAgICBleGNlcHRpb25f
bWFza190IG1hc2tzWzMyXTsKKyAgICAgIGV4Y2VwdGlvbl9iZWhhdmlvcl90IG9sZF9iZWhhdmlv
cnNbMzJdOworICAgICAgdGhyZWFkX3N0YXRlX2ZsYXZvcl90IG9sZF9mbGF2b3JzWzMyXTsKKyAg
IH0gUmVwbHk7CisjcHJhZ21hIHBhY2soKQorfQorCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCiBQUkUobWFjaF9wb3J0X3R5cGUpCiB7CiAj
cHJhZ21hIHBhY2soNCkKQEAgLTY3NTIsNiArNjgyNSw5IEBACiAgICB9CiB9IAogCisvLyBKUlMg
MjAxMS1BdWctMjU6IHRoZXNlIG1hZ2ljIG51bWJlcnMgKDMyMDEgZXRjKSBjb21lIGZyb20KKy8v
IC91c3IvaW5jbHVkZS9tYWNoL21hY2hfcG9ydC5oIGV0IGFsIChncmVwIGluIC91c3IvaW5jbHVk
ZQorLy8gZm9yIHRoZW0pCiBQUkUobWFjaF9tc2dfdGFzaykKIHsKICAgIC8vIG1lc3NhZ2UgdG8g
YSB0YXNrIHBvcnQKQEAgLTY4MDQsNyArNjg4MCwxMSBAQAogICAgY2FzZSAzMjI3OgogICAgICAg
Q0FMTF9QUkUobWFjaF9wb3J0X2V4dHJhY3RfbWVtYmVyKTsKICAgICAgIHJldHVybjsKLSAgICAg
ICAgCisKKyAgIGNhc2UgMzIyOToKKyAgICAgIENBTExfUFJFKG1hY2hfcG9ydF9zZXRfY29udGV4
dCk7CisgICAgICByZXR1cm47CisKICAgIGNhc2UgMzQwMjoKICAgICAgIENBTExfUFJFKHRhc2tf
dGhyZWFkcyk7CiAgICAgICByZXR1cm47CkBAIC02ODI4LDYgKzY5MDgsMTAgQEAKICAgIGNhc2Ug
MzQxMjoKICAgICAgIENBTExfUFJFKHRocmVhZF9jcmVhdGVfcnVubmluZyk7CiAgICAgICByZXR1
cm47CisKKyAgIGNhc2UgMzQxNDoKKyAgICAgIENBTExfUFJFKHRhc2tfZ2V0X2V4Y2VwdGlvbl9w
b3J0cyk7CisgICAgICByZXR1cm47CiAgICAgICAKICAgIGNhc2UgMzQxODoKICAgICAgIENBTExf
UFJFKHNlbWFwaG9yZV9jcmVhdGUpOwpAQCAtNzYzMCw2ICs3NzE0LDEwNiBAQAogCiAKIC8qIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorICAgQWRkZWQgZm9yIE9TWCAxMC43IChMaW9uKQorICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov
CisKKyNpZiBEQVJXSU5fVkVSUyA+PSBEQVJXSU5fMTBfNworUFJFKGdldGF1ZGl0X2FkZHIpCit7
CisgICBQUklOVCgiZ2V0YXVkaXRfYWRkciglI2x4LCAlbHUpIiwgQVJHMSwgQVJHMik7CisgICBQ
UkVfUkVHX1JFQUQxKHZvaWQqLCAiYXVkaXRpbmZvX2FkZHIiLCBpbnQsICJsZW5ndGgiKTsKKyAg
IFBSRV9NRU1fV1JJVEUoImdldGF1ZGl0X2FkZHIoYXVkaXRpbmZvX2FkZHIpIiwgQVJHMSwgQVJH
Mik7Cit9CitQT1NUKGdldGF1ZGl0X2FkZHIpCit7CisgICBQT1NUX01FTV9XUklURShBUkcxLCBB
UkcyKTsKK30KKworUFJFKHBzeW5jaF9tdXRleHdhaXQpCit7CisgICBQUklOVCgicHN5bmNoX211
dGV4d2FpdChCT0dVUylcbiIpOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CitQT1NUKHBz
eW5jaF9tdXRleHdhaXQpCit7Cit9CisKK1BSRShwc3luY2hfbXV0ZXhkcm9wKQoreworICAgUFJJ
TlQoInBzeW5jaF9tdXRleGRyb3AoQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8PSBTZk1heUJsb2Nr
OworfQorUE9TVChwc3luY2hfbXV0ZXhkcm9wKQoreworfQorCitQUkUocHN5bmNoX2N2YnJvYWQp
Cit7CisgICBQUklOVCgicHN5bmNoX2N2YnJvYWQoQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8PSBT
Zk1heUJsb2NrOworfQorUE9TVChwc3luY2hfY3Zicm9hZCkKK3sKK30KKworUFJFKHBzeW5jaF9j
dnNpZ25hbCkKK3sKKyAgIFBSSU5UKCJwc3luY2hfY3ZzaWduYWwoQk9HVVMpXG4iKTsKKyAgICpm
bGFncyB8PSBTZk1heUJsb2NrOworfQorUE9TVChwc3luY2hfY3ZzaWduYWwpCit7Cit9CisKK1BS
RShwc3luY2hfY3Z3YWl0KQoreworICAgUFJJTlQoInBzeW5jaF9jdndhaXQoQk9HVVMpXG4iKTsK
KyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworfQorUE9TVChwc3luY2hfY3Z3YWl0KQoreworfQor
CitQUkUocHN5bmNoX3J3X3JkbG9jaykKK3sKKyAgIFBSSU5UKCJwc3luY2hfcndfcmRsb2NrKEJP
R1VTKVxuIik7CisgICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKK30KK1BPU1QocHN5bmNoX3J3X3Jk
bG9jaykKK3sKK30KKworUFJFKHBzeW5jaF9yd193cmxvY2spCit7CisgICBQUklOVCgicHN5bmNo
X3J3X3dybG9jayhCT0dVUylcbiIpOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CitQT1NU
KHBzeW5jaF9yd193cmxvY2spCit7Cit9CisKK1BSRShwc3luY2hfcndfdW5sb2NrKQoreworICAg
UFJJTlQoInBzeW5jaF9yd191bmxvY2soQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8PSBTZk1heUJs
b2NrOworfQorUE9TVChwc3luY2hfcndfdW5sb2NrKQoreworfQorCitQUkUocHN5bmNoX2N2Y2xy
cHJlcG9zdCkKK3sKKyAgIFBSSU5UKCJwc3luY2hfY3ZjbHJwcmVwb3N0KEJPR1VTKVxuIik7Cisg
ICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKK30KK1BPU1QocHN5bmNoX2N2Y2xycHJlcG9zdCkKK3sK
K30KKyNlbmRpZgorCisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBzeXNjYWxsIHRhYmxlcwogICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICovCiAKQEAgLTc5NzAsMTggKzgxNTQsMTggQEAKICAgIF9fX19fKFZHX0RBUldJ
Tl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDI5OCkpLCAgIC8vIG9sZCBuZXdfc3lzdGVtX3NoYXJl
ZF9yZWdpb25zIAogICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMjk5
KSksICAgLy8gb2xkIHNoYXJlZF9yZWdpb25fbWFwX2ZpbGVfbnAgCiAgICBfX19fXyhWR19EQVJX
SU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMDApKSwgICAvLyBvbGQgc2hhcmVkX3JlZ2lvbl9t
YWtlX3ByaXZhdGVfbnAKLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklY
KDMwMSkpLCAgIC8vID8/PwotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VO
SVgoMzAyKSksICAgLy8gPz8/Ci0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1Rf
VU5JWCgzMDMpKSwgICAvLyA/Pz8KLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVD
VF9VTklYKDMwNCkpLCAgIC8vID8/PwotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RS
VUNUX1VOSVgoMzA1KSksICAgLy8gPz8/Ci0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05T
VFJVQ1RfVU5JWCgzMDYpKSwgICAvLyA/Pz8KLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NP
TlNUUlVDVF9VTklYKDMwNykpLCAgIC8vID8/PwotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExf
Q09OU1RSVUNUX1VOSVgoMzA4KSksICAgLy8gPz8/CisgICBNQUNYWShfX05SX3BzeW5jaF9tdXRl
eHdhaXQsIHBzeW5jaF9tdXRleHdhaXQpLCAvLyAzMDEKKyAgIE1BQ1hZKF9fTlJfcHN5bmNoX211
dGV4ZHJvcCwgcHN5bmNoX211dGV4ZHJvcCksIC8vIDMwMgorICAgTUFDWFkoX19OUl9wc3luY2hf
Y3Zicm9hZCwgICBwc3luY2hfY3Zicm9hZCksICAgLy8gMzAzCisgICBNQUNYWShfX05SX3BzeW5j
aF9jdnNpZ25hbCwgIHBzeW5jaF9jdnNpZ25hbCksICAvLyAzMDQKKyAgIE1BQ1hZKF9fTlJfcHN5
bmNoX2N2d2FpdCwgICAgcHN5bmNoX2N2d2FpdCksICAgIC8vIDMwNQorICAgTUFDWFkoX19OUl9w
c3luY2hfcndfcmRsb2NrLCBwc3luY2hfcndfcmRsb2NrKSwgLy8gMzA2CisgICBNQUNYWShfX05S
X3BzeW5jaF9yd193cmxvY2ssIHBzeW5jaF9yd193cmxvY2spLCAvLyAzMDcKKyAgIE1BQ1hZKF9f
TlJfcHN5bmNoX3J3X3VubG9jaywgcHN5bmNoX3J3X3VubG9jayksIC8vIDMwOAogICAgX19fX18o
VkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA5KSksICAgLy8gPz8/CiAvLyBfX19f
XyhfX05SX2dldHNpZCksIAogLy8gX19fX18oX19OUl9zZXR0aWRfd2l0aF9waWQpLCAKLSAgIF9f
X19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMxMikpLCAgIC8vID8/PworICAg
TUFDWFkoX19OUl9wc3luY2hfY3ZjbHJwcmVwb3N0LCBwc3luY2hfY3ZjbHJwcmVwb3N0KSwgLy8g
MzEyCiAvLyBfX19fXyhfX05SX2Fpb19mc3luYyksIAogICAgTUFDWFkoX19OUl9haW9fcmV0dXJu
LCAgICAgYWlvX3JldHVybiksIAogICAgTUFDWF8oX19OUl9haW9fc3VzcGVuZCwgICAgYWlvX3N1
c3BlbmQpLCAKQEAgLTgwMjgsNyArODIxMiw5IEBACiAvLyBfX19fXyhfX05SX3NldGF1aWQpLCAK
IC8vIF9fX19fKF9fTlJfZ2V0YXVkaXQpLCAKIC8vIF9fX19fKF9fTlJfc2V0YXVkaXQpLCAKLS8v
IF9fX19fKF9fTlJfZ2V0YXVkaXRfYWRkciksIAorI2lmIERBUldJTl9WRVJTID49IERBUldJTl8x
MF83CisgICBNQUNYWShfX05SX2dldGF1ZGl0X2FkZHIsIGdldGF1ZGl0X2FkZHIpLAorI2VuZGlm
CiAvLyBfX19fXyhfX05SX3NldGF1ZGl0X2FkZHIpLCAKIC8vIF9fX19fKF9fTlJfYXVkaXRjdGwp
LCAKICAgIE1BQ1hZKF9fTlJfYnNkdGhyZWFkX2NyZWF0ZSwgICAgIGJzZHRocmVhZF9jcmVhdGUp
LCAgIC8vIDM2MApJbmRleDogY29yZWdyaW5kL21fZGVidWdpbmZvL3JlYWRtYWNoby5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGNvcmVncmluZC9tX2RlYnVnaW5mby9yZWFkbWFjaG8uYwkocmV2aXNpb24gMTIw
MDMpCisrKyBjb3JlZ3JpbmQvbV9kZWJ1Z2luZm8vcmVhZG1hY2hvLmMJKHdvcmtpbmcgY29weSkK
QEAgLTgxNCw2ICs4MTQsMTIgQEAKICAgICAgIGRpLT5zb25hbWUgPSBNTF8oZGluZm9fc3RyZHVw
KSgiZGkucmVhZG1hY2hvLm5vbmFtZSIsICJOT05FIik7CiAgICB9CiAKKyAgIGlmIChkaS0+dHJh
Y2Vfc3ltdGFiKSB7CisgICAgICBWR18ocHJpbnRmKSgiXG4iKTsKKyAgICAgIFZHXyhwcmludGYp
KCJTT05BTUUgPSAlc1xuIiwgZGktPnNvbmFtZSk7CisgICAgICBWR18ocHJpbnRmKSgiXG4iKTsK
KyAgIH0KKwogICAgLyogTm93IHdlIGhhdmUgdGhlIGJhc2Ugb2JqZWN0IHRvIGhhbmQuICBSZWFk
IHN5bWJvbHMgZnJvbSBpdC4gKi8KIAogICAgaWYgKGlpLm1hY2hvX2ltZyAmJiBpaS5tYWNob19p
bWdfc3pCID4gMCAmJiBzeW1jbWQgJiYgZHlzeW1jbWQpIHsKSW5kZXg6IGNvcmVncmluZC9tX3Nj
aGVkdWxlci9zY2hlZHVsZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb3JlZ3JpbmQvbV9zY2hlZHVsZXIv
c2NoZWR1bGVyLmMJKHJldmlzaW9uIDEyMDAzKQorKysgY29yZWdyaW5kL21fc2NoZWR1bGVyL3Nj
aGVkdWxlci5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcwLDcgKzEwNzAsNyBAQAogCSBWR18ocmVs
ZWFzZV9CaWdMb2NrKSh0aWQsIFZnVHNfWWllbGRpbmcsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiVkdfKHNjaGVkdWxlcik6dGltZXNsaWNlIik7CiAJIC8qIC0tLS0tLS0t
LS0tLSBub3cgd2UgZG9uJ3QgaGF2ZSBUaGUgTG9jayAtLS0tLS0tLS0tLS0gKi8KLQorLy9pZiAo
MSkgVkdfKGRvX3N5c2NhbGwzKShfX05SX3N5c2NhbGxfdGhyZWFkX3N3aXRjaCwgMCwgMSwgMSk7
CiAJIFZHXyhhY3F1aXJlX0JpZ0xvY2spKHRpZCwgIlZHXyhzY2hlZHVsZXIpOnRpbWVzbGljZSIp
OwogCSAvKiAtLS0tLS0tLS0tLS0gbm93IHdlIGRvIGhhdmUgVGhlIExvY2sgLS0tLS0tLS0tLS0t
ICovCiAKQEAgLTExNjAsNiArMTE2MCwxMCBAQAogICAgICAgICAgICAgYmVmb3JlIHN3YXBwaW5n
IHRvIGFub3RoZXIuICBUaGF0IG1lYW5zIHRoYXQgc2hvcnQgdGVybQogICAgICAgICAgICAgc3Bp
bnMgd2FpdGluZyBmb3IgaGFyZHdhcmUgdG8gcG9rZSBtZW1vcnkgd29uJ3QgY2F1c2UgYQogICAg
ICAgICAgICAgdGhyZWFkIHN3YXAuICovCisvLyAgICAgICAgaWYgKFZHXyhkaXNwYXRjaF9jdHIp
ID4gMjAxMCkge3N0YXRpYyBVSW50IF9uID0gMDsKKy8vICAgICAgICAgIFZHXyhwcmludGYpKCJ5
aWVsZCB0aWQgJWQsIG5yICV1LCBEQyAldVxuIiwgdGlkLCBfbisrLCAoVUludClWR18oZGlzcGF0
Y2hfY3RyKSk7CisvLyAgICAgICAgfQorLy8gWFhYIHdhcyBpZiAoMCAmJiAKIAkgaWYgKFZHXyhk
aXNwYXRjaF9jdHIpID4gMjAwMCkgCiAgICAgICAgICAgICBWR18oZGlzcGF0Y2hfY3RyKSA9IDIw
MDA7CiAJIGJyZWFrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>63360</attachid>
            <date>2011-09-03 18:38:08 +0000</date>
            <delta_ts>2011-09-03 18:38:08 +0000</delta_ts>
            <desc>Programs using getaddrinfo() cause warning. Suppression required?</desc>
            <filename>addrinfo-test.c</filename>
            <type>application/octet-stream</type>
            <size>969</size>
            <attacher name="Jack Jost">jackjost</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHVuaXN0ZC5o
PgojaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiNpbmNsdWRl
IDxuZXRkYi5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVk
ZSA8ZXJyLmg+CgoKaW50IG1haW4gKCkKewoJc3RydWN0IGFkZHJpbmZvIGhpbnRzLCAqcmVzLCAq
cmVzMDsKCWludCBlcnJvcjsKCWludCBzYXZlX2Vycm5vOwoJaW50IHM7Cgljb25zdCBjaGFyICpj
YXVzZSA9IE5VTEw7CgoJbWVtc2V0KCZoaW50cywgMCwgc2l6ZW9mKGhpbnRzKSk7CgloaW50cy5h
aV9mYW1pbHkgPSBQRl9VTlNQRUM7CgloaW50cy5haV9zb2NrdHlwZSA9IFNPQ0tfU1RSRUFNOwoJ
ZXJyb3IgPSBnZXRhZGRyaW5mbygid3d3LmthbWUubmV0IiwgInd3dyIsICZoaW50cywgJnJlczAp
OwoJaWYgKGVycm9yKQoJCWVycngoMSwgIiVzIiwgZ2FpX3N0cmVycm9yKGVycm9yKSk7CglzID0g
LTE7Cglmb3IgKHJlcyA9IHJlczA7IHJlczsgcmVzID0gcmVzLT5haV9uZXh0KSB7CgkJcyA9IHNv
Y2tldChyZXMtPmFpX2ZhbWlseSwgcmVzLT5haV9zb2NrdHlwZSwgcmVzLT5haV9wcm90b2NvbCk7
CgkJaWYgKHMgPT0gLTEpIHsKCQkJY2F1c2UgPSAic29ja2V0IjsKCQkJY29udGludWU7CgkJfQoK
CQlpZiAoY29ubmVjdChzLCByZXMtPmFpX2FkZHIsIHJlcy0+YWlfYWRkcmxlbikgPT0gLTEpIHsK
CQkJY2F1c2UgPSAiY29ubmVjdCI7CgkJCXNhdmVfZXJybm8gPSBlcnJubzsKCQkJY2xvc2Uocyk7
CgkJCWVycm5vID0gc2F2ZV9lcnJubzsKCQkJcyA9IC0xOwoJCQljb250aW51ZTsKCQl9CgoJCWJy
ZWFrOyAgLyogb2theSB3ZSBnb3Qgb25lICovCgl9CglpZiAocyA9PSAtMSkKCQllcnIoMSwgIiVz
IiwgY2F1c2UpOwoJZnJlZWFkZHJpbmZvKHJlczApOwoJY2xvc2Uocyk7CglyZXR1cm4gMDsKfQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63545</attachid>
            <date>2011-09-10 12:53:00 +0000</date>
            <delta_ts>2011-09-21 08:53:44 +0000</delta_ts>
            <desc>WIP patch, vs current trunk revision 12025</desc>
            <filename>osx107-wip-10-sept-2011-vs-r12025.diff</filename>
            <type>text/plain</type>
            <size>39443</size>
            <attacher name="Julian Seward">jseward</attacher>
            
              <data encoding="base64">SW5kZXg6IG1lbWNoZWNrL21jX3JlcGxhY2Vfc3RybWVtLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbWVtY2hl
Y2svbWNfcmVwbGFjZV9zdHJtZW0uYwkocmV2aXNpb24gMTIwMjUpCisrKyBtZW1jaGVjay9tY19y
ZXBsYWNlX3N0cm1lbS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsMTEgKzE3OCwxMyBAQAogIFNU
UlJDSFIoVkdfWl9MRF9MSU5VWF9TT18yLCByaW5kZXgpCiAKICNlbGlmIGRlZmluZWQoVkdPX2Rh
cndpbikKLSBTVFJSQ0hSKFZHX1pfTElCQ19TT05BTUUsICAgc3RycmNocikKLSBTVFJSQ0hSKFZH
X1pfTElCQ19TT05BTUUsICAgcmluZGV4KQotIFNUUlJDSFIoVkdfWl9EWUxELCAgICAgICAgICBz
dHJyY2hyKQotIFNUUlJDSFIoVkdfWl9EWUxELCAgICAgICAgICByaW5kZXgpCisgLy9TVFJSQ0hS
KFZHX1pfTElCQ19TT05BTUUsICAgc3RycmNocikKKyAvL1NUUlJDSFIoVkdfWl9MSUJDX1NPTkFN
RSwgICByaW5kZXgpCisgLy9TVFJSQ0hSKFZHX1pfRFlMRCwgICAgICAgICAgc3RycmNocikKKyAv
L1NUUlJDSFIoVkdfWl9EWUxELCAgICAgICAgICByaW5kZXgpCisgU1RSUkNIUihWR19aX0xJQkNf
U09OQU1FLCBzdHJyY2hyKQogCisKICNlbmRpZgogICAgCiAKQEAgLTIxNCwxMSArMjE2LDEzIEBA
CiAjIGVuZGlmCiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLSBTVFJDSFIoVkdfWl9MSUJD
X1NPTkFNRSwgICAgICAgICAgc3RyY2hyKQotIFNUUkNIUihWR19aX0xJQkNfU09OQU1FLCAgICAg
ICAgICBpbmRleCkKLSBTVFJDSFIoVkdfWl9EWUxELCAgICAgICAgICAgICAgICAgc3RyY2hyKQot
IFNUUkNIUihWR19aX0RZTEQsICAgICAgICAgICAgICAgICBpbmRleCkKKyAvL1NUUkNIUihWR19a
X0xJQkNfU09OQU1FLCAgICAgICAgICBzdHJjaHIpCisgLy9TVFJDSFIoVkdfWl9MSUJDX1NPTkFN
RSwgICAgICAgICAgaW5kZXgpCisgLy9TVFJDSFIoVkdfWl9EWUxELCAgICAgICAgICAgICAgICAg
c3RyY2hyKQorIC8vU1RSQ0hSKFZHX1pfRFlMRCwgICAgICAgICAgICAgICAgIGluZGV4KQorIFNU
UkNIUihWR19aX0xJQkNfU09OQU1FLCBzdHJjaHIpCiAKKwogI2VuZGlmCiAKIApAQCAtMjUyLDgg
KzI1Niw5IEBACiAgU1RSQ0FUKFZHX1pfTElCQ19TT05BTUUsIF9fR0lfc3RyY2F0KQogCiAjZWxp
ZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0gU1RSQ0FUKFZHX1pfTElCQ19TT05BTUUsIHN0cmNhdCkK
KyAvL1NUUkNBVChWR19aX0xJQkNfU09OQU1FLCBzdHJjYXQpCiAKKwogI2VuZGlmCiAKIApAQCAt
Mjg4LDkgKzI5MywxMCBAQAogIFNUUk5DQVQoVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNhdCkKIAog
I2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQotIFNUUk5DQVQoVkdfWl9MSUJDX1NPTkFNRSwgc3Ry
bmNhdCkKLSBTVFJOQ0FUKFZHX1pfRFlMRCwgICAgICAgIHN0cm5jYXQpCisgLy9TVFJOQ0FUKFZH
X1pfTElCQ19TT05BTUUsIHN0cm5jYXQpCisgLy9TVFJOQ0FUKFZHX1pfRFlMRCwgICAgICAgIHN0
cm5jYXQpCiAKKwogI2VuZGlmCiAKIApAQCAtMzM1LDkgKzM0MSwxMSBAQAogI2lmIGRlZmluZWQo
VkdPX2xpbnV4KQogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCisgLy9TVFJMQ0FUKFZHX1pf
TElCQ19TT05BTUUsIHN0cmxjYXQpCisgLy9TVFJMQ0FUKFZHX1pfRFlMRCwgICAgICAgIHN0cmxj
YXQpCiAgU1RSTENBVChWR19aX0xJQkNfU09OQU1FLCBzdHJsY2F0KQotIFNUUkxDQVQoVkdfWl9E
WUxELCAgICAgICAgc3RybGNhdCkKIAorCiAjZW5kaWYKIAogCkBAIC0zNTksOCArMzY3LDkgQEAK
ICBTVFJOTEVOKFZHX1pfTElCQ19TT05BTUUsIF9fR0lfc3RybmxlbikKIAogI2VsaWYgZGVmaW5l
ZChWR09fZGFyd2luKQotIFNUUk5MRU4oVkdfWl9MSUJDX1NPTkFNRSwgc3RybmxlbikKKyAvL1NU
Uk5MRU4oVkdfWl9MSUJDX1NPTkFNRSwgc3RybmxlbikKIAorCiAjZW5kaWYKICAgIAogCkBAIC0z
ODcsOCArMzk2LDEwIEBACiAgU1RSTEVOKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIF9fR0lf
c3RybGVuKQogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0gU1RSTEVOKFZHX1pfTElCQ19T
T05BTUUsICAgICAgICAgIHN0cmxlbikKKyAvL1NUUkxFTihWR19aX0xJQkNfU09OQU1FLCAgICAg
ICAgICBzdHJsZW4pCisgU1RSTEVOKFZHX1pfTElCQ19TT05BTUUsIHN0cmxlbikKIAorCiAjZW5k
aWYKIAogCkBAIC00MjIsOSArNDMzLDExIEBACiAgU1RSQ1BZKFZHX1pfTElCQ19TT05BTUUsIF9f
R0lfc3RyY3B5KQogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCisgLy9TVFJDUFkoVkdfWl9M
SUJDX1NPTkFNRSwgc3RyY3B5KQorIC8vU1RSQ1BZKFZHX1pfRFlMRCwgICAgICAgIHN0cmNweSkK
ICBTVFJDUFkoVkdfWl9MSUJDX1NPTkFNRSwgc3RyY3B5KQotIFNUUkNQWShWR19aX0RZTEQsICAg
ICAgICBzdHJjcHkpCiAKKwogI2VuZGlmCiAKIApAQCAtNDU1LDkgKzQ2OCwxMSBAQAogIFNUUk5D
UFkoVkdfWl9MSUJDX1NPTkFNRSwgX19HSV9zdHJuY3B5KQogCiAjZWxpZiBkZWZpbmVkKFZHT19k
YXJ3aW4pCisgLy9TVFJOQ1BZKFZHX1pfTElCQ19TT05BTUUsIHN0cm5jcHkpCisgLy9TVFJOQ1BZ
KFZHX1pfRFlMRCwgICAgICAgIHN0cm5jcHkpCiAgU1RSTkNQWShWR19aX0xJQkNfU09OQU1FLCBz
dHJuY3B5KQotIFNUUk5DUFkoVkdfWl9EWUxELCAgICAgICAgc3RybmNweSkKIAorCiAjZW5kaWYK
IAogCkBAIC00OTEsOSArNTA2LDExIEBACiAjaWYgZGVmaW5lZChWR09fbGludXgpCiAKICNlbGlm
IGRlZmluZWQoVkdPX2RhcndpbikKKyAvL1NUUkxDUFkoVkdfWl9MSUJDX1NPTkFNRSwgc3RybGNw
eSkKKyAvL1NUUkxDUFkoVkdfWl9EWUxELCAgICAgICAgc3RybGNweSkKICBTVFJMQ1BZKFZHX1pf
TElCQ19TT05BTUUsIHN0cmxjcHkpCi0gU1RSTENQWShWR19aX0RZTEQsICAgICAgICBzdHJsY3B5
KQogCisKICNlbmRpZgogCiAKQEAgLTUyNCw5ICs1NDEsMTEgQEAKICBTVFJOQ01QKFZHX1pfTElC
Q19TT05BTUUsIF9fR0lfc3RybmNtcCkKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQotIFNU
Uk5DTVAoVkdfWl9MSUJDX1NPTkFNRSwgc3RybmNtcCkKLSBTVFJOQ01QKFZHX1pfRFlMRCwgICAg
ICAgIHN0cm5jbXApCisgLy9TVFJOQ01QKFZHX1pfTElCQ19TT05BTUUsIHN0cm5jbXApCisgLy9T
VFJOQ01QKFZHX1pfRFlMRCwgICAgICAgIHN0cm5jbXApCisgU1RSTkNNUChWR19aX0xJQkNfU09O
QU1FLCAgICAgICAgc3RybmNtcCkKIAorCiAjZW5kaWYKIAogCkBAIC01NjAsOCArNTc5LDkgQEAK
ICMgZW5kaWYKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQotIFNUUkNBU0VDTVAoVkdfWl9M
SUJDX1NPTkFNRSwgc3RyY2FzZWNtcCkKKyAvL1NUUkNBU0VDTVAoVkdfWl9MSUJDX1NPTkFNRSwg
c3RyY2FzZWNtcCkKIAorCiAjZW5kaWYKIAogCkBAIC01OTcsOSArNjE3LDEwIEBACiAjIGVuZGlm
CiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLSBTVFJOQ0FTRUNNUChWR19aX0xJQkNfU09O
QU1FLCBzdHJuY2FzZWNtcCkKLSBTVFJOQ0FTRUNNUChWR19aX0RZTEQsICAgICAgICBzdHJuY2Fz
ZWNtcCkKKyAvL1NUUk5DQVNFQ01QKFZHX1pfTElCQ19TT05BTUUsIHN0cm5jYXNlY21wKQorIC8v
U1RSTkNBU0VDTVAoVkdfWl9EWUxELCAgICAgICAgc3RybmNhc2VjbXApCiAKKwogI2VuZGlmCiAK
IApAQCAtNjMyLDggKzY1Myw5IEBACiAgU1RSQ0FTRUNNUF9MKFZHX1pfTElCQ19TT05BTUUsIF9f
R0lfX19zdHJjYXNlY21wX2wpCiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLSBTVFJDQVNF
Q01QX0woVkdfWl9MSUJDX1NPTkFNRSwgc3RyY2FzZWNtcF9sKQorIC8vU1RSQ0FTRUNNUF9MKFZH
X1pfTElCQ19TT05BTUUsIHN0cmNhc2VjbXBfbCkKIAorCiAjZW5kaWYKIAogCkBAIC02NjcsOSAr
Njg5LDEwIEBACiAgU1RSTkNBU0VDTVBfTChWR19aX0xJQkNfU09OQU1FLCBfX0dJX3N0cm5jYXNl
Y21wX2wpCiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLSBTVFJOQ0FTRUNNUF9MKFZHX1pf
TElCQ19TT05BTUUsIHN0cm5jYXNlY21wX2wpCi0gU1RSTkNBU0VDTVBfTChWR19aX0RZTEQsICAg
ICAgICBzdHJuY2FzZWNtcF9sKQorIC8vU1RSTkNBU0VDTVBfTChWR19aX0xJQkNfU09OQU1FLCBz
dHJuY2FzZWNtcF9sKQorIC8vU1RSTkNBU0VDTVBfTChWR19aX0RZTEQsICAgICAgICBzdHJuY2Fz
ZWNtcF9sKQogCisKICNlbmRpZgogCiAKQEAgLTcwMiw4ICs3MjUsMTAgQEAKICBTVFJDTVAoVkdf
Wl9MRDY0X1NPXzEsICAgICAgICAgICAgc3RyY21wKQogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3
aW4pCi0gU1RSQ01QKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cmNtcCkKKyAvL1NUUkNN
UChWR19aX0xJQkNfU09OQU1FLCAgICAgICAgICBzdHJjbXApCisgU1RSQ01QKFZHX1pfTElCQ19T
T05BTUUsIHN0cmNtcCkKIAorCiAjZW5kaWYKIAogCkBAIC03MjcsOSArNzUyLDEwIEBACiAgTUVN
Q0hSKFZHX1pfTElCQ19TT05BTUUsIG1lbWNocikKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2lu
KQotIE1FTUNIUihWR19aX0xJQkNfU09OQU1FLCBtZW1jaHIpCi0gTUVNQ0hSKFZHX1pfRFlMRCwg
ICAgICAgIG1lbWNocikKKyAvL01FTUNIUihWR19aX0xJQkNfU09OQU1FLCBtZW1jaHIpCisgLy9N
RU1DSFIoVkdfWl9EWUxELCAgICAgICAgbWVtY2hyKQogCisKICNlbmRpZgogCiAKQEAgLTgzMyw4
ICs4NTksMTAgQEAKICBNRU1DUFkoTk9ORSwgWnVpbnRlbFp1ZmFzdFp1bWVtY3B5KQogCiAjZWxp
ZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0gTUVNQ1BZKFZHX1pfTElCQ19TT05BTUUsICBtZW1jcHkp
Ci0gTUVNQ1BZKFZHX1pfRFlMRCwgICAgICAgICBtZW1jcHkpCisgLy9NRU1DUFkoVkdfWl9MSUJD
X1NPTkFNRSwgIG1lbWNweSkKKyAvL01FTUNQWShWR19aX0RZTEQsICAgICAgICAgbWVtY3B5KQor
IE1FTUNQWShWR19aX0xJQkNfU09OQU1FLCAgbWVtY3B5WkRWQVJJQU5UWkRzc2UzeCkgLyogbWVt
Y3B5JFZBUklBTlQkc3NlM3ggKi8KKyBNRU1DUFkoVkdfWl9MSUJDX1NPTkFNRSwgIG1lbWNweVpE
VkFSSUFOVFpEc3NlNDIpIC8qIG1lbWNweSRWQVJJQU5UJHNzZTQyICovCiAKICNlbmRpZgogCkBA
IC04NzIsMTEgKzkwMCwxMiBAQAogIE1FTUNNUChWR19aX0xEX1NPXzEsICAgICBiY21wKQogCiAj
ZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0gTUVNQ01QKFZHX1pfTElCQ19TT05BTUUsIG1lbWNt
cCkKLSBNRU1DTVAoVkdfWl9MSUJDX1NPTkFNRSwgYmNtcCkKLSBNRU1DTVAoVkdfWl9EWUxELCAg
ICAgICAgbWVtY21wKQotIE1FTUNNUChWR19aX0RZTEQsICAgICAgICBiY21wKQorIC8vTUVNQ01Q
KFZHX1pfTElCQ19TT05BTUUsIG1lbWNtcCkKKyAvL01FTUNNUChWR19aX0xJQkNfU09OQU1FLCBi
Y21wKQorIC8vTUVNQ01QKFZHX1pfRFlMRCwgICAgICAgIG1lbWNtcCkKKyAvL01FTUNNUChWR19a
X0RZTEQsICAgICAgICBiY21wKQogCisKICNlbmRpZgogCiAKQEAgLTkxNCw5ICs5NDMsMTAgQEAK
ICBTVFBDUFkoVkdfWl9MRF9MSU5VWF9YODZfNjRfU09fMiwgc3RwY3B5KQogCiAjZWxpZiBkZWZp
bmVkKFZHT19kYXJ3aW4pCi0gU1RQQ1BZKFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cGNw
eSkKLSBTVFBDUFkoVkdfWl9EWUxELCAgICAgICAgICAgICAgICAgc3RwY3B5KQorIC8vU1RQQ1BZ
KFZHX1pfTElCQ19TT05BTUUsICAgICAgICAgIHN0cGNweSkKKyAvL1NUUENQWShWR19aX0RZTEQs
ICAgICAgICAgICAgICAgICBzdHBjcHkpCiAKKwogI2VuZGlmCiAKIApAQCAtOTI0LDYgKzk1NCw3
IEBACiAKIC8qIFdoeSBhcmUgd2UgYm90aGVyaW5nIHRvIGludGVyY2VwdCB0aGlzPyAgSXQgc2Vl
bXMgZW50aXJlbHkKICAgIHBvaW50bGVzcy4gKi8KKwogI2RlZmluZSBNRU1TRVQoc29uYW1lLCBm
bm5hbWUpIFwKICAgIHZvaWQqIFZHX1JFUExBQ0VfRlVOQ1RJT05fRVpVKDIwMjEwLHNvbmFtZSxm
bm5hbWUpIFwKICAgICAgICAgICAgICh2b2lkICpzLCBJbnQgYywgU2l6ZVQgbik7IFwKQEAgLTk0
NywyMiArOTc4LDI4IEBACiAgTUVNU0VUKFZHX1pfTElCQ19TT05BTUUsIG1lbXNldCkKIAogI2Vs
aWYgZGVmaW5lZChWR09fZGFyd2luKQorIC8vTUVNU0VUKFZHX1pfTElCQ19TT05BTUUsIG1lbXNl
dCkKKyAvL01FTVNFVChWR19aX0RZTEQsICAgICAgICBtZW1zZXQpCiAgTUVNU0VUKFZHX1pfTElC
Q19TT05BTUUsIG1lbXNldCkKLSBNRU1TRVQoVkdfWl9EWUxELCAgICAgICAgbWVtc2V0KQogCisK
ICNlbmRpZgogCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBtZW1tb3ZlIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0qLwogCiAvKiBtZW1tb3ZlIC0tIHVzZSB0aGUgTUVNTU9WRSBkZWZuIGFib3Zl
LiAqLworCiAjaWYgZGVmaW5lZChWR09fbGludXgpCiAgTUVNTU9WRShWR19aX0xJQkNfU09OQU1F
LCBtZW1tb3ZlKQogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0gTUVNTU9WRShWR19aX0xJ
QkNfU09OQU1FLCBtZW1tb3ZlKQotIE1FTU1PVkUoVkdfWl9EWUxELCAgICAgICAgbWVtbW92ZSkK
KyAvL01FTU1PVkUoVkdfWl9MSUJDX1NPTkFNRSwgbWVtbW92ZSkKKyAvL01FTU1PVkUoVkdfWl9E
WUxELCAgICAgICAgbWVtbW92ZSkjCisgTUVNTU9WRShWR19aX0xJQkNfU09OQU1FLCAgbWVtbW92
ZVpEVkFSSUFOVFpEc3NlM3gpIC8qIG1lbW1vdmUkVkFSSUFOVCRzc2UzeCAqLworIE1FTU1PVkUo
VkdfWl9MSUJDX1NPTkFNRSwgIG1lbW1vdmVaRFZBUklBTlRaRHNzZTQyKSAvKiBtZW1tb3ZlJFZB
UklBTlQkc3NlNDIgKi8KIAorCiAjZW5kaWYKIAogCkBAIC05OTEsOSArMTAyOCwxMCBAQAogI2lm
IGRlZmluZWQoVkdPX2xpbnV4KQogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCi0gQkNPUFko
VkdfWl9MSUJDX1NPTkFNRSwgYmNvcHkpCi0gQkNPUFkoVkdfWl9EWUxELCAgICAgICAgYmNvcHkp
CisgLy9CQ09QWShWR19aX0xJQkNfU09OQU1FLCBiY29weSkKKyAvL0JDT1BZKFZHX1pfRFlMRCwg
ICAgICAgIGJjb3B5KQogCisKICNlbmRpZgogCiAKQEAgLTExOTgsOCArMTIzNiw5IEBACiAgR0xJ
QkMyNV9NRU1QQ1BZKFZHX1pfTERfU09fMSwgICAgIG1lbXBjcHkpIC8qIGxkLnNvLjEgKi8KIAog
I2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQotIEdMSUJDMjVfTUVNUENQWShWR19aX0xJQkNfU09O
QU1FLCBtZW1wY3B5KQorIC8vR0xJQkMyNV9NRU1QQ1BZKFZHX1pfTElCQ19TT05BTUUsIG1lbXBj
cHkpCiAKKwogI2VuZGlmCiAKIApJbmRleDogZGFyd2luMTEuc3VwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBk
YXJ3aW4xMS5zdXBwCShyZXZpc2lvbiAwKQorKysgZGFyd2luMTEuc3VwcAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMjIgQEAKKworIyBTdXBwcmVzc2lvbnMgZm9yIERhcndpbiAxMS54IC8gTWFj
IE9TIFggMTAuNyBMaW9uCisKKyMjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMjCisjIE1lbWNoZWNrCisjIy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0jIworCisjIER1bm5vIHdoZXJlIHRoaXMgaXMgYSByZWFsIGJ1Zywgb3IgZHVlIHRv
IGJvcmtlZCAxMC43LXNwZWNpZmljIHN5c2NhbGwKKyMgd3JhcHBlcnMuICA2NC1iaXQgbW9kZTsg
bm90IHN1cmUgaWYgb2NjdXJzIGluIDMyLWJpdCBtb2RlLiAKKyMgQW55d2F5LCBmb3IgdGhlIHRp
bmUgYmVpbmc6CisjCisjIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5p
dGlhbGlzZWQgdmFsdWUocykKKyMgICAgYXQgMHgxOTczRTY6IF9fbXR4X2Ryb3Bsb2NrIChpbiAv
dXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX2MuZHlsaWIpCisjICAgIGJ5IDB4MTk3NkFBOiBwdGhy
ZWFkX211dGV4X3VubG9jayAoaW4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jLmR5bGliKQor
IyAgICBieSAweDEwMEIzRDogdW5sb2NrX25vZGUgKGluIC91c3IvbGliL3N5c3RlbS9saWJrZXlt
Z3IuZHlsaWIpCit7CisgICBPU1gxMDc6X19tdHhfZHJvcGxvY2sKKyAgIE1lbWNoZWNrOkNvbmQK
KyAgIGZ1bjpfX210eF9kcm9wbG9jaworICAgZnVuOnB0aHJlYWRfbXV0ZXhfdW5sb2NrCisgICBm
dW46dW5sb2NrX25vZGUKK30KKworIyBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBv
biB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCisjICAgIGF0IDB4MkVCODgzOiA/Pz8gKGluIC91c3Iv
bGliL3N5c3RlbS9saWJ4cGMuZHlsaWIpCisjICAgIGJ5IDB4MjM3QzY6ID8/PyAoaW4gL3Vzci9s
aWIvbGliU3lzdGVtLkIuZHlsaWIpCisjICAgIGJ5IDB4OEZFMTExNUE6IEltYWdlTG9hZGVyTWFj
aE86OmRvTW9kSW5pdEZ1bmN0aW9ucyhJbWFnZUxvYWRlcjo6TGlua0NvbnRleHQgY29uc3QmKSAo
aW4gL3Vzci9saWIvZHlsZCkKK3sKKyAgIDxpbnNlcnRfYV9zdXBwcmVzc2lvbl9uYW1lX2hlcmU+
CisgICBNZW1jaGVjazpDb25kCisgICBvYmo6L3Vzci9saWIvc3lzdGVtL2xpYnhwYy5keWxpYgor
ICAgb2JqOi91c3IvbGliL2xpYlN5c3RlbS5CLmR5bGliCisgICBmdW46X1pOMTZJbWFnZUxvYWRl
ck1hY2hPMThkb01vZEluaXRGdW5jdGlvbnNFUktOMTFJbWFnZUxvYWRlcjExTGlua0NvbnRleHRF
Cit9CisKKyMgWkxpYiBzdHVmZi4gIEhvdyBjb21lIHRoaXMgd2Fzbid0IG5lY2Vzc2FyeSBpbiAx
MC42ID8KK3sKKyAgIE9TWDEwNzp6bGliLUMKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIG9iajovdXNy
L2xpYi9saWJ6LipkeWxpYgorICAgb2JqOi91c3IvbGliL2xpYnouKmR5bGliCit9Cit7CisgICBP
U1gxMDc6emxpYi04CisgICBNZW1jaGVjazpWYWx1ZTgKKyAgIG9iajovdXNyL2xpYi9saWJ6Lipk
eWxpYgorICAgb2JqOi91c3IvbGliL2xpYnouKmR5bGliCit9CisKKyMgUmVhbGx5IGEgYnVnPyAg
SSBkb24ndCBrbm93LgorIyBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmlu
aXRpYWxpc2VkIHZhbHVlKHMpCisjICAgIGF0IDB4M0EzMjJGRTogX19tdHhfZHJvcGxvY2sgKGlu
IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fYy5keWxpYikKKyMgICAgYnkgMHgzQTMyNkFBOiBw
dGhyZWFkX211dGV4X3VubG9jayAoaW4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jLmR5bGli
KQorIyAgICBieSAweDI2MzgyOiBsb2FkX2ltYWdlcyAoaW4gL3Vzci9saWIvbGlib2JqYy5BLmR5
bGliKQoreworICAgT1NYMTA3OmJsYWgKKyAgIE1lbWNoZWNrOkNvbmQKKyAgIGZ1bjpfX210eF9k
cm9wbG9jaworICAgZnVuOnB0aHJlYWRfbXV0ZXhfdW5sb2NrCit9CisKK3sKKyAgIE9TWDEwNzpi
bGFoCisgICBNZW1jaGVjazpDb25kCisgICBmdW46cHRocmVhZF9tdXRleF9sb2NrCit9CisKKwor
CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIFRoZSBvbmVzIGJlbG93IGFyZSBmcm9tIGRhcndpbjEw
LnN1cHAgKGZvciBTbm93IExlb3BhcmQpLiAgSSBkb24ndAorIyMjIGtub3cgd2hldGhlciB0aGV5
IGFyZSBzdGlsbCBuZWNlc3NhcnkuCisKKyMgYWZhaWN0IHRoaXMgaXMgbGVnaXQuICBNaWdodCBi
ZSBjYXVzZWQgYnkgc2V0ZW52KCJWQVI9IikKKyMgd2hlcmUgdGhlIHZhbHVlIHN0cmluZyBpcyBl
bXB0eSAobm90IHN1cmUpCit7CisgICBtYWNvcy1Db25kLTcKKyAgIE1lbWNoZWNrOkNvbmQKKyAg
IGZ1bjpfX3NldGVudgorfQorCisjIEZyb20gSmVzc2UgUnVkZXJtYW4uCisjeworIyAgIE1hYyBP
UyBYIDEwLjYuNC4gcmRhcjovLzgxNDUyODkuICJuZXdbXSIgcGFpcmVkIHdpdGggImRlbGV0ZSIg
aW4gdGhlIERlc2t0b3BTZXJ2aWNlc1ByaXYgZnJhbWV3b3JrLgorIyAgIE1lbWNoZWNrOkZyZWUK
KyMgICBmdW46X1pkbFB2CisjICAgZnVuOl9aTjVUQ2hhcjE4UmVtb3ZlUHRyUmVmZXJlbmNlRXYK
KyMgfQorCisjIEZyb20gSmVzc2UgUnVkZXJtYW4uCisjeworIyAgIE1hYyBPUyBYIDEwLjYuNC4g
cmRhcjovLzgxNDUzMTguIFVuaW5pdGlhbGl6ZWQgbWVtb3J5IGZyb20gSElNZW51QmFyVmlldzo6
TWVhc3VyZUFwcE1lbnVzIGlzIHVzZWQgaW4gSElNZW51QmFyVmlldzo6U2V0QWRqdXN0VGV4dFRp
dGxlQm91bmRzQXRJbmRleC4KKyMgICBNZW1jaGVjazpDb25kCisjICAgZnVuOl9aTjEzSElNZW51
QmFyVmlldzMxU2V0QWRqdXN0VGV4dFRpdGxlQm91bmRzQXRJbmRleEVpaAorIyAgIGZ1bjpfWk4x
M0hJTWVudUJhclZpZXcxNU1lYXN1cmVBcHBNZW51c0V2CisjfQorCisjeworIyAgIFRGb250RmVh
dHVyZXM6OlRGb250RmVhdHVyZXMoQ0dGb250KikgKGluIENvcmVUZXh0LmZyYW1ld29yaykKKyMg
ICBNZW1jaGVjazpDb25kCisjICAgZnVuOl9aTjEzVEZvbnRGZWF0dXJlc0MyRVA2Q0dGb250Cisj
ICAgZnVuOl9aTks5VEJhc2VGb250MTJDb3B5RmVhdHVyZXNFdgorI30KKworIyBTZWUgaHR0cHM6
Ly9idWdzLmtkZS5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODU3MiBhYm91dCB0aGlzOyAgaXQncwor
IyB1bmF2b2lkYWJsZSBkdWUgdG8gQlNEIHNldGVudigpIHNlbWFudGljcy4KKyN7CisjICAgbWFj
b3MtX19zZXRlbnYtbGVhay1zZWUtb3VyLWJ1Zy0xODg1NzIKKyMgICBNZW1jaGVjazpMZWFrCisj
ICAgZnVuOm1hbGxvY196b25lX21hbGxvYworIyAgIGZ1bjpfX3NldGVudgorI30KKworI3sKKyMg
ICBsaWJTeXN0ZW0ta2V5bWdyLWxlYWstYXQtZXhpdAorIyAgIE1lbWNoZWNrOkxlYWsKKyMgICBm
dW46bWFsbG9jCisjICAgZnVuOmdldF9vcl9jcmVhdGVfa2V5X2VsZW1lbnQKKyMgICBmdW46X2tl
eW1ncl9nZXRfYW5kX2xvY2tfcHJvY2Vzc3dpZGVfcHRyXzIKKyMgICBmdW46X19rZXltZ3JfaW5p
dGlhbGl6ZXIKKyMgICBmdW46bGliU3lzdGVtX2luaXRpYWxpemVyCisjfQpJbmRleDogaW5jbHVk
ZS92a2kvdmtpLXNjbnVtcy1kYXJ3aW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpbmNsdWRlL3ZraS92a2kt
c2NudW1zLWRhcndpbi5oCShyZXZpc2lvbiAxMjAyNSkKKysrIGluY2x1ZGUvdmtpL3ZraS1zY251
bXMtZGFyd2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxNSwxOCArNTE1LDE4IEBACiAJCQkvKiAy
OTggIG9sZCBuZXdfc3lzdGVtX3NoYXJlZF9yZWdpb25zICovCiAJCQkvKiAyOTkgIG9sZCBzaGFy
ZWRfcmVnaW9uX21hcF9maWxlX25wICovCiAJCQkvKiAzMDAgIG9sZCBzaGFyZWRfcmVnaW9uX21h
a2VfcHJpdmF0ZV9ucCAqLwotCQkJLyogMzAxICovCi0JCQkvKiAzMDIgKi8KLQkJCS8qIDMwMyAq
LwotCQkJLyogMzA0ICovCi0JCQkvKiAzMDUgKi8KLQkJCS8qIDMwNiAqLwotCQkJLyogMzA3ICov
Ci0JCQkvKiAzMDggKi8KKyNkZWZpbmUgX19OUl9wc3luY2hfbXV0ZXh3YWl0IFZHX0RBUldJTl9T
WVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMSkKKyNkZWZpbmUgX19OUl9wc3luY2hfbXV0ZXhkcm9w
IFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMikKKyNkZWZpbmUgX19OUl9wc3lu
Y2hfY3Zicm9hZCAgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMykKKyNkZWZp
bmUgX19OUl9wc3luY2hfY3ZzaWduYWwgIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklY
KDMwNCkKKyNkZWZpbmUgX19OUl9wc3luY2hfY3Z3YWl0ICAgIFZHX0RBUldJTl9TWVNDQUxMX0NP
TlNUUlVDVF9VTklYKDMwNSkKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfcmRsb2NrIFZHX0RBUldJ
Tl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNikKKyNkZWZpbmUgX19OUl9wc3luY2hfcndfd3Js
b2NrIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNykKKyNkZWZpbmUgX19OUl9w
c3luY2hfcndfdW5sb2NrIFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwOCkKIAkJ
CS8qIDMwOSAqLwogI2RlZmluZQlfX05SX2dldHNpZCAgICAgICAgIFZHX0RBUldJTl9TWVNDQUxM
X0NPTlNUUlVDVF9VTklYKDMxMCkKICNkZWZpbmUJX19OUl9zZXR0aWRfd2l0aF9waWQgVkdfREFS
V0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzExKQotCQkJLyogMzEyICovCisjZGVmaW5lIF9f
TlJfcHN5bmNoX2N2Y2xycHJlcG9zdCBWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgz
MTIpCiAjZGVmaW5lCV9fTlJfYWlvX2ZzeW5jICAgICAgVkdfREFSV0lOX1NZU0NBTExfQ09OU1RS
VUNUX1VOSVgoMzEzKQogI2RlZmluZQlfX05SX2Fpb19yZXR1cm4gICAgIFZHX0RBUldJTl9TWVND
QUxMX0NPTlNUUlVDVF9VTklYKDMxNCkKICNkZWZpbmUJX19OUl9haW9fc3VzcGVuZCAgICBWR19E
QVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMTUpCkluZGV4OiBpbmNsdWRlL3B1Yl90b29s
X3JlZGlyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gaW5jbHVkZS9wdWJfdG9vbF9yZWRpci5oCShyZXZpc2lv
biAxMjAyNSkKKysrIGluY2x1ZGUvcHViX3Rvb2xfcmVkaXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MzEsNiArMzEsOCBAQAogI2lmbmRlZiBfX1BVQl9UT09MX1JFRElSX0gKICNkZWZpbmUgX19QVUJf
VE9PTF9SRURJUl9ICiAKKyNpbmNsdWRlICJjb25maWcuaCIgICAgICAgICAgIC8qIERBUldJTl9W
RVJTICovCisKIC8qIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGZhY2lsaXRhdGUgZnVuY3Rpb24gcmVw
bGFjZW1lbnQgYW5kIHdyYXBwaW5nLgogCiAgICBGdW5jdGlvbiB3cmFwcGluZyBhbmQgZnVuY3Rp
b24gcmVwbGFjZW1lbnQgYXJlIHNpbWlsYXIgYnV0IG5vdApAQCAtMjQwLDEwICsyNDIsMTYgQEAK
IAogI2lmIGRlZmluZWQoVkdPX2xpbnV4KQogIyAgZGVmaW5lICBWR19aX0xJQkNfU09OQU1FICBs
aWJjWmRzb1phICAgICAgICAgICAgICAvLyBsaWJjLnNvKgotI2VsaWYgZGVmaW5lZChWR09fZGFy
d2luKQorCisjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pICYmIChEQVJXSU5fVkVSUyA8PSBEQVJX
SU5fMTBfNikKICMgIGRlZmluZSAgVkdfWl9MSUJDX1NPTkFNRSAgbGliU3lzdGVtWmRaYVpkZHls
aWIgICAgLy8gbGliU3lzdGVtLiouZHlsaWIKKworI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKSAm
JiAoREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzcpCisjICBkZWZpbmUgIFZHX1pfTElCQ19TT05B
TUUgIGxpYnN5c3RlbVp1Y1phWmRkeWxpYiAgIC8vIGxpYnN5c3RlbV9jKi5keWxpYgorCiAjZWxz
ZQogIyAgZXJyb3IgIlVua25vd24gcGxhdGZvcm0iCisKICNlbmRpZgogCiAvKiAtLS0gU29uYW1l
IG9mIHRoZSBHTlUgQysrIGxpYnJhcnkuIC0tLSAqLwpJbmRleDogY29uZmlndXJlLmluCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGNvbmZpZ3VyZS5pbgkocmV2aXNpb24gMTIwMjUpCisrKyBjb25maWd1cmUuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTI2NCw5ICsyNjQsMTYgQEAKIAkJICBERUZBVUxUX1NVUFA9ImRh
cndpbjEwLnN1cHAgJHtERUZBVUxUX1NVUFB9IgogCQkgIERFRkFVTFRfU1VQUD0iZGFyd2luMTAt
ZHJkLnN1cHAgJHtERUZBVUxUX1NVUFB9IgogCQkgIDs7Ci0gICAgICopIAorCSAgICAgMTEuKikK
KwkJICBBQ19NU0dfUkVTVUxUKFtEYXJ3aW4gMTEueCAoJHtrZXJuZWx9KSAvIE1hYyBPUyBYIDEw
LjcgTGlvbl0pCisJCSAgQUNfREVGSU5FKFtEQVJXSU5fVkVSU10sIERBUldJTl8xMF83LCBbRGFy
d2luIC8gTWFjIE9TIFggdmVyc2lvbl0pCisgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBjaGFu
Z2UgdGhlc2UgdG8geHgxMS5zdXBwCisJCSAgREVGQVVMVF9TVVBQPSJkYXJ3aW4xMS5zdXBwICR7
REVGQVVMVF9TVVBQfSIKKwkJICBERUZBVUxUX1NVUFA9ImRhcndpbjEwLWRyZC5zdXBwICR7REVG
QVVMVF9TVVBQfSIKKwkJICA7OworICAgICAgICAgICAgICopIAogCQkgIEFDX01TR19SRVNVTFQo
W3Vuc3VwcG9ydGVkICgke2tlcm5lbH0pXSkKLQkJICBBQ19NU0dfRVJST1IoW1ZhbGdyaW5kIHdv
cmtzIG9uIERhcndpbiA5LnggYW5kIDEwLnggKE1hYyBPUyBYIDEwLjUgYW5kIDEwLjYpXSkKKwkJ
ICBBQ19NU0dfRVJST1IoW1ZhbGdyaW5kIHdvcmtzIG9uIERhcndpbiA5LngsIDEwLngsIDExLngg
KE1hYyBPUyBYIDEwLjUvNi83KV0pCiAJCSAgOzsKIAllc2FjCiAgICAgICAgIDs7CkluZGV4OiBN
YWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBNYWtlZmlsZS5hbQkocmV2aXNpb24gMTIwMjUpCisr
KyBNYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogCWV4cC1zZ2No
ZWNrLnN1cHAgXAogCWRhcndpbjkuc3VwcCBkYXJ3aW45LWRyZC5zdXBwIFwKIAlkYXJ3aW4xMC5z
dXBwIGRhcndpbjEwLWRyZC5zdXBwIFwKKwlkYXJ3aW4xMS5zdXBwIFwKIAliaW9uaWMuc3VwcAog
REVGQVVMVF9TVVBQX0ZJTEVTID0gQERFRkFVTFRfU1VQUEAKIApAQCAtMTE2LDQgKzExNyw1IEBA
CiBjbGVhbi1sb2NhbDoKIAlybSAtcmYgJChpbnBsYWNlZGlyKQogCi0KKyMgTmVlZCBjb25maWcu
aCBpbiB0aGUgaW5zdGFsbGVkIHRyZWUsIHNpbmNlIHNvbWUgZmlsZXMgZGVwZW5kIG9uIGl0Citw
a2dpbmNsdWRlX0hFQURFUlMgPSBjb25maWcuaApJbmRleDogY29yZWdyaW5kL21fcmVwbGFjZW1h
bGxvYy92Z19yZXBsYWNlX21hbGxvYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNvcmVncmluZC9tX3JlcGxh
Y2VtYWxsb2MvdmdfcmVwbGFjZV9tYWxsb2MuYwkocmV2aXNpb24gMTIwMjUpCisrKyBjb3JlZ3Jp
bmQvbV9yZXBsYWNlbWFsbG9jL3ZnX3JlcGxhY2VfbWFsbG9jLmMJKHdvcmtpbmcgY29weSkKQEAg
LTI2Myw3ICsyNjMsNiBAQAogIEFMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBt
YWxsb2MsICAgICAgbWFsbG9jKTsKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQotIEFMTE9D
X29yX05VTEwoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBtYWxsb2MsICAgICAgbWFsbG9jKTsKICBB
TExPQ19vcl9OVUxMKFZHX1pfTElCQ19TT05BTUUsICAgICAgbWFsbG9jLCAgICAgIG1hbGxvYyk7
CiAgWk9ORUFMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX3pvbmVfbWFsbG9j
LCBtYWxsb2MpOwogCkBAIC0yOTIsMTMgKzI5MSwxMyBAQAogI2VsaWYgZGVmaW5lZChWR09fZGFy
d2luKQogIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCBpbnQpLCBHTlUgbWFuZ2xpbmcKICAjaWYg
VkdfV09SRFNJWkUgPT0gNAotICBBTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwg
X1pud2osICAgICAgICAgIF9fYnVpbHRpbl9uZXcpOwotICBBTExPQ19vcl9CT01CKFZHX1pfTElC
Q19TT05BTUUsICAgICAgX1pud2osICAgICAgICAgIF9fYnVpbHRpbl9uZXcpOworICAvL0FMTE9D
X29yX0JPTUIoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm53aiwgICAgICAgICAgX19idWlsdGlu
X25ldyk7CisgIC8vQUxMT0Nfb3JfQk9NQihWR19aX0xJQkNfU09OQU1FLCAgICAgIF9abndqLCAg
ICAgICAgICBfX2J1aWx0aW5fbmV3KTsKICAjZW5kaWYKICAvLyBvcGVyYXRvciBuZXcodW5zaWdu
ZWQgbG9uZyksIEdOVSBtYW5nbGluZwogICNpZiAxIC8vIEZJWE1FOiBpcyB0aGlzIHJpZ2h0Pwot
ICBBTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1pud20sICAgICAgICAgIF9f
YnVpbHRpbl9uZXcpOwotICBBTExPQ19vcl9CT01CKFZHX1pfTElCQ19TT05BTUUsICAgICAgX1pu
d20sICAgICAgICAgIF9fYnVpbHRpbl9uZXcpOworICAvL0FMTE9DX29yX0JPTUIoVkdfWl9MSUJT
VERDWFhfU09OQU1FLCBfWm53bSwgICAgICAgICAgX19idWlsdGluX25ldyk7CisgIC8vQUxMT0Nf
b3JfQk9NQihWR19aX0xJQkNfU09OQU1FLCAgICAgIF9abndtLCAgICAgICAgICBfX2J1aWx0aW5f
bmV3KTsKICAjZW5kaWYKIAogI2VuZGlmCkBAIC0zMjEsMTMgKzMyMCwxMyBAQAogI2VsaWYgZGVm
aW5lZChWR09fZGFyd2luKQogIC8vIG9wZXJhdG9yIG5ldyh1bnNpZ25lZCwgc3RkOjpub3Rocm93
X3QgY29uc3QmKSwgR05VIG1hbmdsaW5nCiAgI2lmIFZHX1dPUkRTSVpFID09IDQKLSAgQUxMT0Nf
b3JfTlVMTChWR19aX0xJQlNURENYWF9TT05BTUUsIF9abndqUktTdDlub3Rocm93X3QsICBfX2J1
aWx0aW5fbmV3KTsKLSAgQUxMT0Nfb3JfTlVMTChWR19aX0xJQkNfU09OQU1FLCAgICAgIF9abndq
UktTdDlub3Rocm93X3QsICBfX2J1aWx0aW5fbmV3KTsKKyAgLy9BTExPQ19vcl9OVUxMKFZHX1pf
TElCU1REQ1hYX1NPTkFNRSwgX1pud2pSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOwor
ICAvL0FMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWm53alJLU3Q5bm90aHJv
d190LCAgX19idWlsdGluX25ldyk7CiAgI2VuZGlmCiAgLy8gb3BlcmF0b3IgbmV3KHVuc2lnbmVk
IGxvbmcsIHN0ZDo6bm90aHJvd190IGNvbnN0JiksIEdOVSBtYW5nbGluZwogICNpZiAxIC8vIEZJ
WE1FOiBpcyB0aGlzIHJpZ2h0PwotICBBTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFN
RSwgX1pud21SS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9uZXcpOwotICBBTExPQ19vcl9OVUxM
KFZHX1pfTElCQ19TT05BTUUsICAgICAgX1pud21SS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9u
ZXcpOworICAvL0FMTE9DX29yX05VTEwoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm53bVJLU3Q5
bm90aHJvd190LCAgX19idWlsdGluX25ldyk7CisgIC8vQUxMT0Nfb3JfTlVMTChWR19aX0xJQkNf
U09OQU1FLCAgICAgIF9abndtUktTdDlub3Rocm93X3QsICBfX2J1aWx0aW5fbmV3KTsKICAjZW5k
aWYKIAogI2VuZGlmCkBAIC0zNTMsMTMgKzM1MiwxMyBAQAogI2VsaWYgZGVmaW5lZChWR09fZGFy
d2luKQogIC8vIG9wZXJhdG9yIG5ld1tdKHVuc2lnbmVkIGludCksIEdOVSBtYW5nbGluZwogICNp
ZiBWR19XT1JEU0laRSA9PSA0Ci0gIEFMTE9DX29yX0JPTUIoVkdfWl9MSUJTVERDWFhfU09OQU1F
LCBfWm5haiwgICAgICAgICAgICAgX19idWlsdGluX3ZlY19uZXcgKTsKLSAgQUxMT0Nfb3JfQk9N
QihWR19aX0xJQkNfU09OQU1FLCAgICAgIF9abmFqLCAgICAgICAgICAgICBfX2J1aWx0aW5fdmVj
X25ldyApOworICAvL0FMTE9DX29yX0JPTUIoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm5haiwg
ICAgICAgICAgICAgX19idWlsdGluX3ZlY19uZXcgKTsKKyAgLy9BTExPQ19vcl9CT01CKFZHX1pf
TElCQ19TT05BTUUsICAgICAgX1puYWosICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfbmV3ICk7
CiAgI2VuZGlmCiAgLy8gb3BlcmF0b3IgbmV3W10odW5zaWduZWQgbG9uZyksIEdOVSBtYW5nbGlu
ZwogICNpZiAxIC8vIEZJWE1FOiBpcyB0aGlzIHJpZ2h0PwotICBBTExPQ19vcl9CT01CKFZHX1pf
TElCU1REQ1hYX1NPTkFNRSwgX1puYW0sICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfbmV3ICk7
Ci0gIEFMTE9DX29yX0JPTUIoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWm5hbSwgICAgICAgICAg
ICAgX19idWlsdGluX3ZlY19uZXcgKTsKKyAgLy9BTExPQ19vcl9CT01CKFZHX1pfTElCU1REQ1hY
X1NPTkFNRSwgX1puYW0sICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfbmV3ICk7CisgIC8vQUxM
T0Nfb3JfQk9NQihWR19aX0xJQkNfU09OQU1FLCAgICAgIF9abmFtLCAgICAgICAgICAgICBfX2J1
aWx0aW5fdmVjX25ldyApOwogICNlbmRpZgogCiAjZW5kaWYKQEAgLTM4MiwxMyArMzgxLDEzIEBA
CiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4pCiAgLy8gb3BlcmF0b3IgbmV3W10odW5zaWduZWQs
IHN0ZDo6bm90aHJvd190IGNvbnN0JiksIEdOVSBtYW5nbGluZwogICNpZiBWR19XT1JEU0laRSA9
PSA0Ci0gIEFMTE9DX29yX05VTEwoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm5halJLU3Q5bm90
aHJvd190LCBfX2J1aWx0aW5fdmVjX25ldyApOwotICBBTExPQ19vcl9OVUxMKFZHX1pfTElCQ19T
T05BTUUsICAgICAgX1puYWpSS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19uZXcgKTsKKyAg
Ly9BTExPQ19vcl9OVUxMKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgX1puYWpSS1N0OW5vdGhyb3df
dCwgX19idWlsdGluX3ZlY19uZXcgKTsKKyAgLy9BTExPQ19vcl9OVUxMKFZHX1pfTElCQ19TT05B
TUUsICAgICAgX1puYWpSS1N0OW5vdGhyb3dfdCwgX19idWlsdGluX3ZlY19uZXcgKTsKICAjZW5k
aWYKICAvLyBvcGVyYXRvciBuZXdbXSh1bnNpZ25lZCBsb25nLCBzdGQ6Om5vdGhyb3dfdCBjb25z
dCYpLCBHTlUgbWFuZ2xpbmcKICAjaWYgMSAvLyBGSVhNRTogaXMgdGhpcyByaWdodD8KLSAgQUxM
T0Nfb3JfTlVMTChWR19aX0xJQlNURENYWF9TT05BTUUsIF9abmFtUktTdDlub3Rocm93X3QsIF9f
YnVpbHRpbl92ZWNfbmV3ICk7Ci0gIEFMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgICAg
ICBfWm5hbVJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX25ldyApOworICAvL0FMTE9DX29y
X05VTEwoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWm5hbVJLU3Q5bm90aHJvd190LCBfX2J1aWx0
aW5fdmVjX25ldyApOworICAvL0FMTE9DX29yX05VTEwoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBf
Wm5hbVJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVjX25ldyApOwogICNlbmRpZgogCiAjZW5k
aWYKQEAgLTQwNSw3ICs0MDQsNyBAQAogICAgdm9pZCBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgx
MDA0MCxzb25hbWUsZm5uYW1lKSAodm9pZCAqem9uZSwgdm9pZCAqcCkgIFwKICAgIHsgXAogICAg
ICAgaWYgKCFpbml0X2RvbmUpIGluaXQoKTsgXAotICAgICAgTUFMTE9DX1RSQUNFKCN2Z19yZXBs
YWNlbWVudCAiKCVwLCAlcClcbiIsIHpvbmUsIHAgKTsgXAorICAgICAgTUFMTE9DX1RSQUNFKCNm
bm5hbWUgIiglcCwgJXApXG4iLCB6b25lLCBwICk7IFwKICAgICAgIGlmIChwID09IE5VTEwpICBc
CiAgICAgICAgICByZXR1cm47IFwKICAgICAgICh2b2lkKVZBTEdSSU5EX05PTl9TSU1EX0NBTEwx
KCBpbmZvLnRsXyMjdmdfcmVwbGFjZW1lbnQsIHAgKTsgXApAQCAtNDE3LDE5ICs0MTYsMTcgQEAK
ICAgIHZvaWQgVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAwNTAsc29uYW1lLGZubmFtZSkgKHZv
aWQgKnApICBcCiAgICB7IFwKICAgICAgIGlmICghaW5pdF9kb25lKSBpbml0KCk7IFwKLSAgICAg
IE1BTExPQ19UUkFDRSgjdmdfcmVwbGFjZW1lbnQgIiglcClcbiIsIHAgKTsgXAorICAgICAgTUFM
TE9DX1RSQUNFKCNmbm5hbWUgIiglcClcbiIsIHAgKTsgXAogICAgICAgaWYgKHAgPT0gTlVMTCkg
IFwKICAgICAgICAgIHJldHVybjsgXAogICAgICAgKHZvaWQpVkFMR1JJTkRfTk9OX1NJTURfQ0FM
TDEoIGluZm8udGxfIyN2Z19yZXBsYWNlbWVudCwgcCApOyBcCiAgICB9CiAKLS8vIGZyZWUKICNp
ZiBkZWZpbmVkKFZHT19saW51eCkKICBGUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIGZyZWUs
ICAgICAgICAgICAgICAgICBmcmVlICk7CiAgRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICBm
cmVlLCAgICAgICAgICAgICAgICAgZnJlZSApOwogCiAjZWxpZiBkZWZpbmVkKFZHT19kYXJ3aW4p
Ci0gRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBmcmVlLCAgICAgICAgICAgICAgICAgZnJl
ZSApOwogIEZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgZnJlZSwgICAgICAgICAgICAgICAg
IGZyZWUgKTsKICBaT05FRlJFRShWR19aX0xJQkNfU09OQU1FLCAgIG1hbGxvY196b25lX2ZyZWUs
ICAgICBmcmVlICk7CiAKQEAgLTQ0NCw4ICs0NDEsOCBAQAogIEZSRUUoVkdfWl9MSUJDX1NPTkFN
RSwgICAgICAgY2ZyZWUsICAgICAgICAgICAgICAgIGZyZWUgKTsKIAogI2VsaWYgZGVmaW5lZChW
R09fZGFyd2luKQotIEZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgY2ZyZWUsICAgICAgICAg
ICAgICAgIGZyZWUgKTsKLSBGUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAgIGNmcmVlLCAgICAg
ICAgICAgICAgICBmcmVlICk7CisgLy9GUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIGNmcmVl
LCAgICAgICAgICAgICAgICBmcmVlICk7CisgLy9GUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAg
IGNmcmVlLCAgICAgICAgICAgICAgICBmcmVlICk7CiAKICNlbmRpZgogCkBAIC00NjIsOCArNDU5
LDggQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIC8vIG9wZXJhdG9yIGRlbGV0ZSh2
b2lkKiksIEdOVSBtYW5nbGluZwotIEZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCAgX1pkbFB2
LCAgICAgICAgICAgICAgIF9fYnVpbHRpbl9kZWxldGUgKTsKLSBGUkVFKFZHX1pfTElCQ19TT05B
TUUsICAgICAgIF9aZGxQdiwgICAgICAgICAgICAgICBfX2J1aWx0aW5fZGVsZXRlICk7CisgLy9G
UkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIF9aZGxQdiwgICAgICAgICAgICAgICBfX2J1aWx0
aW5fZGVsZXRlICk7CisgLy9GUkVFKFZHX1pfTElCQ19TT05BTUUsICAgICAgIF9aZGxQdiwgICAg
ICAgICAgICAgICBfX2J1aWx0aW5fZGVsZXRlICk7CiAKICNlbmRpZgogCkBAIC00NzcsOCArNDc0
LDggQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIC8vIG9wZXJhdG9yIGRlbGV0ZSh2
b2lkKiwgc3RkOjpub3Rocm93X3QgY29uc3QmKSwgR05VIG1hbmdsaW5nCi0gRlJFRShWR19aX0xJ
QlNURENYWF9TT05BTUUsIF9aZGxQdlJLU3Q5bm90aHJvd190LCAgX19idWlsdGluX2RlbGV0ZSAp
OwotIEZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICBfWmRsUHZSS1N0OW5vdGhyb3dfdCwgIF9f
YnVpbHRpbl9kZWxldGUgKTsKKyAvL0ZSRUUoVkdfWl9MSUJTVERDWFhfU09OQU1FLCBfWmRsUHZS
S1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9kZWxldGUgKTsKKyAvL0ZSRUUoVkdfWl9MSUJDX1NP
TkFNRSwgICAgICBfWmRsUHZSS1N0OW5vdGhyb3dfdCwgIF9fYnVpbHRpbl9kZWxldGUgKTsKIAog
I2VuZGlmCiAKQEAgLTQ5NSwxMSArNDkyLDExIEBACiAKICNlbGlmIGRlZmluZWQoVkdPX2Rhcndp
bikKICAvLyBvcGVyYXRvciBkZWxldGVbXSh2b2lkKiksIG5vdCBtYW5nbGVkIChmb3IgZ2NjIDIu
OTYpCi0gRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICAgX19idWlsdGluX3ZlY19kZWxldGUs
IF9fYnVpbHRpbl92ZWNfZGVsZXRlICk7Ci0gRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICAg
X19idWlsdGluX3ZlY19kZWxldGUsIF9fYnVpbHRpbl92ZWNfZGVsZXRlICk7CisgLy9GUkVFKFZH
X1pfTElCU1REQ1hYX1NPTkFNRSwgICBfX2J1aWx0aW5fdmVjX2RlbGV0ZSwgX19idWlsdGluX3Zl
Y19kZWxldGUgKTsKKyAvL0ZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAgIF9fYnVpbHRpbl92
ZWNfZGVsZXRlLCBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOwogIC8vIG9wZXJhdG9yIGRlbGV0ZVtd
KHZvaWQqKSwgR05VIG1hbmdsaW5nCi0gRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBfWmRh
UHYsICAgICAgICAgICAgICAgX19idWlsdGluX3ZlY19kZWxldGUgKTsKLSBGUkVFKFZHX1pfTElC
Q19TT05BTUUsICAgICAgIF9aZGFQdiwgICAgICAgICAgICAgICBfX2J1aWx0aW5fdmVjX2RlbGV0
ZSApOworIC8vRlJFRShWR19aX0xJQlNURENYWF9TT05BTUUsICBfWmRhUHYsICAgICAgICAgICAg
ICAgX19idWlsdGluX3ZlY19kZWxldGUgKTsKKyAvL0ZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAg
ICAgX1pkYVB2LCAgICAgICAgICAgICAgIF9fYnVpbHRpbl92ZWNfZGVsZXRlICk7CiAKICNlbmRp
ZgogCkBAIC01MTMsOCArNTEwLDggQEAKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQogIC8v
IG9wZXJhdG9yIGRlbGV0ZVtdKHZvaWQqLCBzdGQ6Om5vdGhyb3dfdCBjb25zdCYpLCBHTlUgbWFu
Z2xpbmcKLSBGUkVFKFZHX1pfTElCU1REQ1hYX1NPTkFNRSwgIF9aZGFQdlJLU3Q5bm90aHJvd190
LCBfX2J1aWx0aW5fdmVjX2RlbGV0ZSApOwotIEZSRUUoVkdfWl9MSUJDX1NPTkFNRSwgICAgICAg
X1pkYVB2UktTdDlub3Rocm93X3QsIF9fYnVpbHRpbl92ZWNfZGVsZXRlICk7CisgLy9GUkVFKFZH
X1pfTElCU1REQ1hYX1NPTkFNRSwgIF9aZGFQdlJLU3Q5bm90aHJvd190LCBfX2J1aWx0aW5fdmVj
X2RlbGV0ZSApOworIC8vRlJFRShWR19aX0xJQkNfU09OQU1FLCAgICAgICBfWmRhUHZSS1N0OW5v
dGhyb3dfdCwgX19idWlsdGluX3ZlY19kZWxldGUgKTsKIAogI2VuZGlmCiAKQEAgLTUzMSw3ICs1
MjgsNyBAQAogICAgICAgdm9pZCogdjsgXAogICAgICAgXAogICAgICAgaWYgKCFpbml0X2RvbmUp
IGluaXQoKTsgXAotICAgICAgTUFMTE9DX1RSQUNFKCJjYWxsb2MoJXAsICVsbHUsJWxsdSkiLCB6
b25lLCAoVUxvbmcpbm1lbWIsIChVTG9uZylzaXplICk7IFwKKyAgICAgIE1BTExPQ19UUkFDRSgi
em9uZV9jYWxsb2MoJXAsICVsbHUsJWxsdSkiLCB6b25lLCAoVUxvbmcpbm1lbWIsIChVTG9uZylz
aXplICk7IFwKICAgICAgIFwKICAgICAgIHYgPSAodm9pZCopVkFMR1JJTkRfTk9OX1NJTURfQ0FM
TDIoIGluZm8udGxfY2FsbG9jLCBubWVtYiwgc2l6ZSApOyBcCiAgICAgICBNQUxMT0NfVFJBQ0Uo
IiA9ICVwXG4iLCB2ICk7IFwKQEAgLTU4Nyw3ICs1ODQsNyBAQAogICAgICAgdm9pZCogdjsgXAog
ICAgICAgXAogICAgICAgaWYgKCFpbml0X2RvbmUpIGluaXQoKTsgXAotICAgICAgTUFMTE9DX1RS
QUNFKCJyZWFsbG9jKCVwLCVwLCVsbHUpIiwgem9uZSwgcHRyViwgKFVMb25nKW5ld19zaXplICk7
IFwKKyAgICAgIE1BTExPQ19UUkFDRSgiem9uZV9yZWFsbG9jKCVwLCVwLCVsbHUpIiwgem9uZSwg
cHRyViwgKFVMb25nKW5ld19zaXplICk7IFwKICAgICAgIFwKICAgICAgIGlmIChwdHJWID09IE5V
TEwpIFwKICAgICAgICAgIC8qIFdlIG5lZWQgdG8gY2FsbCBhIG1hbGxvYy1saWtlIGZ1bmN0aW9u
OyBzbyBsZXQncyB1c2UgXApAQCAtNjUzLDcgKzY1MCw3IEBACiAgICAgICB2b2lkKiB2OyBcCiAg
ICAgICBcCiAgICAgICBpZiAoIWluaXRfZG9uZSkgaW5pdCgpOyBcCi0gICAgICBNQUxMT0NfVFJB
Q0UoIm1lbWFsaWduKCVwLCBhbCAlbGx1LCBzaXplICVsbHUpIiwgXAorICAgICAgTUFMTE9DX1RS
QUNFKCJ6b25lX21lbWFsaWduKCVwLCBhbCAlbGx1LCBzaXplICVsbHUpIiwgXAogICAgICAgICAg
ICAgICAgICAgIHpvbmUsIChVTG9uZylhbGlnbm1lbnQsIChVTG9uZyluICk7ICBcCiAgICAgICBc
CiAgICAgICAvKiBSb3VuZCB1cCB0byBtaW5pbXVtIGFsaWdubWVudCBpZiBuZWNlc3NhcnkuICov
IFwKQEAgLTc1OSw3ICs3NTYsNyBAQAogIE1BTExPUFQoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9w
dCk7CiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLSBNQUxMT1BUKFZHX1pfTElCQ19TT05B
TUUsIG1hbGxvcHQpOworIC8vTUFMTE9QVChWR19aX0xJQkNfU09OQU1FLCBtYWxsb3B0KTsKIAog
I2VuZGlmCiAKQEAgLTgwMSw3ICs3OTgsNyBAQAogIE1BTExPQ19UUklNKFZHX1pfTElCQ19TT05B
TUUsIG1hbGxvY190cmltKTsKIAogI2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQotIE1BTExPQ19U
UklNKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY190cmltKTsKKyAvL01BTExPQ19UUklNKFZHX1pf
TElCQ19TT05BTUUsIG1hbGxvY190cmltKTsKIAogI2VuZGlmCiAKQEAgLTgzOCw3ICs4MzUsNyBA
QAogIFBPU0lYX01FTUFMSUdOKFZHX1pfTElCQ19TT05BTUUsIHBvc2l4X21lbWFsaWduKTsKIAog
I2VsaWYgZGVmaW5lZChWR09fZGFyd2luKQotIFBPU0lYX01FTUFMSUdOKFZHX1pfTElCQ19TT05B
TUUsIHBvc2l4X21lbWFsaWduKTsKKyAvL1BPU0lYX01FTUFMSUdOKFZHX1pfTElCQ19TT05BTUUs
IHBvc2l4X21lbWFsaWduKTsKIAogI2VuZGlmCiAKQEAgLTg2OCw3ICs4NjUsNyBAQAogIE1BTExP
Q19VU0FCTEVfU0laRShWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfc2l6ZSk7CiAKICNlbGlmIGRl
ZmluZWQoVkdPX2RhcndpbikKLSBNQUxMT0NfVVNBQkxFX1NJWkUoVkdfWl9MSUJDX1NPTkFNRSwg
bWFsbG9jX3VzYWJsZV9zaXplKTsKKyAvL01BTExPQ19VU0FCTEVfU0laRShWR19aX0xJQkNfU09O
QU1FLCBtYWxsb2NfdXNhYmxlX3NpemUpOwogIE1BTExPQ19VU0FCTEVfU0laRShWR19aX0xJQkNf
U09OQU1FLCBtYWxsb2Nfc2l6ZSk7CiAKICNlbmRpZgpAQCAtOTE4LDcgKzkxNSw3IEBACiAgTUFM
TE9DX1NUQVRTKFZHX1pfTElCQ19TT05BTUUsIG1hbGxvY19zdGF0cyk7CiAKICNlbGlmIGRlZmlu
ZWQoVkdPX2RhcndpbikKLSBNQUxMT0NfU1RBVFMoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX3N0
YXRzKTsKKyAvL01BTExPQ19TVEFUUyhWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfc3RhdHMpOwog
CiAjZW5kaWYKIApAQCAtOTQ0LDM0ICs5NDEsMzYgQEAKICBNQUxMSU5GTyhWR19aX0xJQkNfU09O
QU1FLCBtYWxsaW5mbyk7CiAKICNlbGlmIGRlZmluZWQoVkdPX2RhcndpbikKLSBNQUxMSU5GTyhW
R19aX0xJQkNfU09OQU1FLCBtYWxsaW5mbyk7CisgLy9NQUxMSU5GTyhWR19aX0xJQkNfU09OQU1F
LCBtYWxsaW5mbyk7CiAKICNlbmRpZgogCiAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tIERhcndpbiB6
b25lIHN0dWZmIC0tLS0tLS0tLS0tLS0tLS0tLSovCisKICNpZiBkZWZpbmVkKFZHT19kYXJ3aW4p
CiAKIHN0YXRpYyB2a2lfbWFsbG9jX3pvbmVfdCB2Z19kZWZhdWx0X3pvbmUgPSB7Ci0gICAgTlVM
TCwgLy8gcmVzZXJ2ZWQKLSAgICBOVUxMLCAvLyByZXNlcnZlZAotICAgIE5VTEwsIC8vIEdyUCBm
aXhtZSBtYWxsb2Nfc2l6ZQorICAgIE5VTEwsIC8vIHJlc2VydmVkMQorICAgIE5VTEwsIC8vIHJl
c2VydmVkMgorICAgIE5VTEwsIC8vIEdyUCBmaXhtZTogbWFsbG9jX3NpemUKICAgICAodm9pZCop
VkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAwMjAsVkdfWl9MSUJDX1NPTkFNRSxtYWxsb2Nfem9u
ZV9tYWxsb2MpLCAKICAgICAodm9pZCopVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAwNjAsVkdf
Wl9MSUJDX1NPTkFNRSxtYWxsb2Nfem9uZV9jYWxsb2MpLCAKICAgICAodm9pZCopVkdfUkVQTEFD
RV9GVU5DVElPTl9FWlUoMTAxMzAsVkdfWl9MSUJDX1NPTkFNRSxtYWxsb2Nfem9uZV92YWxsb2Mp
LCAKICAgICAodm9pZCopVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAwNDAsVkdfWl9MSUJDX1NP
TkFNRSxtYWxsb2Nfem9uZV9mcmVlKSwgCiAgICAgKHZvaWQqKVZHX1JFUExBQ0VfRlVOQ1RJT05f
RVpVKDEwMDgwLFZHX1pfTElCQ19TT05BTUUsbWFsbG9jX3pvbmVfcmVhbGxvYyksIAotICAgIE5V
TEwsIC8vIEdyUCBmaXhtZSBkZXN0cm95CisgICAgTlVMTCwgLy8gR3JQIGZpeG1lOiBkZXN0cm95
CiAgICAgIlZhbGdyaW5kTWFsbG9jWm9uZSIsIAogICAgIE5VTEwsIC8vIGJhdGNoX21hbGxvYwog
ICAgIE5VTEwsIC8vIGJhdGNoX2ZyZWUKLSAgICBOVUxMLCAvLyBHclAgZml4bWUgaW50cm9zcGVj
dAorICAgIE5VTEwsIC8vIEdyUCBmaXhtZTogaW50cm9zcGVjdAogICAgIDIsICAvLyB2ZXJzaW9u
IChHclAgZml4bWUgMz8pCi0gICAgLy8gREREOiB0aGlzIGZpZWxkIGV4aXN0cyBpbiBNYWMgT1Mg
MTAuNiwgYnV0IG5vdCAxMC41LgotICAgICNpZiAwCi0gICAgKHZvaWQqKVZHX1JFUExBQ0VfRlVO
Q1RJT05fWlUoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX3pvbmVfbWVtYWxpZ24pCi0gICAgI2Vu
ZGlmCisgICAgTlVMTCwgLyogbWVtYWxpZ24gKi8gICAvLyBEREQ6IHRoaXMgZmllbGQgZXhpc3Rz
IGluIE1hYyBPUyAxMC42LCBidXQgbm90IDEwLjUuCisgICAgTlVMTCwgLyogZnJlZV9kZWZpbml0
ZV9zaXplICovCisgICAgTlVMTCwgLyogcHJlc3N1cmVfcmVsaWVmICovCiB9OwogCisKICNkZWZp
bmUgREVGQVVMVF9aT05FKHNvbmFtZSwgZm5uYW1lKSBcCiAgICBcCiAgICB2b2lkICpWR19SRVBM
QUNFX0ZVTkNUSU9OX0VaVSgxMDIxMCxzb25hbWUsZm5uYW1lKSAoIHZvaWQgKTsgXApAQCAtOTgw
LDIzICs5NzksMzYgQEAKICAgICAgIHJldHVybiAmdmdfZGVmYXVsdF96b25lOyBcCiAgICB9CiAK
LURFRkFVTFRfWk9ORShWR19aX0xJQkNfU09OQU1FLCBtYWxsb2Nfem9uZV9mcm9tX3B0cik7CiBE
RUZBVUxUX1pPTkUoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX2RlZmF1bHRfem9uZSk7CiAKKwor
I2RlZmluZSBaT05FX0ZST01fUFRSKHNvbmFtZSwgZm5uYW1lKSBcCisgICBcCisgICB2b2lkICpW
R19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDIyMCxzb25hbWUsZm5uYW1lKSAoIHZvaWQqIHB0ciAp
OyBcCisgICB2b2lkICpWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDIyMCxzb25hbWUsZm5uYW1l
KSAoIHZvaWQqIHB0ciApICBcCisgICB7IFwKKyAgICAgIHJldHVybiAmdmdfZGVmYXVsdF96b25l
OyBcCisgICB9CisKK1pPTkVfRlJPTV9QVFIoVkdfWl9MSUJDX1NPTkFNRSwgbWFsbG9jX3pvbmVf
ZnJvbV9wdHIpOworCisKIC8vIEdyUCBmaXhtZSBieXBhc3MgbGliYydzIHVzZSBvZiB6b25lLT5p
bnRyb3NwZWN0LT5jaGVjawogI2RlZmluZSBaT05FX0NIRUNLKHNvbmFtZSwgZm5uYW1lKSBcCiAg
ICBcCi0gICBpbnQgVkdfUkVQTEFDRV9GVU5DVElPTl9FWlUoMTAyMjAsc29uYW1lLGZubmFtZSko
dm9pZCogem9uZSk7IFwKLSAgIGludCBWR19SRVBMQUNFX0ZVTkNUSU9OX0VaVSgxMDIyMCxzb25h
bWUsZm5uYW1lKSh2b2lkKiB6b25lKSAgXAorICAgaW50IFZHX1JFUExBQ0VfRlVOQ1RJT05fRVpV
KDEwMjMwLHNvbmFtZSxmbm5hbWUpKHZvaWQqIHpvbmUpOyBcCisgICBpbnQgVkdfUkVQTEFDRV9G
VU5DVElPTl9FWlUoMTAyMzAsc29uYW1lLGZubmFtZSkodm9pZCogem9uZSkgIFwKICAgIHsgXAog
ICAgICAgcmV0dXJuIDE7IFwKICAgIH0KIAotWk9ORV9DSEVDSyhWR19aX0xJQkNfU09OQU1FLCBt
YWxsb2Nfem9uZV9jaGVjayk7ICAgIAorLy9aT05FX0NIRUNLKFZHX1pfTElCQ19TT05BTUUsIG1h
bGxvY196b25lX2NoZWNrKTsgICAgCiAKICNlbmRpZiAvKiBkZWZpbmVkKFZHT19kYXJ3aW4pICov
CiAKIAorLyotLS0tLS0tLS0tLS0tLS0tLS0gKHN0YXJ0dXAgcmVsYXRlZCkgLS0tLS0tLS0tLS0t
LS0tLS0tKi8KKwogLyogQWxsIHRoZSBjb2RlIGluIGhlcmUgaXMgdW51c2VkIHVudGlsIHRoaXMg
ZnVuY3Rpb24gaXMgY2FsbGVkICovCiAKIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkKSW5k
ZXg6IGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCShyZXZpc2lvbiAx
MjAyNSkKKysrIGNvcmVncmluZC9tX3N5c3dyYXAvcHJpdl9zeXN3cmFwLWRhcndpbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNTgsMTggKzM1OCwxOCBAQAogLy8gb2xkIG5ld19zeXN0ZW1fc2hhcmVk
X3JlZ2lvbnMKIC8vIG9sZCBzaGFyZWRfcmVnaW9uX21hcF9maWxlX25wCiAvLyBvbGQgc2hhcmVk
X3JlZ2lvbl9tYWtlX3ByaXZhdGVfbnAKLS8vIE5ZSSBfX3B0aHJlYWRfbXV0ZXhfZGVzdHJveSAz
MDEKLS8vIE5ZSSBfX3B0aHJlYWRfbXV0ZXhfaW5pdCAzMDIKLS8vIE5ZSSBfX3B0aHJlYWRfbXV0
ZXhfbG9jayAzMDMKLS8vIE5ZSSBfX3B0aHJlYWRfbXV0ZXhfdHJ5bG9jayAzMDQKLS8vIE5ZSSBf
X3B0aHJlYWRfbXV0ZXhfdW5sb2NrIDMwNQotLy8gTllJIF9fcHRocmVhZF9jb25kX2luaXQgMzA2
Ci0vLyBOWUkgX19wdGhyZWFkX2NvbmRfZGVzdHJveSAzMDcKLS8vIE5ZSSBfX3B0aHJlYWRfY29u
ZF9icm9hZGNhc3QgMzA4CitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX211dGV4d2FpdCk7
ICAgICAgIC8vIDMwMSAvLyBuZXcgaW4gMTAuNyA/CitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5
bmNoX211dGV4ZHJvcCk7ICAgICAgIC8vIDMwMiAvLyBuZXcgaW4gMTAuNyA/CitERUNMX1RFTVBM
QVRFKGRhcndpbiwgcHN5bmNoX2N2YnJvYWQpOyAgICAgICAgIC8vIDMwMyAvLyBuZXcgaW4gMTAu
NyA/CitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX2N2c2lnbmFsKTsgICAgICAgIC8vIDMw
NCAvLyBuZXcgaW4gMTAuNyA/CitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX2N2d2FpdCk7
ICAgICAgICAgIC8vIDMwNSAvLyBuZXcgaW4gMTAuNyA/CitERUNMX1RFTVBMQVRFKGRhcndpbiwg
cHN5bmNoX3J3X3JkbG9jayk7ICAgICAgIC8vIDMwNiAvLyBuZXcgaW4gMTAuNyA/CitERUNMX1RF
TVBMQVRFKGRhcndpbiwgcHN5bmNoX3J3X3dybG9jayk7ICAgICAgIC8vIDMwNyAvLyBuZXcgaW4g
MTAuNyA/CitERUNMX1RFTVBMQVRFKGRhcndpbiwgcHN5bmNoX3J3X3VubG9jayk7ICAgICAgIC8v
IDMwOCAvLyBuZXcgaW4gMTAuNyA/CiAvLyBOWUkgX19wdGhyZWFkX2NvbmRfc2lnbmFsIDMwOQog
Ly8gTllJIGdldHNpZCAzMTAKIC8vIE5ZSSBzZXR0aWRfd2l0aF9waWQgMzExCi0vLyBOWUkgX19w
dGhyZWFkX2NvbmRfdGltZWR3YWl0IDMxMgorREVDTF9URU1QTEFURShkYXJ3aW4sIHBzeW5jaF9j
dmNscnByZXBvc3QpOyAgICAvLyAzMTIgLy8gbmV3IGluIDEwLjcgPwogLy8gTllJIGFpb19mc3lu
YyAzMTMKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBhaW9fcmV0dXJuKTsgICAgICAgICAgICAgLy8g
MzE0CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgYWlvX3N1c3BlbmQpOyAgICAgICAgICAgIC8vIDMx
NQpAQCAtNDE2LDcgKzQxNiw5IEBACiAvLyBOWUkgc2V0YXVpZCAzNTQKIC8vIE5ZSSBnZXRhdWRp
dCAzNTUKIC8vIE5ZSSBzZXRhdWRpdCAzNTYKLS8vIE5ZSSBnZXRhdWRpdF9hZGRyIDM1NworI2lm
IERBUldJTl9WRVJTID49IERBUldJTl8xMF83CitERUNMX1RFTVBMQVRFKGRhcndpbiwgZ2V0YXVk
aXRfYWRkcikgICAgICAgICAgICAvLyAzNTcKKyNlbmRpZgogLy8gTllJIHNldGF1ZGl0X2FkZHIg
MzU4CiAvLyBOWUkgYXVkaXRjdGwgMzU5CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgYnNkdGhyZWFk
X2NyZWF0ZSk7ICAgICAgICAvLyAzNjAKQEAgLTQ5MSw2ICs0OTMsNyBAQAogLy8gTllJIGF1ZGl0
X3Nlc3Npb25fam9pbiA0MjkKIAogLy8gTWFjaCBtZXNzYWdlIGhlbHBlcnMKK0RFQ0xfVEVNUExB
VEUoZGFyd2luLCBtYWNoX3BvcnRfc2V0X2NvbnRleHQpOwogREVDTF9URU1QTEFURShkYXJ3aW4s
IGhvc3RfaW5mbyk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgaG9zdF9wYWdlX3NpemUpOwogREVD
TF9URU1QTEFURShkYXJ3aW4sIGhvc3RfZ2V0X2lvX21hc3Rlcik7CkBAIC01MTIsNiArNTE1LDcg
QEAKIERFQ0xfVEVNUExBVEUoZGFyd2luLCBtYWNoX3BvcnRfc2V0X2F0dHJpYnV0ZXMpOwogREVD
TF9URU1QTEFURShkYXJ3aW4sIG1hY2hfcG9ydF9pbnNlcnRfbWVtYmVyKTsKIERFQ0xfVEVNUExB
VEUoZGFyd2luLCB0YXNrX2dldF9zcGVjaWFsX3BvcnQpOworREVDTF9URU1QTEFURShkYXJ3aW4s
IHRhc2tfZ2V0X2V4Y2VwdGlvbl9wb3J0cyk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgc2VtYXBo
b3JlX2NyZWF0ZSk7CiBERUNMX1RFTVBMQVRFKGRhcndpbiwgc2VtYXBob3JlX2Rlc3Ryb3kpOwog
REVDTF9URU1QTEFURShkYXJ3aW4sIG1hY2hfcG9ydHNfbG9va3VwKTsKSW5kZXg6IGNvcmVncmlu
ZC9tX3N5c3dyYXAvc3lzd3JhcC1hbWQ2NC1kYXJ3aW4uYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb3JlZ3Jp
bmQvbV9zeXN3cmFwL3N5c3dyYXAtYW1kNjQtZGFyd2luLmMJKHJldmlzaW9uIDEyMDI1KQorKysg
Y29yZWdyaW5kL21fc3lzd3JhcC9zeXN3cmFwLWFtZDY0LWRhcndpbi5jCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpZiBkZWZpbmVkKFZHUF9hbWQ2NF9kYXJ3aW4pCiAKKyNp
bmNsdWRlICJjb25maWcuaCIgICAgICAgICAgICAgICAgLy8gREFSV0lOX1ZFUlMKICNpbmNsdWRl
ICJwdWJfY29yZV9iYXNpY3MuaCIKICNpbmNsdWRlICJwdWJfY29yZV92a2kuaCIKICNpbmNsdWRl
ICJwdWJfY29yZV9saWJjc2V0am1wLmgiICAgLy8gdG8ga2VlcCBfdGhyZWFkc3RhdGUuaCBoYXBw
eQpAQCAtMjgyLDcgKzI4Myw3IEBACiAgICAgICAgICAgICAgICAgICAvLyBvdGhlciB2YWx1ZXMg
c3RheSB3aGVyZSB0aGV5IGFyZSBpbiByZWdpc3RlcnMKICIgICBwdXNoICQwXG4iICAgIC8vIGZh
a2UgcmV0dXJuIGFkZHJlc3MKICIgICBqbXAgX3B0aHJlYWRfaGlqYWNrXG4iCi0gICAgKTsKKyk7
CiAKIAogCkBAIC0zNzIsNyArMzczLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAvLyBvdGhl
ciB2YWx1ZXMgc3RheSB3aGVyZSB0aGV5IGFyZSBpbiByZWdpc3RlcnMKICIgICBwdXNoICQwXG4i
ICAgICAgICAvLyBmYWtlIHJldHVybiBhZGRyZXNzCiAiICAgam1wIF93cXRocmVhZF9oaWphY2tc
biIKLSAgICApOworKTsKIAogCiAvKiAgd3F0aHJlYWQgbm90ZTogVGhlIGtlcm5lbCBtYXkgY3Jl
YXRlIG9yIGRlc3Ryb3kgcHRocmVhZHMgaW4gdGhlIApAQCAtNDAxLDEyICs0MDIsMjYgQEAKICAg
ICAgIGxvY2suICovCiAgICBWR18oYWNxdWlyZV9CaWdMb2NrX0xMKSgid3F0aHJlYWRfaGlqYWNr
Iik7CiAKKyAgIGlmICgwKSBWR18ocHJpbnRmKSgid3F0aHJlYWRfaGlqYWNrOiBzZWxmICUjbHgs
IGtwb3J0ICUjbHgsICIKKyAgICAgICAgICAgICAgICAgICAgICAic3RhY2thZGRyICUjbHgsIHdv
cmtpdGVtICUjbHgsIHJldXNlICVkLCBzcCAlI2x4XG4iLCAKKyAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLCBrcG9ydCwgc3RhY2thZGRyLCB3b3JraXRlbSwgcmV1c2UsIHNwKTsKKwogICAgLyog
U3RhcnQgdGhlIHRocmVhZCB3aXRoIGFsbCBzaWduYWxzIGJsb2NrZWQuICBWR18oc2NoZWR1bGVy
KSB3aWxsCiAgICAgICBzZXQgdGhlIG1hc2sgY29ycmVjdGx5IHdoZW4gd2UgZmluYWxseSBnZXQg
dGhlcmUuICovCiAgICBWR18oc2lnZmlsbHNldCkoJmJsb2NrYWxsKTsKICAgIFZHXyhzaWdwcm9j
bWFzaykoVktJX1NJR19TRVRNQVNLLCAmYmxvY2thbGwsIE5VTEwpOwogCiAgICBpZiAocmV1c2Up
IHsKKworICAgICAvKiBGb3Igd2hhdGV2ZXIgcmVhc29uLCB0c3QtPm9zX3N0YXRlLnB0aHJlYWQg
YXBwZWFyIHRvIGhhdmUgYQorICAgICAgICBjb25zdGFudCBvZmZzZXQgb2YgOTYgb24gMTAuNywg
YnV0IHplcm8gb24gMTAuNiBhbmQgMTAuNS4gIE5vCisgICAgICAgIGlkZWEgd2h5LiAqLworIyAg
ICAgIGlmIERBUldJTl9WRVJTIDw9IERBUldJTl8xMF82CisgICAgICAgVVdvcmQgbWFnaWNfZGVs
dGEgPSAwOworIyAgICAgIGVsaWYgREFSV0lOX1ZFUlMgPT0gREFSV0lOXzEwXzcKKyAgICAgICBV
V29yZCBtYWdpY19kZWx0YSA9IDB4NjA7CisjICAgICAgZW5kaWYKKwogICAgICAgIC8vIFRoaXMg
dGhyZWFkIGFscmVhZHkgZXhpc3RzOyB3ZSdyZSBtZXJlbHkgcmUtZW50ZXJpbmcgCiAgICAgICAg
Ly8gYWZ0ZXIgbGVhdmluZyB2aWEgd29ya3Ffb3BzKFdRT1BTX1RIUkVBRF9SRVRVUk4pLiAKICAg
ICAgICAvLyBEb24ndCBhbGxvY2F0ZSBhbnkgViB0aHJlYWQgcmVzb3VyY2VzLgpAQCAtNDE2LDgg
KzQzMSwxNCBAQAogICAgICAgIHZnX2Fzc2VydChtYWNoX3RocmVhZF9zZWxmKCkgPT0ga3BvcnQp
OwogCiAgICAgICAgdHN0ID0gVkdfKGdldF9UaHJlYWRTdGF0ZSkodGlkKTsKKworICAgICAgIGlm
ICgwKSBWR18ocHJpbnRmKSgid3F0aHJlYWRfaGlqYWNrIHJldXNlICVzOiB0aWQgJWQsIHRzdCAl
cCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAidHN0LT5vc19zdGF0ZS5wdGhyZWFkICUj
bHhcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRzdC0+b3Nfc3RhdGUucHRocmVhZCA9
PSBzZWxmID8gIlNBTUUiIDogIkRJRkYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQs
IHRzdCwgdHN0LT5vc19zdGF0ZS5wdGhyZWFkKTsKKwogICAgICAgIHZleCA9ICZ0c3QtPmFyY2gu
dmV4OwotICAgICAgIHZnX2Fzc2VydCh0c3QtPm9zX3N0YXRlLnB0aHJlYWQgPT0gc2VsZik7Cisg
ICAgICAgdmdfYXNzZXJ0KHRzdC0+b3Nfc3RhdGUucHRocmVhZCAtIG1hZ2ljX2RlbHRhID09IHNl
bGYpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgLy8gVGhpcyBpcyBhIG5ldyB0aHJlYWQuCkBA
IC00NTUsNiArNDc2LDcgQEAKICAgICAgICAgIHJpZ2h0IG5vdy4gKi8KICAgICAgIFZHXyhyZWxl
YXNlX0JpZ0xvY2tfTEwpKCJ3cXRocmVhZF9oaWphY2soMSkiKTsKICAgICAgIE1MXyh3cXRocmVh
ZF9jb250aW51ZV9OT1JFVFVSTikodHN0LT50aWQpOwordmdfYXNzZXJ0KDApOwogICAgfSAKICAg
IGVsc2UgewogICAgICAgLy8gUmVjb3JkIHRocmVhZCdzIHN0YWNrIGFuZCBNYWNoIHBvcnQgYW5k
IHB0aHJlYWQgc3RydWN0CkBAIC00OTgsNiArNTIwLDcgQEAKICAgICAgIFZHXyhyZWxlYXNlX0Jp
Z0xvY2tfTEwpKCJ3cXRocmVhZF9oaWphY2soMikiKTsKICAgICAgIGNhbGxfb25fbmV3X3N0YWNr
XzBfMSh0c3QtPm9zX3N0YXRlLnZhbGdyaW5kX3N0YWNrX2luaXRfU1AsIDAsIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0X3RocmVhZF9OT1JFVFVSTiwgKFdvcmQpdHN0KTsKK3Zn
X2Fzc2VydCgwKTsKICAgIH0KIAogICAgLypOT1RSRUFDSEVEKi8KSW5kZXg6IGNvcmVncmluZC9t
X3N5c3dyYXAvc3lzd3JhcC1kYXJ3aW4uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb3JlZ3JpbmQvbV9zeXN3
cmFwL3N5c3dyYXAtZGFyd2luLmMJKHJldmlzaW9uIDEyMDI1KQorKysgY29yZWdyaW5kL21fc3lz
d3JhcC9zeXN3cmFwLWRhcndpbi5jCSh3b3JraW5nIGNvcHkpCkBAIC00MzE2LDcgKzQzMTYsODAg
QEAKICAgIG1hY2hfbXNnOiBtZXNzYWdlcyB0byBhIHRhc2sKICAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCisv
LyBKUlMgMjAxMS1BdWctMjU6IGp1c3QgZ3Vlc3NpbmcgaGVyZS4gIEkgaGF2ZSBubyBjbGVhciBp
ZGVhIGhvdworLy8gdGhlc2Ugc3RydWN0cyBhcmUgZGVyaXZlZC4gIFRoZXkgb2J2aW91c2x5IHJl
bGF0ZSB0byB0aGUgdmFyaW91cworLy8gLmRlZiBmaWxlcyBpbiB0aGUgeG51IHNvdXJjZXMsIGFu
ZCBjYW4gYWxzbyBiZSBmb3VuZCBpbiBzb21lCisvLyBmb3JtIGluIC91c3IvaW5jbHVkZS9tYWNo
LyouaCwgYnV0IG5vdCBzdXJlIGhvdyB0aGVzZSBhbGwKKy8vIHJlbGF0ZSB0byBlYWNoIG90aGVy
LgogCitQUkUobWFjaF9wb3J0X3NldF9jb250ZXh0KQoreworI3ByYWdtYSBwYWNrKDQpCisgICB0
eXBlZGVmIHN0cnVjdCB7CisgICAgICBtYWNoX21zZ19oZWFkZXJfdCBIZWFkOworICAgICAgTkRS
X3JlY29yZF90IE5EUjsKKyAgICAgIG1hY2hfcG9ydF9uYW1lX3QgbmFtZTsKKyAgICAgIG1hY2hf
dm1fYWRkcmVzc190IGNvbnRleHQ7CisgICB9IFJlcXVlc3Q7CisjcHJhZ21hIHBhY2soKQorCisg
ICBSZXF1ZXN0ICpyZXEgPSAoUmVxdWVzdCAqKUFSRzE7CisKKyAgIFBSSU5UKCJtYWNoX3BvcnRf
c2V0X2NvbnRleHQoJXMsICVzLCAweCVsbHgpIiwKKyAgICAgICAgbmFtZV9mb3JfcG9ydChNQUNI
X1JFTU9URSksIAorICAgICAgICBuYW1lX2Zvcl9wb3J0KHJlcS0+bmFtZSksIHJlcS0+Y29udGV4
dCk7CisKKyAgIEFGVEVSID0gUE9TVF9GTihtYWNoX3BvcnRfc2V0X2NvbnRleHQpOworfQorCitQ
T1NUKG1hY2hfcG9ydF9zZXRfY29udGV4dCkKK3sKKyNwcmFnbWEgcGFjayg0KQorICAgdHlwZWRl
ZiBzdHJ1Y3QgeworICAgICAgbWFjaF9tc2dfaGVhZGVyX3QgSGVhZDsKKyAgICAgIE5EUl9yZWNv
cmRfdCBORFI7CisgICAgICBrZXJuX3JldHVybl90IFJldENvZGU7CisgICB9IFJlcGx5OworI3By
YWdtYSBwYWNrKCkKK30KKworCisvLyBKUlMgMjAxMS1BdWctMjUgRklYTUUgY29tcGxldGVseSBi
b2d1cworUFJFKHRhc2tfZ2V0X2V4Y2VwdGlvbl9wb3J0cykKK3sKKyNwcmFnbWEgcGFjayg0KQor
ICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgbWFjaF9tc2dfaGVhZGVyX3QgSGVhZDsKKyAgICAg
IE5EUl9yZWNvcmRfdCBORFI7CisgICAgICBleGNlcHRpb25fbWFza190IGV4Y2VwdGlvbl9tYXNr
OworICAgfSBSZXF1ZXN0OworI3ByYWdtYSBwYWNrKCkKKworICAgUFJJTlQoInRhc2tfZ2V0X2V4
Y2VwdGlvbl9wb3J0cyhCT0dVUykiKTsKKyAgIEFGVEVSID0gUE9TVF9GTih0YXNrX2dldF9leGNl
cHRpb25fcG9ydHMpOworfQorCitQT1NUKHRhc2tfZ2V0X2V4Y2VwdGlvbl9wb3J0cykKK3sKKyNw
cmFnbWEgcGFjayg0KQorICAgdHlwZWRlZiBzdHJ1Y3QgeworICAgICAgbWFjaF9tc2dfaGVhZGVy
X3QgSGVhZDsKKyAgICAgIC8qIHN0YXJ0IG9mIHRoZSBrZXJuZWwgcHJvY2Vzc2VkIGRhdGEgKi8K
KyAgICAgIG1hY2hfbXNnX2JvZHlfdCBtc2doX2JvZHk7CisgICAgICBtYWNoX21zZ19wb3J0X2Rl
c2NyaXB0b3JfdCBvbGRfaGFuZGxlcnNbMzJdOworICAgICAgLyogZW5kIG9mIHRoZSBrZXJuZWwg
cHJvY2Vzc2VkIGRhdGEgKi8KKyAgICAgIE5EUl9yZWNvcmRfdCBORFI7CisgICAgICBtYWNoX21z
Z190eXBlX251bWJlcl90IG1hc2tzQ250OworICAgICAgZXhjZXB0aW9uX21hc2tfdCBtYXNrc1sz
Ml07CisgICAgICBleGNlcHRpb25fYmVoYXZpb3JfdCBvbGRfYmVoYXZpb3JzWzMyXTsKKyAgICAg
IHRocmVhZF9zdGF0ZV9mbGF2b3JfdCBvbGRfZmxhdm9yc1szMl07CisgICB9IFJlcGx5OworI3By
YWdtYSBwYWNrKCkKK30KKworCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KKwogUFJFKG1hY2hfcG9ydF90eXBlKQogewogI3ByYWdtYSBwYWNrKDQp
CkBAIC02NzUyLDYgKzY4MjUsOSBAQAogICAgfQogfSAKIAorLy8gSlJTIDIwMTEtQXVnLTI1OiB0
aGVzZSBtYWdpYyBudW1iZXJzICgzMjAxIGV0YykgY29tZSBmcm9tCisvLyAvdXNyL2luY2x1ZGUv
bWFjaC9tYWNoX3BvcnQuaCBldCBhbCAoZ3JlcCBpbiAvdXNyL2luY2x1ZGUKKy8vIGZvciB0aGVt
KQogUFJFKG1hY2hfbXNnX3Rhc2spCiB7CiAgICAvLyBtZXNzYWdlIHRvIGEgdGFzayBwb3J0CkBA
IC02ODA0LDcgKzY4ODAsMTEgQEAKICAgIGNhc2UgMzIyNzoKICAgICAgIENBTExfUFJFKG1hY2hf
cG9ydF9leHRyYWN0X21lbWJlcik7CiAgICAgICByZXR1cm47Ci0gICAgICAgIAorCisgICBjYXNl
IDMyMjk6CisgICAgICBDQUxMX1BSRShtYWNoX3BvcnRfc2V0X2NvbnRleHQpOworICAgICAgcmV0
dXJuOworCiAgICBjYXNlIDM0MDI6CiAgICAgICBDQUxMX1BSRSh0YXNrX3RocmVhZHMpOwogICAg
ICAgcmV0dXJuOwpAQCAtNjgyOCw2ICs2OTA4LDEwIEBACiAgICBjYXNlIDM0MTI6CiAgICAgICBD
QUxMX1BSRSh0aHJlYWRfY3JlYXRlX3J1bm5pbmcpOwogICAgICAgcmV0dXJuOworCisgICBjYXNl
IDM0MTQ6CisgICAgICBDQUxMX1BSRSh0YXNrX2dldF9leGNlcHRpb25fcG9ydHMpOworICAgICAg
cmV0dXJuOwogICAgICAgCiAgICBjYXNlIDM0MTg6CiAgICAgICBDQUxMX1BSRShzZW1hcGhvcmVf
Y3JlYXRlKTsKQEAgLTc2MzAsNiArNzcxNCwxMDcgQEAKIAogCiAvKiAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
IEFkZGVkIGZvciBPU1ggMTAuNyAoTGlvbikKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCisjaWYgREFSV0lO
X1ZFUlMgPj0gREFSV0lOXzEwXzcKKworUFJFKGdldGF1ZGl0X2FkZHIpCit7CisgICBQUklOVCgi
Z2V0YXVkaXRfYWRkciglI2x4LCAlbHUpIiwgQVJHMSwgQVJHMik7CisgICBQUkVfUkVHX1JFQUQx
KHZvaWQqLCAiYXVkaXRpbmZvX2FkZHIiLCBpbnQsICJsZW5ndGgiKTsKKyAgIFBSRV9NRU1fV1JJ
VEUoImdldGF1ZGl0X2FkZHIoYXVkaXRpbmZvX2FkZHIpIiwgQVJHMSwgQVJHMik7Cit9CitQT1NU
KGdldGF1ZGl0X2FkZHIpCit7CisgICBQT1NUX01FTV9XUklURShBUkcxLCBBUkcyKTsKK30KKwor
UFJFKHBzeW5jaF9tdXRleHdhaXQpCit7CisgICBQUklOVCgicHN5bmNoX211dGV4d2FpdChCT0dV
UylcbiIpOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CitQT1NUKHBzeW5jaF9tdXRleHdh
aXQpCit7Cit9CisKK1BSRShwc3luY2hfbXV0ZXhkcm9wKQoreworICAgUFJJTlQoInBzeW5jaF9t
dXRleGRyb3AoQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworfQorUE9TVChw
c3luY2hfbXV0ZXhkcm9wKQoreworfQorCitQUkUocHN5bmNoX2N2YnJvYWQpCit7CisgICBQUklO
VCgicHN5bmNoX2N2YnJvYWQoQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOwor
fQorUE9TVChwc3luY2hfY3Zicm9hZCkKK3sKK30KKworUFJFKHBzeW5jaF9jdnNpZ25hbCkKK3sK
KyAgIFBSSU5UKCJwc3luY2hfY3ZzaWduYWwoQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8PSBTZk1h
eUJsb2NrOworfQorUE9TVChwc3luY2hfY3ZzaWduYWwpCit7Cit9CisKK1BSRShwc3luY2hfY3Z3
YWl0KQoreworICAgUFJJTlQoInBzeW5jaF9jdndhaXQoQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8
PSBTZk1heUJsb2NrOworfQorUE9TVChwc3luY2hfY3Z3YWl0KQoreworfQorCitQUkUocHN5bmNo
X3J3X3JkbG9jaykKK3sKKyAgIFBSSU5UKCJwc3luY2hfcndfcmRsb2NrKEJPR1VTKVxuIik7Cisg
ICAqZmxhZ3MgfD0gU2ZNYXlCbG9jazsKK30KK1BPU1QocHN5bmNoX3J3X3JkbG9jaykKK3sKK30K
KworUFJFKHBzeW5jaF9yd193cmxvY2spCit7CisgICBQUklOVCgicHN5bmNoX3J3X3dybG9jayhC
T0dVUylcbiIpOworICAgKmZsYWdzIHw9IFNmTWF5QmxvY2s7Cit9CitQT1NUKHBzeW5jaF9yd193
cmxvY2spCit7Cit9CisKK1BSRShwc3luY2hfcndfdW5sb2NrKQoreworICAgUFJJTlQoInBzeW5j
aF9yd191bmxvY2soQk9HVVMpXG4iKTsKKyAgICpmbGFncyB8PSBTZk1heUJsb2NrOworfQorUE9T
VChwc3luY2hfcndfdW5sb2NrKQoreworfQorCitQUkUocHN5bmNoX2N2Y2xycHJlcG9zdCkKK3sK
KyAgIFBSSU5UKCJwc3luY2hfY3ZjbHJwcmVwb3N0KEJPR1VTKVxuIik7CisgICAqZmxhZ3MgfD0g
U2ZNYXlCbG9jazsKK30KK1BPU1QocHN5bmNoX2N2Y2xycHJlcG9zdCkKK3sKK30KKworI2VuZGlm
CisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBzeXNjYWxsIHRhYmxlcwogICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov
CiAKQEAgLTc5NzAsMTggKzgxNTUsMTggQEAKICAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NP
TlNUUlVDVF9VTklYKDI5OCkpLCAgIC8vIG9sZCBuZXdfc3lzdGVtX3NoYXJlZF9yZWdpb25zIAog
ICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMjk5KSksICAgLy8gb2xk
IHNoYXJlZF9yZWdpb25fbWFwX2ZpbGVfbnAgCiAgICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9D
T05TVFJVQ1RfVU5JWCgzMDApKSwgICAvLyBvbGQgc2hhcmVkX3JlZ2lvbl9tYWtlX3ByaXZhdGVf
bnAKLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwMSkpLCAgIC8v
ID8/PwotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzAyKSksICAg
Ly8gPz8/Ci0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgzMDMpKSwg
ICAvLyA/Pz8KLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMwNCkp
LCAgIC8vID8/PwotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VOSVgoMzA1
KSksICAgLy8gPz8/Ci0gICBfX19fXyhWR19EQVJXSU5fU1lTQ0FMTF9DT05TVFJVQ1RfVU5JWCgz
MDYpKSwgICAvLyA/Pz8KLSAgIF9fX19fKFZHX0RBUldJTl9TWVNDQUxMX0NPTlNUUlVDVF9VTklY
KDMwNykpLCAgIC8vID8/PwotICAgX19fX18oVkdfREFSV0lOX1NZU0NBTExfQ09OU1RSVUNUX1VO
SVgoMzA4KSksICAgLy8gPz8/CisgICBNQUNYWShfX05SX3BzeW5jaF9tdXRleHdhaXQsIHBzeW5j
aF9tdXRleHdhaXQpLCAvLyAzMDEKKyAgIE1BQ1hZKF9fTlJfcHN5bmNoX211dGV4ZHJvcCwgcHN5
bmNoX211dGV4ZHJvcCksIC8vIDMwMgorICAgTUFDWFkoX19OUl9wc3luY2hfY3Zicm9hZCwgICBw
c3luY2hfY3Zicm9hZCksICAgLy8gMzAzCisgICBNQUNYWShfX05SX3BzeW5jaF9jdnNpZ25hbCwg
IHBzeW5jaF9jdnNpZ25hbCksICAvLyAzMDQKKyAgIE1BQ1hZKF9fTlJfcHN5bmNoX2N2d2FpdCwg
ICAgcHN5bmNoX2N2d2FpdCksICAgIC8vIDMwNQorICAgTUFDWFkoX19OUl9wc3luY2hfcndfcmRs
b2NrLCBwc3luY2hfcndfcmRsb2NrKSwgLy8gMzA2CisgICBNQUNYWShfX05SX3BzeW5jaF9yd193
cmxvY2ssIHBzeW5jaF9yd193cmxvY2spLCAvLyAzMDcKKyAgIE1BQ1hZKF9fTlJfcHN5bmNoX3J3
X3VubG9jaywgcHN5bmNoX3J3X3VubG9jayksIC8vIDMwOAogICAgX19fX18oVkdfREFSV0lOX1NZ
U0NBTExfQ09OU1RSVUNUX1VOSVgoMzA5KSksICAgLy8gPz8/CiAvLyBfX19fXyhfX05SX2dldHNp
ZCksIAogLy8gX19fX18oX19OUl9zZXR0aWRfd2l0aF9waWQpLCAKLSAgIF9fX19fKFZHX0RBUldJ
Tl9TWVNDQUxMX0NPTlNUUlVDVF9VTklYKDMxMikpLCAgIC8vID8/PworICAgTUFDWFkoX19OUl9w
c3luY2hfY3ZjbHJwcmVwb3N0LCBwc3luY2hfY3ZjbHJwcmVwb3N0KSwgLy8gMzEyCiAvLyBfX19f
XyhfX05SX2Fpb19mc3luYyksIAogICAgTUFDWFkoX19OUl9haW9fcmV0dXJuLCAgICAgYWlvX3Jl
dHVybiksIAogICAgTUFDWF8oX19OUl9haW9fc3VzcGVuZCwgICAgYWlvX3N1c3BlbmQpLCAKQEAg
LTgwMjgsNyArODIxMyw5IEBACiAvLyBfX19fXyhfX05SX3NldGF1aWQpLCAKIC8vIF9fX19fKF9f
TlJfZ2V0YXVkaXQpLCAKIC8vIF9fX19fKF9fTlJfc2V0YXVkaXQpLCAKLS8vIF9fX19fKF9fTlJf
Z2V0YXVkaXRfYWRkciksIAorI2lmIERBUldJTl9WRVJTID49IERBUldJTl8xMF83CisgICBNQUNY
WShfX05SX2dldGF1ZGl0X2FkZHIsIGdldGF1ZGl0X2FkZHIpLAorI2VuZGlmCiAvLyBfX19fXyhf
X05SX3NldGF1ZGl0X2FkZHIpLCAKIC8vIF9fX19fKF9fTlJfYXVkaXRjdGwpLCAKICAgIE1BQ1hZ
KF9fTlJfYnNkdGhyZWFkX2NyZWF0ZSwgICAgIGJzZHRocmVhZF9jcmVhdGUpLCAgIC8vIDM2MAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>63991</attachid>
            <date>2011-09-26 20:07:24 +0000</date>
            <delta_ts>2011-09-26 20:07:24 +0000</delta_ts>
            <desc>debug log of valgrind memcheck on 10.7.1</desc>
            <filename>valgrind.debug</filename>
            <type>application/octet-stream</type>
            <size>9618</size>
            <attacher name="Tim Jarratt">tim</attacher>
            
              <data encoding="base64">LS04NzU0MDoxOmRlYnVnbG9nIERlYnVnTG9nIHN5c3RlbSBzdGFydGVkIGJ5IFN0YWdlIDEsIGxl
dmVsIDEgbG9nZ2luZyByZXF1ZXN0ZWQKLS04NzU0MDoxOmxhdW5jaGVyIG5vIHRvb2wgcmVxdWVz
dGVkLCBkZWZhdWx0aW5nIHRvICdtZW1jaGVjaycKLS04NzU0MDoxOmxhdW5jaGVyIHZhbGdyaW5k
X2xpYiA9IC9Vc2Vycy90amFycmF0dC9zdm4vdmFsZ3JpbmQvYnVpbGQvbGliL3ZhbGdyaW5kCi0t
ODc1NDA6MTpsYXVuY2hlciBhcmNoICd4ODYnIElTIGluc3RhbGxlZAotLTg3NTQwOjE6bGF1bmNo
ZXIgYXJjaCAnYW1kNjQnIElTIGluc3RhbGxlZAotLTg3NTQwOjE6bGF1bmNoZXIgYXJjaCAnYXJt
JyBJUyBOT1QgaW5zdGFsbGVkCi0tODc1NDA6MTpsYXVuY2hlciBhcmNoICdwcGMzMicgSVMgTk9U
IGluc3RhbGxlZAotLTg3NTQwOjE6bGF1bmNoZXIgYXJjaCAncHBjNjQnIElTIE5PVCBpbnN0YWxs
ZWQKLS04NzU0MDoxOmxhdW5jaGVyIG5vIGFyY2ggZGV0ZWN0ZWQsIGRlZmF1bHRpbmcgYXJjaCB0
byAnYW1kNjQnCi0tODc1NDA6MTpsYXVuY2hlciBsYXVuY2hlcl9uYW1lID0gL1VzZXJzL3RqYXJy
YXR0L3N2bi92YWxncmluZC9idWlsZC9iaW4vdmFsZ3JpbmQKLS04NzU0MDoxOmxhdW5jaGVyIGxh
dW5jaGluZyAvVXNlcnMvdGphcnJhdHQvc3ZuL3ZhbGdyaW5kL2J1aWxkL2xpYi92YWxncmluZC9t
ZW1jaGVjay1hbWQ2NC1kYXJ3aW4KLS04NzU0MDoxOmRlYnVnbG9nIERlYnVnTG9nIHN5c3RlbSBz
dGFydGVkIGJ5IFN0YWdlIDIgKG1haW4pLCBsZXZlbCAxIGxvZ2dpbmcgcmVxdWVzdGVkCi0tODc1
NDA6MTptYWluICAgICBXZWxjb21lIHRvIFZhbGdyaW5kIHZlcnNpb24gMy43LjAuU1ZOIGRlYnVn
IGxvZ2dpbmcKLS04NzU0MDoxOm1haW4gICAgIENoZWNraW5nIGN1cnJlbnQgc3RhY2sgaXMgcGxh
dXNpYmxlCi0tODc1NDA6MTptYWluICAgICBDaGVja2luZyBpbml0aWFsIHN0YWNrIHdhcyBub3Rl
ZAotLTg3NTQwOjE6bWFpbiAgICAgU3RhcnRpbmcgdGhlIGFkZHJlc3Mgc3BhY2UgbWFuYWdlcgot
LTg3NTQwOjE6bWFpbiAgICAgQWRkcmVzcyBzcGFjZSBtYW5hZ2VyIGlzIHJ1bm5pbmcKLS04NzU0
MDoxOm1haW4gICAgIFN0YXJ0aW5nIHRoZSBkeW5hbWljIG1lbW9yeSBtYW5hZ2VyCi0tODc1NDA6
MTptYWxsb2NmciBuZXdTdXBlcmJsb2NrIGF0IDB4NzAwMDAwMDAxMDAwIChwc3pCIDQxOTQyNzIp
ICBvd25lciBWQUxHUklORC90b29sCi0tODc1NDA6MTptYWluICAgICBEeW5hbWljIG1lbW9yeSBt
YW5hZ2VyIGlzIHJ1bm5pbmcKLS04NzU0MDoxOm1haW4gICAgIEluaXRpYWxpc2UgbV9kZWJ1Z2lu
Zm8KLS04NzU0MDoxOm1haW4gICAgIFZHXyhsaWJkaXIpID0gL1VzZXJzL3RqYXJyYXR0L3N2bi92
YWxncmluZC9idWlsZC9saWIvdmFsZ3JpbmQKLS04NzU0MDoxOm1haW4gICAgIEdldHRpbmcgbGF1
bmNoZXIncyBuYW1lIC4uLgotLTg3NTQwOjE6bWFpbiAgICAgLi4uIC9Vc2Vycy90amFycmF0dC9z
dm4vdmFsZ3JpbmQvYnVpbGQvYmluL3ZhbGdyaW5kCi0tODc1NDA6MTptYWluICAgICBHZXQgaGFy
ZHdhcmUgY2FwYWJpbGl0aWVzIC4uLgotLTg3NTQwOjE6bWFpbiAgICAgLi4uIGFyY2ggPSBBTUQ2
NCwgaHdjYXBzID0gYW1kNjQtc3NlMy1jeDE2Ci0tODc1NDA6MTptYWluICAgICBHZXR0aW5nIHRo
ZSB3b3JraW5nIGRpcmVjdG9yeSBhdCBzdGFydHVwCi0tODc1NDA6MTptYWluICAgICAuLi4gL1Vz
ZXJzL3RqYXJyYXR0L2dpdC9zdG9yZW5ldC9sb2NhbGV5ZXMKLS04NzU0MDoxOm1haW4gICAgIFNw
bGl0IHVwIGNvbW1hbmQgbGluZQotLTg3NTQwOjE6bWFpbiAgICAgKGVhcmx5XykgUHJvY2VzcyBW
YWxncmluZCdzIGNvbW1hbmQgbGluZSBvcHRpb25zCi0tODc1NDA6MTptYWluICAgICBDcmVhdGUg
aW5pdGlhbCBpbWFnZQotLTg3NTQwOjE6aW5pdGltZyAgTG9hZGluZyBjbGllbnQKLS04NzU0MDox
OmluaXRpbWcgIFNldHVwIGNsaWVudCBlbnYKLS04NzU0MDoxOm1haW4gICAgIFNldHVwIGZpbGUg
ZGVzY3JpcHRvcnMKLS04NzU0MDoxOm1haW4gICAgIEluaXRpYWxpc2UgdGhlIHRvb2wgcGFydCAx
IChwcmVfY2xvX2luaXQpCi0tODc1NDA6MTptYWxsb2NmciBuZXdTdXBlcmJsb2NrIGF0IDB4NzAw
MDAwNDAxMDAwIChwc3pCIDEwNDg1NDQpICBvd25lciBWQUxHUklORC9leGVjdHh0Ci0tODc1NDA6
MTptYWluICAgICBQcmludCBoZWxwIGFuZCBxdWl0LCBpZiByZXF1ZXN0ZWQKLS04NzU0MDoxOm1h
aW4gICAgIChtYWluXykgUHJvY2VzcyBWYWxncmluZCdzIGNvbW1hbmQgbGluZSBvcHRpb25zLCBz
ZXR1cCBsb2dnaW5nCi0tODc1NDA6MTptYWxsb2NmciBuZXdTdXBlcmJsb2NrIGF0IDB4NzAwMDAw
NTAxMDAwIChwc3pCIDEwNDg1NDQpICBvd25lciBWQUxHUklORC9jb3JlCi0tODc1NDA6MTptYWlu
ICAgICBQcmludCB0aGUgcHJlYW1ibGUuLi4KLS04NzU0MDoxOm1haW4gICAgIC4uLmZpbmlzaGVk
IHRoZSBwcmVhbWJsZQotLTg3NTQwOjE6bWFpbiAgICAgSW5pdGlhbGlzZSB0aGUgdG9vbCBwYXJ0
IDIgKHBvc3RfY2xvX2luaXQpCi0tODc1NDA6MTptYWluICAgICBJbml0aWFsaXNlIFRUL1RDCi0t
ODc1NDA6MTptYWluICAgICBJbml0aWFsaXNlIHJlZGlyZWN0cwotLTg3NTQwOjE6bWFsbG9jZnIg
bmV3U3VwZXJibG9jayBhdCAweDcwMDAwNjY3QzAwMCAocHN6QiAxMDQ4NTQ0KSAgb3duZXIgVkFM
R1JJTkQvZGluZm8KLS04NzU0MDoxOm1haW4gICAgIExvYWQgaW5pdGlhbCBkZWJ1ZyBpbmZvCi0t
ODc1NDA6MTpyZWRpciAgICB0cmFuc2ZlciBvd25lcnNoaXAgViAtPiBDIG9mIDB4MTM4MDRjMDAw
IC4uIDB4MTM4MDRjZmZmCi0tODc1NDA6MTptYWluICAgICBJbml0aWFsaXNlIHNjaGVkdWxlciAo
cGhhc2UgMSkKLS04NzU0MDoxOnNjaGVkICAgIHNjaGVkX2luaXRfcGhhc2UxCi0tODc1NDA6MTpt
YWluICAgICBUZWxsIHRvb2wgYWJvdXQgaW5pdGlhbCBwZXJtaXNzaW9ucwotLTg3NTQwOjE6bWFp
biAgICAgSW5pdGlhbGlzZSBzY2hlZHVsZXIgKHBoYXNlIDIpCi0tODc1NDA6MTpzY2hlZCAgICBz
Y2hlZF9pbml0X3BoYXNlMjogdGlkX21haW49MSwgY2xzX2VuZD0weDdmZmY1ZmJmZmZmZiwgY2xz
X3N6PTgzODg2MDgKLS04NzU0MDoxOm1haW4gICAgIEZpbmFsaXNlIGluaXRpYWwgaW1hZ2UKLS04
NzU0MDoxOm1haW4gICAgIEluaXRpYWxpc2Ugc2lnbmFsIG1hbmFnZW1lbnQKLS04NzU0MDoxOm1h
aW4gICAgIExvYWQgc3VwcHJlc3Npb25zCi0tODc1NDA6MTptYWluICAgICAKLS04NzU0MDoxOm1h
aW4gICAgIAotLTg3NTQwOjE6YXNwYWNlbSAgPDw8IFNIT1dfU0VHTUVOVFM6IE1lbW9yeSBsYXlv
dXQgYXQgY2xpZW50IHN0YXJ0dXAgKDMxIHNlZ21lbnRzLCA0IHNlZ25hbWVzKQotLTg3NTQwOjE6
YXNwYWNlbSAgKCAwKSAuL3Rlc3RydW5uZXIKLS04NzU0MDoxOmFzcGFjZW0gICggMSkgL3Vzci9s
aWIvZHlsZAotLTg3NTQwOjE6YXNwYWNlbSAgICAwOiBSU1ZOIDAwMDAwMDAwMDAtMDBmZmZmZmZm
ZiAgIDQwOTZtIC0tLS0tIFNtRml4ZWQKLS04NzU0MDoxOmFzcGFjZW0gICAgMTogZmlsZSAwMTAw
MDAwMDAwLTAxMDAxMDFmZmYgMTA1Njc2OCByLXgtLSBkPTB4ZTAwMDAwMiBpPTI5NDQ2OTU4IG89
MCAgICAgICAoMCkKLS04NzU0MDoxOmFzcGFjZW0gICAgMjogZmlsZSAwMTAwMTAyMDAwLTAxMDAx
MDZmZmYgICAyMDQ4MCBydy0tLSBkPTB4ZTAwMDAwMiBpPTI5NDQ2OTU4IG89MTA1Njc2OCAoMCkK
LS04NzU0MDoxOmFzcGFjZW0gICAgMzogYW5vbiAwMTAwMTA3MDAwLTAxMDAxMTdmZmYgICA2OTYz
MiBydy0tLQotLTg3NTQwOjE6YXNwYWNlbSAgICA0OiBmaWxlIDAxMDAxMTgwMDAtMDEwMDExOGZm
ZiAgICA0MDk2IHJ3LS0tIGQ9MHhlMDAwMDAyIGk9Mjk0NDY5NTggbz0xMDc3MjQ4ICgwKQotLTg3
NTQwOjE6YXNwYWNlbSAgICA1OiBmaWxlIDAxMDAxMTkwMDAtMDEwMDFiYmZmZiAgNjY3NjQ4IHIt
LS0tIGQ9MHhlMDAwMDAyIGk9Mjk0NDY5NTggbz0xMDgxMzQ0ICgwKQotLTg3NTQwOjE6YXNwYWNl
bSAgICA2OiAgICAgIDAxMDAxYmMwMDAtMDEzMzdmZmZmZiAgICA4MjJtCi0tODc1NDA6MTphc3Bh
Y2VtICAgIDc6IEFOT04gMDEzMzgwMDAwMC0wMTMzZmZmZmZmIDgzODg2MDggcnctLS0KLS04NzU0
MDoxOmFzcGFjZW0gICAgODogICAgICAwMTM0MDAwMDAwLTAxMzdmZmZmZmYgICAgIDY0bQotLTg3
NTQwOjE6YXNwYWNlbSAgICA5OiBBTk9OIDAxMzgwMDAwMDAtMDEzODA0YmZmZiAgMzExMjk2IHIt
eC0tCi0tODc1NDA6MTphc3BhY2VtICAgMTA6IGFub24gMDEzODA0YzAwMC0wMTM4MDRjZmZmICAg
IDQwOTYgci14LS0KLS04NzU0MDoxOmFzcGFjZW0gICAxMTogQU5PTiAwMTM4MDRkMDAwLTAxMzgy
ZTVmZmYgMjcyMzg0MCByLXgtLQotLTg3NTQwOjE6YXNwYWNlbSAgIDEyOiBBTk9OIDAxMzgyZTYw
MDAtMDEzOTI1NmZmZiAgICAgMTVtIHJ3LS0tCi0tODc1NDA6MTphc3BhY2VtICAgMTM6ICAgICAg
MDEzOTI1NzAwMC02ZmZmZmZmZmZmZmYgMTE0NjgzZwotLTg3NTQwOjE6YXNwYWNlbSAgIDE0OiBS
U1ZOIDcwMDAwMDAwMDAwMC03MDAwMDAwMDBmZmYgICAgNDA5NiAtLS0tLSBTbUZpeGVkCi0tODc1
NDA6MTphc3BhY2VtICAgMTU6IEFOT04gNzAwMDAwMDAxMDAwLTcwMDAwNjc5ZmZmZiAgICAxMDNt
IHJ3eC0tCi0tODc1NDA6MTphc3BhY2VtICAgMTY6ICAgICAgNzAwMDA2N2EwMDAwLTdmZmY1ZjNm
ZmZmZiAgMTYzODFnCi0tODc1NDA6MTphc3BhY2VtICAgMTc6IGFub24gN2ZmZjVmNDAwMDAwLTdm
ZmY1ZmJmZmZmZiA4Mzg4NjA4IHJ3eC0tCi0tODc1NDA6MTphc3BhY2VtICAgMTg6IGZpbGUgN2Zm
ZjVmYzAwMDAwLTdmZmY1ZmMzNGZmZiAgMjE3MDg4IHIteC0tIGQ9MHhlMDAwMDAyIGk9MTI3MzQw
MzUgbz00MDk2ICAgICgxKQotLTg3NTQwOjE6YXNwYWNlbSAgIDE5OiBmaWxlIDdmZmY1ZmMzNTAw
MC03ZmZmNWZjMzZmZmYgICAgODE5MiBydy0tLSBkPTB4ZTAwMDAwMiBpPTEyNzM0MDM1IG89MjIx
MTg0ICAoMSkKLS04NzU0MDoxOmFzcGFjZW0gICAyMDogYW5vbiA3ZmZmNWZjMzcwMDAtN2ZmZjVm
YzcwZmZmICAyMzc1NjggcnctLS0KLS04NzU0MDoxOmFzcGFjZW0gICAyMTogZmlsZSA3ZmZmNWZj
NzEwMDAtN2ZmZjVmYzgzZmZmICAgNzc4MjQgci0tLS0gZD0weGUwMDAwMDIgaT0xMjczNDAzNSBv
PTIyOTM3NiAgKDEpCi0tODc1NDA6MTphc3BhY2VtICAgMjI6ICAgICAgN2ZmZjVmYzg0MDAwLTdm
ZmY3MjBmMmZmZiAgICAyOTJtCi0tODc1NDA6MTphc3BhY2VtICAgMjM6IEZJTEUgN2ZmZjcyMGYz
MDAwLTdmZmY3M2M1NmZmZiAgICAgMjdtIHJ3LS0tIGQ9MHgwMDAgaT0wICAgICAgIG89MjA5MDE0
Nzg0ICgtMSkKLS04NzU0MDoxOmFzcGFjZW0gICAyNDogICAgICA3ZmZmNzNjNTcwMDAtN2ZmZjgy
MGYyZmZmICAgIDIyOG0KLS04NzU0MDoxOmFzcGFjZW0gICAyNTogQU5PTiA3ZmZmODIwZjMwMDAt
N2ZmZjhlODQ3ZmZmICAgIDE5OW0gci14LS0KLS04NzU0MDoxOmFzcGFjZW0gICAyNjogRklMRSA3
ZmZmOGU4NDgwMDAtN2ZmZjkxOTM0ZmZmICAgICA0OG0gci0tLS0gZD0weDAwMCBpPTAgICAgICAg
bz0yMzc3MzU5MzYgKC0xKQotLTg3NTQwOjE6YXNwYWNlbSAgIDI3OiAgICAgIDdmZmY5MTkzNTAw
MC03ZmZmZmZkZmZmZmYgICAxNzY0bQotLTg3NTQwOjE6YXNwYWNlbSAgIDI4OiBmaWxlIDdmZmZm
ZmUwMDAwMC03ZmZmZmZmZmVmZmYgMjA5MzA1NiByLXgtLSBkPTB4MDAwIGk9MCAgICAgICBvPTAg
ICAgICAgKC0xKQotLTg3NTQwOjE6YXNwYWNlbSAgIDI5OiAgICAgIDdmZmZmZmZmZjAwMC03ZmZm
ZmZmZmZmZmYgICAgNDA5NgotLTg3NTQwOjE6YXNwYWNlbSAgIDMwOiBSU1ZOIDgwMDAwMDAwMDAw
MC1mZmZmZmZmZmZmZmZmZmZmICAxNjM4M2UgLS0tLS0gU21GaXhlZAotLTg3NTQwOjE6YXNwYWNl
bSAgPj4+Ci0tODc1NDA6MTptYWluICAgICAKLS04NzU0MDoxOm1haW4gICAgIAotLTg3NTQwOjE6
bWFpbiAgICAgUnVubmluZyB0aHJlYWQgMQotLTg3NTQwOjE6c3lzd3JhcC0gZW50ZXJpbmcgVkdf
KG1haW5fdGhyZWFkX3dyYXBwZXJfTk9SRVRVUk4pCi0tODc1NDA6MTphc3BhY2VtICBhbGxvY2F0
ZWQgdGhyZWFkIHN0YWNrIGF0IDB4NzAwMDA2N2EwMDAwIHNpemUgMTA2NDk2MAotLTg3NTQwOjE6
c3lzd3JhcC0gcnVuX2FfdGhyZWFkX05PUkVUVVJOKHRpZD0xKTogcHJlLXRocmVhZF93cmFwcGVy
Ci0tODc1NDA6MTpzeXN3cmFwLSB0aHJlYWRfd3JhcHBlcih0aWQ9MSk6IGVudHJ5Ci0tODc1NDA6
MTpnZGJzcnYgICBlbnRlcmluZyBjYWxsX2dkYnNlcnZlciBpbml0X3JlYXNvbiAuLi4gcGlkIDg3
NTQwIHRpZCAxIHN0YXR1cyBWZ1RzX1J1bm5hYmxlIHNjaGVkX2ptcGJ1Zl92YWxpZCAwCi0tODc1
NDA6MTpnZGJzcnYgICBnZGJzZXJ2ZXJfaW5pdCBnZGJzZXJ2ZXIgZW1iZWRkZWQgaW4gdmFsZ3Jp
bmQ6IGdkYnNlcnZlciBwcm90b2NvbCBib3ggZXh0cmFjdGVkIGZyb20gZ2RiIDYuNgotLTg3NTQw
OjE6Z2Ric3J2ICAgT3BlbmluZyByZWFkIHNpZGUgL3RtcC92Z2RiLXBpcGUtZnJvbS12Z2RiLXRv
LTg3NTQwCi0tODc1NDA6MTpnZGJzcnYgICByZXN1bHQgZmQgNAotLTg3NTQwOjE6Z2Ric3J2ICAg
cmVzdWx0IHNhZmVfZmQgMjYwCi0tODc1NDA6MTp0cmFuc3RhYiBhbGxvY2F0ZSBzZWN0b3IgMAot
LTg3NTQwOjE6bWFsbG9jZnIgbmV3U3VwZXJibG9jayBhdCAweDcwMDAwODg3NjAwMCAocHN6QiAg
IDY1NTA0KSAgb3duZXIgVkFMR1JJTkQvdHRhdXgKLS04NzU0MDoxOmV4ZWNvbnRlIHJlc2l6aW5n
IGh0YWIgZnJvbSBzaXplIDc2OSB0byAxNTQzIChpZHggMSkgIFRvdGFsI0VDcz03NzAKLS04NzU0
MDoxOm1hbGxvY2ZyIG5ld1N1cGVyYmxvY2sgYXQgMHg3MDAwMDg4OUEwMDAgKHBzekIgMTA0ODU0
NCkgIG93bmVyIFZBTEdSSU5EL2RpbmZvCi0tODc1NDA6MTptYWxsb2NmciBuZXdTdXBlcmJsb2Nr
IGF0IDB4NzAwMDA4OTlFMDAwIChwc3pCIDEwNDg1NDQpICBvd25lciBWQUxHUklORC9kaW5mbwot
LTg3NTQwOjE6bWFsbG9jZnIgbmV3U3VwZXJibG9jayBhdCAweDcwMDAwOEFCQTAwMCAocHN6QiAx
MDQ4NTQ0KSAgb3duZXIgVkFMR1JJTkQvZGluZm8KLS04NzU0MDoxOm1hbGxvY2ZyIG5ld1N1cGVy
YmxvY2sgYXQgMHg3MDAwMDhCRTIwMDAgKHBzekIgMTA0ODU0NCkgIG93bmVyIFZBTEdSSU5EL2Rp
bmZvCi0tODc1NDA6MTptYWxsb2NmciBuZXdTdXBlcmJsb2NrIGF0IDB4NzAwMDA4Q0Y2MDAwIChw
c3pCIDEwNDg1NDQpICBvd25lciBWQUxHUklORC9kaW5mbwotLTg3NTQwOjE6bWFsbG9jZnIgbmV3
U3VwZXJibG9jayBhdCAweDcwMDAwOEUxQTAwMCAocHN6QiAxMDQ4NTQ0KSAgb3duZXIgVkFMR1JJ
TkQvZGluZm8KLS04NzU0MDoxOm1hbGxvY2ZyIG5ld1N1cGVyYmxvY2sgYXQgMHg3MDAwMDhGMjIw
MDAgKHBzekIgMTA0ODU0NCkgIG93bmVyIFZBTEdSSU5EL2RpbmZvCi0tODc1NDA6MTptYWxsb2Nm
ciBuZXdTdXBlcmJsb2NrIGF0IDB4NzAwMDA5MDI2MDAwIChwc3pCIDEwNDg1NDQpICBvd25lciBW
QUxHUklORC9kaW5mbwotLTg3NTQwOjE6bWFsbG9jZnIgbmV3U3VwZXJibG9jayBhdCAweDcwMDAw
OTEyNjAwMCAocHN6QiAxMDQ4NTQ0KSAgb3duZXIgVkFMR1JJTkQvZGluZm8KLS04NzU0MDoxOm1h
bGxvY2ZyIG5ld1N1cGVyYmxvY2sgYXQgMHg3MDAwMDkyNkEwMDAgKHBzekIgMTA0ODU0NCkgIG93
bmVyIFZBTEdSSU5EL2RpbmZvCi0tODc1NDA6MTptYWxsb2NmciBuZXdTdXBlcmJsb2NrIGF0IDB4
NzAwMDA5MzZFMDAwIChwc3pCIDEwNDg1NDQpICBvd25lciBWQUxHUklORC9kaW5mbwotLTg3NTQw
OjE6bWFsbG9jZnIgbmV3U3VwZXJibG9jayBhdCAweDcwMDAwOTQ2RTAwMCAocHN6QiAxMDQ4NTQ0
KSAgb3duZXIgVkFMR1JJTkQvZGluZm8KLS04NzU0MDoxOm1hbGxvY2ZyIG5ld1N1cGVyYmxvY2sg
YXQgMHg3MDAwMDk1OUUwMDAgKHBzekIgMTA0ODU0NCkgIG93bmVyIFZBTEdSSU5EL2RpbmZvCi0t
ODc1NDA6MTptYWxsb2NmciBuZXdTdXBlcmJsb2NrIGF0IDB4NzAwMDA5NkEyMDAwIChwc3pCIDEw
NDg1NDQpICBvd25lciBWQUxHUklORC9kaW5mbwotLTg3NTQwOjE6bWFsbG9jZnIgbmV3U3VwZXJi
bG9jayBhdCAweDcwMDAwOTdCMjAwMCAocHN6QiAxMDQ4NTQ0KSAgb3duZXIgVkFMR1JJTkQvZGlu
Zm8KLS04NzU0MDoxOm1hbGxvY2ZyIG5ld1N1cGVyYmxvY2sgYXQgMHg3MDAwMDk4Q0UwMDAgKHBz
ekIgMTA0ODU0NCkgIG93bmVyIFZBTEdSSU5EL2RpbmZvCi0tODc1NDA6MTptYWxsb2NmciBuZXdT
dXBlcmJsb2NrIGF0IDB4NzAwMDA5OUNFMDAwIChwc3pCIDEwNDg1NDQpICBvd25lciBWQUxHUklO
RC9kaW5mbwotLTg3NTQwOjE6bWFsbG9jZnIgbmV3U3VwZXJibG9jayBhdCAweDcwMDAwOUFDRTAw
MCAocHN6QiAxMDQ4NTQ0KSAgb3duZXIgVkFMR1JJTkQvZGluZm8KLS04NzU0MDoxOm1hbGxvY2Zy
IG5ld1N1cGVyYmxvY2sgYXQgMHg3MDAwMDlDMUUwMDAgKHBzekIgMTA0ODU0NCkgIG93bmVyIFZB
TEdSSU5EL2RpbmZvCi0tODc1NDA6MTpleGVjb250ZSByZXNpemluZyBodGFiIGZyb20gc2l6ZSAx
NTQzIHRvIDMwNzkgKGlkeCAyKSAgVG90YWwjRUNzPTE1NDQKLS04NzU0MDoxOm1hbGxvY2ZyIG5l
d1N1cGVyYmxvY2sgYXQgMHgxMDAxQkQwMDAgKHBzekIgNDE5NDI3MikgIG93bmVyIENMSUVOVC9j
bGllbnQKLS04NzU0MDoxOm1hbGxvY2ZyIG5ld1N1cGVyYmxvY2sgYXQgMHg3MDAwMDlFREEwMDAg
KHBzekIgICA2NTUwNCkgIG93bmVyIFZBTEdSSU5EL2Vycm9ycwotLTg3NTQwOjE6ZXhlY29udGUg
cmVzaXppbmcgaHRhYiBmcm9tIHNpemUgMzA3OSB0byA2MTUxIChpZHggMykgIFRvdGFsI0VDcz0z
MDgwCi0tODc1NDA6MTpleGVjb250ZSByZXNpemluZyBodGFiIGZyb20gc2l6ZSA2MTUxIHRvIDEy
Mjg5IChpZHggNCkgIFRvdGFsI0VDcz02MTUyCi0tODc1NDA6MTpoYXNodGFibCByZXNpemluZyB0
YWJsZSBgTUNfKG1hbGxvY19saXN0KScgZnJvbSA3NjkgdG8gMTU0MyAodG90YWwgZWxlbXMgNzcw
KQotLTg3NTQwOjE6bWFsbG9jZnIgbmV3U3VwZXJibG9jayBhdCAweDcwMDAwOUYwRTAwMCAocHN6
QiAxMDQ4NTQ0KSAgb3duZXIgVkFMR1JJTkQvZXhlY3R4dAotLTg3NTQwOjE6ZXhlY29udGUgcmVz
aXppbmcgaHRhYiBmcm9tIHNpemUgMTIyODkgdG8gMjQ1OTMgKGlkeCA1KSAgVG90YWwjRUNzPTEy
MjkwCi0tODc1NDA6MTpzeXN3cmFwICBQb3NpeF9zcGF3biBvZiAvYmluL3NoCi0tODc1NDA6MTpn
ZGJzcnYgICBlbnRlcmluZyBjYWxsX2dkYnNlcnZlciBjb3JlX3JlYXNvbiAuLi4gcGlkIDg3NTQw
IHRpZCAxIHN0YXR1cyBWZ1RzX1J1bm5hYmxlIHNjaGVkX2ptcGJ1Zl92YWxpZCAxCi0tODc1NDA6
MTpnZGJzcnYgICBlbnRlciB2YWxncmluZF93YWl0IHBpZCA4NzU0MAotLTg3NTQwOjE6Z2Ric3J2
ICAgYWRkaW5nX3RocmVhZCB0aSogMHgwIHZndGlkIDEgc3RhdHVzIFZnVHNfUnVubmFibGUgYXMg
Z2RiIHB0aWQgaWQgMzg0NyBsd3BpZCAzODQ3Ci0tODc1NDA6MTpnZGJzcnYgICBzdG9wIHBjIGlz
IDB4MTEyMkIzRQotLTg3NTQwOjE6Z2Ric3J2ICAgZXhpdCB2YWxncmluZF93YWl0IHJldHVybnMg
cHRpZCBpZCAzODQ3IHN0b3BfcGMgMHgxMTIyQjNFOiBfX3Bvc2l4X3NwYXduIChpbiAvdXNyL2xp
Yi9zeXN0ZW0vbGlic3lzdGVtX2tlcm5lbC5keWxpYikgc2lnbmFsIDUK
</data>

          </attachment>
      

    </bug>

</bugzilla>