public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c/5830: The compiler crashes
@ 2002-03-15  0:06 Manuel Serrano
  0 siblings, 0 replies; 7+ messages in thread
From: Manuel Serrano @ 2002-03-15  0:06 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c/5830; it has been noted by GNATS.

From: Manuel Serrano <Manuel.Serrano@sophia.inria.fr>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org,
	Manuel.Serrano@inria.fr, gcc-bugs@gcc.gnu.org,
	nobody@gcc.gnu.org?Subject=Re:, c/5830:@redrock.inria.fr,
	The@redrock.inria.fr, c@redrock.inria.fr
Cc:  
Subject: Re: c/5830: The compiler crashes
Date: Fri, 15 Mar 2002 09:02:18 +0100

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5830
 
 I have successfully bootstrapped my Scheme->C compiler with the
 patched version of gcc3.0.4 and with gcc-3.0.1 -fno-reorder-blocks.
 Everything now work like a charm.
 
 Many thanks.
 
 --
 Manuel Serrano
 
 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: c/5830: The compiler crashes
@ 2002-03-12  2:36 Gwenole Beauchesne
  0 siblings, 0 replies; 7+ messages in thread
From: Gwenole Beauchesne @ 2002-03-12  2:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c/5830; it has been noted by GNATS.

From: Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>
To: Manuel Serrano <Manuel.Serrano@sophia.inria.fr>
Cc: <gcc-gnats@gcc.gnu.org>, <gcc-prs@gcc.gnu.org>, <gcc-bugs@gcc.gnu.org>,
        <nobody@gcc.gnu.org>, <jh@suse.cz>
Subject: Re: c/5830: The compiler crashes
Date: Tue, 12 Mar 2002 11:27:47 +0100 (CET)

 Hi,
 
 > I have seen the problem when compiling my Scheme->C compiler. This compiler
 > is bootstrapped and it produces huge probably unusual C files. If you want
 > me to test the whole compiler with a new version of GCC please, let me know.
 > I you think that it could help, I could do this test for you.
 
 You could:
 
 1) Build a gcc-3.0.4 with the patch I posted and try to rebuild your
 Scheme->C compiler. And tell us how it goes.
 
 2) Build your project with -fno-reorder-blocks added to your C[XX]FLAGS.
 
 Bye,
 Gwenole.
 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: c/5830: The compiler crashes
@ 2002-03-10 23:46 Manuel Serrano
  0 siblings, 0 replies; 7+ messages in thread
From: Manuel Serrano @ 2002-03-10 23:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c/5830; it has been noted by GNATS.

From: Manuel Serrano <Manuel.Serrano@sophia.inria.fr>
To: Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>
Cc: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org,
	nobody@gcc.gnu.org, jh@suse.cz
Subject: Re: c/5830: The compiler crashes
Date: Mon, 11 Mar 2002 08:44:54 +0100

 On Fri, 08 Mar 2002 19:29:30 +0100
 Gwenole Beauchesne <gbeauchesne@mandrakesoft.com> wrote:
 
 > Hi,
 > 
 > It doesn't appear to be fixed on the gcc-3.0-branch. On gcc-3.1-branch, 
 > that appears to have been fixed with Jan's crossjumping patch of 2001/07/16:
 > <http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01030.html>
 > 
 > On 3.0-branch, gcc ICEs with the testcase of that PR and -O2 level. 
 > However, it doesn't ICE with -O2 and -fno-reorder-blocks.
 > 
 > With the following patch, derived from Jan's, 3.0-branch bootstrapped 
 > and regtested OK. Note that if I make cleanup_cfg() after 
 > reorder_basic_blocks() too, bootstrap fails. So I don't think that patch 
 > is good enough.
 > 
 > 2002-03-08  Gwenole Beauchesne  <gbeauchesne@mandrakesoft.com>
 >    
 >     PR c/5830
 >     * toplev.c (rest_of_compilation): Do cleanup_cfg before
 >     bb-reorder. [From Jan Hubicka for gcc-3.1, 2001/07/16]
 > 
 > --- gcc-3.0.4/gcc/toplev.c.reorder-blocks    Fri Mar  8 14:10:00 2002
 > +++ gcc-3.0.4/gcc/toplev.c    Fri Mar  8 15:45:46 2002
 > @@ -3636,12 +3636,16 @@
 >      = optimize > 0 && only_leaf_regs_used () && leaf_function_p ();
 >  #endif
 >  
 > -  if (optimize > 0 && flag_reorder_blocks)
 > +  if (optimize > 0)
 >      {
 >        timevar_push (TV_REORDER_BLOCKS);
 >        open_dump_file (DFI_bbro, decl);
 > -
 > -      reorder_basic_blocks ();
 > +     
 > +      /* Last attempt to optimize CFG, as life analyzis possibly removed
 > +         some instructions.  */
 > +      cleanup_cfg ();
 > +      if (flag_reorder_blocks)
 > +          reorder_basic_blocks ();
 >  
 >        close_dump_file (DFI_bbro, print_rtl_with_bb, insns);
 >        timevar_pop (TV_REORDER_BLOCKS);
 > 
 > 
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5830 
 > 
 I have seen the problem when compiling my Scheme->C compiler. This compiler
 is bootstrapped and it produces huge probably unusual C files. If you want
 me to test the whole compiler with a new version of GCC please, let me know.
 I you think that it could help, I could do this test for you.
 
 Sincerely,
 
 -- 
 Manuel


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: c/5830: The compiler crashes
@ 2002-03-08 10:36 Gwenole Beauchesne
  0 siblings, 0 replies; 7+ messages in thread
From: Gwenole Beauchesne @ 2002-03-08 10:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c/5830; it has been noted by GNATS.

From: Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>
To: gcc-gnats@gcc.gnu.org, gcc-prs@gcc.gnu.org, Manuel.Serrano@inria.fr,
        gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org
Cc: jh@suse.cz
Subject: Re: c/5830: The compiler crashes
Date: Fri, 08 Mar 2002 19:29:30 +0100

 Hi,
 
 It doesn't appear to be fixed on the gcc-3.0-branch. On gcc-3.1-branch, 
 that appears to have been fixed with Jan's crossjumping patch of 2001/07/16:
 <http://gcc.gnu.org/ml/gcc-patches/2001-07/msg01030.html>
 
 On 3.0-branch, gcc ICEs with the testcase of that PR and -O2 level. 
 However, it doesn't ICE with -O2 and -fno-reorder-blocks.
 
 With the following patch, derived from Jan's, 3.0-branch bootstrapped 
 and regtested OK. Note that if I make cleanup_cfg() after 
 reorder_basic_blocks() too, bootstrap fails. So I don't think that patch 
 is good enough.
 
 2002-03-08  Gwenole Beauchesne  <gbeauchesne@mandrakesoft.com>
    
     PR c/5830
     * toplev.c (rest_of_compilation): Do cleanup_cfg before
     bb-reorder. [From Jan Hubicka for gcc-3.1, 2001/07/16]
 
 --- gcc-3.0.4/gcc/toplev.c.reorder-blocks    Fri Mar  8 14:10:00 2002
 +++ gcc-3.0.4/gcc/toplev.c    Fri Mar  8 15:45:46 2002
 @@ -3636,12 +3636,16 @@
      = optimize > 0 && only_leaf_regs_used () && leaf_function_p ();
  #endif
  
 -  if (optimize > 0 && flag_reorder_blocks)
 +  if (optimize > 0)
      {
        timevar_push (TV_REORDER_BLOCKS);
        open_dump_file (DFI_bbro, decl);
 -
 -      reorder_basic_blocks ();
 +     
 +      /* Last attempt to optimize CFG, as life analyzis possibly removed
 +         some instructions.  */
 +      cleanup_cfg ();
 +      if (flag_reorder_blocks)
 +          reorder_basic_blocks ();
  
        close_dump_file (DFI_bbro, print_rtl_with_bb, insns);
        timevar_pop (TV_REORDER_BLOCKS);
 
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5830 
 
 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: c/5830: The compiler crashes
@ 2002-03-06 17:26 rodrigc
  0 siblings, 0 replies; 7+ messages in thread
From: rodrigc @ 2002-03-06 17:26 UTC (permalink / raw)
  To: Manuel.Serrano, gcc-bugs, gcc-prs, nobody

Synopsis: The compiler crashes

State-Changed-From-To: open->closed
State-Changed-By: rodrigc
State-Changed-When: Wed Mar  6 17:26:53 2002
State-Changed-Why:
    Does not occur on gcc 3.1 branch, and looks
    like Zack fixed this on the gcc 3.0 branch.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=5830


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: c/5830: The compiler crashes
@ 2002-03-04  8:46 Zack Weinberg
  0 siblings, 0 replies; 7+ messages in thread
From: Zack Weinberg @ 2002-03-04  8:46 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

The following reply was made to PR c/5830; it has been noted by GNATS.

From: Zack Weinberg <zack@codesourcery.com>
To: Manuel.Serrano@inria.fr
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: c/5830: The compiler crashes
Date: Mon, 4 Mar 2002 08:37:06 -0800

 On Mon, Mar 04, 2002 at 03:55:02PM -0000, Manuel.Serrano@inria.fr wrote:
 > 
 > The compiler crashes when compilling this large file:
 > >How-To-Repeat:
 > gcc-3.0.1 -O2 bug.c
 
 I can reproduce this in gcc 3.0.4.  It has been fixed in 3.1.  This is
 a regression from gcc 2.95 so I will look into a fix for the 3.0
 branch.
 
 zw


^ permalink raw reply	[flat|nested] 7+ messages in thread

* c/5830: The compiler crashes
@ 2002-03-04  7:56 Manuel.Serrano
  0 siblings, 0 replies; 7+ messages in thread
From: Manuel.Serrano @ 2002-03-04  7:56 UTC (permalink / raw)
  To: gcc-gnats


>Number:         5830
>Category:       c
>Synopsis:       The compiler crashes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Mon Mar 04 07:56:01 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Manuel.Serrano@inria.fr
>Release:        unknown-1.0
>Organization:
>Environment:
[bigloo@redrock bigloo2.4d]$ uname -a
Linux redrock.inria.fr 2.4.8-26mdksmp #1 SMP Sun Sep 23 16:04:21 CEST 2001 i686 unknown

[bigloo@redrock bigloo2.4d]$ gcc-3.0.1 --version
3.0.1
>Description:
The compiler crashes when compilling this large file:
>How-To-Repeat:
gcc-3.0.1 -O2 bug.c
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bug.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.c"

Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0qLwovKiAgIChFdmFsL2V2Y29tcGlsZS5zY20pICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qICAgQmlnbG9v
ICgyLjRkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KLyogICBNYW51ZWwgU2VycmFubyAoYykgICAgICAgTW9uIE1hciA0IDE2OjEw
OjI3IENFVCAyMDAyICAgICAgICAgICAgICAgICAgICAqLwovKj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov
CgovKiBHQyBzZWxlY3Rpb24gKi8KI2RlZmluZSBUSEVfR0MgQk9FSE1fR0MKCi8qPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ki8KLyogICAgc2VycmFuby9wcmdtL3Byb2plY3QvYmlnbG9vL3J1bnRpbWUvSW5jbHVkZS9i
aWdsb28uaCAgICAgICAgICAgICAqLwovKiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICovCi8qICAgIEF1dGhvciAgICAg
IDogIE1hbnVlbCBTZXJyYW5vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
LyogICAgQ3JlYXRpb24gICAgOiAgVGh1IE1hciAxNiAxODo0ODoyMSAxOTk1ICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwovKiAgICBMYXN0IGNoYW5nZSA6ICBXZWQgRmViIDI3IDEyOjMxOjA5
IDIwMDIgKHNlcnJhbm8pICAgICAgICAgICAgICAgICovCi8qICAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgKi8KLyogICAg
QmlnbG9vJ3Mgc3R1ZmYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSovCiNpZm5kZWYgQklHTE9PX0ggCiNkZWZpbmUgQklH
TE9PX0gKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgRG9lcyBzb21lb25lIHJlYWxseSB3YW50cyBD
KysgaGVyZT8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
CiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgovKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
Ci8qICAgIFRoZSBlc3NlbnRpYWwgaW5jbHVkZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaW5jbHVkZSA8c3RkaW8uaD4KI2lu
Y2x1ZGUgPHNldGptcC5oPgojaW5jbHVkZSA8ZXJybm8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoj
aW5jbHVkZSA8bWF0aC5oPgoKI2lmIGRlZmluZWQoIHNvbnlfbmV3cyApCiMgICBpbmNsdWRlIDxu
ZXdzL21hY2hwYXJhbS5oPgojZW5kaWYKI2luY2x1ZGUgPGxpbWl0cy5oPgogCi8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KLyogICAgQklHTE9PX01BSU4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICovCi8qICAgIEluIG9yZGVyIHRv
IHVzZSBhIGN1c3RvbSBDIGBtYWluJyBmdW5jdGlvbiwgZGVmaW5lcyB0aGlzICAgICAgICAgKi8K
LyogICAgbWFjcm8gdG8gYW5vdGhlciB2YWx1ZSAoZS5nLiBibWFpbiAoZG9uJ3QgdXNlIHRoZSBf
YmlnbG9vX21haW4gICAqLwovKiAgICBvciBiaWdsb29fbWFpbiBiZWNhdXNlIHRoZXkgYXJlIGFs
cmVhZCB1c2VkKSkuIFRoZW4gaW4geW91ciAgICAgICovCi8qICAgIG93biBgbWFpbicgZnVuY3Rp
b24sIGludm9rZSB0aGlzIG9uZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLwojaWYoICFkZWZpbmVkKCBCSUdMT09fTUFJTiApICkKIyAgIGRlZmluZSBCSUdM
T09fTUFJTiBtYWluCiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBUaGUgQkdMX0hFQVBf
REVCVUcgcmVxdWlyZXMgdGhlIEdDIGJhY2twb2ludGVycyBhbGxvY2F0aW9uICAgICAgICovCi8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KI2lmKGRlZmluZWQoIEJHTF9IRUFQX0RFQlVHICkgKQogICAgICAgLS0+
IGVycm9yICJCR0xfSEVBUF9ERUJVRyBEZXByZWNhdGVkLiBTaG91bGQgbm90IGJlIGRlZmluZWQg
YW55bG9uZ2VyISIKI2VuZGlmCiAgIAojaWYoIGRlZmluZWQoIEtFRVBfQkFDS19QVFJTICkgKQoj
ICAgZGVmaW5lIEJHTF9IRUFQX0RFQlVHX01BUktfT0JKKCB4ICkgYmdsX2hlYXBfZGVidWdfbWFy
a19vYmooIHggKQojICAgZGVmaW5lIEJHTF9IRUFQX0RFQlVHX01BUktfU1RSKCB4ICkgYmdsX2hl
YXBfZGVidWdfbWFya19zdHIoIChjaGFyICopKHgpICkKI2Vsc2UKIyAgIGRlZmluZSBCR0xfSEVB
UF9ERUJVR19NQVJLX09CSiggeCApIHgKIyAgIGRlZmluZSBCR0xfSEVBUF9ERUJVR19NQVJLX1NU
UiggeCApIHgKI2VuZGlmCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIEJEQl9MSUJSQVJZX01BR0lD
X05VTUJFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAgICAqLwovKiAgICBUaGlzIG51bWJlciBpcyB1c2VkIHRvIGVuc3VyZSB0aGUgY29tcGF0
aWJpbGl0eSBiZXR3ZWVuIHRoZSAgICAgICovCi8qICAgIGNvbXBpbGVyIGFuZCB0aGUgYmxpYiBs
aWJyYXJ5LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLwojZGVmaW5lIEJEQl9MSUJSQVJZX01BR0lDX05VTUJFUiAoKGNoYXIgKikweDEwMjQpCiAg
ICAgICAKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBCSUdMT09fRVhJVCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
I2lmKCAhZGVmaW5lZCggQklHTE9PX0VYSVQgKSApCiMgICBkZWZpbmUgQklHTE9PX0VYSVQgYmln
bG9vX2V4aXQKI2VuZGlmCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIEdsb2JhbCBjb25maWd1cmF0
aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0qLwovKiBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlIChkb24ndCBlZGl0KSAq
LwovKiBNb24gTWFyICA0IDE2OjQxOjAwIENFVCAyMDAyICovCgojdW5kZWYgQkdMX1JFTEVBU0Vf
TlVNQkVSCiNkZWZpbmUgQkdMX1JFTEVBU0VfTlVNQkVSICIyLjRkIgoKI3VuZGVmIEJHTF9ERUZB
VUxUX0JBQ0tfRU5ECiNkZWZpbmUgQkdMX0RFRkFVTFRfQkFDS19FTkQgIm5hdGl2ZSIKCiN1bmRl
ZiBCR0xfREVGQVVMVF9BX09VVAojZGVmaW5lIEJHTF9ERUZBVUxUX0FfT1VUICJhLm91dCIKCiN1
bmRlZiBCR0xfREVGQVVMVF9BX0JBVAojZGVmaW5lIEJHTF9ERUZBVUxUX0FfQkFUICJhLm91dCIK
CiN1bmRlZiBTVEFDS19HUk9XU19ET1dOCiNkZWZpbmUgU1RBQ0tfR1JPV1NfRE9XTiAxCgojdW5k
ZWYgUFRSX0FMSUdOTUVOVAojZGVmaW5lIFBUUl9BTElHTk1FTlQgMgoKI3VuZGVmIFNFVEpNUAoj
ZGVmaW5lIFNFVEpNUCBfc2V0am1wCiN1bmRlZiBMT05HSk1QCiNkZWZpbmUgTE9OR0pNUCBfbG9u
Z2ptcAoKI3VuZGVmIEhBVkVfQkNPUFkKI2RlZmluZSBIQVZFX0JDT1BZIDEKCiN1bmRlZiBOQl9X
SU5ET1dfUkVHSVNURVIKI2RlZmluZSBOQl9XSU5ET1dfUkVHSVNURVIgMAoKI3VuZGVmIEhBVkVf
U0lHU0VUTUFTSwojZGVmaW5lIEhBVkVfU0lHU0VUTUFTSyAxCgojdW5kZWYgSEFWRV9TSUdQUk9D
TUFTSwojZGVmaW5lIEhBVkVfU0lHUFJPQ01BU0sgMQoKI3VuZGVmIEhBVkVfQUxMT0NBCiNkZWZp
bmUgSEFWRV9BTExPQ0EgMQoKI3VuZGVmIEhBVkVfR0VUQ1dECiNkZWZpbmUgSEFWRV9HRVRDV0Qg
MQoKI3VuZGVmIEhBVkVfR0VUV0QKI2RlZmluZSBIQVZFX0dFVFdEIDEKCiN1bmRlZiBDT05TVEFO
VF9BTElHTkVECiNkZWZpbmUgQ09OU1RBTlRfQUxJR05FRCAxCgojdW5kZWYgQkdMX0JJR19FTkRJ
QU4KI2RlZmluZSBCR0xfQklHX0VORElBTiAwCgojdW5kZWYgSEFWRV9QSVBFCiNkZWZpbmUgSEFW
RV9QSVBFIDEKCiN1bmRlZiBIQVZFX0xPTkdMT05HCiNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCgoj
dW5kZWYgSEFWRV9TSUdDSExECiNkZWZpbmUgSEFWRV9TSUdDSExEIDEKCiN1bmRlZiBIQVZFX1NJ
R0FDVElPTgojZGVmaW5lIEhBVkVfU0lHQUNUSU9OIDEKCiN1bmRlZiBCR0xfSEFWRV9TSUdBQ1RJ
T04KI2RlZmluZSBCR0xfSEFWRV9TRUxFQ1QgMQoKI3VuZGVmIEhBVkVfVEVSTUlPCiNkZWZpbmUg
SEFWRV9URVJNSU8gMQoKI2RlZmluZSBPU19DTEFTUyAidW5peCIKI2RlZmluZSBPU19OQU1FICJM
aW51eCIKI2RlZmluZSBPU19BUkNIICJpNjg2IgojZGVmaW5lIE9TX1ZFUlNJT04gIjIuNC44LTI2
bWRrc21wIgojZGVmaW5lIE9TX1RNUCAiL3RtcCIKI2RlZmluZSBGSUxFX1NFUEFSQVRPUiAnLycK
I2RlZmluZSBQQVRIX1NFUEFSQVRPUiAnOicKI2RlZmluZSBTVEFUSUNfTElCX1NVRkZJWCAiYSIK
I2RlZmluZSBTSEFSRURfTElCX1NVRkZJWCAic28iCiNkZWZpbmUgVUNTMl9ESVNQTEFZQUJMRSAw
CgojdW5kZWYgU0hFTEwKI2RlZmluZSBTSEVMTCAiL2Jpbi9zaCIKCiN1bmRlZiBDX0NPTVBJTEVS
CiNkZWZpbmUgQ19DT01QSUxFUiAiZ2NjLTMuMC4xIgoKI3VuZGVmIENfRkxBR1MKI2RlZmluZSBD
X0ZMQUdTICIiCgojdW5kZWYgQ19PUFRJTV9GTEFHUwojZGVmaW5lIENfT1BUSU1fRkxBR1MgIi1P
MyAiCgojdW5kZWYgQ19TVFJJUF9GTEFHUwojZGVmaW5lIENfU1RSSVBfRkxBR1MgIi1zIgoKI3Vu
ZGVmIENfUFJPRklMRV9GTEFHUwojZGVmaW5lIENfUFJPRklMRV9GTEFHUyAiLXBnIC1mbm8taW5s
aW5lICIKCiN1bmRlZiBMSUJSQVJZX0RJUkVDVE9SWQojZGVmaW5lIExJQlJBUllfRElSRUNUT1JZ
ICIvdm13YXJlL3VzZXJzL2JpZ2xvby9sb2NhbC9saWIvYmlnbG9vLzIuNGQiCgojdW5kZWYgWklQ
X0RJUkVDVE9SWQojZGVmaW5lIFpJUF9ESVJFQ1RPUlkgIi92bXdhcmUvdXNlcnMvYmlnbG9vL2xv
Y2FsL2xpYi9iaWdsb28vMi40ZCIKCiN1bmRlZiBVU0VSX0xJQlJBUklFUwojZGVmaW5lIFVTRVJf
TElCUkFSSUVTICItbG0iCgojdW5kZWYgQ19CRUFVVElGSUVSCiNkZWZpbmUgQ19CRUFVVElGSUVS
ICIiCgojdW5kZWYgRElSTkFNRV9DTUQKI2RlZmluZSBESVJOQU1FX0NNRCAiZGlybmFtZSIKCiN1
bmRlZiBMSUJSQVJZX0JBU0VfTkFNRQojZGVmaW5lIExJQlJBUllfQkFTRV9OQU1FICJiaWdsb28i
CgojdW5kZWYgRE9VQkxFX1BSRUNJU0lPTgojZGVmaW5lIERPVUJMRV9QUkVDSVNJT04gMTQKCiN1
bmRlZiBBRERJVElPTkFMX1NUQVRJQ19MSU5LX09QVElPTgojZGVmaW5lIEFERElUSU9OQUxfU1RB
VElDX0xJTktfT1BUSU9OICItV2wsLWRlZnN5bSxfRFlOQU1JQz0wIgoKI3VuZGVmIEFERElUSU9O
QUxfU0hBUkVEX0xJTktfT1BUSU9OCiNkZWZpbmUgQURESVRJT05BTF9TSEFSRURfTElOS19PUFRJ
T04gIiIKCiN1bmRlZiBIQVZFX1NIQVJFRF9MSUJSQVJZCiNkZWZpbmUgSEFWRV9TSEFSRURfTElC
UkFSWSAxCiNkZWZpbmUgSEFWRV9ETE9QRU4gMQojZGVmaW5lIERMT1BFTl9MRF9PUFQgIi1sZGwi
CgojdW5kZWYgQkdMX0hFQVBfREVCVUdfQ09QVAojZGVmaW5lIEJHTF9IRUFQX0RFQlVHX0NPUFQg
Ii1ES0VFUF9CQUNLX1BUUlMiCgojdW5kZWYgQkdMX0pBVkEKI2RlZmluZSBCR0xfSkFWQSAiamF2
YSIKCiN1bmRlZiBCR0xfSkFWQV9PUFQKI2RlZmluZSBCR0xfSkFWQV9PUFQgIiIKCiN1bmRlZiBC
R0xfSkFWQV9WT1BUCiNkZWZpbmUgQkdMX0pBVkFfVk9QVCAiLW5vdmVyaWZ5IgoKI3VuZGVmIEJH
TF9KQVZBX1NIRUxMCiNkZWZpbmUgQkdMX0pBVkFfU0hFTEwgInNoIgoKI3VuZGVmIEJHTF9KQVIK
I2RlZmluZSBCR0xfSkFSICJqYXIgY21mIgoKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgYmZhbHNl
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSovCiN1bmRlZiAgQkZBTFNFX0FTX0NGQUxTRQojZGVmaW5lIEJG
QUxTRV9BU19DRkFMU0UgICAgICAgICAgIDEKI3VuZGVmICBCRkFMU0VfQVNfQ0ZBTFNFCgovKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCi8qICAgIGJjb3B5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYoICFIQVZF
X0JDT1BZICkKIyAgIGRlZmluZSBiY29weSggX3NyY18sIF9kc3RfLCBfbGVuXyApIG1lbWNweSgg
X2RzdF8sIF9zcmNfLCBfbGVuXyApCiMgICBkZWZpbmUgYnplcm8oIF9kZXN0XywgX2xlbl8gKSAg
ICAgICBtZW1zZXQoIF9kZXN0XywgMCwgX2xlbl8gKQojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
LyogICAgc2lnc2V0bWFzayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiggIUhBVkVfU0lHU0VUTUFTSyAp
CiMgICBpZiggSEFWRV9TSUdQUk9DTUFTSyApCiMgICAgICBkZWZpbmUgc2lnc2V0bWFzayggX2lu
dF8gKSAgIFwKICAgICAgICAgICAgICAgICBzaWdwcm9jbWFzayggU0lHX1NFVE1BU0ssIChjb25z
dCBzaWdzZXRfdCAqKShfaW50XyksIDBMICkKIyAgIGVsc2UKIyAgICAgIGRlZmluZSBzaWdzZXRt
YXNrKCBfaW50XyApCiMgICBlbmRpZgojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgZ2V0
Y3dkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiggIUhBVkVfR0VUQ1dEICkKIyAgIGlmKCBIQVZF
X0dFVFdEICkKIyAgICAgIGRlZmluZSBnZXRjd2QoIF9wYXRoXywgX2ludF8gKSBnZXR3ZCggX3Bh
dGhfICkKIyAgIGVsc2UKIyAgICAgIGRlZmluZSBnZXRjd2QoIF9wYXRoXywgX2ludF8gKSAoKGNo
YXIgKilnZXRlbnYoICJQV0QiICkpCiMgICBlbmRpZgojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
LyogICAgVGhlIEdjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgTk9fR0MgICAgICAgICAg
ICAxCiNkZWZpbmUgQk9FSE1fR0MgICAgICAgICAyCgojZGVmaW5lIEJPRUhNX0dDX1ZFUlNJT04g
NAoKLyogdGhlIGRlZmF1bHQgR0MgKi8KI2lmKCAhZGVmaW5lZCggVEhFX0dDICkgKQojICAgZGVm
aW5lIFRIRV9HQyBCT0VITV9HQwojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgSWwgeSBh
IHBsdXNpZXVycyBmb3JtZXMgZCdvYmpldHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwovKiAgICBMZXMgb2JqZXRzIGFsbG91ZWVzOiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCi8qICAgICAgICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tKy0t
LS0tLS0tKy0tLS0tLS0tKyAgICAgICAgICAgICAgICAgICAgKi8KLyogICAgICAgICAgICB8Li4u
LnNpZ25lZCBmaXhlZCBwb2ludCB2YWx1ZS4uLi4uPz98ICAgICAgICAgICAgICAgICAgICAqLwov
KiAgICAgICAgICAgICstLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLSsgICAgICAg
ICAgICAgICAgICAgICovCi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogICAgTGVzIG9iamV0cyBpbW1lZGlh
dHMgMzAgYml0czogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAg
ICAgICAgICstLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLSsgICAgICAgICAgICAg
ICAgICAgICovCi8qICAgICAgICAgICAgfC4uLi5zaWduZWQgZml4ZWQgcG9pbnQgdmFsdWUuLi4u
Lj8/fCAgICAgICAgICAgICAgICAgICAgKi8KLyogICAgICAgICAgICArLS0tLS0tLS0rLS0tLS0t
LS0rLS0tLS0tLS0rLS0tLS0tLS0rICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCi8qICAgIExlcyBvYmpldHMgaW1tZWRpYXRzIDYgYml0czogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KLyogICAgICAgICAgICArLS0tLS0tLS0rLS0tLS0tLS0rLS0t
LS0tLS0rLS0tLS0tLS0rICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAgIHwuLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLnx4eHh4eHg/P3wgICAgICAgICAgICAgICAgICAgICovCi8q
ICAgICAgICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tKyAgICAgICAg
ICAgICAgICAgICAgKi8KLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgICBMZXMgb2JqZXRzIGltbWVkaWF0
cyA4IGJpdHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qICAgICAg
ICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tKyAgICAgICAgICAgICAg
ICAgICAgKi8KLyogICAgICAgICAgICB8Li4uLi4uLi4uLi4uLi4uLi58eHh4eHh4eHh8Li4uLi4u
Pz98ICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAgICstLS0tLS0tLSstLS0tLS0t
LSstLS0tLS0tLSstLS0tLS0tLSsgICAgICAgICAgICAgICAgICAgICovCi8qICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ki8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBPdSBzb250IGxlcyBg
dGFncycgZXQgcXVlbCBgbWFzaycgY2VsYSByZXByZXNlbnRlLiAgICAgICAgICAgICAgICovCi8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KI2RlZmluZSBUQUdfU0hJRlQgICAgICAgIFBUUl9BTElHTk1FTlQKI2Rl
ZmluZSBBTElHTk1FTlRfVkFMVUUgICgxIDw8IFBUUl9BTElHTk1FTlQpCiNkZWZpbmUgVEFHX01B
U0sgICAgICAgICAoQUxJR05NRU5UX1ZBTFVFIC0gMSkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAg
VGhlIHRhZ2dlZCBwb2ludGVycyAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwovKiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICovCi8qICAgIFRoZSBmbGFncyBLRUVQX0JBQ0tfUFRS
UyBpcyBhIGRlYnVnZ2luZyBHQyBmbGFncyB0aGF0IGlzIG5vdCAgICAgKi8KLyogICAgY29tcGF0
aWJsZSB3aXRoIHBsYWluIGNvbXBpbGF0aW9uIG1vZGUuIEluIHRoYXQgbW9kZSBlYWNoICAgICAg
ICAqLwovKiAgICBvYmplY3Qga2VlcHMgaW5mb3JtYXRpb25zIGFib3V0IHdobydzIHBvaW50aW5n
IHRvIGl0LiBJdCBpcyAgICAgICovCi8qICAgIHZlcnkgdXNlZnVsIGZvciBkZWJ1Z2dpbmcgYnV0
IGl0IGhhcyBhIHN0cm9uZyBjb25zdHJhaW50OiB3ZSAgICAgKi8KLyogICAgY2Fubm90IHVzZSB0
YWdnaW5nIGFueW1vcmUgZm9yIHR5cGluZyBvYmplY3QuIEVhY2ggb2JqZWN0IG11c3QgICAqLwov
KiAgICBoYXZlIGFuIGhlYWRlciBmaWVsZCBob2xkaW5nIHRoZSBvYmpldCB0eXBlLiAgICAgICAg
ICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmKCBUSEVfR0MgPT0gQk9FSE1fR0Mg
KSAKIyAgIGRlZmluZSBUQUdfU1RSVUNUICAgIDAgICAgIC8qICBQb2ludGVycyB0YWdnaW5nICAg
ICAgICAgLi4uLjAwICAgICAqLwojICAgZGVmaW5lIFRBR19JTlQgICAgICAgMSAgICAgLyogIElu
dGVnZXJzIHRhZ2dpbmcgICAgICAgICAuLi4uMDEgICAgICovCiMgICBkZWZpbmUgVEFHX0NOU1Qg
ICAgICAyICAgICAvKiAgQ29uc3RhbnRzIHRhZ2dpbmcgICAgICAgIC4uLi4xMCAgICAgKi8KIyAg
IGlmKCAhZGVmaW5lZCggS0VFUF9CQUNLX1BUUlMgKSApCiMgICAgICBkZWZpbmUgVEFHX1BBSVIg
ICAzICAgICAvKiAgUGFpcnMgdGFnZ2luZyAgICAgICAgICAgIC4uLi4xMSAgICAgKi8KIyAgIGVu
ZGlmCiNlbHNlCiMgICBpZiggVEhFX0dDID09IE5PX0dDICkKIyAgICAgIGRlZmluZSBUQUdfU1RS
VUNUIDAgICAgIC8qICBQb2ludGVycyB0YWdnaW5nICAgICAgICAgLi4uLjAwICAgICAqLwojICAg
ICAgZGVmaW5lIFRBR19JTlQgICAgMSAgICAgLyogIEludGVnZXJzIHRhZ2dpbmcgICAgICAgICAu
Li4uMDEgICAgICovCiMgICAgICBkZWZpbmUgVEFHX0NOU1QgICAyICAgICAvKiAgQ29uc3RhbnRz
IHRhZ2dpbmcgICAgICAgIC4uLi4xMCAgICAgKi8KIyAgIGlmKCAhZGVmaW5lZCggS0VFUF9CQUNL
X1BUUlMgKSApCiMgICAgICAgICBkZWZpbmUgVEFHX1BBSVIgICAzICAvKiAgUGFpcnMgdGFnZ2lu
ZyAgICAgICAgICAgIC4uLi4xMSAgICAgKi8KIyAgIGVuZGlmCiMgICBlbHNlCiAgICAgICAtLT4g
ZXJyb3IgIlVua25vd24gZ2FyYmFnZSBjb2xsZWN0b3IgdHlwZSIKIyAgIGVuZGlmCiNlbmRpZgoK
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qLwovKiAgICAhISEgV0FSTklORyAhISEgV0FSTklORyAhISEgV0FSTklO
RyAhISEgV0FSTklORyAhISEgV0FSTklORyAhISEgICovCi8qICAgIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgKi8KLyogICAg
SWwgZmF1dCBmYWlyZSB0cmVzIGF0dGVudGlvbiBxdWFuZCBvbiByYWpvdXRlIGRlcyB0YWdzIHBv
dXIgZGVzICAqLwovKiAgICBtYWNoaW5lcyBwYXJ0aWN1bGllcmVzLiBFbiBwYXJ0aWN1bGllciwg
aWwgZmF1dCBzJ2Fzc3VyZXIgcXVlICAgICovCi8qICAgIGxlcyBmb25jdGlvbnMgYHN0cmluZy0+
b2JqJyBldCBgb2JqLT5zdHJpbmcnIHJlc3RlbnQgY29ycmVjdGVzLiAgKi8KLyogICAgQ2VzIGRl
dXggZm9uY3Rpb25zIHV0aWxpc2VudCBsYSByZXByZXNlbnRhdGlvbiBkZXMgb2JqZXRzLiAgICAg
ICAqLwovKiAgICBWb2lyIGxlcyBtYWNyb3MgZCdpbnRlcm5lbWVudCBkYW5zIGNlIGZpY2hpZXIg
ICAgICAgICAgICAgICAgICAgICovCi8qICAgIChTVFJJTkdfTUFSS19PRkZTRVQsIC4uLikgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoK
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qLwovKiAgICA2NCBiaXRzIGFyY2hpdGVjdHVyZXMgdXNlIDMgYml0cyBm
b3IgdGFnZ2luZy4gV2UgYXJlIHRodXMgYWJsZSAgICovCi8qICAgIHRvIGFkZCBvcHRpbWl6ZWQg
Y29uZmlndXJhdGlvbnMgZm9yIHRob3NlIG1hY2hpbmVzOiAgICAgICAgICAgICAgKi8KLyogICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSAgICAqLwovKiAgICArLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLSAuLi4gLSstLS0t
LS0tLSstLS0tLS0tLSstLS0tLS0tLSsgICovCi8qICAgIHwuLi4uLi4uLi4uLi4uLi4uLi5zaWdu
ZWQgZml4ZWQgcG9pbnQgdmFsdWUuLi4uLi4uLi4uLi4uLi4gPz8/fCAgKi8KLyogICAgKy0tLS0t
LS0tKy0tLS0tLS0tKy0tLS0tLS0tKy0gLi4uIC0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0r
ICAqLwovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCi8qICAgIExlcyB2ZWN0ZXVyczogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogICAgKy0tLS0tLS0tKy0t
LS0tLS0tKy0tLS0tLS0tKy0gLi4uIC0rLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rICAqLwov
KiAgICB8Li4uLi4uLi4uLi4uLi4uLi51bnNpZ25lZCBmaXhlZCBwb2ludCB2YWx1ZS4uLi4uLi4u
Li4uLi4uID8/P3wgICovCi8qICAgICstLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLSstIC4uLiAt
Ky0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tKyAgKi8KLyogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSovCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIExlcyBgdGFncycgc3VyIDMgYml0cy4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLwojaWYoIChQVFJfQUxJR05NRU5UID49IDMpICYmICEoZGVmaW5lZCggS0VFUF9CQUNLX1BU
UlMgKSkgKQojICAgZGVmaW5lIFRBR19WRUNUT1IgICAgNCAgICAgLyogIFZlY3RvcnMgdGFnZ2lu
ZyAgICAgICAgICAuLi4xMDAgICAgICovCiMgICBkZWZpbmUgVEFHX0NFTEwgICAgICA1ICAgICAv
KiAgQ2VsbHMgdGFnZ2luZyAgICAgICAgICAgIC4uLjEwMSAgICAgKi8KIyAgIGRlZmluZSBUQUdf
UkVBTCAgICAgIDYgICAgIC8qICBSZWFscyB0YWdnaW5nICAgICAgICAgICAgLi4uMTEwICAgICAq
LwojICAgZGVmaW5lIFRBR19TVFJJTkcgICAgNyAgICAgLyogIFN0cmluZ3MgdGFnZ2luZyAgICAg
ICAgICAuLi4xMTEgICAgICovCiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBIYXNoIHRh
YmxlIHNpemVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBTWU1CT0xfSEFTSF9UQUJMRV9TSVpFX1NISUZU
ICAxMgojZGVmaW5lIFNZTUJPTF9IQVNIX1RBQkxFX1NJWkUgICAgICAgICgxIDw8IFNZTUJPTF9I
QVNIX1RBQkxFX1NJWkVfU0hJRlQpCgojZGVmaW5lIEtFWVdPUkRfSEFTSF9UQUJMRV9TSVpFX1NI
SUZUIDYKI2RlZmluZSBLRVlXT1JEX0hBU0hfVEFCTEVfU0laRSAgICAgICAoMSA8PCBLRVlXT1JE
X0hBU0hfVEFCTEVfU0laRV9TSElGVCkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgSW50ZXJuYWwg
QmlnbG9vJ3MgdHlwZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSovCnR5cGVkZWYgbG9uZyAgICAgICAgICAgaW50X3Q7CnR5cGVkZWYg
aW50X3QgICAgICAgICAgaGVhZGVyX3Q7CnR5cGVkZWYgaW50ICAgICAgICAgICAgYm9vbF90Owp0
eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVjczJfdDsKCnR5cGVkZWYgdW5pb24gc2Ntb2JqIHsKICAg
aW50X3QgICAgICAgICAgICAgIGludGVnZXI7ICAgLyogIExlcyBlbnRpZXJzICAgICAgICAgICAg
ICAgICAgICAgICAqLwogICAKICAgaGVhZGVyX3QgICAgICAgICAgIGhlYWRlcjsgICAgLyogIFVu
IGNoYW1wcyB1biBwZXUgZmljdGlmIG1haXMgICAgICAqLwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgaWwgZXN0IHV0aWxlIHBvdXIgcG91dm9pciBhY2NlZGVyICovCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBhdSBoZWFkZXIgZGVzIG9iamV0cyBzYW5z
IHNhdm9pciAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIHF1ZWwgZXN0
IGxldXIgdHlwZS4gVG91cyBsZXMgICAgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiAgaGVhZGVycyBzb250IGVuIHRldGUgZGVzIHN0cnVjdCAgICovCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qICBvbiBwZXV0IGRvbmMgbGUgaGVhZGVyIGdsb2JhbCAg
ICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogIHBsdXRvdCBxdWUgbGVz
IGhlYWRlciBsb2NhdXggICAgICAqLwogICAKICAgc3RydWN0IHBhaXIgeyAgICAgICAgICAgICAg
ICAgLyogIExlcyBwYWlycy4gICAgICAgICAgICAgICAgICAgICAgICAqLwojaWYoICEoZGVmaW5l
ZCggVEFHX1BBSVIgKSkgKQogICAgICBoZWFkZXJfdCAgICAgICAgaGVhZGVyOyAgICAvKiAgTGUg
aGVhZGVyIGVzdCBmYWN1bHRhdGlmLCBpbCAgICAgICovCiNlbmRpZiAgICAgIAogICAgICB1bmlv
biBzY21vYmogICAqY2FyOyAgICAgICAvKiAgZGVwZW5kIGR1IEdDIHF1J29uIHV0aWxpc2UuICAg
ICAgICovCiAgICAgIHVuaW9uIHNjbW9iaiAgICpjZHI7ICAgICAgIC8qICBEYW5zIHRvdXMgbGVz
IGNhcywgaWwgeSBhIGJpZW5zdXIgKi8KICAgfSBwYWlyX3Q7ICAgICAgICAgICAgICAgICAgICAg
LyogIHVuIGBjYXInIGV0IHVuIGBjZHInIDotKSAgICAgICAgICAqLwoKICAgc3RydWN0IGV4dGVu
ZGVkX3BhaXIgeyAgICAgICAgLyogIExlcyBwYWlycyBldGVuZHVlcy4gICAgICAgICAgICAgICAq
LwojaWYoICEoZGVmaW5lZCggVEFHX1BBSVIgKSkgKQogICAgICBoZWFkZXJfdCAgICAgICAgaGVh
ZGVyOyAgICAvKiAgTGUgaGVhZGVyIGVzdCBmYWN1bHRhdGlmLCBpbCAgICAgICovCiNlbmRpZiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qICBkZXBlbmQgZGUgbCd1dGlsaXNhdGlvbiBkZXMg
Yml0cyAgKi8KICAgICAgdW5pb24gc2Ntb2JqICAgKmNhcjsgICAgICAgCiAgICAgIHVuaW9uIHNj
bW9iaiAgICpjZHI7CiAgICAgIHVuaW9uIHNjbW9iaiAgICplaGVhZGVyOyAgIC8qICBoZWFkZXIg
cG91ciBsYSBtYXJxdWUgYGV4dGVuZGVkJyAgKi8KICAgICAgdW5pb24gc2Ntb2JqICAgKmNlcjsg
ICAgICAgLyogIGxlIHNsb3Qgc3VwcGxlbWVudGFpcmUuICAgICAgICAgICAqLwogICB9IGV4dGVu
ZGVkX3BhaXJfdDsgICAgICAgICAgICAgICAgICAgICAKCiAgIHN0cnVjdCBzdHJpbmcgeyAgICAg
ICAgICAgICAgIC8qICBMZXMgY2hhaW5lcyBkZSBjaGFyLCBqdXN0ZSB1bmUgICAgKi8KI2lmKCAh
ZGVmaW5lZCggVEFHX1NUUklORyApICkKICAgICAgaGVhZGVyX3QgICAgICAgIGhlYWRlcjsgICAg
LyogIGxvbmd1ZXVyLCBsYSBjaGFpbmUgQyBzdWl0LiAgICAgICAqLwojZW5kaWYJCQogICAgICBp
bnQgICAgICAgICAgICAgbGVuZ3RoOwogICAgICB1bnNpZ25lZCBjaGFyICAgY2hhcjA7CiAgIH0g
c3RyaW5nX3Q7CgogICBzdHJ1Y3QgdWNzMl9zdHJpbmcgeyAgICAgICAgICAvKiAgVWNzMiBzdHJp
bmdzOiAgICAgICAgICAgICAgICAgICAgICovCiAgICAgIGhlYWRlcl90ICAgICAgICBoZWFkZXI7
ICAgIC8qICAgICAtIGEgaGVhZGVyICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgaW50ICAg
ICAgICAgICAgIGxlbmd0aDsgICAgLyogICAgIC0gYSBsZW5ndGggICAgICAgICAgICAgICAgICAg
ICAqLwogICAgICB1Y3MyX3QgICAgICAgICAgY2hhcjA7ICAgICAvKiAgICAgLSB0aGUgZmlyc3Qg
VUNTLTIgY2hhcmFjdGVyICAgICovCiAgIH0gdWNzMl9zdHJpbmdfdDsKCiAgIHN0cnVjdCB2ZWN0
b3IgeyAgICAgICAgICAgICAgIC8qICBMZXMgdmVjdGV1cnMsIHVuIGhlYWRlciBldCB1bmUgICAg
Ki8KI2lmKCAhZGVmaW5lZCggVEFHX1ZFQ1RPUiApICkKICAgICAgaGVhZGVyX3QgICAgICAgIGhl
YWRlcjsKI2VuZGlmCQkKICAgICAgaW50ICAgICAgICAgICAgIGxlbmd0aDsgICAgLyogIHRhaWxs
ZSAoQVRURU5USU9OOiBzdXIgMjQgYml0cywgICAqLwogICAgICB1bmlvbiBzY21vYmogICAqb2Jq
MDsgICAgICAvKiAgdm9pciBsYSBtYWNybyB2ZWN0b3ItbGVuZ3RoKS4gICAgICovIAogICB9IHZl
Y3Rvcl90OyAgICAgICAgICAgICAKCiAgIHN0cnVjdCB0dmVjdG9yIHsgICAgICAgICAgICAgIC8q
ICB0eXBlZCB2ZWN0b3JzICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgaGVhZGVyX3QgICAg
ICAgIGhlYWRlcjsgICAgLyogICAtIHRoZSBoZWFkZXIgb2YgdHZlY3RvciAgICAgICAgICAqLwog
ICAgICBpbnQgICAgICAgICAgICAgbGVuZ3RoOyAgICAvKiAgIC0gYSBsZW5ndGggICAgICAgICAg
ICAgICAgICAgICAgICovCiAgICAgIHVuaW9uIHNjbW9iaiAgICpkZXNjcjsgICAgIC8qICAgLSBh
IHR5cGUgZGVzY3JpcHRvciAoc3RhdGljKSAgICAgKi8KICAgfSB0dmVjdG9yX3Q7CgkKICAgc3Ry
dWN0IHByb2NlZHVyZSB7ICAgICAgICAgICAgLyogIExlcyBmZXJtZXR1cmVzICAgICAgICAgICAg
ICAgICAgICAqLwogICAgICBoZWFkZXJfdCAgICAgICAgaGVhZGVyOyAgICAKICAgICAgdW5pb24g
c2Ntb2JqICooKmVudHJ5KSgpOwogICAgICB1bmlvbiBzY21vYmogKigqdmFfZW50cnkpKCk7CiAg
ICAgIGludCAgICAgICAgICAgICBhcml0eTsKICAgICAgdW5pb24gc2Ntb2JqICAgKm9iajA7CiAg
IH0gcHJvY2VkdXJlX3Q7CgogICBzdHJ1Y3QgcHJvY2VkdXJlX2xpZ2h0IHsgICAgICAvKiAgTGVz
IGZlcm1ldHVyZXMgbGVnZXJlcyAgICAgICAgICAgICovCiAgICAgIHVuaW9uIHNjbW9iaiAqKCpl
bnRyeSkoKTsKICAgICAgdW5pb24gc2Ntb2JqICAqb2JqMDsKI2lmKCBkZWZpbmVkKCBfX2FscGhh
ICkgKQogICAgICBjaGFyIGR1bW15X3RvX3ByZXZlbnRfYnVnX2luX3NlbWFudGlxdWVfd2hlbl9o
ZWFwX3NpemVfaXNfNF9tZWdhYnl0ZTsKI2VuZGlmICAgICAgCiAgIH0gcHJvY2VkdXJlX2xpZ2h0
X3Q7CgogICBzdHJ1Y3Qgc3ltYm9sIHsgICAgICAgICAgICAgICAvKiAgU3ltYm9sZXMgJiBrZXl3
b3JkczogICAgICAgICAgICAgICovCiAgICAgIGhlYWRlcl90ICAgICAgICBoZWFkZXI7ICAgIC8q
ICAtIGEgdHlwZSBpZGVudGlmaWVyICAgICAgICAgICAgICAgKi8KICAgICAgdW5pb24gc2Ntb2Jq
ICAgKnN0cmluZzsgICAgLyogIC0gdGhlIG5hbWUgb2YgdGhlIHN5bWJvbC9rZXl3b3JkICAqLwog
ICAgICB1bmlvbiBzY21vYmogICAqY3ZhbDsgICAgICAvKiAgLSBhIHBsaXN0ICAgICAgICAgICAg
ICAgICAgICAgICAgICovCiAgIH0gc3ltYm9sX3Q7CgogICBzdHJ1Y3Qgb3V0cHV0X3BvcnQgeyAg
ICAgICAgICAvKiAgb3V0cHV0X3BvcnQgICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgIGhl
YWRlcl90ICAgICAgICBoZWFkZXI7ICAgIC8qICBKdXN0IGEgcG9pbnRlciB0byB0aGUgZmlsZSwg
ICAgICAgKi8KICAgICAgRklMRSAgICAgICAgICAgKmZpbGU7ICAgICAgLyogIHRoZSBmaWxlX25h
bWUsIGFuZCBhIGtpbmQgb2YgZmlsZSAqLwogICAgICBjaGFyICAgICAgICAgICAqbmFtZTsgICAg
ICAvKiAgKGUuZy4gZmlsZSBvciBwaXBlKS4gICAgICAgICAgICAgICovCiAgICAgIHVuaW9uIHNj
bW9iaiAgICpraW5kb2Y7ICAgIAogICB9IG91dHB1dF9wb3J0X3Q7CgogICBzdHJ1Y3Qgb3V0cHV0
X3N0cmluZ19wb3J0IHsgICAvKiAgTGVzIG91dHB1dF9zdHJpbmdfcG9ydCAgICAgICAgICAgICov
CiAgICAgIGhlYWRlcl90ICAgICAgICBoZWFkZXI7ICAgIC8qICBDZXR0ZSBzdHJ1Y3R1cmUgY29t
cG9ydGU6ICAgICAgICAgKi8KICAgICAgY2hhciAgICAgICAgICAgKmJ1ZmZlcjsgICAgLyogIC0g
dW4gYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICBsb25nICAgICAgICAgICAg
c2l6ZTsgICAgICAvKiAgLSB1bmUgdGFpbGxlICAgICAgICAgICAgICAgICAgICAgICovCiAgICAg
IGxvbmcgICAgICAgICAgICBvZmZzZXQ7ICAgIC8qICAtIHVuIG9mZnNldCAgICAgICAgICAgICAg
ICAgICAgICAgKi8KICAgfSBvdXRwdXRfc3RyaW5nX3BvcnRfdDsKCQogICBzdHJ1Y3QgaW5wdXRf
cG9ydCB7ICAgICAgICAgICAvKiAgYW4gaW5wdXRfcG9ydCA6ICAgICAgICAgICAgICAgICAgICov
CiAgICAgIGhlYWRlcl90ICAgICAgICBoZWFkZXI7ICAgIC8qICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KICAgICAgdW5pb24gc2Ntb2JqICAgKmtpbmRvZjsgICAgLyogICAg
LSAoY29uc29sZSwgZmlsZSwgcGlwZSkgICAgICAgICAqLwogICAgICBjaGFyICAgICAgICAgICAq
bmFtZTsgICAgICAvKiAgICAtIHRoZSBuYW1lIG9mIGZpbGUgICAgICAgICAgICAgICovCiAgICAg
IEZJTEUgICAgICAgICAgICpmaWxlOyAgICAgIC8qICAgIC0gdGhlIHVuZGVybHlpbmcgQyBmaWxl
ICAgICAgICAgKi8KICAgICAgbG9uZyAgICAgICAgICAgIGZpbGVwb3M7ICAgLyogICAgLSB0aGUg
cG9zaXRpb24gaW4gdGhlIGZpbGUgICAgICAqLwogICAgICBpbnQgICAgICAgICAgICgqc3lzcmVh
ZCkoKTsvKiAgICAtIHRoZSBzeXN0ZW0gcmVhZGVyICAgICAgICAgICAgICovCiAgICAgIGludCAg
ICAgICAgICAgKCpzeXNlb2YpKCk7IC8qICAgIC0gdGhlIHN5c3RlbSBlb2YgZnVuY3Rpb24gICAg
ICAgKi8KICAgICAgbG9uZyAgICAgICAgICAgIGJ1ZnNpejsgICAgLyogICAgLSB0aGUgc2l6ZSBv
ZiB0aGUgYnVmZmVyICAgICAgICAqLwogICAgICBib29sX3QgICAgICAgICAgZW9mOyAgICAgICAv
KiAgICAtIGhhdmUgd2Ugc2VlbiBhbiBlbmQtb2YtZmlsZSAgICovCiAgICAgIGxvbmcgICAgICAg
ICAgICBtYXRjaHN0YXJ0Oy8qICAgIC0gdGhlIHN0YXJ0IG9mIGEgbWF0Y2ggcG9zaXRpb24gKi8K
ICAgICAgbG9uZyAgICAgICAgICAgIG1hdGNoc3RvcDsgLyogICAgLSB0aGUgZW5kIG9mIHRoZSBt
YXRjaCAgICAgICAgICAqLwogICAgICBsb25nICAgICAgICAgICAgZm9yd2FyZDsgICAvKiAgICAt
IHRoZSBwb3NpdGlvbiBvZiBSRUFELUNIQVIgICAgICovCiAgICAgIGxvbmcgICAgICAgICAgICBh
YnVmc2l6OyAgIC8qICAgIC0gdGhlIGFjdHVhbCBzaXplIG9mIHRoZSBidWZmZXIgKi8KICAgICAg
dW5zaWduZWQgY2hhciAgKmJ1ZmZlcjsgICAgLyogICAgLSB0aGUgcG9ydCBidWZmZXIgICAgICAg
ICAgICAgICAqLwogICAgICBpbnQgICAgICAgICAgICAgbGFzdGNoYXI7ICAvKiAgICAtIHRoZSBs
YXN0IGNoYXIgYmVmb3JlIGEgZmlsbCAgICovCiAgIH0gaW5wdXRfcG9ydF90OwogICAgICAKICAg
c3RydWN0IGJpbmFyeV9wb3J0IHsgICAgICAgICAgLyogIExlcyBiaW5hcnlfcG9ydCAgICAgICAg
ICAgICAgICAgICAqLwogICAgICBoZWFkZXJfdCAgICAgICAgaGVhZGVyOyAgICAvKiAgY2VzIHBv
cnRzIHNvbnQgY29uc3RpdHVlcyBkZTogICAgICovCiAgICAgIGNoYXIgICAgICAgICAgICpuYW1l
OyAgICAgIC8qICAgIC0gdW4gbm9tIGRlIGZpY2hpZXIgICAgICAgICAgICAgKi8KICAgICAgRklM
RSAgICAgICAgICAgKmZpbGU7ICAgICAgLyogICAgLSB1biBwb2ludGV1ciBzdXIgdW4gZmljaGll
ciAgICAqLwogICAgICBib29sX3QgICAgICAgICAgICBpbzsgICAgICAvKiAgICAtIDAgZW4gZW50
cmVlIDEgZW4gc29ydGllICAgICAgICovCiAgIH0gYmluYXJ5X3BvcnRfdDsKCQojaWYoICFkZWZp
bmVkKCBUQUdfQ0VMTCApICkKICAgc3RydWN0IGNlbGwgeyAgICAgICAgICAgICAgICAgLyogIExl
cyBjZWxsdWxlcy4gQ2VzIG9iamV0cyBzb250ICAgICAqLwogICAgICBoZWFkZXJfdCAgICAgICAg
aGVhZGVyOyAgICAvKiAgdXRpbGlzZWVzIHF1YW5kIGlsIHkgYSBkZXMgdmFyICAgICovCiAgICAg
IHVuaW9uIHNjbW9iaiAgICp2YWw7ICAgICAgICAKICAgfSBjZWxsX3Q7CiNlbmRpZgkJCgogICBz
dHJ1Y3Qgc3RydWN0dXJlIHsgICAgICAgICAgICAvKiAgTGVzIHN0cnVjdHVyZXMsICAgICAgICAg
ICAgICAgICAgICovCiNpZiggIWRlZmluZWQoIFRBR19TVFJVQ1RVUkUgKSApCiAgICAgIGhlYWRl
cl90ICAgICAgICBoZWFkZXI7ICAgIC8qICBzb250IGNvbnN0aXR1ZWVzIGRlIDogICAgICAgICAg
ICAgKi8KI2VuZGlmCQkKICAgICAgdW5pb24gc2Ntb2JqICAgKmtleTsgICAgICAgLyogICAgICAg
ICAgICAgICAgICAgICAgLSB1bmUgY2xlICAgICAqLwogICAgICBpbnQgICAgICAgICAgICAgbGVu
Z3RoOyAgICAvKiAgICAgICAgICAgICAgICAgICAgICAtIHVuZSBsb25nLiAgICovCiAgICAgIHVu
aW9uIHNjbW9iaiAgICpvYmowOwogICB9IHN0cnVjdF90OwoKICAgc3RydWN0IHJlYWwgeyAgICAg
ICAgICAgICAgICAgLyogIExlcyBub21icmVzIGZsb3R0YW50cyAgICAgICAgICAgICAqLwojaWYo
ICFkZWZpbmVkKCBUQUdfUkVBTCApICkKICAgICAgaGVhZGVyX3QgICAgICAgIGhlYWRlcjsgICAg
LyogIGNlIGNoYW1wcyBlc3QganVzdGUgdXRpbGUgcG91ciAgICAqLwojZW5kaWYJCQogICAgICBk
b3VibGUgICAgICAgICAgcmVhbDsgICAgICAKICAgfSByZWFsX3Q7ICAgICAgICAgICAgICAgICAg
ICAgCgogICBzdHJ1Y3Qgc3RhY2sgeyAgICAgICAgICAgICAgICAvKiAgTGVzIHBpbGVzIGRlIGBj
YWxsL2NjJyAgICAgICAgICAgICovCiAgICAgIGhlYWRlcl90ICAgICAgICBoZWFkZXI7ICAgIC8q
ICBzb250OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgdW5pb24gc2Ntb2Jq
ICAgKnNlbGY7ICAgICAgLyogICAgICAgIC0gdW4gcHRyIHN1ciBzb2l0IG1lbWUgICAgICAqLwog
ICAgICB1bmlvbiBzY21vYmogICAqZXhpdGRfdG9wOyAvKiAgICAgICAgLSB1biBwdHIgc3VyIGxl
cyBleGl0cyAgICAgICovCiAgICAgIHVuaW9uIHNjbW9iaiAgICpzdGFtcDsgICAgIC8qICAgICAg
ICAtIGFuIGV4aXRkIHN0YW1wICAgICAgICAgICAgKi8KICAgICAgbG9uZyAgICAgICAgICAgIHNp
emU7ICAgICAgLyogICAgICAgIC0gdW5lIHRhaWxsZSAgICAgICAgICAgICAgICAqLwogICAgICBz
dHJ1Y3QgYmVmb3JlZCAqYmVmb3JlX3RvcDsvKiAgICAgICAgLSB1biBwdHIgc3VyIGxlcyBiZWZv
cmVzICAgICovCiAgICAgIGNoYXIgICAgICAgICAgICpzdGFja190b3A7IC8qICAgICAgICAtIHRo
ZSB0b3Agb2YgdGhlIHN0YWNrICAgICAgKi8KICAgICAgY2hhciAgICAgICAgICAgKnN0YWNrX2Jv
dDsgLyogICAgICAgIC0gdGhlIGJvdHRvbSBvZiB0aGUgc3RhY2sgICAqLwogICAgICBzdHJ1Y3Qg
ZGZyYW1lICAqdG9wX2ZyYW1lOyAvKiAgICAgICAgLSB0aGUgaGVhZCBvZiB0aGUgdHJhY2VzICAg
ICovCiAgICAgIHZvaWQgICAgICAgICAgICpzdGFjazsgICAgIC8qICAgICAgICAtIHVuIGVzcGFj
ZSBtZW1vaXJlICAgICAgICAgKi8KICAgfSBzdGFja190OwoKICAgc3RydWN0IGZvcmVpZ24geyAg
ICAgICAgICAgICAgLyogIExlcyB0eXBlcyBldHJhbmdlcnMgICAgICAgICAgICAgICAqLwogICAg
ICBoZWFkZXJfdCAgICAgICAgaGVhZGVyOyAgICAKICAgICAgdW5pb24gc2Ntb2JqICAgKmlkOwog
ICAgICB2b2lkICAgICAgICAgICAqY29iajsKICAgfSBmb3JlaWduX3Q7CgogICBzdHJ1Y3QgZWxv
bmcgeyAgICAgICAgICAgICAgICAvKiAgVGhlIGBleGFjdCBsb25nJyAob3IgZnVsbCBsb25nKSAg
ICovCiAgICAgIGhlYWRlcl90ICAgICAgICBoZWFkZXI7CiAgICAgIGxvbmcgICAgICAgICAgICBl
bG9uZzsKICAgfSBlbG9uZ190OwoKICAgc3RydWN0IGxsb25nIHsgICAgICAgICAgICAgICAgLyog
dGhlIGxvbmcgbG9uZyBCaWdsb28gb2JqZWN0cyAgICAgICAqLwogICAgICBoZWFkZXJfdCAgICAg
ICAgaGVhZGVyOwojaWYoIEhBVkVfTE9OR0xPTkcgKSAgICAgIAogICAgICBsb25nIGxvbmcgICAg
ICAgbGxvbmc7CiNlbHNlCiAgICAgIGxvbmcgICAgICAgICAgICBsbG9uZzsKI2VuZGlmICAgICAg
CiAgIH0gbGxvbmdfdDsKCiAgIHN0cnVjdCBwcm9jZXNzIHsgICAgICAgICAgICAgIC8qIEZpcnN0
IGNsYXNzIHByb2Nlc3NlczogICAgICAgICAgICAgKi8KICAgICAgaGVhZGVyX3QgICAgICBoZWFk
ZXI7ICAgICAgLyogICAtIGEgaGVhZGVyIGZvciB0eXBlIGNoZWNraW5nICAgICAqLwogICAgICBp
bnQgICAgICAgICAgIHBpZDsgICAgICAgICAvKiAgIC0gdGhlIHByb2Nlc3MgaWQgICAgICAgICAg
ICAgICAgICovCiAgICAgIGludCAgICAgICAgICAgaW5kZXg7ICAgICAgIC8qICAgLSBwcm9jZXNz
IGluZGV4IChzZWUgcHJvY190YWJsZSkgKi8KICAgICAgdW5pb24gc2Ntb2JqICpzdHJlYW1bIDMg
XTsgLyogICAtIG91dCwgaW4gYW5kIGVyciBzdHJlYW1zICAgICAgICAqLwogICAgICBpbnQgICAg
ICAgICAgIGV4aXRlZDsgICAgICAvKiAgIC0gcHJvY2VzcyBpcyBjb21wbGV0ZWQgICAgICAgICAg
ICovCiAgICAgIGludCAgICAgICAgICAgZXhpdF9zdGF0dXM7IC8qICAgLSB0aGUgZXhpdCBzdGF0
dXMgb2YgdGhlIHByb2Nlc3MgKi8KICAgfSBwcm9jZXNzX3Q7CgogICBzdHJ1Y3Qgc29ja2V0IHsg
ICAgICAgICAgICAgICAvKiBGaXJzdCBjbGFzcyBzb2NrZXRzOiAgICAgICAgICAgICAgICovCiAg
ICAgIGhlYWRlcl90ICAgICAgaGVhZGVyOyAgICAgIC8qICAgLSBhIGhlYWRlciBmb3IgdHlwZSBj
aGVja2luZyAgICAgKi8KICAgICAgaW50ICAgICAgICAgICBwb3J0bnVtOyAgICAgLyogICAtIGEg
cG9ydCBudW1iZXIgICAgICAgICAgICAgICAgICAqLwogICAgICB1bmlvbiBzY21vYmogKmhvc3Ru
YW1lOyAgICAvKiAgIC0gYSBob3N0IG5hbWUgICAgICAgICAgICAgICAgICAgICovCiAgICAgIHVu
aW9uIHNjbW9iaiAqaG9zdGlwOyAgICAgIC8qICAgLSBhIGhvc3QgaXAgICAgICAgICAgICAgICAg
ICAgICAgKi8KICAgICAgaW50ICAgICAgICAgICBmZDsgICAgICAgICAgLyogICAtIGEgZmlsZSBk
ZXNjcmlwdG9yICAgICAgICAgICAgICAqLwogICAgICB1bmlvbiBzY21vYmogKmlucHV0OyAgICAg
ICAvKiAgIC0gYSBzY2hlbWUgaW5wdXQgcG9ydCBvciAjdW5zcGVjICovCiAgICAgIHVuaW9uIHNj
bW9iaiAqb3V0cHV0OyAgICAgIC8qICAgLSBhIHNjaGVtZSBvdXRwdXQgcG9ydCBvciAjdW5zcGVj
Ki8KICAgfSBzb2NrZXRfdDsKCiAgIHN0cnVjdCBjdXN0b20geyAgICAgICAgICAgICAgIC8qIEN1
c3RvbSBvYmplY3RzICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgaGVhZGVyX3QgICAgICBo
ZWFkZXI7ICAgICAgLyogICAtIGEgaGVhZGVyIGZvciB0eXBlIGNoZWNraW5nICAgICAqLwogICAg
ICBjaGFyICAgICAgICAgKmlkZW50aWZpZXI7ICAvKiAgIC0gYSBpZGVudGlmaWVyICAgICAgICAg
ICAgICAgICAgICovCiAgICAgIGludCAgICAgICAgICAgKCpmaW5hbCkoKTsgIC8qICAgLSBhIGZp
bmFsaXphdGlvbiBmdW5jdGlvbiAgICAgICAgKi8KICAgICAgaW50ICAgICAgICAgICAoKmVxdWFs
KSgpOyAgLyogICAtIGFuIGVxdWFsaXR5IGZ1bmN0aW9uICAgICAgICAgICAqLwogICAgICBsb25n
ICAgICAgICAgICgqaGFzaCkoKTsgICAvKiAgIC0gYSBoYXNoIGZ1bmN0aW9uICAgICAgICAgICAg
ICAgICovCiAgICAgIGNoYXIgICAgICAgICAqKCp0b19zdHJpbmcpKCk7LyogLSBhbiBzdHJpbmcg
Y29udmVyc3RlciAgICAgICAgICAgKi8KICAgICAgdW5pb24gc2Ntb2JqICooKm91dHB1dCkoKTsg
LyogICAtIGFuIG91dHB1dCBmdW5jdGlvbiAgICAgICAgICAgICAqLwogICB9IGN1c3RvbV90Owp9
ICpvYmpfdDsKCnR5cGVkZWYgb2JqX3QgKCpmdW5jdGlvbl90KSgpOwoKLyogb2xkIG5hbWUgbWFu
Z2xpbmcgZnJhbWV3b3JrICovCnR5cGVkZWYgc3RydWN0IF9fb2JqZWN0X2JnbCB7CiAgIGhlYWRl
cl90IGhlYWRlcjsKICAgb2JqX3Qgd2lkZW5pbmc7Cn0gKm9iamVjdF9iZ2x0OwoKLyogYm9vdHN0
cmFwIGNvbmZpZ3VyYXRpb24gKi8gICAKdHlwZWRlZiBzdHJ1Y3QgX19iZ2xfX29iamVjdF8wMF9i
Z2wgewogICBoZWFkZXJfdCBoZWFkZXI7CiAgIG9ial90IHdpZGVuaW5nOwp9ICpiZ2xfX29iamVj
dF8wMF9iZ2x0OwogICAKLyogbmV3IG5hbWUgbWFuZ2xpbmcgZnJhbWV3b3JrICovICAgCnR5cGVk
ZWYgc3RydWN0IEJnTF9fb2JqZWN0XzAwX2JnbCB7CiAgIGhlYWRlcl90IGhlYWRlcjsKICAgb2Jq
X3Qgd2lkZW5pbmc7Cn0gKkJnTF9fb2JqZWN0XzAwX2JnbHQ7CnR5cGVkZWYgc3RydWN0IEJnTF9v
YmplY3R6MDBfYmdsIHsKICAgaGVhZGVyX3QgaGVhZGVyOwogICBvYmpfdCB3aWRlbmluZzsKfSAq
QmdMX29iamVjdHowMF9iZ2x0OwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBUeXBlIGlkZW50aWZp
ZXJzIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KI2RlZmluZSBQQUlSX1RZUEUgICAgICAgICAgICAgICAgICAwCiNkZWZp
bmUgU1RSSU5HX1RZUEUgICAgICAgICAgICAgICAgMQojZGVmaW5lIFZFQ1RPUl9UWVBFICAgICAg
ICAgICAgICAgIDIKI2RlZmluZSBQUk9DRURVUkVfVFlQRSAgICAgICAgICAgICAzCiNkZWZpbmUg
VUNTMl9TVFJJTkdfVFlQRSAgICAgICAgICAgNAojZGVmaW5lIE9QQVFVRV9UWVBFICAgICAgICAg
ICAgICAgIDUKI2RlZmluZSBDVVNUT01fVFlQRSAgICAgICAgICAgICAgICA2CiNkZWZpbmUgS0VZ
V09SRF9UWVBFICAgICAgICAgICAgICAgNwojZGVmaW5lIFNZTUJPTF9UWVBFICAgICAgICAgICAg
ICAgIDgKI2RlZmluZSBTVEFDS19UWVBFICAgICAgICAgICAgICAgICA5CiNkZWZpbmUgSU5QVVRf
UE9SVF9UWVBFICAgICAgICAgICAgMTAKI2RlZmluZSBPVVRQVVRfUE9SVF9UWVBFICAgICAgICAg
ICAxMQovKiAjZGVmaW5lIFJHUkFNTUFSX1RZUEUgICAgICAgICAgICAgIDEyICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICovCiNkZWZpbmUgQ0VMTF9UWVBFICAgICAgICAgICAgICAgICAg
MTMKI2RlZmluZSBTT0NLRVRfVFlQRSAgICAgICAgICAgICAgICAxNAojZGVmaW5lIFNUUlVDVF9U
WVBFICAgICAgICAgICAgICAgIDE1CiNkZWZpbmUgUkVBTF9UWVBFICAgICAgICAgICAgICAgICAg
MTYKI2RlZmluZSBQUk9DRVNTX1RZUEUgICAgICAgICAgICAgICAxNwojZGVmaW5lIEZPUkVJR05f
VFlQRSAgICAgICAgICAgICAgIDE4CiNkZWZpbmUgT1VUUFVUX1NUUklOR19QT1JUX1RZUEUgICAg
MTkKI2RlZmluZSBCSU5BUllfUE9SVF9UWVBFICAgICAgICAgICAyMAojZGVmaW5lIEVYVEVOREVE
X1BBSVJfVFlQRSAgICAgICAgIDIxCiNkZWZpbmUgVFZFQ1RPUl9UWVBFICAgICAgICAgICAgICAg
MjIKI2RlZmluZSBUU1RSVUNUX1RZUEUgICAgICAgICAgICAgICAyMwojZGVmaW5lIFBST0NFRFVS
RV9MSUdIVF9UWVBFICAgICAgIDI0CiNkZWZpbmUgRUxPTkdfVFlQRSAgICAgICAgICAgICAgICAg
MjUKI2RlZmluZSBMTE9OR19UWVBFICAgICAgICAgICAgICAgICAyNgovKiBPQkpFQ1QgbXVzdCBi
ZSB0aGUgbGFzdCBkZWZpbmVkIHR5cGUgYmVjYXVzZSBuZXcgY2xhc3NlcyAgICovCi8qIHdpbGwg
YmUgYWxsb2NhdGVkIFRZUEUgbnVtYmVyIHN0YXJ0aW5nIGF0IE9CSkVDVF9UWVBFICsgMS4gKi8K
I2RlZmluZSBPQkpFQ1RfVFlQRSAgICAgICAgICAgICAgICAyNyAKCi8qLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
LyogICAgTGVzIHByb2NlZHVyZXMgZCdhbGxvY2F0aW9ucyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiggVEhFX0dDID09IERFTEFDT1VS
X0dDICkKIyAgIGRlZmluZSBHQ19NQUxMT0MoIHNpemUgKQojICAgZGVmaW5lIEdDX01BTExPQ19B
VE9NSUMoIHNpemUgKQojICAgZGVmaW5lIElOSVRfQUxMT0NBVElPTigpIDEKIyAgIGRlZmluZSBG
UkVFX0FMTE9DQVRJT04oKSAxCiNlbHNlCiMgICBpZiggVEhFX0dDID09IEJPRUhNX0dDICkKIyAg
ICAgIGlmKCAhZGVmaW5lZCggR0NfUFJJVkFURV9IICkgKQogICAgICAgICAgZXh0ZXJuIG9ial90
IEdDX21hbGxvYygpOwogICAgICAgICAgZXh0ZXJuIG9ial90IEdDX21hbGxvY19hdG9taWMoKTsK
ICAgICAgICAgIGV4dGVybiBvYmpfdCBHQ19kZWJ1Z19tYWxsb2MoKTsKICAgICAgICAgIGV4dGVy
biBvYmpfdCBHQ19kZWJ1Z19tYWxsb2NfYXRvbWljKCk7CiAgICAgICAgICBleHRlcm4gaW50IEdD
X2djX25vOwogICAgICAgICAgZXh0ZXJuIGludCBHQ19zaXplKCk7CiAgICAgICAgICBleHRlcm4g
dm9pZCBHQ19pbml0KCk7CiAgICAgICAgICBleHRlcm4gdm9pZCBHQ19leHBhbmRfaHAoIGxvbmcg
KTsKICAgICAgICAgIGV4dGVybiB2b2lkIEdDX3JlZ2lzdGVyX2Rpc3BsYWNlbWVudCggaW50ICk7
CiAgICAgICAgICBleHRlcm4gb2JqX3QgR0NfZGVidWdfbWFsbG9jKCk7CiAgICAgICAgICBleHRl
cm4gb2JqX3QgR0NfZGVidWdfbWFsbG9jX2F0b21pYygpOwogICAgICAgICAgZXh0ZXJuIHZvaWQg
R0NfZGVidWdfcmVnaXN0ZXJfZGlzcGxhY2VtZW50KCBpbnQgKTsKIyAgICAgIGlmKCBkZWZpbmVk
KCBQUk9GSUxFICkgKQogICAgICAgICAgZXh0ZXJuIHZvaWQgR0NfcHJvZmlsZV9zdGFydCgpOwoj
ICAgICAgZW5kaWYKIyAgICAgIGVuZGlmCiMgICAgICB1bmRlZiBHQ19NQUxMT0MKIyAgICAgIHVu
ZGVmIEdDX01BTExPQ19BVE9NSUMKIyAgICAgIGlmKCBkZWZpbmVkKCBLRUVQX0JBQ0tfUFRSUyAp
ICkKLyogVGhlIGNhc3RzIGZyb20gb2JqX3QgdG8gY2hhciAqIGluIHRoaXMgdHdvIG1hY3JvcyBh
cmUgbm90IGRhbmdlcm91cy4gKi8KLyogVGhlIGRlYnVnIG1hbGxvYyBtYWNoaW5lcnkgZG9lcyBu
b3QgcmVseSBvbiB0aGF0IHRoZSBzeW1ib2wgcG9pbnRlZCAgKi8KLyogdG8gYnkgdG9wX29mX2Zy
YW1lIGFyZSBoZWxkIGJ5IHRoZSBhbGxvY2F0ZWQgb2JqZWN0LiBCZWNhdXNlIHRoZXNlICAgKi8K
LyogYXJlIHN5bWJvbHMsIHRoZXkgd29uJ3QgYmUgY29sbGVjdGVkIGJlY2F1c2UgdGhleSBhcmUg
cG9pbnRlZCB0byBieSAgKi8KLyogdGhlIHN5bWJvbCB0YWJsZS4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8gICAKIyAgICAgICAgIGRlZmluZSBH
Q19NQUxMT0MoIHNpemUgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgICAgICAgICAob2JqX3QpR0NfZGVidWdfbWFsbG9jKCBzaXplLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KGNoYXIgKil0b3Bfb2ZfZnJhbWUtPnN5bWJvbCwgICAgICAgIFwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChHQ19nY19ubzw8MTYpICkKIyAgICAgICAgIGRlZmluZSBHQ19N
QUxMT0NfQVRPTUlDKCBzaXplICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgICAgICAgICAob2JqX3QpR0NfZGVidWdfbWFsbG9jX2F0b21pYyggc2l6ZSwgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjaGFyICopdG9wX29mX2ZyYW1lLT5zeW1ib2wsIFwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoR0NfZ2Nfbm88PDE2KSApCiMgICAgICBlbHNlCiMgICAg
ICAgICBpZiggZGVmaW5lZCggQklHTE9PX0dDX01BTExPQ19QUk9GSUxFICkgKQogICAgICAgICAg
ICBleHRlcm4gdm9pZCBHQ19wcm9maWxlX2FsbG9jKCBzaXplX3QsIGNoYXIgKiwgaW50ICk7CiAg
ICAgICAgICAgIGV4dGVybiB2b2lkICpHQ19wcm9maWxlX21hbGxvYyggc2l6ZV90LCBjaGFyICos
IGludCApOwogICAgICAgICAgICBleHRlcm4gdm9pZCAqR0NfcHJvZmlsZV9tYWxsb2NfYXRvbWlj
KCBzaXplX3QsIGNoYXIgKiwgaW50ICk7CiMgICAgICAgICAgIGRlZmluZSBHQ19NQUxMT0MoIHNp
emUgKSBcCiAgICAgICAgICAgICAgICAgKChvYmpfdClHQ19wcm9maWxlX21hbGxvYyggc2l6ZSwg
X19GSUxFX18sIF9fTElORV9fICkpCiMgICAgICAgICAgIGRlZmluZSBHQ19NQUxMT0NfQVRPTUlD
KCBzaXplICkgXAogICAgICAgICAgICAgICAgICgob2JqX3QpR0NfcHJvZmlsZV9tYWxsb2NfYXRv
bWljKCBzaXplLCBfX0ZJTEVfXywgX19MSU5FX18gKSkKIyAgICAgICAgIGVsc2UKIyAgICAgICAg
ICAgZGVmaW5lIEdDX01BTExPQyggc2l6ZSApIChvYmpfdClHQ19tYWxsb2MoIHNpemUgKQojICAg
ICAgICAgICBkZWZpbmUgR0NfTUFMTE9DX0FUT01JQyggc2l6ZSApIChvYmpfdClHQ19tYWxsb2Nf
YXRvbWljKCBzaXplICkKIyAgICAgICAgIGVuZGlmCiMgICAgICBlbmRpZgojICAgICAgZGVmaW5l
IEdDX0NPTExFQ1QoKSBHQ19nY29sbGVjdCgpCgovKiAgQSBzdXBwcmltZXIgZGVzIHF1ZSBCb2Vo
bSBhdXJhIGNvcnJpZ2UgR0NfcmVnaXN0ZXJfZGlzcGxhY2VtZW50ICovCi8qICBkYW5zIHNvbiBH
Qy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
IyAgICAgIGlmKCAhZGVmaW5lZCggR0NfUkVHSVNURVJfRElTUExBQ0VNRU5UICkgKQojICAgICAg
ICAgaWYoIGRlZmluZWQoIEdDX0RFQlVHICkgfHwgZGVmaW5lZCggS0VFUF9CQUNLX1BUUlMgKSAp
CiMgICAgICAgICAgICBkZWZpbmUgR0NfUkVHSVNURVJfRElTUExBQ0VNRU5UKCBvICkgR0NfZGVi
dWdfcmVnaXN0ZXJfZGlzcGxhY2VtZW50KCBvICkKIyAgICAgICAgIGVsc2UKIyAgICAgICAgICAg
IGRlZmluZSBHQ19SRUdJU1RFUl9ESVNQTEFDRU1FTlQoIG8gKSBHQ19yZWdpc3Rlcl9kaXNwbGFj
ZW1lbnQoIG8gKQojICAgICAgICAgZW5kaWYKIyAgICAgIGVuZGlmCgojICAgICAgaWYoIGRlZmlu
ZWQoIFRBR19TVFJVQ1QgKSAmJiAoIFRBR19TVFJVQ1QgIT0gMCkgKQojICAgICAgICAgZGVmaW5l
IFNUUlVDVF9ESVNQTEFDRU1FTlQoKSBHQ19SRUdJU1RFUl9ESVNQTEFDRU1FTlQoIFRBR19TVFJV
Q1QgKSAKIyAgICAgIGVsc2UKIyAgICAgICAgIGRlZmluZSBTVFJVQ1RfRElTUExBQ0VNRU5UKCkg
MAojICAgICAgZW5kaWYKIyAgICAgIGlmKCBkZWZpbmVkKCBUQUdfUEFJUiApICYmICggVEFHX1BB
SVIgIT0gMCkgKQojICAgICAgICAgZGVmaW5lIFBBSVJfRElTUExBQ0VNRU5UKCkgR0NfUkVHSVNU
RVJfRElTUExBQ0VNRU5UKCBUQUdfUEFJUiApIAojICAgICAgZWxzZQojICAgICAgICAgZGVmaW5l
IFBBSVJfRElTUExBQ0VNRU5UKCkgMAojICAgICAgZW5kaWYKIyAgICAgIGlmKCBkZWZpbmVkKCBU
QUdfVkVDVE9SICkgJiYgKCBUQUdfVkVDVE9SICE9IDApICkKIyAgICAgICAgIGRlZmluZSBWRUNU
T1JfRElTUExBQ0VNRU5UKCkgR0NfUkVHSVNURVJfRElTUExBQ0VNRU5UKCBUQUdfVkVDVE9SICkg
CiMgICAgICBlbHNlCiMgICAgICAgICBkZWZpbmUgVkVDVE9SX0RJU1BMQUNFTUVOVCgpIDAKIyAg
ICAgIGVuZGlmCiMgICAgICBpZiggZGVmaW5lZCggVEFHX0NFTEwgKSAmJiAoIFRBR19DRUxMICE9
IDApICkKIyAgICAgICAgIGRlZmluZSBDRUxMX0RJU1BMQUNFTUVOVCgpIEdDX1JFR0lTVEVSX0RJ
U1BMQUNFTUVOVCggVEFHX0NFTEwgKSAKIyAgICAgIGVsc2UKIyAgICAgICAgIGRlZmluZSBDRUxM
X0RJU1BMQUNFTUVOVCgpIDAKIyAgICAgIGVuZGlmCiMgICAgICBpZiggZGVmaW5lZCggVEFHX1NU
UlVDVFVSRSApICYmICggVEFHX1NUUlVDVFVSRSAhPSAwKSApCiMgICAgICAgICBkZWZpbmUgU1RS
VUNUVVJFX0RJU1BMQUNFTUVOVCgpIFwKICAgICAgICAgICAgIEdDX1JFR0lTVEVSX0RJU1BMQUNF
TUVOVCggVEFHX1NUUlVDVFVSRSApIAojICAgICAgZWxzZQojICAgICAgICAgZGVmaW5lIFNUUlVD
VFVSRV9ESVNQTEFDRU1FTlQoKSAwCiMgICAgICBlbmRpZgojICAgICAgaWYoIGRlZmluZWQoIFRB
R19TVFJJTkcgKSAmJiAoIFRBR19TVFJJTkcgIT0gMCkgKQojICAgICAgICAgZGVmaW5lIFNUUklO
R19ESVNQTEFDRU1FTlQoKSBHQ19SRUdJU1RFUl9ESVNQTEFDRU1FTlQoIFRBR19TVFJJTkcgKSAK
IyAgICAgIGVsc2UKIyAgICAgICAgIGRlZmluZSBTVFJJTkdfRElTUExBQ0VNRU5UKCkgMAojICAg
ICAgZW5kaWYKIyAgICAgIGlmKCBkZWZpbmVkKCBUQUdfUkVBTCApICYmICggVEFHX1JFQUwgIT0g
MCkgKQojICAgICAgICAgZGVmaW5lIFJFQUxfRElTUExBQ0VNRU5UKCkgR0NfUkVHSVNURVJfRElT
UExBQ0VNRU5UKCBUQUdfUkVBTCApIAojICAgICAgZWxzZQojICAgICAgICAgZGVmaW5lIFJFQUxf
RElTUExBQ0VNRU5UKCkgMAojICAgICAgZW5kaWYKCiMgICAgICBkZWZpbmUgSU5JVF9BTExPQ0FU
SU9OKCBzaXplICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgKCBH
Q19pbml0KCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgICAgICAgR0NfZXhwYW5kX2hwKCBzaXplICksICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgIAkgICAgU1RSVUNUX0RJU1BMQUNFTUVOVCgpLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgIAkgICAgUEFJUl9ESVNQTEFDRU1FTlQoKSwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIAkgICAgVkVDVE9SX0RJU1BM
QUNFTUVOVCgpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIAkgICAgQ0VM
TF9ESVNQTEFDRU1FTlQoKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
IAkgICAgU1RSVUNUVVJFX0RJU1BMQUNFTUVOVCgpLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCiAgIAkgICAgU1RSSU5HX0RJU1BMQUNFTUVOVCgpLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgIAkgICAgUkVBTF9ESVNQTEFDRU1FTlQoKSwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgIDEgKQoKIyAgICAgIGRlZmluZSBG
UkVFX0FMTE9DQVRJT04oKTsKIyAgIGVsc2UKIyAgICAgIGlmKCBUSEVfR0MgPT0gTk9fR0MgKQog
ICAgICAgICAgZXh0ZXJuIG9ial90IGhlYXBfYWxsb2MoKTsKIyAgICAgICAgIGRlZmluZSBHQ19N
QUxMT0MoIHNpemUgKSBoZWFwX2FsbG9jKCBzaXplICkKIyAgICAgICAgIGRlZmluZSBHQ19NQUxM
T0NfQVRPTUlDKCBzaXplICkgR0NfTUFMTE9DKCBzaXplICkKIyAgICAgICAgIGRlZmluZSBJTklU
X0FMTE9DQVRJT04oIHNpemUgKSBpbml0X2hlYXAoIHNpemUgKQojICAgICAgICAgZGVmaW5lIEZS
RUVfQUxMT0NBVElPTigpIGZyZWVfaGVhcCgpCiMgICAgICAgICBkZWZpbmUgR0NfQ09MTEVDVCgp
IAojICAgICAgZWxzZQogICAgICAgICAgLS0+IGVycm9yICJVbmtub3duIGdhcmJhZ2UgY29sbGVj
dG9yIHR5cGUiCiMgICAgICBlbmRpZiAgICAgICAgICAgICAgICAKIyAgZW5kaWYgICAgICAgICAg
CiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBUaGUgYWxsb2NhdGlvbnMuICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KI2lmKCBIQVZFX0FMTE9DQSApCiMgICBpZiggIWRlZmluZWQoIGFsbG9jYSApICkKZXh0ZXJu
IG9ial90IGFsbG9jYSgpOwojICAgZW5kaWYKI2Vsc2UKIyAgIGRlZmluZSBhbGxvY2EoIHN6ICkg
R0NfTUFMTE9DKCBzeiApCiNlbmRpZgoKI2lmKCAhZGVmaW5lZCggX19HTlVDX18gKSB8fCAoVEhF
X0dDICE9IEJPRUhNX0dDKSApCiAgICAgIGV4dGVybiBvYmpfdCBhbl9vYmplY3Q7CiMgICBkZWZp
bmUgQU5fT0JKRUNUIG9ial90IGFuX29iamVjdDsKI2Vsc2UKIyAgIGRlZmluZSBBTl9PQkpFQ1Qg
CiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBlcXVpdmFsZW5jZXMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KI2RlZmluZSBFUVAoIG8xLCBvMiApICgobG9uZylvMSA9PSAobG9uZylvMikKCiNkZWZpbmUg
Qk9PTEVBTlAoIG8gKSAoKChsb25nKW8gPT0gKGxvbmcpQlRSVUUpIHx8ICgobG9uZylvID09IChs
b25nKUJGQUxTRSkpCgojZGVmaW5lIE5PVCggbyApICghbykgICAKCi8qLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
LyogICAgTGVzIG1hY3JvcyBxdWkgc2VydmVudCBhIHRhZ3Vlci9kZXRhZ3VlciAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgVEFHKCB2YWwsIHNoaWZ0
LCB0YWcgKSAgICgobG9uZykoKChsb25nKSh2YWwpIDw8IHNoaWZ0KSB8IHRhZykpCiNkZWZpbmUg
VU5UQUcoIHZhbCwgc2hpZnQsIHRhZyApICgobG9uZykoKGxvbmcpKHZhbCkgPj4gc2hpZnQpKQoK
I2RlZmluZSBPQkpfU0laRSAgICAgICAgICAgICAgICAgKChsb25nKShzaXplb2YoIG9ial90ICkp
KQojZGVmaW5lIFRZUEUoIG8gKSAgICAgICAgICAgICAgICBIRUFERVJfVFlQRSggKENSRUYoIG8g
KS0+aGVhZGVyKSApCgojaWYoIFRBR19TVFJVQ1QgIT0gMCApCiMgICBkZWZpbmUgUE9JTlRFUlAo
IG8gKSAgICAgICAgICgoKChsb25nKW8pICYgVEFHX01BU0spID09IFRBR19TVFJVQ1QpCiNlbHNl
CiMgICBkZWZpbmUgUE9JTlRFUlAoIG8gKSAgICAgICAgICgoKCgobG9uZylvKSAmIFRBR19NQVNL
KSA9PSBUQUdfU1RSVUNUKSAmJiBvKQojZW5kaWYKCiNpZiggVEFHX0NOU1QgIT0gMCApCiMgICBk
ZWZpbmUgQ05TVFAoIG8gKSAgICAgICAgICAgICgoKChsb25nKW8pICYgVEFHX01BU0spID09IFRB
R19DTlNUKQojZWxzZQojICAgZGVmaW5lIENOU1RQKCBvICkgICAgICAgICAgICAoKG8pICYmICgo
KChsb25nKW8pICYgVEFHX01BU0spID09IFRBR19DTlNUKSkKI2VuZGlmCgovKi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSovCi8qICAgIEhlYWRlciBtYW5hZ21lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5lIE1BS0VfSEVBREVS
KCBpLCBzeiApICAgICAoKGhlYWRlcl90KVRBRyggaSwgVFlQRV9TSElGVCwgMCApKQoKI2RlZmlu
ZSBIRUFERVJfTkJfQklUICAgICAgICAgICAgMyAvKiBUaGUgbnVtYmVyIG9mIHJlc2VydmVkIGJp
dCBwZXIgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGhlYWRlci4g
VGhpcyBjdXJyZW5jdCAzIHZhbHVlIGlzICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogbWVhbmluZ2xlc3MuIE5vbmUgb2YgdGhpcyB0aHJlZSAgKi8KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiBiaXQgKHZhbHVlcyAxLCAyIGFuZCA0KSBpcyB1c2Vk
ICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJ1dCBoZWFkZXIgbWFu
YWdlciBzdXBwb3NlIHRoZXkgICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogYXJlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KCiNkZWZpbmUgU0laRV9CSVRf
U0laRSAgICAgICAgICAgIDQKI2RlZmluZSBTSVpFX01BU0sgICAgICAgICAgICAgICAgKCgxIDw8
IFNJWkVfQklUX1NJWkUpIC0gMSkKCiNkZWZpbmUgVFlQRV9TSElGVCAgICAgICAgICAgICAgIChI
RUFERVJfTkJfQklUICsgU0laRV9CSVRfU0laRSArIDEpCiNkZWZpbmUgSEVBREVSX1RZUEUoIGkg
KSAgICAgICAgIChsb25nKVVOVEFHKCBpLCBUWVBFX1NISUZULCAwICkKCiNkZWZpbmUgSEVBREVS
X1NJWkUoIGggKSAgICAgICAgICgoaCA+PiBIRUFERVJfTkJfQklUKSAmIFNJWkVfTUFTSykKCi8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KLyogICAgTGVzIG1hY3JvcyBkZSBjb252ZXJzaW9ucyB1dGlsaXNlZXMg
cGFyIGBTcWljJyAgICAgICAgICAgICAgICAgICAqLwovKiAgICAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICovCi8qICAgIEF0
dGVudGlvbiwgaWwgZXN0IG5vcm1hbCBxdWUgcG91ciBmYWlyZSBsYSBjb252ZXJzaW9uIGBiaWds
b28tPmMnKi8KLyogICAgaid1dGlsaXNlIHVuZSBzb3VzdHJhY3Rpb24gZXQgbm9uIHBhcyB1biBg
YW5kJy4gRW4gZmFpc2FudCBjb21tZSAqLwovKiAgICBjYSwgbGUgY29tcGlsYXRldXIgQyBwZXV0
IGJpZW4gb3B0aW1pc2VyIGxlcyBhY2Nlc3MgYXV4ICAgICAgICAgICovCi8qICAgIGRpZmZlcmVu
dHMgY2hhbXBzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ki8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5lIEJJTlQoIGkgKSAgICAgICAgICAob2JqX3QpVEFH
KCBpLCBUQUdfU0hJRlQsIFRBR19JTlQgKQojZGVmaW5lIENJTlQoIGkgKSAgICAgICAgICAobG9u
ZylVTlRBRyggaSwgVEFHX1NISUZULCBUQUdfSU5UICkKCiNpZiggVEFHX1NUUlVDVCA9PSAwICkK
IyAgIGRlZmluZSBCUkVGKCByICkgICAgICAgKChvYmpfdCkocikpCiMgICBkZWZpbmUgQ1JFRigg
ciApICAgICAgICgob2JqX3QpKHIpKQojZWxzZQojICAgZGVmaW5lIEJSRUYoIHIgKSAgICAgICAo
KG9ial90KSgobG9uZylyICsgVEFHX1NUUlVDVCkpCiMgICBkZWZpbmUgQ1JFRiggciApICAgICAg
ICgob2JqX3QpKChsb25nKXIgLSBUQUdfU1RSVUNUKSkKI2VuZGlmCgojZGVmaW5lIEJMSUdIVCgg
bCApICAgICAgICBCUEFJUiggbCApCiNkZWZpbmUgQ0xJR0hUKCBsICkgICAgICAgIENQQUlSKCBs
ICkKCiNpZiggZGVmaW5lZCggVEFHX1BBSVIgKSApCiMgICBkZWZpbmUgQlBBSVIoIHAgKSAgICAg
ICgob2JqX3QpKChsb25nKXAgfCBUQUdfUEFJUikpCiMgICBkZWZpbmUgQ1BBSVIoIHAgKSAgICAg
ICgob2JqX3QpKChsb25nKXAgLSBUQUdfUEFJUikpCiNlbHNlCiMgICBkZWZpbmUgQlBBSVIoIHAg
KSAgICAgIEJSRUYoIHAgKQojICAgZGVmaW5lIENQQUlSKCBwICkgICAgICBDUkVGKCBwICkKI2Vu
ZGlmCgojaWYoIGRlZmluZWQoIFRBR19DRUxMICkgKQojICAgZGVmaW5lIEJDRUxMKCBwICkgICAg
ICAoKG9ial90KSgobG9uZylwIHwgVEFHX0NFTEwpKQojICAgZGVmaW5lIENDRUxMKCBwICkgICAg
ICAoKG9ial90KSgobG9uZylwIC0gVEFHX0NFTEwpKQojZWxzZQojICAgZGVmaW5lIEJDRUxMKCBw
ICkgICAgICBCUkVGKCBwICkKIyAgIGRlZmluZSBDQ0VMTCggcCApICAgICAgQ1JFRiggcCApCiNl
bmRpZgoKI2lmKCBkZWZpbmVkKCBUQUdfVkVDVE9SICkgKQojICAgZGVmaW5lIEJWRUNUT1IoIHAg
KSAgICAoKG9ial90KSgobG9uZylwIHwgVEFHX1ZFQ1RPUikpCiMgICBkZWZpbmUgQ1ZFQ1RPUigg
cCApICAgICgob2JqX3QpKChsb25nKXAgLSBUQUdfVkVDVE9SKSkKI2Vsc2UKIyAgIGRlZmluZSBC
VkVDVE9SKCBwICkgICAgQlJFRiggcCApCiMgICBkZWZpbmUgQ1ZFQ1RPUiggcCApICAgIENSRUYo
IHAgKQojZW5kaWYKCiNpZiggZGVmaW5lZCggVEFHX1NUUlVDVFVSRSApICkKIyAgIGRlZmluZSBC
U1RSVUNUVVJFKCByICkgKChvYmpfdCkoKGxvbmcpcCB8IFRBR19TVFJVQ1RVUkUpKQojICAgZGVm
aW5lIENTVFJVQ1RVUkUoIHAgKSAoKG9ial90KSgobG9uZylwIC0gVEFHX1NUUlVDVFVSRSkpCiNl
bHNlCiMgICBkZWZpbmUgQlNUUlVDVFVSRSggcCApIEJSRUYoIHAgKQojICAgZGVmaW5lIENTVFJV
Q1RVUkUoIHAgKSBDUkVGKCBwICkKI2VuZGlmCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgICEhISBX
QVJOSU5HICEhISBXQVJOSU5HICEhISBXQVJOSU5HICEhISBXQVJOSU5HICEhISBXQVJOSU5HICEh
ISAgKi8KLyogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSAgICAqLwovKiAgICBXZSBjYW4ndCB1c2UgZm9yIHRoZSB0d28gbWFj
cm8gYFRBR19TVFJJTkcnIGFuZCBgVEFHX1JFQUwnICAgICAgICovCi8qICAgIGEgQyBvciBgfGAg
YnV0IGFuIGFkZGl0aW9uLiBPdGhlcndpc2UsIGdjYywgcHJvZHVjZXMgdGhlICAgICAgICAgKi8K
LyogICAgZXJyb3I6IGBpbml0aWFsaXplciBlbGVtZW50IGlzIG5vdCBjb21wdXRhYmxlIGF0IGxv
YWQgdGltZScuICAgICAqLwovKiAgICBJZiBzb21lb25lIGNvdWxkIGV4cGxhaW4gdG8gbWUgd2hh
dCBkb2VzIGl0IG1lYW5zLi4uICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmKCBk
ZWZpbmVkKCBUQUdfU1RSSU5HICkgKQojICAgZGVmaW5lIEJTVFJJTkcoIHAgKSAgICAoKG9ial90
KSgobG9uZylwICsgVEFHX1NUUklORykpCiMgICBkZWZpbmUgQ1NUUklORyggcCApICAgICgob2Jq
X3QpKChsb25nKXAgLSBUQUdfU1RSSU5HKSkKI2Vsc2UKIyAgIGRlZmluZSBCU1RSSU5HKCBwICkg
ICAgQlJFRiggcCApCiMgICBkZWZpbmUgQ1NUUklORyggcCApICAgIENSRUYoIHAgKQojZW5kaWYK
CiNkZWZpbmUgQlVDUzJTVFJJTkcoIHAgKSAgIEJSRUYoIHAgKQojZGVmaW5lIENVQ1MyU1RSSU5H
KCBwICkgICBDUkVGKCBwICkKCiNpZiggZGVmaW5lZCggVEFHX1JFQUwgKSApCiMgICBkZWZpbmUg
QlJFQUwoIHAgKSAgICAgICgob2JqX3QpKChsb25nKXAgKyBUQUdfUkVBTCkpCiMgICBkZWZpbmUg
Q1JFQUwoIHAgKSAgICAgICgob2JqX3QpKChsb25nKXAgLSBUQUdfUkVBTCkpCiNlbHNlCiMgICBk
ZWZpbmUgQlJFQUwoIHAgKSAgICAgIEJSRUYoIHAgKQojICAgZGVmaW5lIENSRUFMKCBwICkgICAg
ICBDUkVGKCBwICkKI2VuZGlmCgojZGVmaW5lIEJGVU4oIGYgKSAgICAgICAgICAoKG9ial90KShm
KSkKI2RlZmluZSBDRlVOKCBmICkgICAgICAgICAgKChvYmpfdCAoKikoKSkoZikpCgojZGVmaW5l
IEJDTlNUKCBjICkgICAgICAgICAob2JqX3QpVEFHKCBjLCBUQUdfU0hJRlQsIFRBR19DTlNUICkK
I2RlZmluZSBDQ05TVCggYyApICAgICAgICAgKGxvbmcpVU5UQUcoIGMsIFRBR19TSElGVCwgVEFH
X0NOU1QgKQoKI2RlZmluZSBCQ09OVCggYyApICAgICAgICAgKChvYmpfdCkoYykpCiNkZWZpbmUg
Q0NPTlQoIGMgKSAgICAgICAgIChjKQoKI2RlZmluZSBUUlVFUCggYyApICAgICAgICAgKChib29s
X3QpKGMgIT0gQkZBTFNFKSkKCiNkZWZpbmUgQ0hBUl9TSElGVCAgICAgICAgIChUQUdfU0hJRlQg
KyA2KQojZGVmaW5lIFVDUzJfU0hJRlQgICAgICAgICBDSEFSX1NISUZUCgojZGVmaW5lIEJDSEFS
KCBpICkgICAgICAgICAoKG9ial90KSgobG9uZylCQ0hBUkggKyBcCgkJCQkgICgobG9uZykoKHVu
c2lnbmVkIGNoYXIpKGkpIDw8IENIQVJfU0hJRlQpKSkpCiNkZWZpbmUgQ0NIQVIoIGkgKSAgICAg
ICAgICgodW5zaWduZWQgY2hhcikoKHVuc2lnbmVkIGxvbmcpKGkpPj5DSEFSX1NISUZUKSkKCiNk
ZWZpbmUgQkJPT0woIGkgKSAgICAgICAgIChpID8gQlRSVUUgOiBCRkFMU0UpCiNpZiggZGVmaW5l
ZCggQkZBTFNFX0FTX0NGQUxTRSApICkKIyAgIGRlZmluZSBDQk9PTCggbyApICAgICAgKChib29s
X3QpKChsb25nKW8pKQojZWxzZQojICAgZGVmaW5lIENCT09MKCBvICkgICAgICAobyAhPSBCRkFM
U0UpCiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBDb25zdGFudHMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KI2RlZmluZSBCTklMICAgICAgICAgICgob2JqX3QpQkNOU1QoIDAgKSkKI2lmKCBkZWZp
bmVkKCBCRkFMU0VfQVNfQ0ZBTFNFICkgKQojICAgZGVmaW5lIEJGQUxTRSAgICAgKChvYmpfdCkw
KQojZWxzZQojICAgZGVmaW5lIEJGQUxTRSAgICAgKChvYmpfdClCQ05TVCggMSApKQojZW5kaWYK
I2RlZmluZSBCVFJVRSAgICAgICAgICgob2JqX3QpQkNOU1QoIDIgKSkKI2RlZmluZSBCVU5TUEVD
ICAgICAgICgob2JqX3QpQkNOU1QoIDMgKSkKI2RlZmluZSBCVUNTMkggICAgICAgICgob2JqX3Qp
QkNOU1QoIDQgKSkKI2RlZmluZSBCQ0hBUkggICAgICAgICgob2JqX3QpQkNOU1QoIDUgKSkKI2Rl
ZmluZSBCRU9GICAgICAgICAgICgob2JqX3QpQkNOU1QoIDB4MTAwICkpCiNkZWZpbmUgQkVPQSAg
ICAgICAgICAoKG9ial90KUJDTlNUKCAweDEwMSApKQovKiBhbnkgY2hhbmdlIHRvIHRoZXNlIHZh
bHVlcyBtdXN0IGJlIHJlcG9ydGVkIGluIGNvbXB0aW1lL2Rzc3NsLnNjbSAqLwojZGVmaW5lIEJP
UFRJT05BTCAgICAgKChvYmpfdClCQ05TVCggMHgxMDIgKSkKI2RlZmluZSBCUkVTVCAgICAgICAg
ICgob2JqX3QpQkNOU1QoIDB4MTAzICkpCiNkZWZpbmUgQktFWSAgICAgICAgICAoKG9ial90KUJD
TlNUKCAweDEwNiApKQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBBcnJheSBib3VuZCBjaGVja2lu
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKi8KI2lmKCBUQUdfU0hJRlQgPD0gTE9OR19NQVggKQojICAgZGVmaW5lIEJPVU5EX0NI
RUNLKCBvLCB2ICkgKCh1bnNpZ25lZCBsb25nKW8gPCAodW5zaWduZWQgbG9uZyl2KQojZWxzZQoj
ICAgZGVmaW5lIEJPVU5EX0NIRUNLKCBvLCB2ICkgKCgobG9uZylvID49IDApICYmICgobG9uZylv
IDwgKGxvbmcpdikpCiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBMZSB0YWJsZWF1IGRl
cyBjb25zdGFudGVzIChwb3VyIGwnaW5pdGlhbGlzYXRpb24gZGVzIG1vZHVsZXMpLiAgICovCi8q
ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gICAgKi8KLyogICAgQ2VzIGRldXggbWFjcm9zIHNlcnZlbnQgYSBsJ2luaXRpYWxp
c2F0aW9uIGRlcyBjb25zdGFudGVzLiBDJ2VzdCAqLwovKiAgICB1biBwZXUgYXN0dWNpZXV4IGxh
IGZhY29uIGRvbnQgYydlc3QgZmFpdC4gSWwgZmF1dCByZWdhcmRlciBsZSAgICovCi8qICAgIGZp
Y2hpZXIgYGNvbXB0aW1lL0Nuc3QvcmVhZC1hbGxvYy5zY20nIHBvdXIgY29tcHJlbmRyZSBjb21t
ZW50ICAgKi8KLyogICAgY2EgbWFyY2hlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgQ05TVF9U
QUJMRV9TRVQoIG9mZnNldCwgdmFsdWUgKSAgICAgICAgICAgICBcCiAgICggX19jbnN0WyBvZmZz
ZXQgXSA9IHZhbHVlLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgQlVOU1BFQyApCgojZGVm
aW5lIENOU1RfVEFCTEVfUkVGKCBvZmZzZXQgKSBfX2Nuc3RbIG9mZnNldCBdCgovKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSovCi8qICAgIGNvbnN0YW50IGFsaWdubWVudCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYoIGRlZmluZWQoIENP
TlNUQU5UX0FMSUdORUQgKSAmJiAhQ09OU1RBTlRfQUxJR05FRCApCiMgICBpZiggZGVmaW5lZCgg
X19HTlVDX18gKSApCiAgICAgICAvKiB0aGlzIHJlcXVpcmUgZ2NjIGF0IGxlYXN0IHZlcnNpb24g
Mi43LjIgKi8KIyAgICAgIGRlZmluZSBfX0NOU1RfQUxJR04gX19hdHRyaWJ1dGVfXyAoKGFsaWdu
ZWQgKEFMSUdOTUVOVF9WQUxVRSkpKQojICAgZWxzZQogICAgICAgLS0+IGVycm9yICJFbmFibGUg
dG8gZW5mb3JjZSBhbGlnbm1lbnQiCiMgICBlbmRpZgojZWxzZQojICAgZGVmaW5lIF9fQ05TVF9B
TElHTgojZW5kaWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgU3RhdGljIGFsbG9jYXRpb25zLiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSovCiNpZiggIWRlZmluZWQoIFRBR19TVFJJTkcgKSApCiMgICBkZWZpbmUgREVGSU5FX1NU
UklORyggbmFtZSwgYXV4LCBzdHIsIGxlbiApICAgICAgICAgICAgICAgXAogICAgICBzdGF0aWMg
c3RydWN0IHsgaGVhZGVyX3QgaGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgICAgICAgICAgICAgIGludCAgICAgIGxlbmd0aDsgICAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgICAgICAgICAgICAgICAgICBjaGFyICAgICBzdHJpbmdbbGVuKzFdOyB9IF9fQ05TVF9B
TElHTiAgXAogICAgICAgICBhdXggPSB7IE1BS0VfSEVBREVSKCBTVFJJTkdfVFlQRSwgMCApLCBs
ZW4sIHN0ciB9OyAgIFwKICAgICAgICAgc3RhdGljIG9ial90IG5hbWUgPSBCU1RSSU5HKCAmYXV4
ICkKI2Vsc2UKIyAgIGRlZmluZSBERUZJTkVfU1RSSU5HKCBuYW1lLCBhdXgsIHN0ciwgbGVuICkg
ICAgICAgICAgICAgICBcCiAgICAgIHN0YXRpYyBzdHJ1Y3QgeyBpbnQgICAgICBsZW5ndGg7ICAg
ICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgY2hhciAgICAgc3Ry
aW5nW2xlbisxXTsgfSBfX0NOU1RfQUxJR04gIFwKICAgICAgICAgYXV4ID0geyBsZW4sIHN0ciB9
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHN0YXRpYyBvYmpf
dCBuYW1lID0gQlNUUklORyggJmF1eCApCiNlbmRpZgoKI2lmKCAhZGVmaW5lZCggVEFHX1JFQUwg
KSApCiMgICBkZWZpbmUgREVGSU5FX1JFQUwoIG5hbWUsIGF1eCwgZmxvbnVtICkgICAgICAgICAg
ICAgICAgICAgXAogICAgICBzdGF0aWMgc3RydWN0IHsgaGVhZGVyX3QgaGVhZGVyOyAgICAgICAg
ICAgICAgICAgICAgICAgIFwKCQkgICAgICBkb3VibGUgICByZWFsOyB9IF9fQ05TVF9BTElHTiAg
ICAgICAgICAgXAogICAgICAgICBhdXggPSB7IE1BS0VfSEVBREVSKCBSRUFMX1RZUEUsIDAgKSwg
ZmxvbnVtIH07ICAgICAgIFwKICAgICAgICAgb2JqX3QgbmFtZSA9IEJSRUFMKCAmYXV4ICkKI2Vs
c2UKIyAgIGRlZmluZSBERUZJTkVfUkVBTCggbmFtZSwgYXV4LCBmbG9udW0gKSAgICAgICAgICAg
ICAgICAgICBcCiAgICAgIHN0YXRpYyBzdHJ1Y3QgeyBkb3VibGUgICByZWFsOyB9IF9fQ05TVF9B
TElHTiAgICAgICAgICAgXAogICAgICAgICBhdXggPSB7IGZsb251bSB9OyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgb2JqX3QgbmFtZSA9IEJSRUFMKCAmYXV4
ICkKI2VuZGlmCgojZGVmaW5lIERFRklORV9FWFBPUlRfUFJPQ0VEVVJFKCBuLCBuYSwgcCwgdnAs
IG5iX2FyZ3MgKSAgICAgIFwKICAgc3RhdGljIHN0cnVjdCB7IGhlYWRlcl90IGhlYWRlcjsgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICBvYmpfdCAgICAoKmVu
dHJ5KSgpOyAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgb2JqX3Qg
ICAgKCp2YV9lbnRyeSkoKTsgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAg
IGludCAgICAgIGFyaXR5OyB9IF9fQ05TVF9BTElHTiAgICAgICAgICAgICBcCiAgICAgIG5hID0g
eyBNQUtFX0hFQURFUiggUFJPQ0VEVVJFX1RZUEUsIDAgKSwgICAgICAgICAgICAgICAgXAoJICAg
ICAob2JqX3QgKCopKCkpcCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJICAg
ICAob2JqX3QgKCopKCkpdnAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJICAg
ICBuYl9hcmdzIH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
ICBvYmpfdCBuID0gQlJFRiggJm5hICkKCiNkZWZpbmUgREVGSU5FX1NUQVRJQ19QUk9DRURVUkUo
IG4sIG5hLCBwLCB2cCwgbmJfYXJncyApICAgICAgXAogICBzdGF0aWMgc3RydWN0IHsgaGVhZGVy
X3QgaGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAg
IG9ial90ICAgICgqZW50cnkpKCk7ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAg
ICAgICAgICBvYmpfdCAgICAoKnZhX2VudHJ5KSgpOyAgICAgICAgICAgICAgICAgICAgXAogICAg
ICAgICAgICAgICAgICAgaW50ICAgICAgYXJpdHk7IH0gX19DTlNUX0FMSUdOICAgICAgICAgICAg
IFwKICAgICAgbmEgPSB7IE1BS0VfSEVBREVSKCBQUk9DRURVUkVfVFlQRSwgMCApLCAgICAgICAg
ICAgICAgICBcCiAgICAgICAgICAgICAob2JqX3QgKCopKCkpcCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICAob2JqX3QgKCopKCkpdnAsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBuYl9hcmdzIH07ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgICBzdGF0aWMgb2JqX3QgbiA9IEJSRUYoICZuYSApCgojZGVm
aW5lIERFRklORV9FWFBPUlRfR0VORVJJQyggbiwgbmEsIHAsIHZwLCBuYl9hcmdzICkgICAgICAg
IFwKICAgc3RhdGljIHN0cnVjdCB7IGhlYWRlcl90IGhlYWRlcjsgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgICAgICAgICAgICBvYmpfdCAgICAoKmVudHJ5KSgpOyAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgb2JqX3QgICAgKCp2YV9lbnRyeSko
KTsgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgIGludCAgICAgIGFyaXR5
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkJICAgb2JqX3QgICAgZW52MDsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKCQkgICBvYmpfdCAgICBlbnYxOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJCSAgIG9ial90ICAgIGVudjI7IH0gX19DTlNUX0FMSUdOICAgICAg
ICAgICAgICBcCiAgICAgIG5hID0geyBNQUtFX0hFQURFUiggUFJPQ0VEVVJFX1RZUEUsIDAgKSwg
ICAgICAgICAgICAgICAgXAoJICAgICAob2JqX3QgKCopKCkpcCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICAob2JqX3QgKCopKCkpdnAsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBuYl9hcmdzLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBCRkFMU0UsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBCRkFMU0UsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBCVU5TUEVDfTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgICBvYmpfdCBuID0gQlJFRiggJm5hICkKCiNkZWZpbmUgREVG
SU5FX1NUQVRJQ19HRU5FUklDKCBuLCBuYSwgcCwgdnAsIG5iX2FyZ3MgKSAgICAgICAgXAogICBz
dGF0aWMgc3RydWN0IHsgaGVhZGVyX3QgaGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICAgICAgICAgICAgICAgIG9ial90ICAgICgqZW50cnkpKCk7ICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgICAgICAgICAgICBvYmpfdCAgICAoKnZhX2VudHJ5KSgpOyAgICAg
ICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgaW50ICAgICAgYXJpdHk7ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKCQkgICBvYmpfdCAgICBlbnYwOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJCSAgIG9ial90ICAgIGVudjE7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCgkJICAgb2JqX3QgICAgZW52MjsgfSBfX0NOU1RfQUxJR04gICAgICAgICAgICAg
IFwKICAgICAgbmEgPSB7IE1BS0VfSEVBREVSKCBQUk9DRURVUkVfVFlQRSwgMCApLCAgICAgICAg
ICAgICAgICBcCiAgICAgICAgICAgICAob2JqX3QgKCopKCkpcCwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICAob2JqX3QgKCopKCkpdnAsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBuYl9hcmdzLCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBCRkFMU0UsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBCRkFMU0UsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgICBCVU5TUEVDfTsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgICBzdGF0aWMgb2JqX3QgbiA9IEJSRUYoICZuYSApCgojZGVm
aW5lIERFRklORV9UVkVDVE9SX1NUQVJUKCBhdXgsIGxlbiwgaXR5cGUgKSAgICAgICAgICAgICAg
IFwKICAgc3RhdGljIHN0cnVjdCB7IGhlYWRlcl90IGhlYWRlcjsgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCgkJICAgaW50ICAgICAgbGVuZ3RoOyAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKCQkgICBvYmpfdCAgICBkZXNjcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJCSAg
IGl0eXBlICAgIGl0ZW1zWyBsZW4gXTsgfSBfX0NOU1RfQUxJR04gICAgICBcCiAgICAgIGF1eCA9
IHsgTUFLRV9IRUFERVIoIFRWRUNUT1JfVFlQRSwgMCApLCBsZW4sIDBMLAoJICAgICAgCiNkZWZp
bmUgREVGSU5FX1RWRUNUT1JfU1RPUCggbmFtZSwgYXV4ICkgICAJICAgICAgICAgICAgICBcCgkg
ICB9OyBzdGF0aWMgb2JqX3QgbmFtZSA9IEJSRUYoICZhdXggKQoKLyotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwov
KiAgICBTdGFjayBhbGxvY2F0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmKCBkZWZpbmVkKCBfX0dOVUNfXyAp
ICkKIyAgIGRlZmluZSBBTExPQ0FURV9UVkVDVE9SX01BTExPQyggTUFMTE9DLCBfaXRlbV90eXBl
LCBfbGVuLCBfZGVzY3IgKSBcCiAgICAgICggeyBvYmpfdCBhbl9vYmplY3Q7ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJICBhbl9vYmplY3QgPSBNQUxMT0Mo
c2l6ZW9mKHN0cnVjdCB7IGhlYWRlcl90ICAgICAgICBoZWFkZXI7ICAgXAoJCSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgIGxlbmd0aDsgICBcCgkJICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvYmpfdCAgICAgICAgICAgZGVzY3I7ICAgIFwKCQkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF9pdGVtX3R5cGUgICAgICBlbDA7IH0pICAgXAoJCQkgICAg
ICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCQkJICAgICAgKChf
bGVuLTEpICogc2l6ZW9mKF9pdGVtX3R5cGUpKSk7ICAgICAgICBcCgkgIChhbl9vYmplY3QtPnR2
ZWN0b3JfdCkuaGVhZGVyICAgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgTUFLRV9IRUFERVIoIFRWRUNUT1JfVFlQRSwgMCApOyBc
CgkgIChhbl9vYmplY3QtPnR2ZWN0b3JfdCkubGVuZ3RoICAgPSBfbGVuOyAgICAgICAgICAgICAg
ICAgICAgICBcCgkgIChhbl9vYmplY3QtPnR2ZWN0b3JfdCkuZGVzY3IgICAgPSBfZGVzY3I7ICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBCR0xfSEVBUF9ERUJVR19NQVJLX09CSiggQlJF
RiggYW5fb2JqZWN0ICkgKTsgfSApCiNlbHNlCiMgICBkZWZpbmUgQUxMT0NBVEVfVFZFQ1RPUl9N
QUxMT0MoIE1BTExPQywgX2l0ZW1fdHlwZSwgX2xlbiwgX2Rlc2NyICkgXAogICAgICAoICAgYW5f
b2JqZWN0ID0gTUFMTE9DKHNpemVvZihzdHJ1Y3QgeyBoZWFkZXJfdCAgICAgICAgaGVhZGVyOyAg
IFwKCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICBsZW5ndGg7
ICAgXAoJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqX3QgICAgICAgICAgIGRlc2Ny
OyAgICBcCgkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXRlbV90eXBlICAgICAgZWww
OyB9KSAgIFwKCQkJICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCgkJCSAgICAgICgoX2xlbi0xKSAqIHNpemVvZihfaXRlbV90eXBlKSkpLCAgICAgICAgXAoJ
ICAoYW5fb2JqZWN0LT50dmVjdG9yX3QpLmhlYWRlciAgID0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BS0VfSEVBREVSKCBUVkVD
VE9SX1RZUEUsIDAgKSwgXAoJICAoYW5fb2JqZWN0LT50dmVjdG9yX3QpLmxlbmd0aCAgID0gX2xl
biwgICAgICAgICAgICAgICAgICAgICAgXAoJICAoYW5fb2JqZWN0LT50dmVjdG9yX3QpLmRlc2Ny
ICAgID0gX2Rlc2NyLCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgQkdMX0hFQVBfREVC
VUdfTUFSS19PQkooIEJSRUYoIGFuX29iamVjdCApICkgKQojZW5kaWYKCiNkZWZpbmUgQUxMT0NB
VEVfVFZFQ1RPUiggX2l0ZW1fdHlwZSwgX2xlbiwgX2Rlc2NyICkgICBcCiAgIEFMTE9DQVRFX1RW
RUNUT1JfTUFMTE9DKCBHQ19NQUxMT0MsIF9pdGVtX3R5cGUsIF9sZW4sIF9kZXNjciApCiNkZWZp
bmUgQUxMT0NBVEVfQVRPTUlDX1RWRUNUT1IoIF9pdGVtX3R5cGUsIF9sZW4sIF9kZXNjciApICAg
XAogICBBTExPQ0FURV9UVkVDVE9SX01BTExPQyggR0NfTUFMTE9DX0FUT01JQywgX2l0ZW1fdHlw
ZSwgX2xlbiwgX2Rlc2NyICkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgVGhlIGRlYnVnZ2luZyBz
dHJhY2sgdHJhY2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCnN0cnVjdCBkZnJhbWUgewogICBvYmpfdCAgICAgICAgICBzeW1ib2w7CiAg
IHN0cnVjdCBkZnJhbWUgKmxpbms7ICAKfTsKCiNkZWZpbmUgUFVTSF9UUkFDRSggbmFtZSApICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgc3RydWN0IGRmcmFtZSAgZnJhbWU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICBzdHJ1Y3QgZGZyYW1lICpsaW5rOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgZnJhbWUuc3ltYm9sID0gbmFtZTsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICBmcmFtZS5saW5rICAgPSB0b3Bfb2ZfZnJhbWU7ICAgICAgICAgICAgICAgICAg
ICBcCiAgIGxpbmsgICAgICAgICA9IHRvcF9vZl9mcmFtZTsgICAgICAgICAgICAgICAgICAgIFwK
ICAgdG9wX29mX2ZyYW1lID0gJmZyYW1lOyAgICAgICAgICAgIAoKI2RlZmluZSBQT1BfVFJBQ0Uo
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB0b3Bfb2ZfZnJhbWUgPSBsaW5r
OwoKI2RlZmluZSBFVkFMX1BVU0hfVFJBQ0UoIG5hbWUgKSB7IFBVU0hfVFJBQ0UoIG5hbWUgKQoj
ZGVmaW5lIEVWQUxfUE9QX1RSQUNFKCkgICAgICAgICAgUE9QX1RSQUNFKCkgfQoKI2RlZmluZSBH
RVRfVFJBQ0UoKSBCUkVGKCB0b3Bfb2ZfZnJhbWUgKQoKLyogYWZ0ZXIgYSBiaW5kLWV4aXQsIHdl
IG11c3QgcmVzZXQgdGhlIGN1cnJlbnQgdHJhY2UgKi8KI2RlZmluZSBSRVNUT1JFX1RSQUNFKCkg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICB0b3Bfb2ZfZnJhbWUgPSAmZnJhbWU7Cgpl
eHRlcm4gc3RydWN0IGRmcmFtZSBmcmFtZTsKZXh0ZXJuIHN0cnVjdCBkZnJhbWUgKnRvcF9vZl9m
cmFtZTsKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgRmFpbHVyZXMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
CiNkZWZpbmUgRkFJTFVSRSggcHJvYywgbXNnLCBvYmogKSBiaWdsb29fZXhpdCggQklOVCggYmln
bG9vX2Fib3J0KCBDSU5UKCB0aGVfZmFpbHVyZSggcHJvYywgbXNnLCBvYmogKSApICkgKSApCgoj
ZGVmaW5lIENfRkFJTFVSRSggcHJvYywgbXNnLCBvYmogKSBGQUlMVVJFKCBzdHJpbmdfdG9fYnN0
cmluZyggcHJvYyApLCBcCgkJCQkJICAgICBzdHJpbmdfdG9fYnN0cmluZyggbXNnICksICBcCgkJ
CQkJICAgICBvYmogKQoKZXh0ZXJuIG9ial90IGJpZ2xvb19lcnJvcl9oYW5kbGVyOwogICAKI2Rl
ZmluZSBHRVRfRVJST1JfSEFORExFUigpIGJpZ2xvb19lcnJvcl9oYW5kbGVyCiNkZWZpbmUgU0VU
X0VSUk9SX0hBTkRMRVIoIF9oZGwgKSAoYmlnbG9vX2Vycm9yX2hhbmRsZXIgPSAoX2hkbCkpCiAg
IAovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIENlbGxzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYo
ICEoZGVmaW5lZCggVEFHX0NFTEwgKSApICkgCiMgICBkZWZpbmUgQ0VMTF9TSVpFIChzaXplb2Yo
IHN0cnVjdCBjZWxsICkpCiNlbmRpZgojaWYoICFkZWZpbmVkKCBUQUdfQ0VMTCApICkKIyAgIGRl
ZmluZSBDRUxMUCggYyApIChQT0lOVEVSUCggYyApICYmIChUWVBFKCBjICkgPT0gQ0VMTF9UWVBF
KSkKI2Vsc2UKIyAgIGRlZmluZSBDRUxMUCggYyApICgoYyAmJiAoKCgobG9uZyljKSZUQUdfTUFT
SykgPT0gVEFHX0NFTEwpKSkKI2VuZGlmCgoKI2RlZmluZSBDRUxMKCBvICkgQ0NFTEwoIG8gKS0+
Y2VsbF90CgojaWYoIGRlZmluZWQoIFRBR19DRUxMICkgKQojICAgaWYoIGRlZmluZWQoIF9fR05V
Q19fICkgKQojICAgICAgZGVmaW5lIE1BS0VfQ0VMTCggX3ZhbF8gKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAoIHsgb2JqX3QgKmFuX29iamVjdDsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCSAgIGFuX29iamVjdCAg
PSAob2JqX3QgKilHQ19NQUxMT0MoIHNpemVvZiggb2JqX3QgKSApOyAgICAgICAgICBcCgkgICAq
YW5fb2JqZWN0ID0gKF92YWxfKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAoJICAgQkdMX0hFQVBfREVCVUdfTUFSS19PQkooIEJDRUxMKCBhbl9vYmplY3QgKSApOyB9
ICkKIyAgIGVsc2UKIyAgICAgIGRlZmluZSBNQUtFX0NFTEwoIF92YWxfICkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgKCBhbl9vYmplY3QgPSAob2JqX3Qp
R0NfTUFMTE9DKCBzaXplb2YoIG9ial90ICkgKSwgICAgICAgICAgICAgICBcCgkgKigob2JqX3Qg
Kilhbl9vYmplY3QpID0gKF92YWxfKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJ
IEJHTF9IRUFQX0RFQlVHX01BUktfT0JKKCBCQ0VMTCggYW5fb2JqZWN0ICkgKSApCiMgICBlbmRp
ZgoKIyAgIGRlZmluZSBDRUxMX1JFRiggYyApICgqKG9ial90ICopQ0NFTEwoIGMgKSkKI2Vsc2UK
IyAgIGlmKCBkZWZpbmVkKCBfX0dOVUNfXyApICkKIyAgICAgIGRlZmluZSBNQUtFX0NFTEwoIF92
YWxfICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgKCB7
IG9ial90IGFuX29iamVjdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCgkgICBhbl9vYmplY3QgPSBHQ19NQUxMT0MoIENFTExfU0laRSApOyAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICAgYW5fb2JqZWN0LT5jZWxsX3QuaGVhZGVyID0gTUFLRV9IRUFE
RVIoIENFTExfVFlQRSwgMCApOyAgICAgIFwKCSAgIGFuX29iamVjdC0+Y2VsbF90LnZhbCAgICA9
IChfdmFsXyk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkgICBCR0xfSEVBUF9ERUJVR19N
QVJLX09CSiggQkNFTEwoIGFuX29iamVjdCApICk7IH0gKQojICAgZWxzZQojICAgICAgZGVmaW5l
IE1BS0VfQ0VMTCggX3ZhbF8gKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICAgICAoIGFuX29iamVjdCA9IEdDX01BTExPQyggQ0VMTF9TSVpFICksICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKCSBhbl9vYmplY3QtPmNlbGxfdC5oZWFkZXIgPSBNQUtFX0hF
QURFUiggQ0VMTF9UWVBFLCAwICksICAgICAgICBcCiAgICAgICAgIGFuX29iamVjdC0+Y2VsbF90
LnZhbCAgICA9IChfdmFsXyksICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCSBCR0xfSEVB
UF9ERUJVR19NQVJLX09CSiggQkNFTEwoIGFuX29iamVjdCApICkgKQojICAgZW5kaWYKCiMgICBk
ZWZpbmUgQ0VMTF9SRUYoIGMgKSAoKENDRUxMKCBjICktPmNlbGxfdCkudmFsKQojZW5kaWYKCiNk
ZWZpbmUgQ0VMTF9TRVQoIGMsIHYgKSBcCiAgIChDRUxMX1JFRiggYyApID0gdiwgQlVOU1BFQykK
Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKi8KLyogICAgUGVlayAmIFBva2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZp
bmUgUEVFSyggdiwgaSApICgob2JqX3QgKikoQ1JFRiggdiApKSlbIGkgXQojZGVmaW5lIFBPS0Uo
IHZhciwgaSwgdmFsICkgKFBFRUsoIHZhciwgaSApID0gdmFsLCB2YXIpCgovKi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSovCi8qICAgIFBhaXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5lIFBBSVJfU0laRSAg
ICAgICAgICAoc2l6ZW9mKCBzdHJ1Y3QgcGFpciApKQojZGVmaW5lIEVYVEVOREVEX1BBSVJfU0la
RSAoc2l6ZW9mKCBzdHJ1Y3QgZXh0ZW5kZWRfcGFpciApKQoKI2RlZmluZSBQQUlSKCBvICkgICAg
ICAgICAgKENQQUlSKCBvICktPnBhaXJfdCkKI2RlZmluZSBFUEFJUiggbyApICAgICAgICAgKENQ
QUlSKCBvICktPmV4dGVuZGVkX3BhaXJfdCkKCiNpZiggKFRIRV9HQyA9PSBCT0VITV9HQykgJiYg
VEFHX1BBSVIgKQojICAgZGVmaW5lIE1BS0VfUEFJUiggYSwgZCApIG1ha2VfcGFpciggYSwgZCAp
CiNlbHNlCiMgICBpZiggZGVmaW5lZCggVEFHX1BBSVIgKSApCiMgICAgIGlmKCBkZWZpbmVkKCBf
X0dOVUNfXyApICkKIyAgICAgIGRlZmluZSBNQUtFX1BBSVIoIGEsIGQgKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgKHsgb2JqX3QgYW5fb2JqZWN0
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg
ICAgIGFuX29iamVjdCA9IEdDX01BTExPQyggUEFJUl9TSVpFICk7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKCSAgIGFuX29iamVjdC0+cGFpcl90LmNhciA9IGE7ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKCSAgIGFuX29iamVjdC0+cGFpcl90LmNkciA9IGQ7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICBCR0xfSEVBUF9E
RUJVR19NQVJLX09CSiggQlBBSVIoIGFuX29iamVjdCApICk7IH0pCiMgICAgIGVsc2UKIyAgICAg
IGRlZmluZSBNQUtFX1BBSVIoIGEsIGQgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCiAgICAgICAgKGFuX29iamVjdCA9IEdDX01BTExPQyggUEFJUl9TSVpFICks
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJIGFuX29iamVjdC0+cGFpcl90LmNhciA9
IGEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJIGFuX29iamVjdC0+
cGFpcl90LmNkciA9IGQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgICAgICBCR0xfSEVBUF9ERUJVR19NQVJLX09CSiggQlBBSVIoIGFuX29iamVjdCApICkgKQoj
ICAgICBlbmRpZgojICAgZWxzZQojICAgICBpZiggZGVmaW5lZCggX19HTlVDX18gKSApCiMgICAg
ICBkZWZpbmUgTUFLRV9QQUlSKCBhLCBkICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgICAgICh7IG9ial90IGFuX29iamVjdDsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICBhbl9vYmplY3QgPSBH
Q19NQUxMT0MoIFBBSVJfU0laRSApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIAkg
ICBhbl9vYmplY3QtPnBhaXJfdC5oZWFkZXIgPSBNQUtFX0hFQURFUiggUEFJUl9UWVBFLCAwICk7
ICAgICAgICBcCgkgICBhbl9vYmplY3QtPnBhaXJfdC5jYXIgICAgPSBhOyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCgkgICBhbl9vYmplY3QtPnBhaXJfdC5jZHIgICAgPSBkOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgQkdMX0hFQVBfREVC
VUdfTUFSS19PQkooIEJQQUlSKCBhbl9vYmplY3QgKSApOyB9KSAKIyAgICAgZWxzZQojICAgICAg
ZGVmaW5lIE1BS0VfUEFJUiggYSwgZCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKICAgICAgICAoYW5fb2JqZWN0ID0gR0NfTUFMTE9DKCBQQUlSX1NJWkUgKSwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkgYW5fb2JqZWN0LT5wYWlyX3QuaGVhZGVy
ID0gTUFLRV9IRUFERVIoIFBBSVJfVFlQRSwgMCApLCAgICAgICAgICBcCgkgYW5fb2JqZWN0LT5w
YWlyX3QuY2FyICAgID0gYSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkg
YW5fb2JqZWN0LT5wYWlyX3QuY2RyICAgID0gZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcCiAgICAgICAgIEJHTF9IRUFQX0RFQlVHX01BUktfT0JKKCBCUEFJUiggYW5fb2Jq
ZWN0ICkgKSApCiMgICAgIGVuZGlmCiMgICBlbmRpZgojZW5kaWYKCiNpZiggZGVmaW5lZCggVEFH
X1BBSVIgKSApCiNpZiggZGVmaW5lZCggX19HTlVDX18gKSApCiMgICBkZWZpbmUgTUFLRV9FWFRF
TkRFRF9QQUlSKCBhLCBkLCBlICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog
ICAgICAoIHsgb2JqX3QgYW5fb2JqZWN0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKCSAgYW5fb2JqZWN0ID0gR0NfTUFMTE9DKCBFWFRFTkRFRF9QQUlS
X1NJWkUgKTsgICAgICAgICAgICAgICAgICAgIFwKCSAgYW5fb2JqZWN0LT5leHRlbmRlZF9wYWly
X3QuY2FyICAgICA9IGE7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKCSAgYW5fb2JqZWN0LT5l
eHRlbmRlZF9wYWlyX3QuY2RyICAgICA9IGQ7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKCSAg
YW5fb2JqZWN0LT5leHRlbmRlZF9wYWlyX3QuY2VyICAgICA9IGU7ICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKCSAgYW5fb2JqZWN0LT5leHRlbmRlZF9wYWlyX3QuZWhlYWRlciA9IEJJTlQoIEVY
VEVOREVEX1BBSVJfVFlQRSApO1wKCSAgQkdMX0hFQVBfREVCVUdfTUFSS19PQkooIEJQQUlSKCBh
bl9vYmplY3QgKSApOyB9ICkKI2Vsc2UKIyAgIGRlZmluZSBNQUtFX0VYVEVOREVEX1BBSVIoIGEs
IGQsIGUgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICggIGFuX29i
amVjdCA9IEdDX01BTExPQyggRVhURU5ERURfUEFJUl9TSVpFICksICAgICAgICAgICAgICAgICAg
ICAgXAoJIGFuX29iamVjdC0+ZXh0ZW5kZWRfcGFpcl90LmNhciAgICAgPSBhLCAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJIGFuX29iamVjdC0+ZXh0ZW5kZWRfcGFpcl90LmNkciAgICAgPSBk
LCAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJIGFuX29iamVjdC0+ZXh0ZW5kZWRfcGFpcl90
LmNlciAgICAgPSBlLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJIGFuX29iamVjdC0+ZXh0
ZW5kZWRfcGFpcl90LmVoZWFkZXIgPSBCSU5UKCBFWFRFTkRFRF9QQUlSX1RZUEUgKSwgXAogICAg
ICAgICBCR0xfSEVBUF9ERUJVR19NQVJLX09CSiggQlBBSVIoIGFuX29iamVjdCApICkgKQojZW5k
aWYKI2Vsc2UKI2lmKCBkZWZpbmVkKCBfX0dOVUNfXyApICkKIyAgIGRlZmluZSBNQUtFX0VYVEVO
REVEX1BBSVIoIGEsIGQsIGUgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAg
ICAgICggeyBvYmpfdCBhbl9vYmplY3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAoJICBhbl9vYmplY3QgPSBHQ19NQUxMT0MoIEVYVEVOREVEX1BBSVJf
U0laRSApOyAgICAgICAgICAgICAgICAgICAgXAoJICBhbl9vYmplY3QtPmV4dGVuZGVkX3BhaXJf
dC5oZWFkZXIgID0gTUFLRV9IRUFERVIoIFBBSVJfVFlQRSwwICk7XAoJICBhbl9vYmplY3QtPmV4
dGVuZGVkX3BhaXJfdC5jYXIgICAgID0gYTsgICAgICAgICAgICAgICAgICAgICAgICAgXAoJICBh
bl9vYmplY3QtPmV4dGVuZGVkX3BhaXJfdC5jZHIgICAgID0gZDsgICAgICAgICAgICAgICAgICAg
ICAgICAgXAoJICBhbl9vYmplY3QtPmV4dGVuZGVkX3BhaXJfdC5jZXIgICAgID0gZTsgICAgICAg
ICAgICAgICAgICAgICAgICAgXAoJICBhbl9vYmplY3QtPmV4dGVuZGVkX3BhaXJfdC5laGVhZGVy
ID0gQklOVCggRVhURU5ERURfUEFJUl9UWVBFICk7XAoJICBCR0xfSEVBUF9ERUJVR19NQVJLX09C
SiggQlBBSVIoIGFuX29iamVjdCApICk7IH0gKQojZWxzZQojICAgZGVmaW5lIE1BS0VfRVhURU5E
RURfUEFJUiggYSwgZCwgZSApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
ICAgKCAgYW5fb2JqZWN0ID0gR0NfTUFMTE9DKCBFWFRFTkRFRF9QQUlSX1NJWkUgKSwgICAgICAg
ICAgICAgICAgICAgICBcCgkgYW5fb2JqZWN0LT5leHRlbmRlZF9wYWlyX3QuaGVhZGVyICA9IE1B
S0VfSEVBREVSKCBQQUlSX1RZUEUsMCApLCBcCgkgYW5fb2JqZWN0LT5leHRlbmRlZF9wYWlyX3Qu
Y2FyICAgICA9IGEsICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkgYW5fb2JqZWN0LT5leHRl
bmRlZF9wYWlyX3QuY2RyICAgICA9IGQsICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkgYW5f
b2JqZWN0LT5leHRlbmRlZF9wYWlyX3QuY2VyICAgICA9IGUsICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCgkgYW5fb2JqZWN0LT5leHRlbmRlZF9wYWlyX3QuZWhlYWRlciA9IEJJTlQoIEVYVEVO
REVEX1BBSVJfVFlQRSApLCBcCiAgICAgICAgIEJHTF9IRUFQX0RFQlVHX01BUktfT0JKKCBCUEFJ
UiggYW5fb2JqZWN0ICkgKSApCiNlbmRpZgojZW5kaWYKCiNpZiggIShkZWZpbmVkKCBUQUdfUEFJ
UiApICkgKQojICAgZGVmaW5lIFBBSVJQKCBjICkgKFBPSU5URVJQKCBjICkgJiYgKFRZUEUoIGMg
KSA9PSBQQUlSX1RZUEUpKQojZWxzZQojICAgaWYoICFUQUdfUEFJUiApCiMgICAgICBkZWZpbmUg
UEFJUlAoIGMgKSAoKGMgJiYgKCgoKGxvbmcpYykgJiBUQUdfTUFTSykgPT0gVEFHX1BBSVIpKSkK
I2Vsc2UKIyAgICAgIGRlZmluZSBQQUlSUCggYyApICgoKChsb25nKWMpICYgVEFHX01BU0spID09
IFRBR19QQUlSKQojICAgZW5kaWYKI2VuZGlmCgojaWYoIFRIRV9HQyA9PSBCT0VITV9HQyApCiMg
ICBkZWZpbmUgRVhURU5ERURfUEFJUlAoIGMgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgICAoIFBBSVJQKCBjICkgJiYgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAoKChsb25nKUdDX3NpemUoIEJQ
QUlSKCBjICkgKSkgPj0gRVhURU5ERURfUEFJUl9TSVpFKSAmJiAgICAgICBcCiAgICAgICAgKEVQ
QUlSKCBjICkuZWhlYWRlciA9PSBCSU5UKCBFWFRFTkRFRF9QQUlSX1RZUEUgKSApICkKI2Vsc2UK
IyAgIGlmKCBUSEVfR0MgPT0gTk9fR0MgKQojICAgICAgZGVmaW5lIEVYVEVOREVEX1BBSVJQKCBj
ICkgKDApCiMgICBlbHNlCiMgICAgICBkZWZpbmUgRVhURU5ERURfUEFJUlAoIGMgKSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAoIFBBSVJQKCBjICkgJiYg
KEVQQUlSKCBjICkuZWhlYWRlciA9PSBCSU5UKCBFWFRFTkRFRF9QQUlSX1RZUEUgKSApICkKIyAg
IGVuZGlmCiNlbmRpZgoKI2RlZmluZSBOVUxMUCggYyApICgobG9uZykoYykgPT0gKGxvbmcpQk5J
TCkKCiNkZWZpbmUgQ0FSKCBjICkgICAgICAgIChQQUlSKCBjICkuY2FyKQojZGVmaW5lIENEUigg
YyApICAgICAgICAoUEFJUiggYyApLmNkcikKI2RlZmluZSBDRVIoIGMgKSAgICAgICAgKEVQQUlS
KCBjICkuY2VyKQoKI2RlZmluZSBTRVRfQ0FSKCBjLCB2ICkgKChDQVIoYykgPSB2KSwgQlVOU1BF
QykKI2RlZmluZSBTRVRfQ0RSKCBjLCB2ICkgKChDRFIoYykgPSB2KSwgQlVOU1BFQykKI2RlZmlu
ZSBTRVRfQ0VSKCBjLCB2ICkgKChDRVIoYykgPSB2KSwgQlVOU1BFQykKCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KLyogICAgU3RyaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiggIShkZWZpbmVkKCBUQUdf
U1RSSU5HICkgKSApCiMgICBkZWZpbmUgU1RSSU5HUCggYyApIChQT0lOVEVSUCggYyApICYmIChU
WVBFKCBjICkgPT0gU1RSSU5HX1RZUEUpKQojZWxzZQojICAgZGVmaW5lIFNUUklOR1AoIGMgKSAo
KGMgJiYgKCgoKGxvbmcpYykmVEFHX01BU0spID09IFRBR19TVFJJTkcpKSkKI2VuZGlmCgojZGVm
aW5lIFNUUklORyggbyApICAoQ1NUUklORyggbyApLT5zdHJpbmdfdCkKCiNkZWZpbmUgU1RSSU5H
X1NJWkUgKHNpemVvZiggc3RydWN0IHN0cmluZyApKQoKI2RlZmluZSBTVFJJTkdfTEVOR1RIKCBz
ICkgU1RSSU5HKCBzICkubGVuZ3RoCiNkZWZpbmUgSU5WRVJTRV9TVFJJTkdfTEVOR1RIKCBzICkg
XAogICAoKFNUUklOR19MRU5HVEgoIHMgKSA9ICgtU1RSSU5HX0xFTkdUSCggcyApKSksIEJVTlNQ
RUMpCiAgIAojZGVmaW5lIE1BUktfSU5URVhUX1NUUklORyggcyApIFwKICAgSU5WRVJTRV9TVFJJ
TkdfTEVOR1RIKCBzICkKI2RlZmluZSBVTk1BUktfSU5URVhUX1NUUklORyggcyApIFwKICAgSU5W
RVJTRV9TVFJJTkdfTEVOR1RIKCBzICkKI2RlZmluZSBJTlRFWFRfU1RSSU5HX01BUktFRF9QKCBz
ICkgXAogICAoU1RSSU5HX0xFTkdUSCggcyApIDwgMCkKCiNkZWZpbmUgQlNUUklOR19UT19TVFJJ
TkcoIHMgKSAoKGNoYXIgKikoJihTVFJJTkcoIHMgKS5jaGFyMCkpKQoKI2RlZmluZSBTVFJJTkdf
UkVGKCB2LCBpICkgKEJTVFJJTkdfVE9fU1RSSU5HKCB2IClbIGkgXSkKI2RlZmluZSBTVFJJTkdf
U0VUKCBzLCBpLCBjICkgKFNUUklOR19SRUYoIHMsIGkgKSA9IGMsIEJVTlNQRUMpCiNkZWZpbmUg
U1RSSU5HX1BUUl9OVUxMKCBfcCApIChfcCA9PSAwKQogICAKLyotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAg
ICBVQ1MtMiBjaGFyYWN0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBVQ1MyX0lTT0xBVElOMVAoIGNo
ICkgKChjaCkgPCAodWNzMl90KTI1NikKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgVUNTLTIgc3Ry
aW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgVUNTMl9TVFJJTkdQKCBjICkgKFBPSU5URVJQKCBj
ICkgJiYgKFRZUEUoIGMgKSA9PSBVQ1MyX1NUUklOR19UWVBFKSkKCiNkZWZpbmUgVUNTMl9TVFJJ
TkcoIG8gKSAgKENVQ1MyU1RSSU5HKCBvICktPnVjczJfc3RyaW5nX3QpCgojZGVmaW5lIFVDUzJf
U1RSSU5HX1NJWkUgKHNpemVvZiggc3RydWN0IHVjczJfc3RyaW5nICkpCgojZGVmaW5lIFVDUzJf
U1RSSU5HX0xFTkdUSCggcyApIFVDUzJfU1RSSU5HKCBzICkubGVuZ3RoCiNkZWZpbmUgSU5WRVJT
RV9VQ1MyX1NUUklOR19MRU5HVEgoIHMgKSBcCiAgICgoVUNTMl9TVFJJTkdfTEVOR1RIKCBzICkg
PSAoLVVDUzJfU1RSSU5HX0xFTkdUSCggcyApKSksIEJVTlNQRUMpCgojZGVmaW5lIE1BUktfSU5U
RVhUX1VDUzJfU1RSSU5HKCBzICkgXAogICBJTlZFUlNFX1VDUzJfU1RSSU5HX0xFTkdUSCggcyAp
CiNkZWZpbmUgVU5NQVJLX0lOVEVYVF9VQ1MyX1NUUklORyggcyApIFwKICAgSU5WRVJTRV9VQ1My
X1NUUklOR19MRU5HVEgoIHMgKQojZGVmaW5lIElOVEVYVF9VQ1MyX1NUUklOR19NQVJLRURfUCgg
cyApIFwKICAgKFVDUzJfU1RSSU5HX0xFTkdUSCggcyApIDwgMCkKCiNkZWZpbmUgQlVDUzJfU1RS
SU5HX1RPX1VDUzJfU1RSSU5HKCBzICkgKCYoVUNTMl9TVFJJTkcoIHMgKS5jaGFyMCkpCgojZGVm
aW5lIFVDUzJfU1RSSU5HX1JFRiggdiwgaSApIChCVUNTMl9TVFJJTkdfVE9fVUNTMl9TVFJJTkco
IHYgKVsgaSBdKQojZGVmaW5lIFVDUzJfU1RSSU5HX1NFVCggcywgaSwgYyApIChVQ1MyX1NUUklO
R19SRUYoIHMsIGkgKSA9IGMsIEJVTlNQRUMpCgojZGVmaW5lIElOVF9UT19VQ1MyKCBpICkgKCh1
Y3MyX3QpaSkKICAgCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgUHJvY2VkdXJlcyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSovCiNkZWZpbmUgUFJPQ0VEVVJFX1NJWkUgKHNpemVvZiggc3RydWN0IHByb2NlZHVyZSAp
KQoKI2RlZmluZSBQUk9DRURVUkUoIG8gKSBDUkVGKCBvICktPnByb2NlZHVyZV90CgojZGVmaW5l
IFBST0NFRFVSRV9FTlRSWSggZnVuICkgKG9ial90KShQUk9DRURVUkUoIGZ1biApLmVudHJ5KQoj
ZGVmaW5lIFBST0NFRFVSRV9WQV9FTlRSWSggZnVuICkgKG9ial90KShQUk9DRURVUkUoIGZ1biAp
LnZhX2VudHJ5KQoKI2RlZmluZSBQUk9DRURVUkVQKCBmdW4gKSBcCiAgIChQT0lOVEVSUCggZnVu
ICkgJiYgKFRZUEUoIGZ1biApID09IFBST0NFRFVSRV9UWVBFKSkKCiNkZWZpbmUgUFJPQ0VEVVJF
X0FSSVRZKCBmdW4gKSAoUFJPQ0VEVVJFKCBmdW4gKS5hcml0eSkKCiNkZWZpbmUgVkFfUFJPQ0VE
VVJFUCggZnVuICkgKCBQUk9DRURVUkVfQVJJVFkoIGZ1biApIDwgMCApCiAgIAojZGVmaW5lIFBS
T0NFRFVSRV9DT1JSRUNUX0FSSVRZUCggZnVuLCBudW0gKSAgICAgICAgICAgXAogICAgICAgICgg
KFBST0NFRFVSRV9BUklUWSggZnVuICkgPT0gbnVtKSB8fCAgICAgICAgICAgXAoJICAoVkFfUFJP
Q0VEVVJFUCggZnVuICkgJiYgICAgICAgICAgICAgICAgICAgICBcCgkgICAoKC1udW0gLSAxKSA8
PSAoUFJPQ0VEVVJFX0FSSVRZKCBmdW4gKSkpKSApCgkJICAKI2RlZmluZSBQUk9DRURVUkVfRU5W
KCBwICkgKCYoUFJPQ0VEVVJFKCBwICkub2JqMCkpCgojZGVmaW5lIFBST0NFRFVSRV9SRUYoIHAs
IGkgKSAgICAoUFJPQ0VEVVJFX0VOViggcCApKVsgaSBdCiNkZWZpbmUgUFJPQ0VEVVJFX1NFVCgg
cCwgaSwgbyApIChQUk9DRURVUkVfUkVGKCBwLCBpICkgPSBvLCBCVU5TUEVDKQoKLyotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwovKiAgICBMaWdodCBwcm9jZWR1cmVzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBQUk9DRURV
UkVfTF9TSVpFIChzaXplb2YoIHN0cnVjdCBwcm9jZWR1cmVfbGlnaHQgKSkKCiNkZWZpbmUgUFJP
Q0VEVVJFX0woIF9vXyApIChDTElHSFQoIF9vXyApLT5wcm9jZWR1cmVfbGlnaHRfdCkKCiNkZWZp
bmUgUFJPQ0VEVVJFX0xfRU5UUlkoIGZ1biApIChvYmpfdCkoUFJPQ0VEVVJFX0woIGZ1biApLmVu
dHJ5KQoKI2RlZmluZSBQUk9DRURVUkVfTF9FTlYoIGZ1biApICgmKFBST0NFRFVSRV9MKCBmdW4g
KS5vYmowKSkKCiNkZWZpbmUgUFJPQ0VEVVJFX0xfUkVGKCBwLCBfaSApICAgIFBST0NFRFVSRV9M
X0VOViggcCApWyBfaSBdIAojZGVmaW5lIFBST0NFRFVSRV9MX1NFVCggcCwgX2ksIG8gKSAoUFJP
Q0VEVVJFX0xfUkVGKCBwLCBfaSApID0gbywgQlVOU1BFQykKCiNpZiggZGVmaW5lZCggX19HTlVD
X18gKSApCiMgICBkZWZpbmUgTUFLRV9MX1BST0NFRFVSRV9BTExPQyggQUxMT0MsIF9lbnRyeSwg
X3NpemUgKSAgICAgICAgICAgICAgICAgICAgXAogICAgICAoIHsgb2JqX3QgYW5fb2JqZWN0OyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCSAgYW5f
b2JqZWN0ID0gQUxMT0MoIFBST0NFRFVSRV9MX1NJWkUgKyAoKF9zaXplLTEpICogT0JKX1NJWkUp
ICk7ICAgIFwKCSAgKGFuX29iamVjdC0+cHJvY2VkdXJlX2xpZ2h0X3QpLmVudHJ5ID0gX2VudHJ5
OyAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIEJHTF9IRUFQX0RFQlVHX01BUktfT0JK
KCBCTElHSFQoIGFuX29iamVjdCApICk7IH0gKQojZWxzZQojICAgZGVmaW5lIE1BS0VfTF9QUk9D
RURVUkVfQUxMT0MoIEFMTE9DLCBfZW50cnksIF9zaXplICkgICAgICAgICAgICAgICAgICAgIFwK
ICAgICAgKCAgIGFuX29iamVjdCA9IEFMTE9DKCBQUk9DRURVUkVfTF9TSVpFICsgKChfc2l6ZS0x
KSAqIE9CSl9TSVpFKSApLCAgICBcCgkgIChhbl9vYmplY3QtPnByb2NlZHVyZV9saWdodF90KS5l
bnRyeSA9IF9lbnRyeSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICBCR0xfSEVBUF9E
RUJVR19NQVJLX09CSiggQkxJR0hUKCBhbl9vYmplY3QgKSApICkKI2VuZGlmCgojZGVmaW5lIE1B
S0VfTF9QUk9DRURVUkUoIF9lbnRyeSwgX3NpemUgKSAgIFwKICAgTUFLRV9MX1BST0NFRFVSRV9B
TExPQyggR0NfTUFMTE9DLCBfZW50cnksIF9zaXplICkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAg
RXh0cmEtbGlnaHQgcHJvY2VkdXJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgTUFLRV9FTF9QUk9DRURVUkUoIHNp
emUgKSAgIEdDX01BTExPQyggc2l6ZSAqIE9CSl9TSVpFICkKCiNkZWZpbmUgUFJPQ0VEVVJFX0VM
X1JFRiggcCwgaSApICAgICgob2JqX3QgKilwKVsgaSBdCiNkZWZpbmUgUFJPQ0VEVVJFX0VMX1NF
VCggcCwgaSwgbyApIChQUk9DRURVUkVfRUxfUkVGKCBwLCBpICkgPSBvLCBCVU5TUEVDKQoKCiNk
ZWZpbmUgTUFLRV9FTF9QUk9DRURVUkVfMSggc2l6ZSApICAgQlVOU1BFQwoKI2RlZmluZSBQUk9D
RURVUkVfMV9FTF9SRUYoIHAsIGkgKSAgICBwCiNkZWZpbmUgUFJPQ0VEVVJFXzFfRUxfU0VUKCBw
LCBpLCBvICkgKFBST0NFRFVSRV8xX0VMX1JFRiggcCwgaSApID0gbywgQlVOU1BFQykKCi8qLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKi8KLyogICAgR2xvYmFsIHBvcnRzICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmV4dGVybiBvYmpf
dCAoKmJnbF9nZXRfY3VycmVudF9vdXRwdXRfcG9ydCkoKTsKZXh0ZXJuIG9ial90ICgqYmdsX3Nl
dF9jdXJyZW50X291dHB1dF9wb3J0KSggb2JqX3QgKTsKZXh0ZXJuIG9ial90ICgqYmdsX2dldF9j
dXJyZW50X2Vycm9yX3BvcnQpKCk7CmV4dGVybiBvYmpfdCAoKmJnbF9zZXRfY3VycmVudF9lcnJv
cl9wb3J0KSggb2JqX3QgKTsKZXh0ZXJuIG9ial90ICgqYmdsX2dldF9jdXJyZW50X2lucHV0X3Bv
cnQpKCk7CmV4dGVybiBvYmpfdCAoKmJnbF9zZXRfY3VycmVudF9pbnB1dF9wb3J0KSggb2JqX3Qg
KTsKICAgCiNkZWZpbmUgR0VUX0NVUlJFTlRfT1VUUFVUX1BPUlQoKSBiZ2xfZ2V0X2N1cnJlbnRf
b3V0cHV0X3BvcnQoKQojZGVmaW5lIFNFVF9DVVJSRU5UX09VVFBVVF9QT1JUKCBfcCApIChiZ2xf
c2V0X2N1cnJlbnRfb3V0cHV0X3BvcnQoX3ApKQoKI2RlZmluZSBHRVRfQ1VSUkVOVF9JTlBVVF9Q
T1JUKCkgYmdsX2dldF9jdXJyZW50X2lucHV0X3BvcnQoKQojZGVmaW5lIFNFVF9DVVJSRU5UX0lO
UFVUX1BPUlQoIF9wICkgKGJnbF9zZXRfY3VycmVudF9pbnB1dF9wb3J0IChfcCkpCgojZGVmaW5l
IEdFVF9DVVJSRU5UX0VSUk9SX1BPUlQoKSBiZ2xfZ2V0X2N1cnJlbnRfZXJyb3JfcG9ydCgpCiNk
ZWZpbmUgU0VUX0NVUlJFTlRfRVJST1JfUE9SVCggX3AgKSAoYmdsX3NldF9jdXJyZW50X2Vycm9y
X3BvcnQoX3ApKQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBPdXRwdXQtcG9ydHMgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KI2RlZmluZSBPVVRQVVRfUE9SVF9TSVpFIChzaXplb2YoIHN0cnVjdCBvdXRwdXRfcG9y
dCApKQoKI2RlZmluZSBPVVRQVVRfUE9SVCggbyApIENSRUYoIG8gKS0+b3V0cHV0X3BvcnRfdAoK
I2RlZmluZSBPVVRQVVRfUE9SVFAoIG8gKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCiAgICggUE9JTlRFUlAoIG8gKSAmJiAoIChUWVBFKCBvICkgPT0gT1VUUFVUX1BPUlRfVFlQ
RSkgfHwgXAoJCSAgICAgICAgKFRZUEUoIG8gKSA9PSBPVVRQVVRfU1RSSU5HX1BPUlRfVFlQRSkg
KSApCgojZGVmaW5lIEZMVVNIX09VVFBVVF9QT1JUKCBvICkgIFwKICAgKCBPVVRQVVRfU1RSSU5H
X1BPUlRQKCBvICkgPyBcCgkgIHN0cnBvcnRfZmx1c2goIG8gKSA6IChmZmx1c2goIE9VVFBVVF9Q
T1JUKCBvICkuZmlsZSApLCBvKSApCgojZGVmaW5lIE9VVFBVVF9QT1JUX1RPX0ZJTEUoIG8gKSBc
CiAgICggT1VUUFVUX1NUUklOR19QT1JUUCggbyApID8gXAoJICBGQUlMVVJFKCBzdHJpbmdfdG9f
YnN0cmluZyggIm91dHB1dC1wb3J0LXRvLWZpbGUiICksIFwKCQkgICBzdHJpbmdfdG9fYnN0cmlu
ZyggImFyZ3VtZW50IGNhbid0IGJlIGEgc3RyaW5nIHBvcnQiKSwgXAoJCSAgIG8gKSwgXAoJICBz
dGRvdXQgXAoJICA6IE9VVFBVVF9QT1JUKCBvICkuZmlsZSApCgojZGVmaW5lIEZJTEVfVE9fT1VU
UFVUX1BPUlQoIGYgKSBcCiAgIChtYWtlX291dHB1dF9wb3J0KCAiPGMtcG9ydD4iLCBmLCBLSU5E
T0ZfRklMRSkpCgojZGVmaW5lIEJHTF9PVVRQVVRfQ0hBUiggcCwgYyApIFwKICAgKGZwdXRjKCAo
YyksIEJJTkFSWV9QT1JUKCAocCkgKS5maWxlICksIEJVTlNQRUMpCgojZGVmaW5lIEJHTF9JTlBV
VF9DSEFSKCBwICkgXAogICAoZmdldGMoIEJJTkFSWV9QT1JUKCAocCkgKS5maWxlKSkKCiNkZWZp
bmUgQkdMX0lOVF9FT0ZQKCBpICkgXAogICAoKGkpID09IEVPRikKICAgCi8qLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KLyogICAgTGVzIE9VVFBVVF9TVFJJTkdfUE9SVHMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgT1VUUFVUX1NUUklO
R19QT1JUX1NJWkUgKHNpemVvZiggc3RydWN0IG91dHB1dF9zdHJpbmdfcG9ydCApKQoKI2RlZmlu
ZSBPVVRQVVRfU1RSSU5HX1BPUlQoIG8gKSBDUkVGKCBvICktPm91dHB1dF9zdHJpbmdfcG9ydF90
CgojZGVmaW5lIE9VVFBVVF9TVFJJTkdfUE9SVFAoIG8gKSAoIFRZUEUoIG8gKSA9PSBPVVRQVVRf
U1RSSU5HX1BPUlRfVFlQRSApCgojZGVmaW5lIE9VVFBVVF9TVFJJTkdfUE9SVF9CVUZGRVJfU0la
RSAxMDI0CgojZGVmaW5lIEVORF9PRl9TVFJJTkdfUE9SVFAoIG8gKSBcCiAgICggT1VUUFVUX1NU
UklOR19QT1JUKCBvICkub2Zmc2V0ID09IE9VVFBVVF9TVFJJTkdfUE9SVCggbyApLnNpemUgKQoK
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qLwovKiAgICBCaW5hcnkgcG9ydHMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmlu
ZSBCSU5BUllfUE9SVF9TSVpFIChzaXplb2YoIHN0cnVjdCBiaW5hcnlfcG9ydCApKQoKI2RlZmlu
ZSBCSU5BUllfUE9SVCggbyApIENSRUYoIG8gKS0+YmluYXJ5X3BvcnRfdAoKI2RlZmluZSBCSU5B
UllfUE9SVFAoIG8gKSBcCiAgICggUE9JTlRFUlAoIG8gKSAmJiAoVFlQRSggbyApID09IEJJTkFS
WV9QT1JUX1RZUEUpICkKCiNkZWZpbmUgQklOQVJZX1BPUlRfSU4gICAoKGJvb2xfdCkwKQojZGVm
aW5lIEJJTkFSWV9QT1JUX09VVCAgKChib29sX3QpMSkKCiNkZWZpbmUgQklOQVJZX1BPUlRfSU5Q
KCBwICkgKEJJTkFSWV9QT1JUKCBvICkuaW8gPT0gQklOQVJZX1BPUlRfSU4pCgojZGVmaW5lIEJJ
TkFSWV9QT1JUX1RPX0ZJTEUoIHAgKSAoQklOQVJZX1BPUlQoIHAgKS5maWxlKQoKLyotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwovKiAgICBSR0MgcG9ydHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBLSU5ET0Zf
RklMRSAgICAgQklOVCggMCApCiNkZWZpbmUgS0lORE9GX0NPTlNPTEUgIEJJTlQoIDEgKQojZGVm
aW5lIEtJTkRPRl9TVFJJTkcgICBCSU5UKCAyICkKI2RlZmluZSBLSU5ET0ZfUElQRSAgICAgQklO
VCggMyApCiNkZWZpbmUgS0lORE9GX1NPQ0tFVCAgIEJJTlQoIDQgKQojZGVmaW5lIEtJTkRPRl9D
TE9TRUQgICBCSU5UKCA2ICkKI2RlZmluZSBLSU5ET0ZfUFJPQ1BJUEUgQklOVCggNyApCgojZGVm
aW5lIElOUFVUX1BPUlRfU0laRSAoc2l6ZW9mKCBzdHJ1Y3QgaW5wdXRfcG9ydCApKQoKI2RlZmlu
ZSBJTlBVVF9QT1JUKCBvICkgQ1JFRiggbyApLT5pbnB1dF9wb3J0X3QKCiNkZWZpbmUgSU5QVVRf
UE9SVFAoIG8gKSAoUE9JTlRFUlAoIG8gKSAmJiAoVFlQRSggbyApID09IElOUFVUX1BPUlRfVFlQ
RSkpCgojZGVmaW5lIEVPRl9PQkpFQ1RQKCBvICkgKCBvID09IEJFT0YgKQoKI2RlZmluZSBJTlBV
VF9QT1JUX05BTUUoIG8gKSAoSU5QVVRfUE9SVCggbyApLm5hbWUpCgojZGVmaW5lIElOUFVUX1BP
UlRfRklMRVBPUyggbyApIChJTlBVVF9QT1JUKCBvICkuZmlsZXBvcykKCiNkZWZpbmUgSU5QVVRf
UE9SVF9PTl9GSUxFUCggbyApIChJTlBVVF9QT1JUKCBvICkua2luZG9mID09IEtJTkRPRl9GSUxF
KQoKI2RlZmluZSBJTlBVVF9QT1JUX09OX1NUUklOR1AoIG8gKSAoSU5QVVRfUE9SVCggbyApLmtp
bmRvZiA9PSBLSU5ET0ZfU1RSSU5HKQoKI2RlZmluZSBJTlBVVF9QT1JUX0JVRlNJWiggbyApIChJ
TlBVVF9QT1JUKCBvICkuYnVmc2l6KQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBSR0MgbWFjcm9z
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov
Ci8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBSR0NfREVCVUcgMgojdW5kZWYgUkdDX0RFQlVHCgoj
aWYgZGVmaW5lZCggUkdDX0RFQlVHICkKIyAgIGluY2x1ZGUgPGFzc2VydC5oPgojZWxzZQojICAg
ZGVmaW5lIGFzc2VydCggZXhwICkgOwojZW5kaWYKCiNkZWZpbmUgUkdDX0JVRkZFUiggcCApICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgKElOUFVU
X1BPUlQoIHAgKS5idWZmZXIpCgojaWYgZGVmaW5lZCggUkdDX0RFQlVHICkgJiYgKFJHQ19ERUJV
RyA+IDEpCiNkZWZpbmUgUkdDX0JVRkZFUl9HRVRfQ0hBUiggaSApICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgKHByaW50ZiggImdldF9jaGFyOiAlZCAlY1xuIiwg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoJICAgICh1bnNpZ25lZCBp
bnQpKFJHQ19CVUZGRVIoIGkgKVsgSU5QVVRfUE9SVCggaSApLmZvcndhcmQgXSksIFwKCSAgICBS
R0NfQlVGRkVSKCBpIClbIElOUFVUX1BPUlQoIGkgKS5mb3J3YXJkIF0gKSwgICAgICAgICAgICAg
ICBcCiAgICh1bnNpZ25lZCBpbnQpKFJHQ19CVUZGRVIoIGkgKVsgSU5QVVRfUE9SVCggaSApLmZv
cndhcmQrKyBdKSkKI2Vsc2UKI2RlZmluZSBSR0NfQlVGRkVSX0dFVF9DSEFSKCBpICkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAoKHVuc2lnbmVkIGludCkoUkdD
X0JVRkZFUiggaSApWyBJTlBVVF9QT1JUKCBpICkuZm9yd2FyZCsrIF0pKQojZW5kaWYKCiNkZWZp
bmUgUkdDX0JVRkZFUl9DSEFSQUNURVIoIGkgKSBcCiAgICgoY2hhcikoUkdDX0JVRkZFUiggaSAp
WyBJTlBVVF9QT1JUKCBpICkubWF0Y2hzdGFydCBdKSkKICAgCiNkZWZpbmUgUkdDX1NUQVJUX01B
VENIKCBwICkgXAogICAoSU5QVVRfUE9SVCggcCApLmZvcndhcmQgPSBcCiAgICAgSU5QVVRfUE9S
VCggcCApLm1hdGNoc3RhcnQgPSBcCiAgICAgIElOUFVUX1BPUlQoIHAgKS5tYXRjaHN0b3ApCgoj
ZGVmaW5lIFJHQ19TRVRfRklMRVBPUyggcCApIFwKICAgKElOUFVUX1BPUlQoIHAgKS5maWxlcG9z
ICs9IFJHQ19CVUZGRVJfTEVOR1RIKCBwICkpCiAgIAojZGVmaW5lIFJHQ19TVE9QX01BVENIKCBw
ICkgXAogICAoSU5QVVRfUE9SVCggcCApLm1hdGNoc3RvcCA9IElOUFVUX1BPUlQoIHAgKS5mb3J3
YXJkKQoKCiNpZiBkZWZpbmVkKCBSR0NfREVCVUcgKQojZGVmaW5lIFJHQ19CVUZGRVJfRU1QVFko
IHAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgIChhc3Nl
cnQoIElOUFVUX1BPUlQoIHAgKS5mb3J3YXJkIDw9IElOUFVUX1BPUlQoIHAgKS5hYnVmc2l6KSwg
ICAgICAgIFwKICAgIGFzc2VydCggSU5QVVRfUE9SVCggcCApLmFidWZzaXogPD0gSU5QVVRfUE9S
VCggcCApLmJ1ZnNpeiksICAgICAgICAgXAogICAgcHJpbnRmKCAiUkdDX0JVRkZFUl9FTVBUWTog
Zm9yd2FyZDogJWQgIGFidWZzaXo6ICVkICBtc3RhcnQ6ICVkICBtc3RvcDogJWQgLS0+ICVkXG4i
ICwgICAgXAogICAgICAgICAgICBJTlBVVF9QT1JUKCBwICkuZm9yd2FyZCwgSU5QVVRfUE9SVCgg
cCApLmFidWZzaXosICAgICAgICAgICBcCiAgICAgICAgICAgIElOUFVUX1BPUlQoIHAgKS5tYXRj
aHN0YXJ0LCBJTlBVVF9QT1JUKCBwICkubWF0Y2hzdG9wLCAgICAgIFwKICAgICAgICAgICAgSU5Q
VVRfUE9SVCggcCApLmZvcndhcmQgPT0gSU5QVVRfUE9SVCggcCApLmFidWZzaXopLCAgICAgICAg
XAogICAgSU5QVVRfUE9SVCggcCApLmZvcndhcmQgPT0gSU5QVVRfUE9SVCggcCApLmFidWZzaXop
CiNlbHNlCiNkZWZpbmUgUkdDX0JVRkZFUl9FTVBUWSggcCApICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgKElOUFVUX1BPUlQoIHAgKS5mb3J3YXJkID09IElO
UFVUX1BPUlQoIHAgKS5hYnVmc2l6KQojZW5kaWYKCiNkZWZpbmUgUkdDX01BVENIX0ZBSUwoIHAg
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgKElOUFVU
X1BPUlQoIHAgKS5tYXRjaHN0YXJ0KyspCgojZGVmaW5lIFJHQ19GQUlMSU5HX0NIQVIoIHAgKSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICgodW5zaWduZWQg
aW50KShSR0NfQlVGRkVSKCBwIClbIElOUFVUX1BPUlQoIHAgKS5tYXRjaHN0YXJ0IF0pKQoKI2Rl
ZmluZSBSR0NfQlVGRkVSX0xFTkdUSCggcCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAoSU5QVVRfUE9SVCggcCApLm1hdGNoc3RvcCAtIElOUFVUX1BPUlQo
IHAgKS5tYXRjaHN0YXJ0KQoKI2RlZmluZSBSR0NfQlVGRkVSX1BPU0lUSU9OKCBwICkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAoSU5QVVRfUE9SVCggcCApLmZv
cndhcmQgLSBJTlBVVF9QT1JUKCBwICkubWF0Y2hzdGFydCkKCiNkZWZpbmUgUkdDX01BVENIU1RP
UCggcCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg
KElOUFVUX1BPUlQoIHAgKS5tYXRjaHN0b3ApCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIFZlY3Rv
cnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5lIFZFQ1RPUl9TSVpFIChzaXplb2YoIHN0cnVj
dCB2ZWN0b3IgKSkKCi8qIExlIG5vbWJyZSBkZSBiaXQgYWNjb3JkZXMgYXV4IHRhZyBkZXMgdmVj
dGV1cnMgKHBvdXIgY2FtbCkgKi8KI2RlZmluZSBWRUNUT1JfVEFHX05CX0JJVCA4CiNkZWZpbmUg
VkVDVE9SX1RBR19TSVpFICgodW5zaWduZWQgaW50KSgxPDxWRUNUT1JfVEFHX05CX0JJVCkpCgoj
ZGVmaW5lIFZFQ1RPUl9MRU5HVEhfU0hJRlQgKChzaXplb2YoIGludCApIDw8IDMpIC0gVkVDVE9S
X1RBR19OQl9CSVQpCgojZGVmaW5lIFZFQ1RPUl9MRU5HVEhfTUFTSyBcCiAgICh+KHVuc2lnbmVk
IGludCkoKFZFQ1RPUl9UQUdfU0laRSAtMSkgPDwgVkVDVE9SX0xFTkdUSF9TSElGVCkpCgojZGVm
aW5lIFZFQ1RPUiggbyApIENWRUNUT1IoIG8gKS0+dmVjdG9yX3QKCiNpZiggIShkZWZpbmVkKCBU
QUdfVkVDVE9SICkgKSApCiMgICBkZWZpbmUgVkVDVE9SUCggYyApIChQT0lOVEVSUCggYyApICYm
IChUWVBFKCBjICkgPT0gVkVDVE9SX1RZUEUpKQojZWxzZQojICAgZGVmaW5lIFZFQ1RPUlAoIGMg
KSAoKGMgJiYgKCgoKGxvbmcpYykmVEFHX01BU0spID09IFRBR19WRUNUT1IpKSkKI2VuZGlmCgoj
ZGVmaW5lIFZFQ1RPUl9SRUYoIHYsIGkgKSAgICAoJihWRUNUT1IoIHYgKS5vYmowKSlbIGkgXQoj
ZGVmaW5lIFZFQ1RPUl9TRVQoIHYsIGksIG8gKSAoVkVDVE9SX1JFRiggdiwgaSApID0gbywgQlVO
U1BFQykKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgISEhIFdBUk5JTkcgISEhIFdBUk5JTkcgISEh
IFdBUk5JTkcgISEhIFdBUk5JTkcgISEhIFdBUk5JTkcgISEhICAqLwovKiAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICov
Ci8qICAgIFBvdXIgcG91dm9pciBjb2RlciB1bmUgaW5mb3JtYXRpb24gc3VwcGxlbWVudGFpcmUg
c3VyIGxlcyAgICAgICAgKi8KLyogICAgdmVjdGV1cnMsIGplIGxpbWl0ZSBsZXVyIHRhaWxsZSBh
IDJeMjIuIENlbGEgc2lnbmlmaWUgcXVlICAgICAgICAqLwovKiAgICBsJ2luZm8gcGV1dC1ldHJl
IGNvZGVlIHN1ciBsZXMgOCBiaXRzIGRlIHBvaWRzIGZvcnQuICAgICAgICAgICAgICovCi8qLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKi8KI2RlZmluZSBWRUNUT1JfTEVOR1RIKCB2ICkgXAogICAoKHVuc2lnbmVkIGlu
dClWRUNUT1IoIHYgKS5sZW5ndGggJiBWRUNUT1JfTEVOR1RIX01BU0spCgojZGVmaW5lIFZFQ1RP
Ul9UQUdfU0VUKCB2LCB0YWcgKSAgICAgICAgICAgICAgICAgICAgICAgXAogICAgKCBWRUNUT1Io
IHYgKS5sZW5ndGggPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICgodW5zaWdu
ZWQgaW50KVZFQ1RPUl9MRU5HVEgoIHYgKSB8ICAgICAgICAgICAgICAgXAogICAgICAgKCgodW5z
aWduZWQgaW50KSB0YWcpIDw8IFZFQ1RPUl9MRU5HVEhfU0hJRlQpKSwgXAogICAgICAgQlVOU1BF
QyApCgojZGVmaW5lIFZFQ1RPUl9UQUcoIHYgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAooICgodW5zaWduZWQgaW50KShWRUNUT1IoIHYgKS5sZW5ndGgpICYgflZFQ1RPUl9MRU5H
VEhfTUFTSykgPj4gVkVDVE9SX0xFTkdUSF9TSElGVCApCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAg
IE51bWJlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5lIElOVEVHRVJQKCBvICkgKCgoKGxv
bmcpbykgJiBUQUdfTUFTSykgPT0gVEFHX0lOVCkKCiNkZWZpbmUgUkVBTF9TSVpFICAoc2l6ZW9m
KCBzdHJ1Y3QgcmVhbCApKQojaWYoICEoZGVmaW5lZCggVEFHX1JFQUwgKSApICkKIyAgIGRlZmlu
ZSBSRUFMUCggYyApIChQT0lOVEVSUCggYyApICYmIChUWVBFKCBjICkgPT0gUkVBTF9UWVBFKSkK
I2Vsc2UKIyAgIGRlZmluZSBSRUFMUCggYyApICgoYyAmJiAoKCgobG9uZyljKSZUQUdfTUFTSykg
PT0gVEFHX1JFQUwpKSkKI2VuZGlmCgojZGVmaW5lIFJFQUwoIG8gKSAgQ1JFQUwoIG8gKS0+cmVh
bF90CgojZGVmaW5lIE5FRyggeCApICgtIHgpCgojaWYoICFkZWZpbmVkKCBLRUVQX0JBQ0tfUFRS
UyApICkKIyAgIGRlZmluZSBET1VCTEVfVE9fUkVBTCggZCApIChtYWtlX3JlYWwoIGQgKSkKI2Vs
c2UKLyogd2hlbiBjb21waWxpbmcgZm9yIGRlYnVnLCBSRUFMIGFyZSBub3QgYWxsb2NhdGVkIHVz
aW5nIEdDX01BTExPQ19BVE9NSUMgKi8KLyogaW4gb3JkZXIgdG8gbWFpbnRhaW4gdHlwZSBpbmZv
cm1hdGlvbiBmb3IgcmVhbCBpbnNpZGUgdGhlIGRlYnVnZ2VyICAgICAgKi8KIyAgICAgaWYoIGRl
ZmluZWQoIF9fR05VQ19fICkgKQojICAgICAgZGVmaW5lIERPVUJMRV9UT19SRUFMKCBkICkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAoeyBvYmpfdCBh
bl9vYmplY3Q7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CiAgICAgICAgICAgYW5fb2JqZWN0ID0gR0NfTUFMTE9DKCBSRUFMX1NJWkUgKTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIGFuX29iamVjdC0+cmVhbF90LmhlYWRlciA9
IE1BS0VfSEVBREVSKCBSRUFMX1RZUEUsIFJFQUxfU0laRSApO1wKCSAgIGFuX29iamVjdC0+cmVh
bF90LnJlYWwgPSAoZCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgICBCR0xfSEVBUF9ERUJVR19NQVJLX09CSiggQlJFQUwoIGFuX29iamVjdCApICk7IH0pCiMg
ICAgIGVsc2UKIyAgICAgIGRlZmluZSBNQUtFX1BBSVIoIGQgKSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgKGFuX29iamVjdCA9IEdDX01BTExP
QyggUkVBTF9TSVpFICksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg
IGFuX29iamVjdC0+cmVhbF90LmhlYWRlciA9IE1BS0VfSEVBREVSKCBSRUFMX1RZUEUsIFJFQUxf
U0laRSApLFwKICAgICAgICAgICBhbl9vYmplY3QtPnJlYWxfdC5yZWFsID0gKGQpLCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgQkdMX0hFQVBfREVCVUdfTUFS
S19PQkooIEJSRUFMKCBhbl9vYmplY3QgKSApKQojICAgICBlbmRpZgojZW5kaWYKICAgCiNkZWZp
bmUgUkVBTF9UT19ET1VCTEUoIHIgKSAoUkVBTCggciApLnJlYWwpCgojZGVmaW5lIEZMT0FUX1RP
X1JFQUwoIGQgKSAoRE9VQkxFX1RPX1JFQUwoIChkb3VibGUpKGQpICkpCiNkZWZpbmUgUkVBTF9U
T19GTE9BVCggciApICgoZmxvYXQpKFJFQUwoIHIgKS5yZWFsKSkKCiNkZWZpbmUgT0REUF9GWCgg
eCApICAoIHggICYgMHgxICkKI2RlZmluZSBFVkVOUF9GWCggeCApICghT0REUF9GWCggeCApKQoK
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0qLwovKiAgICBMb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmlu
ZSBMTE9OR19TSVpFIChzaXplb2YoIHN0cnVjdCBsbG9uZyApKQoKI2RlZmluZSBMTE9OR1AoIG8g
KSAoUE9JTlRFUlAoIG8gKSAmJiAoVFlQRSggbyApID09IExMT05HX1RZUEUpKQoKI2RlZmluZSBM
TE9ORyggbyApIENSRUYoIG8gKS0+bGxvbmdfdAoKI2lmKCBkZWZpbmVkKCBfX0dOVUNfXyApICkK
IyAgIGRlZmluZSBMTE9OR19UT19CTExPTkcoIGwgKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAoIHsgb2JqX3QgYW5fb2JqZWN0OyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCSAgICAgICBhbl9vYmplY3QgPSBH
Q19NQUxMT0MoIExMT05HX1NJWkUgKTsgICAgICAgICAgICAgICAgICAgICAgXAoJICAgICAgIGFu
X29iamVjdC0+bGxvbmdfdC5oZWFkZXIgPSBNQUtFX0hFQURFUiggTExPTkdfVFlQRSwgMCApOyBc
CgkgICAgICAgYW5fb2JqZWN0LT5sbG9uZ190Lmxsb25nID0gbDsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKCSAgICAgICBCR0xfSEVBUF9ERUJVR19NQVJLX09CSiggQlJFRiggYW5fb2Jq
ZWN0ICkgKTsgfSApCiNlbHNlCiMgICBkZWZpbmUgTExPTkdfVE9fQkxMT05HKCBsICkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAoICAgYW5fb2Jq
ZWN0ID0gR0NfTUFMTE9DKCBMTE9OR19TSVpFICksICAgICAgICAgICAgICAgICAgICAgXAoJICAg
ICAgIGFuX29iamVjdC0+bGxvbmdfdC5oZWFkZXIgPSBNQUtFX0hFQURFUiggTExPTkdfVFlQRSwg
MCksIFwKCSAgICAgICBhbl9vYmplY3QtPmxsb25nX3QubGxvbmcgPSBsLCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCgkgICAgICAgQkdMX0hFQVBfREVCVUdfTUFSS19PQkooIEJSRUYoIGFu
X29iamVjdCApICkgKQojZW5kaWYKCSAgICAKI2RlZmluZSBCTExPTkdfVE9fTExPTkcoIGwgKSAo
TExPTkcoIGwgKS5sbG9uZykKI2lmKCBIQVZFX0xPTkdMT05HICkgICAgICAKIyAgZGVmaW5lIExP
TkdfVE9fTExPTkcoIGwgKSAoKGxvbmcgbG9uZylsKSAgIAojZWxzZQojICBkZWZpbmUgTE9OR19U
T19MTE9ORyggbCApICgobG9uZylsKQojZW5kaWYKICAgCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAg
ZXhhY3QgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgRUxPTkdfU0laRSAoc2l6ZW9mKCBz
dHJ1Y3QgZWxvbmcgKSkKCiNkZWZpbmUgRUxPTkdQKCBvICkgKFBPSU5URVJQKCBvICkgJiYgKFRZ
UEUoIG8gKSA9PSBFTE9OR19UWVBFKSkKCiNkZWZpbmUgRUxPTkcoIG8gKSBDUkVGKCBvICktPmVs
b25nX3QKCiNpZiggZGVmaW5lZCggX19HTlVDX18gKSApCiMgICBkZWZpbmUgTE9OR19UT19CRUxP
TkcoIGwgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
ICAgICAgKCB7IG9ial90IGFuX29iamVjdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCgkgICAgICAgYW5fb2JqZWN0ID0gR0NfTUFMTE9DKCBFTE9OR19TSVpFICk7
ICAgICAgICAgICAgICAgICAgICAgIFwKCSAgICAgICBhbl9vYmplY3QtPmVsb25nX3QuaGVhZGVy
ID0gTUFLRV9IRUFERVIoIEVMT05HX1RZUEUsIDAgKTsgXAoJICAgICAgIGFuX29iamVjdC0+ZWxv
bmdfdC5lbG9uZyA9IGw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCgkgICAgICAgQkdM
X0hFQVBfREVCVUdfTUFSS19PQkooIEJSRUYoIGFuX29iamVjdCApICk7IH0gKQojZWxzZQojICAg
ZGVmaW5lIExPTkdfVE9fQkVMT05HKCBsICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgICAgICAgICggICBhbl9vYmplY3QgPSBHQ19NQUxMT0MoIEVMT05H
X1NJWkUgKSwgICAgICAgICAgICAgICAgICAgICAgXAoJICAgICAgIGFuX29iamVjdC0+ZWxvbmdf
dC5oZWFkZXIgPSBNQUtFX0hFQURFUiggRUxPTkdfVFlQRSwgMCApLCBcCgkgICAgICAgYW5fb2Jq
ZWN0LT5lbG9uZ190LmVsb25nID0gbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKCSAg
ICAgICBCR0xfSEVBUF9ERUJVR19NQVJLX09CSiggQlJFRiggYW5fb2JqZWN0ICkgKSApCiNlbmRp
ZgoJICAgIAojZGVmaW5lIEJFTE9OR19UT19MT05HKCBsICkgKEVMT05HKCBsICkuZWxvbmcpCgov
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSovCi8qICAgIFN5bWJvbHMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5l
IFNZTUJPTFAoIG8gKSAoUE9JTlRFUlAoIG8gKSAmJiAoVFlQRSggbyApID09IFNZTUJPTF9UWVBF
KSkKCiNkZWZpbmUgU1lNQk9MKCBvICkgIChDUkVGKCBvICktPnN5bWJvbF90KQogICAKI2RlZmlu
ZSBTWU1CT0xfU0laRSAoc2l6ZW9mKCBzdHJ1Y3Qgc3ltYm9sICkpCgojZGVmaW5lIFNZTUJPTF9U
T19TVFJJTkcoIG8gKSBTWU1CT0woIG8gKS5zdHJpbmcKCiNkZWZpbmUgR0VUX1NZTUJPTF9QTElT
VCggbyApICAgIChTWU1CT0woIG8gKS5jdmFsKQoKI2RlZmluZSBTRVRfU1lNQk9MX1BMSVNUKCBv
LCB2ICkgKEdFVF9TWU1CT0xfUExJU1QoIG8gKSA9IHYsIEJVTlNQRUMpCgojZGVmaW5lIFNZTUJP
TF9DQVNFX1NFTlNUSVZFX1AoIG9iaiApICgob2JqKS0+aGVhZGVyICYgKDEgPDwgSEVBREVSX05C
X0JJVCkpCiAgIAovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIEtleXdvcmRzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KI2RlZmluZSBLRVlXT1JEUCggbyApIChQT0lOVEVSUCggbyApICYmIChUWVBFKCBvICkg
PT0gS0VZV09SRF9UWVBFKSkKCiNkZWZpbmUgS0VZV09SRCggbyApICAoQ1JFRiggbyApLT5zeW1i
b2xfdCkKICAgCiNkZWZpbmUgS0VZV09SRF9TSVpFIChzaXplb2YoIHN0cnVjdCBzeW1ib2wgKSkK
CiNkZWZpbmUgS0VZV09SRF9UT19TVFJJTkcoIG8gKSBLRVlXT1JEKCBvICkuc3RyaW5nCgojZGVm
aW5lIEdFVF9LRVlXT1JEX1BMSVNUKCBvICkgICAoS0VZV09SRCggbyApLmN2YWwpCgojZGVmaW5l
IFNFVF9LRVlXT1JEX1BMSVNUKCBvLCB2ICkgKEdFVF9LRVlXT1JEX1BMSVNUKCBvICkgPSB2LCBC
VU5TUEVDKQogICAKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBTdHJ1Y3R1cmVzICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKi8KI2RlZmluZSBTVFJVQ1RfU0laRSAoc2l6ZW9mKCBzdHJ1Y3Qgc3RydWN0dXJlICkpCgoj
ZGVmaW5lIFNUUlVDVCggbyApIENTVFJVQ1RVUkUoIG8gKS0+c3RydWN0X3QKCiNpZiggIShkZWZp
bmVkKCBUQUdfU1RSVUNUVVJFICkgKSApCiMgICBkZWZpbmUgU1RSVUNUUCggYyApIChQT0lOVEVS
UCggYyApICYmIChUWVBFKCBjICkgPT0gU1RSVUNUX1RZUEUpKQojZWxzZQojICAgZGVmaW5lIFNU
UlVDVFAoIGMgKSAoKGMgJiYgKCgoKGxvbmcpYykmVEFHX01BU0spID09IFRBR19TVFJVQ1RVUkUp
KSkKI2VuZGlmCgojZGVmaW5lIFNUUlVDVF9LRVkoIGMgKSAgICAgICAgU1RSVUNUKCBjICkua2V5
CiNkZWZpbmUgU1RSVUNUX0tFWV9TRVQoIGMsIGsgKSAoU1RSVUNUX0tFWSggYyApID0gaywgQlVO
U1BFQykKCiNkZWZpbmUgU1RSVUNUX0xFTkdUSCggYyApIFNUUlVDVCggYyApLmxlbmd0aAogICAK
I2RlZmluZSBTVFJVQ1RfUkVGKCBjLCBpICkgICAgKCYoU1RSVUNUKGMpLm9iajApKVsgaSBdCiNk
ZWZpbmUgU1RSVUNUX1NFVCggYywgaSwgbyApIChTVFJVQ1RfUkVGKCBjLCBpICkgPSBvLCBCVU5T
UEVDKQoKZXh0ZXJuIG9ial90IGZpbGxfc3RydWN0KCk7CmV4dGVybiBvYmpfdCBzZXRfc3RydWN0
KCk7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIFR5cGVkIHN0cnVjdHVyZXMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoj
ZGVmaW5lIFRTVFJVQ1RQKCBvICkgKFBPSU5URVJQKCBvICkgJiYgKFRZUEUoIG8gKSA9PSBUU1RS
VUNUX1RZUEUpKQoKI2RlZmluZSBUU1RSVUNUX1NJWkUgKHNpemVvZiggc3RydWN0IHRzdHJ1Y3R1
cmUgKSkKCiNkZWZpbmUgVFNUUlVDVCggdHYgKSBDUkVGKCB0diApLT50c3RydWN0X3QKCiNkZWZp
bmUgVFNUUlVDVF9JRCggYyApIFRTVFJVQ1QoIGMgKS5pZAojZGVmaW5lIFRTVFJVQ1RfVE9fVkVD
VE9SKCBjICkgICAgICAgICAgICAgICBcCiAgIChQUk9DRURVUkVfRU5UUlkoIFRTVFJVQ1QoIGMg
KS50b192ZWN0b3IgKVwKICAgICggVFNUUlVDVCggYyApLnRvX3ZlY3RvciwgYywgQkVPQSApKQoK
I2RlZmluZSBUU1RSVUNUX1JFRiggX3Vfc3RydWN0LCBfc3QsIF91X3Nsb3QgKSAgICAgXAogICAg
ICAoKChzdHJ1Y3QgeyBoZWFkZXJfdCAgICAgIGhlYWRlcjsgICAgICAgICAgICBcCgkJICBvYmpf
dCAgICAgICAgIGlkOyAgICAgICAgICAgICAgICBcCgkJICBvYmpfdCAgICAgICAgIHRvX3Y7ICAg
ICAgICAgICAgICBcCgkJICBfdV9zdHJ1Y3QgICAgIGR1bW15O30gKilDUkVGKCBfc3QgKSktPmR1
bW15Ll91X3Nsb3QpCgojZGVmaW5lIFRTVFJVQ1RfU0VUKCBfdV9zdHJ1Y3QsIF9zdCwgX3Vfc2xv
dCwgX3YgKSAgICAgICAgICAgICAgICAgIFwKICAgICAgKFRTVFJVQ1RfUkVGKCBfdV9zdHJ1Y3Qs
IF9zdCwgX3Vfc2xvdCApID0gX3YsICAgICAgICAgICAgICAgICBcCiAgICAgICBCVU5TUEVDICkK
CQkgCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgY2hhcmFjdGVycyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNk
ZWZpbmUgQ0hBUlAoIG8gKSBcCiAgICgoKGxvbmcpKG8pICYgKGxvbmcpKCgxIDw8IChDSEFSX1NI
SUZUKSkgLTEpKSA9PSAobG9uZylCQ0hBUkgpCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIE91dHB1
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5lIFdSSVRFX0NIQVIoIGNfY2hhciwgcCApICAg
ICAgICAgICAgICAgICAgICBcCiAgICggKE9VVFBVVF9TVFJJTkdfUE9SVFAoIHAgKSA/ICAgICAg
ICAgICAgICAgICAgIFwKICAgICAoY2hhcilzdHJwdXRjKCBjX2NoYXIsIHAgKSA6ICAgICAgICAg
ICAgICAgICAgXAogICAgIChjaGFyKWZwdXRjKCBjX2NoYXIsIE9VVFBVVF9QT1JUKCBwICkuZmls
ZSApKSBcCiAgICAgLCBjX2NoYXIgKQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBVY3MyIGhhbmRs
aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov
Ci8qICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gICAgKi8KLyogICAgVGFnZ2VkLCBhIFVDUzIgY2hhcmFjdGVyIGlzIHJlcHJl
c2VudGVkIGFzOiAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAgICstLS0tLS0t
LSstLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLSsgICAgICAgICAgICAgICAgICAgICovCi8qICAg
ICAgICAgICAgfHh4eHh4eHh4eHh4eHh4eHh4fC4uLi4uLi4ufEJVQ1MySD8/fCAgICAgICAgICAg
ICAgICAgICAgKi8KLyogICAgICAgICAgICArLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0rLS0t
LS0tLS0rICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgVUNT
MlAoIG8gKSBcCiAgICgoKGxvbmcpKG8pICYgKGxvbmcpKCgxIDw8IChVQ1MyX1NISUZUKSkgLTEp
KSA9PSAobG9uZylCVUNTMkgpCgoKI2RlZmluZSBCVUNTMiggbyApICgob2JqX3QpKChsb25nKUJV
Q1MySCArIFwKCQkJICAgICgobG9uZykoKHVjczJfdCkobykgPDwgVUNTMl9TSElGVCkpKSkKI2Rl
ZmluZSBDVUNTMiggbyApICgodWNzMl90KSgodW5zaWduZWQgbG9uZylvID4+IFVDUzJfU0hJRlQp
KQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBUeXBlZCB2ZWN0b3JzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2Rl
ZmluZSBUVkVDVE9SUCggbyApIChQT0lOVEVSUCggbyApICYmIChUWVBFKCBvICkgPT0gVFZFQ1RP
Ul9UWVBFKSkKCiNkZWZpbmUgVFZFQ1RPUl9TSVpFIChzaXplb2YoIHN0cnVjdCB0dmVjdG9yICkp
CgojZGVmaW5lIFRWRUNUT1IoIHR2ICkgQ1JFRiggdHYgKS0+dHZlY3Rvcl90CgojZGVmaW5lIFRW
RUNUT1JfSUQoIHR2ICkgICAgICAgICAgICAgVFZFQ1RPUiggdHYgKS5pZAojZGVmaW5lIFRWRUNU
T1JfSURfU0VUKCB0diwgX2lkXyApICAgKFRWRUNUT1JfSUQoIHR2ICkgPSBfaWRfLCBCVU5TUEVD
KQoKI2RlZmluZSBUVkVDVE9SX0xFTkdUSCggdHYgKSAgICAgICAgIFRWRUNUT1IoIHR2ICkubGVu
Z3RoCiNkZWZpbmUgVFZFQ1RPUl9ERVNDUiggdHYgKSAgICAgICAgICBUVkVDVE9SKCB0diApLmRl
c2NyCiNkZWZpbmUgVFZFQ1RPUl9ERVNDUl9TRVQoIHR2LCBfZF8gKSAoVFZFQ1RPUl9ERVNDUigg
dHYgKSA9IF9kXywgQlVOU1BFQykKCiNkZWZpbmUgVFZFQ1RPUl9SRUYoIGl0LCB0diwgbyApICAg
ICAgICAgICAgICAgICAgXAogICAgICAoJigoKHN0cnVjdCB7IGhlYWRlcl90ICAgICAgICBoZWFk
ZXI7ICAgICAgIFwKCQkgICAgaW50ICAgICAgICAgICAgIGxlbmd0aDsgICAgICAgXAoJCSAgICBv
YmpfdCAgICAgICAgICAgZGVzY3I7ICAgICAgICBcCgkJICAgIGl0ICAgICAgICAgICAgICBlbDA7
IH0gKikgICAgIFwKICAgICAgIENSRUYoIHR2ICkpLT5lbDApKVsgbyBdCgojZGVmaW5lIFRWRUNU
T1JfU0VUKCBpdCwgdHYsIG8sIHYgKSAgICAgICAgICAgICAgIFwKICAgKFRWRUNUT1JfUkVGKCBp
dCwgdHYsIG8gKSA9ICgoaXQpdiksICAgICAgICAgICBcCiAgICBCVU5TUEVDKQoKLyotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwovKiAgICBgZXhpdCcgbWFjaGluZXJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZXh0ZXJuIG9ial90IF9l
eGl0X3ZhbHVlXzsKCiNkZWZpbmUgU0VUX0VYSVQoIGV4aXQgKSAgICAgICBTRVRKTVAoIGptcGJ1
ZiApCiNkZWZpbmUgSlVNUF9FWElUKCBleGl0LCB2YWwgKSBfZXhpdF92YWx1ZV8gPSB2YWwsIExP
TkdKTVAoICgodm9pZCAqKWV4aXQpLCAxICkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgdGhlIGBi
aW5kLWV4aXQnIGxpbmtpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSovCnN0cnVjdCBleGl0ZCB7CiAgIG9ial90ICAgICAgICAgZXhp
dDsKICAgYm9vbF90ICAgICAgICB1c2VycDsKICAgb2JqX3QgICAgICAgICBzdGFtcDsKICAgc3Ry
dWN0IGV4aXRkICpwcmV2Owp9OwoKZXh0ZXJuIG9ial90ICgqYmdsX2dldF9leGl0ZF90b3ApKCk7
CmV4dGVybiBvYmpfdCAoKmJnbF9zZXRfZXhpdGRfdG9wKSggb2JqX3QgKTsKZXh0ZXJuIG9ial90
IGJnbF9nZXRfZXhpdGRfc3RhbXAoKTsKICAgCiNkZWZpbmUgUFVTSF9FWElUKCBfeGl0LCBfc2Vy
ICkgXAogICBzdHJ1Y3QgZXhpdGQgZXhpdGQ7IFwKICAgZXhpdGQuZXhpdCAgPSBfeGl0OyBcCiAg
IGV4aXRkLnVzZXJwID0gX3NlcjsgXAogICBleGl0ZC5wcmV2ICA9ICgoc3RydWN0IGV4aXRkICop
QkdMX0dFVF9FWElURF9UT1AoKSk7IFwKICAgZXhpdGQuc3RhbXAgPSBiZ2xfZ2V0X2V4aXRkX3N0
YW1wKCk7IFwKICAgYmdsX3NldF9leGl0ZF90b3AoIChvYmpfdCkoJmV4aXRkKSApOwoKI2RlZmlu
ZSBQT1BfRVhJVCgpIFwKICAgQkdMX1NFVF9FWElURF9UT1AoIChvYmpfdCkoKChzdHJ1Y3QgZXhp
dGQgKilCR0xfR0VUX0VYSVREX1RPUCgpKS0+cHJldikgKQoKI2RlZmluZSBFWElURF9UT19FWElU
KCBwdHIgKSBcCiAgICgoc3RydWN0IGV4aXRkICopKHB0cikpLT5leGl0CgojZGVmaW5lIEVYSVRE
X1VTRVJQKCBwdHIgKSBcCiAgICgoc3RydWN0IGV4aXRkICopKHB0cikpLT51c2VycAoKI2RlZmlu
ZSBFWElURF9TVEFNUCggcHRyICkgXAogICAoKChzdHJ1Y3QgZXhpdGQgKikocHRyKSktPnN0YW1w
KQoKI2RlZmluZSBCR0xfR0VUX0VYSVREX1RPUCgpIFwKICAgKGJnbF9nZXRfZXhpdGRfdG9wKCkp
CiNkZWZpbmUgQkdMX1NFVF9FWElURF9UT1AoIHZhbCApIFwKICAgKGJnbF9zZXRfZXhpdGRfdG9w
KHZhbCkpCiAgIAovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi8qICAgIGBkeW5hbWljLXdpbmQnIGJlZm9yZSB0
aHVuayBsaW5raW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLwpzdHJ1Y3QgYmVmb3JlZCB7CiAgIG9ial90ICAgICAgICAgICBiZWZvcmU7CiAgIHN0cnVj
dCBiZWZvcmVkICpwcmV2Owp9OwoKZXh0ZXJuIHN0cnVjdCBiZWZvcmVkICogKCpiZ2xfZ2V0X2Jl
Zm9yZWRfdG9wKSgpOwpleHRlcm4gdm9pZCAoKmJnbF9zZXRfYmVmb3JlZF90b3ApKCBzdHJ1Y3Qg
YmVmb3JlZCAqICk7CgojZGVmaW5lIFBVU0hfQkVGT1JFKCBfYmZyICkgXAogICBzdHJ1Y3QgYmVm
b3JlZCBiZWZvcmVkOyBcCiAgIGJlZm9yZWQuYmVmb3JlID0gX2JmcjsgXAogICBiZWZvcmVkLnBy
ZXYgPSBiZ2xfZ2V0X2JlZm9yZWRfdG9wKCk7IFwKICAgYmdsX3NldF9iZWZvcmVkX3RvcCggJmJl
Zm9yZWQgKTsKCiNkZWZpbmUgUE9QX0JFRk9SRSgpIFwKICAgYmdsX3NldF9iZWZvcmVkX3RvcCgg
YmdsX2dldF9iZWZvcmVkX3RvcCgpLT5wcmV2ICkKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgVGhl
IGludGVycGVydGVyIGxvY2F0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNkZWZpbmUgX19FVk1FQU5JTkdfQUREUkVTUyggeCAp
ICAgICAgICBcCiAgIEJSRUYoICZ4ICkKI2RlZmluZSBfX0VWTUVBTklOR19BRERSRVNTX1JFRigg
eCApICAgIFwKICAgKCooKG9ial90ICopQ1JFRiggeCApKSkKI2RlZmluZSBfX0VWTUVBTklOR19B
RERSRVNTX1NFVCggeCwgeSApIFwKICAgKF9fRVZNRUFOSU5HX0FERFJFU1NfUkVGKCB4ICkgPSAo
b2JqX3QpeSwgQlVOU1BFQykKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgQ2FsbC9jYyBzdHVmZi4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSovCiNkZWZpbmUgU1RBQ0tfU0laRSAgKHNpemVvZiggc3RydWN0IHN0YWNrICkp
CiAgIAojZGVmaW5lIFNUQUNLKCBfb18gKSBDUkVGKCBfb18gKS0+c3RhY2tfdAoKI2RlZmluZSBT
VEFDS1AoIF9zXyApIChQT0lOVEVSUCggX3NfICkgJiYgKFRZUEUoIF9zXyApID09IFNUQUNLX1RZ
UEUpKQoKI2RlZmluZSBNQUtFX1NUQUNLKCBfc2l6ZV8sIGF1eCApICAgICAgICAgICAgICAgICAg
XAogICAoIGF1eCA9IEdDX01BTExPQyggU1RBQ0tfU0laRSArIChsb25nKV9zaXplXyApLCBcCiAg
ICAgYXV4LT5oZWFkZXIgPSBNQUtFX0hFQURFUiggU1RBQ0tfVFlQRSwgMCApLCAgIFwKICAgICBC
R0xfSEVBUF9ERUJVR19NQVJLX09CSiggQlJFRiggYXV4ICkgKSApCgpleHRlcm4gY2hhciAqKCpi
Z2xfZ2V0X3N0YWNrX2JvdHRvbSkoKTsKZXh0ZXJuIHZvaWQgKCpiZ2xfc2V0X3N0YWNrX2JvdHRv
bSkoIGNoYXIgKiApOwoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBJbnRlcm4vZXh0ZXJuIG1hY3Jv
cy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKi8KI2lmKCBkZWZpbmVkKCBUQUdfU1RSSU5HICkgKQojICAgZGVmaW5lIFNUUklOR19N
QVJLX09GRlNFVCAwCiNlbHNlCiMgICBkZWZpbmUgU1RSSU5HX01BUktfT0ZGU0VUIDEKI2VuZGlm
CgojaWYoIGRlZmluZWQoIFRBR19TVFJVQ1RVUkUgKSApCiMgICBkZWZpbmUgU1RSVUNUVVJFX01B
UktfT0ZGU0VUIDAKI2Vsc2UKIyAgIGRlZmluZSBTVFJVQ1RVUkVfTUFSS19PRkZTRVQgMQojZW5k
aWYKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAgT2JqZWN0IG1hY3JvcyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNk
ZWZpbmUgQkdMX09CSkVDVFAoIF9vYmogKSBcCiAgICgoUE9JTlRFUlAoIF9vYmogKSAmJiAoVFlQ
RSggX29iaiApID49IE9CSkVDVF9UWVBFKSkpCgojZGVmaW5lIEJHTF9PQkpFQ1RfQ0xBU1NfTlVN
KCBfb2JqICkgXAogICAoVFlQRSggX29iaiApKQoKI2RlZmluZSBCR0xfT0JKRUNUX0NMQVNTX05V
TV9TRVQoIF8xLCBfMiApIFwKICAgKCgob2JqX3QpQ1JFRihfMSkpLT5oZWFkZXIgPSBNQUtFX0hF
QURFUiggXzIsIDAgKSwgQlVOU1BFQykKICAgCiNkZWZpbmUgQkdMX09CSkVDVF9XSURFTklORygg
X29iaiApICAgICAgICAgIFwKICAgKCgob2JqZWN0X2JnbHQpKENSRUYoX29iaikpKS0+d2lkZW5p
bmcpCgojZGVmaW5lIEJHTF9PQkpFQ1RfV0lERU5JTkdfU0VUKCBfb2JqLCBfc3RyICkgXAogICAo
KCgoKG9iamVjdF9iZ2x0KShDUkVGKF9vYmopKSktPndpZGVuaW5nKSA9IF9zdHIpLCBCVU5TUEVD
KQovKiBUbyBiZSByZW1vdmVkIGFmdGVyIGEgYm9vdHN0cmFwICovCiNkZWZpbmUgT0JKRUNUX1dJ
REVOSU5HX1NFVCBCR0xfT0JKRUNUX1dJREVOSU5HX1NFVAoKLyotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAg
ICBQcm9jZXNzIGhhbmRsaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBQUk9DRVNTUCggbyApICAgICAg
ICAgICAgKFBPSU5URVJQKCBvICkgJiYgKFRZUEUoIG8gKSA9PSBQUk9DRVNTX1RZUEUpKQojZGVm
aW5lIFBST0NFU1NfU0laRSAgICAgICAgICAgICAoc2l6ZW9mKCBzdHJ1Y3QgcHJvY2VzcyApKQoj
ZGVmaW5lIFBST0NFU1MoIG8gKSAgICAgICAgICAgICAoQ1JFRiggbyApLT5wcm9jZXNzX3QpCiNk
ZWZpbmUgUFJPQ0VTU19QSUQoIG8gKSAgICAgICAgIChQUk9DRVNTKCBvICkucGlkKQojZGVmaW5l
IFBST0NFU1NfSU5QVVRfUE9SVCggbyApICAoUFJPQ0VTUyggbyApLnN0cmVhbVsgMCBdKQojZGVm
aW5lIFBST0NFU1NfT1VUUFVUX1BPUlQoIG8gKSAoUFJPQ0VTUyggbyApLnN0cmVhbVsgMSBdKQoj
ZGVmaW5lIFBST0NFU1NfRVJST1JfUE9SVCggbyApICAoUFJPQ0VTUyggbyApLnN0cmVhbVsgMiBd
KQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBTb2NrZXQgaGFuZGxpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2Rl
ZmluZSBTT0NLRVRQKCBvICkgICAgICAgICAgICAgKFBPSU5URVJQKCBvICkgJiYgKFRZUEUoIG8g
KSA9PSBTT0NLRVRfVFlQRSkpCiNkZWZpbmUgU09DS0VUX1NJWkUgICAgICAgICAgICAgIChzaXpl
b2YoIHN0cnVjdCBzb2NrZXQgKSkKI2RlZmluZSBTT0NLRVQoIG8gKSAgICAgICAgICAgICAgKENS
RUYoIG8gKS0+c29ja2V0X3QpCiNkZWZpbmUgU09DS0VUX0hPU1ROQU1FKCBvICkgICAgIChTT0NL
RVQoIG8gKS5ob3N0bmFtZSkKI2RlZmluZSBTT0NLRVRfSE9TVElQKCBvICkgICAgICAgKFNPQ0tF
VCggbyApLmhvc3RpcCkKI2RlZmluZSBTT0NLRVRfUE9SVCggbyApICAgICAgICAgKFNPQ0tFVCgg
byApLnBvcnRudW0pCiNkZWZpbmUgU09DS0VUX0lOUFVUKCBvICkgICAgICAgIChTT0NLRVQoIG8g
KS5pbnB1dCkKI2RlZmluZSBTT0NLRVRfT1VUUFVUKCBvICkgICAgICAgKFNPQ0tFVCggbyApLm91
dHB1dCkKI2RlZmluZSBTT0NLRVRfRE9XTlAoIG8gKSAgICAgICAgKFNPQ0tFVCggbyApLmZkID09
IC0xKQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBvcGFxdWUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8K
I2RlZmluZSBPUEFRVUVQKCBvICkgKFBPSU5URVJQKCBvICkgJiYgKFRZUEUoIG8gKSA9PSBPUEFR
VUVfVFlQRSkpCiNkZWZpbmUgT1BBUVVFKCBmICkgQ1JFRiggZiApCgovKi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSov
Ci8qICAgIEN1c3RvbSBtYW5hZ2VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojZGVmaW5lIENVU1RPTVAoIG8gKSAo
UE9JTlRFUlAoIG8gKSAmJiAoVFlQRSggbyApID09IENVU1RPTV9UWVBFKSkKCiNkZWZpbmUgQ1VT
VE9NX1NJWkUgKHNpemVvZiggc3RydWN0IGN1c3RvbSApKQojZGVmaW5lIENVU1RPTSggZiApIENS
RUYoIGYgKS0+Y3VzdG9tX3QKCiNkZWZpbmUgQ1VTVE9NX0ZJTkFMKCBmICkgQ1VTVE9NKCBmICku
ZmluYWwKI2RlZmluZSBDVVNUT01fU0VSSUFMKCBmICkgQ1VTVE9NKCBmICkuc2VyaWFsCiNkZWZp
bmUgQ1VTVE9NX0VRVUFMKCBmICkgQ1VTVE9NKCBmICkuZXF1YWwKI2RlZmluZSBDVVNUT01fSEFT
SCggZiApIENVU1RPTSggZiApLmhhc2gKI2RlZmluZSBDVVNUT01fVE9fU1RSSU5HKCBmICkgQ1VT
VE9NKCBmICkudG9fc3RyaW5nCiNkZWZpbmUgQ1VTVE9NX09VVFBVVCggZiApIENVU1RPTSggZiAp
Lm91dHB1dAoKI2RlZmluZSBDVVNUT01fQ01QKCBjMSwgYzIgKSBDVVNUT01fRVFVQUwoIGMxICko
IGMxLCBjMiApCgojZGVmaW5lIENVU1RPTV9JREVOVElGSUVSKCBmICkgQ1VTVE9NKCBmICkuaWRl
bnRpZmllcgojZGVmaW5lIENVU1RPTV9JREVOVElGSUVSX1NFVCggZiwgdiApIChDVVNUT00oIGYg
KS5pZGVudGlmaWVyID0gdiwgQlVOU1BFQykKI2RlZmluZSBDVVNUT01fSEFTSF9OVU1CRVIoIGYg
KSAoQ1VTVE9NX0hBU0goIGYgKSggZiApKQoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwovKiAgICBGb3JlaWdu
IG1hbmFnZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBGT1JFSUdOUCggbyApIChQT0lOVEVSUCggbyAp
ICYmIChUWVBFKCBvICkgPT0gRk9SRUlHTl9UWVBFKSkKCiNkZWZpbmUgRk9SRUlHTl9UWVBFX05B
TUUoIG8gKSAiXyIKICAgCiNkZWZpbmUgRk9SRUlHTl9TSVpFIChzaXplb2YoIHN0cnVjdCBmb3Jl
aWduICkpCiNkZWZpbmUgRk9SRUlHTiggZiApIENSRUYoIGYgKS0+Zm9yZWlnbl90CgojZGVmaW5l
IEZPUkVJR05fTlVMTCggb2JqICkgKChvYmogPT0gQkZBTFNFKSA/IDBMIDogb2JqKQojZGVmaW5l
IEZPUkVJR05fVE9fQ09CSiggZiApIChGT1JFSUdOKCBmICkuY29iaikKI2RlZmluZSBGT1JFSUdO
X05VTExQKCBmICkgICAoKGJvb2xfdCkoIUZPUkVJR05fVE9fQ09CSiggZiApKSkKI2RlZmluZSBG
T1JFSUdOX0VRUCggbzEsbzIgKSBcCiAgKChib29sX3QpKEZPUkVJR05fVE9fQ09CSiggbzEgKSA9
PSAoRk9SRUlHTl9UT19DT0JKKCBvMiApKSkpCiNkZWZpbmUgRk9SRUlHTl9QVFJfTlVMTCggX3Ag
KSAoX3AgPT0gMCkKICAgCiNkZWZpbmUgRk9SRUlHTl9JRCggZiApIEZPUkVJR04oIGYgKS5pZAoK
I2RlZmluZSBDX1NUUlVDVF9SRUYoIG8sIHR5cGUsIHNsb3QgKSAgICAgICAgICAgICBcCiAgICgo
KHR5cGUpbyktPnNsb3QpCiNkZWZpbmUgQ19TVFJVQ1RfU0VUKCBvLCB0eXBlLCBzbG90LCB2YWx1
ZSApICAgICAgXAogICAoQ19TVFJVQ1RfUkVGKCBvLCB0eXBlLCBzbG90ICkgPSB2YWx1ZSwgQlVO
U1BFQykKCiNkZWZpbmUgQ19TVFJVQ1RfUkVGX0FERFIoIG8sIHR5cGUsIHNsb3QgKSAgICAgICAg
XAogICAoJigoKHR5cGUpbyktPnNsb3QpKQojZGVmaW5lIENfU1RSVUNUX1NFVF9BRERSKCBvLCB0
eXBlLCBzbG90LCB2YWx1ZSApIFwKICAgKCgodHlwZSlvKS0+c2xvdCA9ICp2YWx1ZSwgQlVOU1BF
QykKCiNkZWZpbmUgQ19QT0lOVEVSX1JFRiggbywgdHlwZSwgaSApICAgICAgICAgICAgICAgXAog
ICAoKCh0eXBlICopbylbIGkgXSkKI2RlZmluZSBDX1BPSU5URVJfU0VUKCBvLCB0eXBlLCBpLCB2
ICkgICAgICAgICAgICBcCiAgIChDX1BPSU5URVJfUkVGKCBvLCB0eXBlLCBpICkgPSB2LCBCVU5T
UEVDKQoKI2RlZmluZSBDX1BPSU5URVJfUkVGX0FERFIoIG8sIHR5cGUsIGkgKSAgICAgICAgICBc
CiAgICgmKG8pWyBpIF0pCiNkZWZpbmUgQ19QT0lOVEVSX1NFVF9BRERSKCBvLCB0eXBlLCBpLCB2
ICkgICAgICAgXAogICAob1sgaSBdID0gKnYsIEJVTlNQRUMpCgojZGVmaW5lIENfRlVOQ1RJT05f
Q0FMTF8wKCBGICkgXAogICBGKCkKI2RlZmluZSBDX0ZVTkNUSU9OX0NBTExfMSggRixhICkgXAog
ICBGKCBhICkKI2RlZmluZSBDX0ZVTkNUSU9OX0NBTExfMiggRixhLGIgKSBcCiAgIEYoIGEsYiAp
CiNkZWZpbmUgQ19GVU5DVElPTl9DQUxMXzMoIEYsYSxiLGMgKSBcCiAgIEYoIGEsYixjICkKI2Rl
ZmluZSBDX0ZVTkNUSU9OX0NBTExfNCggRixhLGIsYyxkICkgXAogICBGKCBhLGIsYyxkICkKI2Rl
ZmluZSBDX0ZVTkNUSU9OX0NBTExfNSggRixhLGIsYyxkLGUgKSBcCiAgIEYoIGEsYixjLGQsZSAp
CiNkZWZpbmUgQ19GVU5DVElPTl9DQUxMXzYoIEYsYSxiLGMsZCxlLGYgKSBcCiAgIEYoIGEsYixj
LGQsZSxmICkKI2RlZmluZSBDX0ZVTkNUSU9OX0NBTExfNyggRixhLGIsYyxkLGUsZixoICkgXAog
ICBGKCBhLGIsYyxkLGUsZixoICkKI2RlZmluZSBDX0ZVTkNUSU9OX0NBTExfOCggRixhLGIsYyxk
LGUsZixoLGkgKSBcCiAgIEYoIGEsYixjLGQsZSxmLGgsaSApCiNkZWZpbmUgQ19GVU5DVElPTl9D
QUxMXzkoIEYsYSxiLGMsZCxlLGYsaCxpLGogKSBcCiAgIEYoIGEsYixjLGQsZSxmLGgsaSxqICkK
I2RlZmluZSBDX0ZVTkNUSU9OX0NBTExfMTAoIEYsYSxiLGMsZCxlLGYsaCxpLGosayApIFwKICAg
RiggYSxiLGMsZCxlLGYsaCxpLGosayApCiNkZWZpbmUgQ19GVU5DVElPTl9DQUxMXzExKCBGLGEs
YixjLGQsZSxmLGgsaSxqLGssbCApIFwKICAgRiggYSxiLGMsZCxlLGYsaCxpLGosayxsICkKI2Rl
ZmluZSBDX0ZVTkNUSU9OX0NBTExfMTIoIEYsYSxiLGMsZCxlLGYsaCxpLGosayxsLG0gKSBcCiAg
IEYoIGEsYixjLGQsZSxmLGgsaSxqLGssbCxtICkKI2RlZmluZSBDX0ZVTkNUSU9OX0NBTExfMTMo
IEYsYSxiLGMsZCxlLGYsaCxpLGosayxsLG0sbiApIFwKICAgRiggYSxiLGMsZCxlLGYsaCxpLGos
ayxsLG0sbiApCiNkZWZpbmUgQ19GVU5DVElPTl9DQUxMXzE0KCBGLGEsYixjLGQsZSxmLGgsaSxq
LGssbCxtLG4sbyApIFwKICAgRiggYSxiLGMsZCxlLGYsaCxpLGosayxsLG0sbixvICkKI2RlZmlu
ZSBDX0ZVTkNUSU9OX0NBTExfMTUoIEYsYSxiLGMsZCxlLGYsaCxpLGosayxsLG0sbixvLHAgKSBc
CiAgIEYoIGEsYixjLGQsZSxmLGgsaSxqLGssbCxtLG4sbyxwICkKI2RlZmluZSBDX0ZVTkNUSU9O
X0NBTExfMTYoIEYsYSxiLGMsZCxlLGYsaCxpLGosayxsLG0sbixvLHAscSApIFwKICAgRiggYSxi
LGMsZCxlLGYsaCxpLGosayxsLG0sbixvLHAscSApCgojZGVmaW5lIENFTlVNX1RPX0ZPUkVJR04o
IF8xLCBfMiApIGNvYmpfdG9fZm9yZWlnbiggXzEsICh2b2lkICopXzIgKQoKLyotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0qLwovKiAgICBEeW5hbWljIGxvYWRpbmcgZGVmYXVsdCBlbnRyeSBpbml0IHN5bWJvbC4gICAg
ICAgICAgICAgICAgICAgICAgICovCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2RlZmluZSBCR0xfRFlOQU1J
Q19MT0FEX0lOSVQgImJpZ2xvb19kbG9wZW5faW5pdCIKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLyogICAg
VGhlIGV4dGVybmFsIGRlY2xhcmF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCmV4dGVybiBvYmpfdCBiaWdsb29fZXhpdCggb2Jq
X3QgKTsKCmV4dGVybiBvYmpfdCB2YV9nZW5lcmljX2VudHJ5KCk7CmV4dGVybiBvYmpfdCBhcHBs
eSggb2JqX3QsIG9ial90ICk7CgkJICAKZXh0ZXJuIG9ial90IHRoZV9mYWlsdXJlKCBvYmpfdCwg
b2JqX3QsIG9ial90ICk7CgpleHRlcm4gb2JqX3QgbWFrZV9meF9wcm9jZWR1cmUoIGZ1bmN0aW9u
X3QsIGludCwgaW50ICk7CmV4dGVybiBvYmpfdCBtYWtlX3ZhX3Byb2NlZHVyZSggZnVuY3Rpb25f
dCwgaW50LCBpbnQgKTsKCmV4dGVybiBvYmpfdCBtYWtlX3BhaXIoIG9ial90LCBvYmpfdCApOwpl
eHRlcm4gb2JqX3Qgc3RycG9ydF9mbHVzaCggb2JqX3QgKTsKZXh0ZXJuIG9ial90IG1ha2Vfb3V0
cHV0X3BvcnQoIGNoYXIgKiwgRklMRSosIG9ial90ICk7CmV4dGVybiBvYmpfdCBjcmVhdGVfdmVj
dG9yKCBpbnQgKTsKCmV4dGVybiBvYmpfdCBzdHJpbmdfdG9fYnN0cmluZyggY2hhciAqICk7CmV4
dGVybiBvYmpfdCBzdHJpbmdfdG9fYnN0cmluZ19sZW4oIGNoYXIgKiwgaW50ICk7CmV4dGVybiBv
YmpfdCBjbG9zZV9pbml0X3N0cmluZygpOwoKZXh0ZXJuIG9ial90IGNvYmpfdG9fZm9yZWlnbigg
b2JqX3QsIHZvaWQgKiApOwpleHRlcm4gaW50IF9iaWdsb29fbWFpbihpbnQgYXJnYywgY2hhciAq
YXJndltdLCBjaGFyICplbnZbXSwgb2JqX3QgKCopKCkgKTsKLy8gICBleHRlcm4gaW50IF9iaWds
b29fbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdLCBjaGFyICplbnZbXSApOwpleHRlcm4gaW50
IGJpZ2xvb19hYm9ydCggbG9uZyApOwoKZXh0ZXJuIG9ial90IG1ha2VfcmVhbCggZG91YmxlICk7
CgpleHRlcm4gb2JqX3Qgc3RyaW5nX3RvX3N5bWJvbCggY2hhciAqICk7CgojaWYoIGRlZmluZWQo
IEtFRVBfQkFDS19QVFJTICkgKQpleHRlcm4gb2JqX3QgYmdsX2hlYXBfZGVidWdfbWFya19vYmoo
IG9ial90ICk7CmV4dGVybiBjaGFyICpiZ2xfaGVhcF9kZWJ1Z19tYXJrX3N0ciggY2hhciAqICk7
CiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmCgojZW5kaWYKCiNpbmNsdWRlIDxz
aWduYWwuaD4KCnN0YXRpYyBvYmpfdCBCR2xfbG9vcHowMHp6X19ldmNvbXBpbGV6MDAob2JqX3Qs
IG9ial90LCBvYmpfdCwgb2JqX3QsIG9ial90LCBvYmpfdCk7CnN0YXRpYyBvYmpfdCBCR2xfemMz
YW5vbnltb3VzemEzMTQwMHplM3o4M3p6X19ldmNvbXBpbGV6MDAob2JqX3QpOwpleHRlcm4gb2Jq
X3QgQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fZXZjb21waWxlejAwKGxvbmcs
IGNoYXIgKik7CmV4dGVybiBvYmpfdCBCR2xfbW9kdWxlemQyaW5pdGlhbGl6YTdhdGlvbno3NXp6
X19leHBhbmR6MDAobG9uZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJHbF9tb2R1bGV6ZDJpbml0
aWFsaXphN2F0aW9uejc1enpfX3R5cGV6MDAobG9uZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJH
bF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX2Vycm9yejAwKGxvbmcsIGNoYXIgKik7
CmV4dGVybiBvYmpfdCBCR2xfbW9kdWxlemQyaW5pdGlhbGl6YTdhdGlvbno3NXp6X19iaWdsb296
MDAobG9uZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0
aW9uejc1enpfX3R2ZWN0b3J6MDAobG9uZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJHbF9tb2R1
bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX3N0cnVjdHVyZXowMChsb25nLCBjaGFyICopOwpl
eHRlcm4gb2JqX3QgQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fYmV4aXR6MDAo
bG9uZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9u
ejc1enpfX29zejAwKGxvbmcsIGNoYXIgKik7CmV4dGVybiBvYmpfdCBCR2xfbW9kdWxlemQyaW5p
dGlhbGl6YTdhdGlvbno3NXp6X19kc3NzbHowMChsb25nLCBjaGFyICopOwpleHRlcm4gb2JqX3Qg
QkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfbnVtYmVyc182XzV6MDAobG9u
ZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1
enpfX3I0X251bWJlcnNfNl81X2ZpeG51bXowMChsb25nLCBjaGFyICopOwpleHRlcm4gb2JqX3Qg
QkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfbnVtYmVyc182XzVfZmxvbnVt
ejAwKGxvbmcsIGNoYXIgKik7CmV4dGVybiBvYmpfdCBCR2xfbW9kdWxlemQyaW5pdGlhbGl6YTdh
dGlvbno3NXp6X19yNF9jaGFyYWN0ZXJzXzZfNnowMChsb25nLCBjaGFyICopOwpleHRlcm4gb2Jq
X3QgQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfZXF1aXZhbGVuY2VfNl8y
ejAwKGxvbmcsIGNoYXIgKik7CmV4dGVybiBvYmpfdCBCR2xfbW9kdWxlemQyaW5pdGlhbGl6YTdh
dGlvbno3NXp6X19yNF9ib29sZWFuc182XzF6MDAobG9uZywgY2hhciAqKTsKZXh0ZXJuIG9ial90
IEJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX3I0X3N5bWJvbHNfNl80ejAwKGxv
bmcsIGNoYXIgKik7CmV4dGVybiBvYmpfdCBCR2xfbW9kdWxlemQyaW5pdGlhbGl6YTdhdGlvbno3
NXp6X19yNF9zdHJpbmdzXzZfN3owMChsb25nLCBjaGFyICopOwpleHRlcm4gb2JqX3QgQkdsX21v
ZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfcGFpcnNfYW5kX2xpc3RzXzZfM3owMChs
b25nLCBjaGFyICopOwpleHRlcm4gb2JqX3QgQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256
NzV6el9fcjRfaW5wdXRfNl8xMF8yejAwKGxvbmcsIGNoYXIgKik7CmV4dGVybiBvYmpfdCBCR2xf
bW9kdWxlemQyaW5pdGlhbGl6YTdhdGlvbno3NXp6X19yNF9jb250cm9sX2ZlYXR1cmVzXzZfOXow
MChsb25nLCBjaGFyICopOwpleHRlcm4gb2JqX3QgQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRp
b256NzV6el9fcjRfdmVjdG9yc182Xzh6MDAobG9uZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJH
bF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX3I0X3BvcnRzXzZfMTBfMXowMChsb25n
LCBjaGFyICopOwpleHRlcm4gb2JqX3QgQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6
el9fcjRfb3V0cHV0XzZfMTBfM3owMChsb25nLCBjaGFyICopOwpleHRlcm4gb2JqX3QgQkdsX21v
ZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fZXZlbnZ6MDAobG9uZywgY2hhciAqKTsKZXh0
ZXJuIG9ial90IEJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX2V2YWx6MDAobG9u
ZywgY2hhciAqKTsKZXh0ZXJuIG9ial90IEJHbF9leHBhbmR6MDB6el9fZXhwYW5kejAwKG9ial90
KTsKZXh0ZXJuIG9ial90IEJHbF9tYWtlemQyZHNzc2x6ZDJmdW5jdGlvbnpkMnByZWx1ZGV6ZDJ6
el9fZHNzc2x6MDAob2JqX3QsIG9ial90LCBvYmpfdCwgb2JqX3QpOwpzdGF0aWMgb2JqX3QgQkds
X19ldmNvbXBpbGV6MDB6el9fZXZjb21waWxlejAwKG9ial90LCBvYmpfdCwgb2JqX3QsIG9ial90
LCBvYmpfdCwgb2JqX3QsIG9ial90KTsKZXh0ZXJuIG9ial90IEJHbF9udWxsemQyZW52aXJvbm1l
bnR6ZDJ6el9fZXZhbHowMChvYmpfdCk7CmV4dGVybiBsb25nIGJnbF9saXN0X2xlbmd0aChvYmpf
dCk7CnN0YXRpYyBvYmpfdCBCR2xfX2xvb3BfejAwenpfX2V2Y29tcGlsZXowMChvYmpfdCwgb2Jq
X3QpOwpleHRlcm4gb2JqX3QgQkdsX2ZpbmR6ZDJsb2N6ZDJ6el9fZXZjb21waWxlejAwKG9ial90
LCBvYmpfdCk7CnN0YXRpYyBvYmpfdCBCR2xfZXZjb21waWxlemQyY25zdHpkMnp6X19ldmNvbXBp
bGV6MDAob2JqX3QsIG9ial90KTsKZXh0ZXJuIG9ial90IEJHbF9zY2hlbWV6ZDJyZXBvcnR6ZDJl
bnZpcm9ubWVudHowMHp6X19ldmFsejAwKG9ial90KTsKc3RhdGljIG9ial90IEJHbF9jbnN0emQy
aW5pdHpkMnp6X19ldmNvbXBpbGV6MDAoKTsKZXh0ZXJuIG9ial90IHN0cmluZ190b19zeW1ib2wo
Y2hhciAqKTsKc3RhdGljIG9ial90IEJHbF9fZmluZHpkMmxvY3pkMnp6X19ldmNvbXBpbGV6MDAo
b2JqX3QsIG9ial90LCBvYmpfdCk7CnN0YXRpYyBvYmpfdCBCR2xfZXZjb21waWxlemQyZXJyb3J6
ZDJ6el9fZXZjb21waWxlejAwKG9ial90LCBvYmpfdCwgb2JqX3QsIG9ial90KTsKZXh0ZXJuIG9i
al90IGNfc3Vic3RyaW5nKG9ial90LCBpbnQsIGludCk7CnN0YXRpYyBvYmpfdCBCR2xfZXZjb21w
aWxlemQybGFtYmRhemQyenpfX2V2Y29tcGlsZXowMChvYmpfdCwgb2JqX3QsIG9ial90LCBvYmpf
dCwgb2JqX3QpOwpleHRlcm4gb2JqX3QgQkdsX21ha2V6ZDJwcm9taXNlemQyenpfX3I0X2NvbnRy
b2xfZmVhdHVyZXNfNl85ejAwKG9ial90KTsKZXh0ZXJuIG9ial90IEJHbF9pbnRlcmFjdGlvbnpk
MmVudmlyb25tZW50emQyenpfX2V2YWx6MDAoKTsKc3RhdGljIG9ial90IEJHbF9ldmNvbXBpbGV6
ZDJyZWZ6ZDJ6el9fZXZjb21waWxlejAwKG9ial90LCBvYmpfdCk7CnN0YXRpYyBvYmpfdCBCR2xf
aW1wb3J0ZWR6ZDJtb2R1bGVzemQyaW5pdHowMHp6X19ldmNvbXBpbGV6MDAoKTsKc3RhdGljIG9i
al90IEJHbF9ldmNvbXBpbGV6ZDJjb21waWxlZHpkMmFwcGxpY2F0aW9uejAwenpfX2V2Y29tcGls
ZXowMChvYmpfdCwgb2JqX3QsIG9ial90KTsKZXh0ZXJuIG9ial90IEJHbF9ldmFsemQybG9va3Vw
emQyenpfX2V2ZW52ejAwKG9ial90KTsKc3RhdGljIG9ial90IEJHbF9yZXF1aXJlemQyaW5pdGlh
bGl6YTdhdGlvbno3NXp6X19ldmNvbXBpbGV6MDAgPSBCVU5TUEVDOwpzdGF0aWMgb2JqX3QgQkds
X3pjM2Fub255bW91c3phMzE0NTB6ZTN6ODN6el9fZXZjb21waWxlejAwKG9ial90LCBvYmpfdCwg
b2JqX3QsIG9ial90KTsKZXh0ZXJuIG9ial90IEJHbF9tb2R1bGV6ZDJkZWNsYXJhdGlvbnoxMnpj
MHp6X19ldmFsejAwKG9ial90KTsKZXh0ZXJuIG9ial90IEJHbF9lcnJvcnpmMmxvY2F0aW9uemYy
enpfX2Vycm9yejAwKG9ial90LCBvYmpfdCwgb2JqX3QsIG9ial90LCBvYmpfdCk7CmV4dGVybiBi
b29sX3QgQkdsX2VxdWFsemYzemYzenpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMChvYmpfdCwgb2Jq
X3QpOwpzdGF0aWMgb2JqX3QgQkdsX3VudHlwZXpkMmlkZW50emQyenpfX2V2Y29tcGlsZXowMChv
YmpfdCk7CnN0YXRpYyBvYmpfdCBCR2xfemMzYW5vbnltb3VzemEzMTQ1M3plM3o4M3p6X19ldmNv
bXBpbGV6MDAob2JqX3QsIG9ial90LCBvYmpfdCwgb2JqX3QpOwpleHRlcm4gb2JqX3QgQkdsX2xp
c3R6ZDJ6ZTN2ZWN0b3J6MzF6el9fcjRfdmVjdG9yc182Xzh6MDAob2JqX3QpOwpzdGF0aWMgb2Jq
X3QgQkdsX2V2Y29tcGlsZXpkMmJlZ2luemQyenpfX2V2Y29tcGlsZXowMChvYmpfdCwgb2JqX3Qs
IG9ial90LCBvYmpfdCwgb2JqX3QsIG9ial90KTsKc3RhdGljIG9ial90IEJHbF9ldmNvbXBpbGV6
ZDJnbG9iYWx6ZDJhcHBsaWNhdGlvbnowMHp6X19ldmNvbXBpbGV6MDAob2JqX3QsIG9ial90LCBv
YmpfdCk7CmV4dGVybiBvYmpfdCBCR2xfZXZjb21waWxlejAwenpfX2V2Y29tcGlsZXowMChvYmpf
dCwgb2JqX3QsIG9ial90LCBvYmpfdCwgb2JqX3QsIG9ial90KTsKc3RhdGljIG9ial90IEJHbF92
YXJpYWJsZXowMHp6X19ldmNvbXBpbGV6MDAob2JqX3QsIG9ial90LCBvYmpfdCwgb2JqX3QpOwpz
dGF0aWMgb2JqX3QgQkdsX3VudHlwZXpkMmlkZW50emEyejcwenpfX2V2Y29tcGlsZXowMChvYmpf
dCk7CmV4dGVybiBvYmpfdCBCR2xfZHNzc2x6ZDJmb3JtYWxzemQyemUzc2NoZW1lemQyZm9ybWFs
c3ozMXp6X19kc3NzbHowMChvYmpfdCwgb2JqX3QpOwpzdGF0aWMgb2JqX3QgQkdsX2V2Y29tcGls
ZXpkMnNldHpkMnp6X19ldmNvbXBpbGV6MDAob2JqX3QsIG9ial90LCBvYmpfdCk7CnN0YXRpYyBv
YmpfdCBCR2xfZXZjb21waWxlemQyYXBwbGljYXRpb256ZDJ6el9fZXZjb21waWxlejAwKG9ial90
LCBvYmpfdCwgb2JqX3QsIG9ial90KTsKc3RhdGljIG9ial90IEJHbF9zeW1ib2wxOTQ3ejAwenpf
X2V2Y29tcGlsZXowMCA9IEJVTlNQRUM7CnN0YXRpYyBvYmpfdCBCR2xfc3ltYm9sMTk0NHowMHp6
X19ldmNvbXBpbGV6MDAgPSBCVU5TUEVDOwpzdGF0aWMgb2JqX3QgQkdsX3N5bWJvbDE5NDN6MDB6
el9fZXZjb21waWxlejAwID0gQlVOU1BFQzsKc3RhdGljIG9ial90IEJHbF9zeW1ib2wxOTQyejAw
enpfX2V2Y29tcGlsZXowMCA9IEJVTlNQRUM7CnN0YXRpYyBvYmpfdCBCR2xfc3ltYm9sMTk0MXow
MHp6X19ldmNvbXBpbGV6MDAgPSBCVU5TUEVDOwpzdGF0aWMgb2JqX3QgQkdsX3N5bWJvbDE5NDB6
MDB6el9fZXZjb21waWxlejAwID0gQlVOU1BFQzsKc3RhdGljIG9ial90IEJHbF9zeW1ib2wxOTM5
ejAwenpfX2V2Y29tcGlsZXowMCA9IEJVTlNQRUM7CnN0YXRpYyBvYmpfdCBCR2xfc3ltYm9sMTkz
OHowMHp6X19ldmNvbXBpbGV6MDAgPSBCVU5TUEVDOwpzdGF0aWMgb2JqX3QgQkdsX3N5bWJvbDE5
Mzd6MDB6el9fZXZjb21waWxlejAwID0gQlVOU1BFQzsKc3RhdGljIG9ial90IEJHbF9zeW1ib2wx
OTM2ejAwenpfX2V2Y29tcGlsZXowMCA9IEJVTlNQRUM7CnN0YXRpYyBvYmpfdCBCR2xfc3ltYm9s
MTkzNXowMHp6X19ldmNvbXBpbGV6MDAgPSBCVU5TUEVDOwpzdGF0aWMgb2JqX3QgQkdsX3N5bWJv
bDE5MzJ6MDB6el9fZXZjb21waWxlejAwID0gQlVOU1BFQzsKc3RhdGljIG9ial90IEJHbF9zeW1i
b2wxOTI4ejAwenpfX2V2Y29tcGlsZXowMCA9IEJVTlNQRUM7CnN0YXRpYyBvYmpfdCAqX19jbnN0
OwoKREVGSU5FX1NUUklORyggQkdsX3N0cmluZzE5NDZ6MDB6el9fZXZjb21waWxlejAwLCBCZ0xf
YmdsX3N0cmluZzE5NDZ6YTcwMHphN3phN19fZXZjb21waWxlemE3MDAxOTQ5ejAwLCAiSWxsZWdh
bCBgc2V0IScgZXhwcmVzc2lvbiIsIDI1ICk7CkRFRklORV9TVFJJTkcoIEJHbF9zdHJpbmcxOTQ1
ejAwenpfX2V2Y29tcGlsZXowMCwgQmdMX2JnbF9zdHJpbmcxOTQ1emE3MDB6YTd6YTdfX2V2Y29t
cGlsZXphNzAwMTk1MHowMCwgIlVuYm91bmQgdmFyaWFibGUiLCAxNiApOwpERUZJTkVfU1RSSU5H
KCBCR2xfc3RyaW5nMTkzNHowMHp6X19ldmNvbXBpbGV6MDAsIEJnTF9iZ2xfc3RyaW5nMTkzNHph
NzAwemE3emE3X19ldmNvbXBpbGV6YTcwMDE5NTF6MDAsICJJbGxlZ2FsIGV4cHJlc3Npb24iLCAx
OCApOwpERUZJTkVfU1RSSU5HKCBCR2xfc3RyaW5nMTkzM3owMHp6X19ldmNvbXBpbGV6MDAsIEJn
TF9iZ2xfc3RyaW5nMTkzM3phNzAwemE3emE3X19ldmNvbXBpbGV6YTcwMDE5NTJ6MDAsICJOb3Qg
YSBwcm9jZWR1cmUiLCAxNSApOwpERUZJTkVfU1RSSU5HKCBCR2xfc3RyaW5nMTkzMXowMHp6X19l
dmNvbXBpbGV6MDAsIEJnTF9iZ2xfc3RyaW5nMTkzMXphNzAwemE3emE3X19ldmNvbXBpbGV6YTcw
MDE5NTN6MDAsICJJbGxlZ2FsIGZvcm0iLCAxMiApOwpERUZJTkVfU1RSSU5HKCBCR2xfc3RyaW5n
MTkzMHowMHp6X19ldmNvbXBpbGV6MDAsIEJnTF9iZ2xfc3RyaW5nMTkzMHphNzAwemE3emE3X19l
dmNvbXBpbGV6YTcwMDE5NTR6MDAsICJzZXQhIiwgNCApOwpERUZJTkVfU1RSSU5HKCBCR2xfc3Ry
aW5nMTkyOXowMHp6X19ldmNvbXBpbGV6MDAsIEJnTF9iZ2xfc3RyaW5nMTkyOXphNzAwemE3emE3
X19ldmNvbXBpbGV6YTcwMDE5NTV6MDAsICJJbGxlZ2FsIGRlZmluZSBmb3JtIChzZWFsZWQgZW52
aXJvbm1lbnQpIiwgNDAgKTsKREVGSU5FX1NUUklORyggQkdsX3N0cmluZzE5Mjd6MDB6el9fZXZj
b21waWxlejAwLCBCZ0xfYmdsX3N0cmluZzE5Mjd6YTcwMHphN3phN19fZXZjb21waWxlemE3MDAx
OTU2ejAwLCAiSWxsZWdhbCBleHByZXNzaW9uIChzaG91bGQgYmUgcXVvdGVkKSIsIDM3ICk7CkRF
RklORV9TVFJJTkcoIEJHbF9zdHJpbmcxOTI2ejAwenpfX2V2Y29tcGlsZXowMCwgQmdMX2JnbF9z
dHJpbmcxOTI2emE3MDB6YTd6YTdfX2V2Y29tcGlsZXphNzAwMTk1N3owMCwgImV2YWwiLCA0ICk7
CkRFRklORV9FWFBPUlRfUFJPQ0VEVVJFKCBCR2xfZmluZHpkMmxvY3pkMmVudnowMHp6X19ldmNv
bXBpbGV6MDAsIEJnTF9iZ2xfX2ZpbmR6YTdkMmxvY3phN2QyemE3emE3X19ldmNvbXBpbGV6YTcw
MDE5NTh6YTcsIEJHbF9fZmluZHpkMmxvY3pkMnp6X19ldmNvbXBpbGV6MDAsIDBMLCAyICk7CkRF
RklORV9FWFBPUlRfUFJPQ0VEVVJFKCBCR2xfZXZjb21waWxlemQyZW52emQyenpfX2V2Y29tcGls
ZXowMCwgQmdMX2JnbF9fZXZjb21waWxlemE3MDB6YTd6YTdfX2V2Y29tcGlsZXphNzAwMTk1OXow
MCwgQkdsX19ldmNvbXBpbGV6MDB6el9fZXZjb21waWxlejAwLCAwTCwgNiApOwoKCgovKiBtb2R1
bGUtaW5pdGlhbGl6YXRpb24gKi8Kb2JqX3QgQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256
NzV6el9fZXZjb21waWxlejAwKGxvbmcgQmdMX2NoZWNrc3VtejAwXzMwMDksIGNoYXIgKiBCZ0xf
ZnJvbXowMF8zMDEwKQp7IEFOX09CSkVDVDsKeyAKaWYoCkNCT09MKEJHbF9yZXF1aXJlemQyaW5p
dGlhbGl6YTdhdGlvbno3NXp6X19ldmNvbXBpbGV6MDApKQp7IApCR2xfcmVxdWlyZXpkMmluaXRp
YWxpemE3YXRpb256NzV6el9fZXZjb21waWxlejAwID0gCkJCT09MKCgoYm9vbF90KTApKTsgCkJH
bF9jbnN0emQyaW5pdHpkMnp6X19ldmNvbXBpbGV6MDAoKTsgCkJHbF9pbXBvcnRlZHpkMm1vZHVs
ZXN6ZDJpbml0ejAwenpfX2V2Y29tcGlsZXowMCgpOyAKcmV0dXJuIEJVTlNQRUM7fSAgZWxzZSAK
eyAKcmV0dXJuIEJVTlNQRUM7fSB9IAp9CgoKCi8qIGNuc3QtaW5pdCAqLwpvYmpfdCBCR2xfY25z
dHpkMmluaXR6ZDJ6el9fZXZjb21waWxlejAwKCkKeyBBTl9PQkpFQ1Q7CnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDE1ICovCkJHbF9zeW1ib2wxOTI4ejAwenpfX2V2Y29tcGlsZXowMCA9IApzdHJp
bmdfdG9fc3ltYm9sKCJub3doZXJlIik7IApCR2xfc3ltYm9sMTkzMnowMHp6X19ldmNvbXBpbGV6
MDAgPSAKc3RyaW5nX3RvX3N5bWJvbCgibGFtYmRhIik7IApCR2xfc3ltYm9sMTkzNXowMHp6X19l
dmNvbXBpbGV6MDAgPSAKc3RyaW5nX3RvX3N5bWJvbCgibW9kdWxlIik7IApCR2xfc3ltYm9sMTkz
NnowMHp6X19ldmNvbXBpbGV6MDAgPSAKc3RyaW5nX3RvX3N5bWJvbCgiYXNzZXJ0Iik7IApCR2xf
c3ltYm9sMTkzN3owMHp6X19ldmNvbXBpbGV6MDAgPSAKc3RyaW5nX3RvX3N5bWJvbCgicXVvdGUi
KTsgCkJHbF9zeW1ib2wxOTM4ejAwenpfX2V2Y29tcGlsZXowMCA9IApzdHJpbmdfdG9fc3ltYm9s
KCJpZiIpOyAKQkdsX3N5bWJvbDE5Mzl6MDB6el9fZXZjb21waWxlejAwID0gCnN0cmluZ190b19z
eW1ib2woImJlZ2luIik7IApCR2xfc3ltYm9sMTk0MHowMHp6X19ldmNvbXBpbGV6MDAgPSAKc3Ry
aW5nX3RvX3N5bWJvbCgiZGVmaW5lIik7IApCR2xfc3ltYm9sMTk0MXowMHp6X19ldmNvbXBpbGV6
MDAgPSAKc3RyaW5nX3RvX3N5bWJvbCgic2V0ISIpOyAKQkdsX3N5bWJvbDE5NDJ6MDB6el9fZXZj
b21waWxlejAwID0gCnN0cmluZ190b19zeW1ib2woImJpbmQtZXhpdCIpOyAKQkdsX3N5bWJvbDE5
NDN6MDB6el9fZXZjb21waWxlejAwID0gCnN0cmluZ190b19zeW1ib2woInVud2luZC1wcm90ZWN0
Iik7IApCR2xfc3ltYm9sMTk0NHowMHp6X19ldmNvbXBpbGV6MDAgPSAKc3RyaW5nX3RvX3N5bWJv
bCgiZHluYW1pYyIpOyAKcmV0dXJuICggCkJHbF9zeW1ib2wxOTQ3ejAwenpfX2V2Y29tcGlsZXow
MCA9IApzdHJpbmdfdG9fc3ltYm9sKCJhdCIpLCBCVU5TUEVDKSA7fSAKfQoKCgovKiBmaW5kLWxv
YyAqLwpvYmpfdCBCR2xfZmluZHpkMmxvY3pkMnp6X19ldmNvbXBpbGV6MDAob2JqX3QgQmdMX2V4
cHowMF8xLCBvYmpfdCBCZ0xfZGVmYXVsdHowMF8yKQp7IEFOX09CSkVDVDsKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gNTMgKi8KeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNTQgKi8KYm9vbF90IEJn
TF90ZXN0MTEwMnowMF8xNDA2OwpCZ0xfdGVzdDExMDJ6MDBfMTQwNiA9IApFWFRFTkRFRF9QQUlS
UChCZ0xfZXhwejAwXzEpOyAKaWYoQmdMX3Rlc3QxMTAyejAwXzE0MDYpCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDU0ICovCnJldHVybiAKQ0VSKEJnTF9leHB6MDBfMSk7fSAgZWxzZSAKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gNTQgKi8KcmV0dXJuIEJnTF9kZWZhdWx0ejAwXzI7fSB9IH0gCn0K
CgoKLyogX2ZpbmQtbG9jICovCm9ial90IEJHbF9fZmluZHpkMmxvY3pkMnp6X19ldmNvbXBpbGV6
MDAob2JqX3QgQmdMX2VudnowMF8yOTcwLCBvYmpfdCBCZ0xfZXhwejAwXzI5NzEsIG9ial90IEJn
TF9kZWZhdWx0ejAwXzI5NzIpCnsgQU5fT0JKRUNUOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA1
MyAqLwpyZXR1cm4gCkJHbF9maW5kemQybG9jemQyenpfX2V2Y29tcGlsZXowMChCZ0xfZXhwejAw
XzI5NzEsIEJnTF9kZWZhdWx0ejAwXzI5NzIpO30gCn0KCgoKLyogdW50eXBlLWlkZW50ICovCm9i
al90IEJHbF91bnR5cGV6ZDJpZGVudHpkMnp6X19ldmNvbXBpbGV6MDAob2JqX3QgQmdMX2lkejAw
XzMpCnsgQU5fT0JKRUNUOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA2MSAqLwppZigKU1lNQk9M
UChCZ0xfaWR6MDBfMykpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDY0ICovCm9ial90IEJnTF9z
dHJpbmd6MDBfNDAzOwpCZ0xfc3RyaW5nejAwXzQwMyA9IApTWU1CT0xfVE9fU1RSSU5HKEJnTF9p
ZHowMF8zKTsgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDY0ICovCmludCBCZ0xfbGVuejAwXzQw
NDsKQmdMX2xlbnowMF80MDQgPSAKU1RSSU5HX0xFTkdUSChCZ0xfc3RyaW5nejAwXzQwMyk7IAp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSA2NSAqLwoKeyAKbG9uZyBCZ0xfd2Fsa2VyejAwXzQwNTsK
QmdMX3dhbGtlcnowMF80MDUgPSAoKGxvbmcpMCk7IApCZ0xfbG9vcHowMF80MDY6CnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDY4ICovCmJvb2xfdCBCZ0xfdGVzdHowMF8zMDM3Owp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA2OCAqLwpsb25nIEJnTF9hdXh6MDBfMzAzODsKQmdMX2F1eHowMF8zMDM4
ID0gCihsb25nKShCZ0xfbGVuejAwXzQwNCk7IApCZ0xfdGVzdHowMF8zMDM3ID0gCihCZ0xfd2Fs
a2VyejAwXzQwNT09QmdMX2F1eHowMF8zMDM4KTsgfSAKaWYoQmdMX3Rlc3R6MDBfMzAzNykKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gNjggKi8KcmV0dXJuIEJnTF9pZHowMF8zO30gIGVsc2UgCnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDcwICovCmJvb2xfdCBCZ0xfdGVzdHowMF8zMDQxOwp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA3MCAqLwpib29sX3QgQmdMX3Rlc3R6MDBfMzA0MjsKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gNzAgKi8KdW5zaWduZWQgY2hhciBCZ0xfYXV4ejAwXzMwNDM7Cnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDcwICovCmludCBCZ0xfYXV4ejAwXzMwNDQ7CkJnTF9hdXh6
MDBfMzA0NCA9IAooaW50KShCZ0xfd2Fsa2VyejAwXzQwNSk7IApCZ0xfYXV4ejAwXzMwNDMgPSAK
U1RSSU5HX1JFRihCZ0xfc3RyaW5nejAwXzQwMywgQmdMX2F1eHowMF8zMDQ0KTsgfSAKQmdMX3Rl
c3R6MDBfMzA0MiA9IAooQmdMX2F1eHowMF8zMDQzPT0oKHVuc2lnbmVkIGNoYXIpJzonKSk7IH0g
CmlmKEJnTF90ZXN0ejAwXzMwNDIpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDcxICovCmJvb2xf
dCBCZ0xfdGVzdHowMF8zMDQ4Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA3MSAqLwpsb25nIEJn
TF9hdXh6MDBfMzA0OTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNzEgKi8KbG9uZyBCZ0xfYXV4
ejAwXzMwNTA7CkJnTF9hdXh6MDBfMzA1MCA9IAoobG9uZykoQmdMX2xlbnowMF80MDQpOyAKQmdM
X2F1eHowMF8zMDQ5ID0gCihCZ0xfYXV4ejAwXzMwNTAtKChsb25nKTEpKTsgfSAKQmdMX3Rlc3R6
MDBfMzA0OCA9IAooQmdMX3dhbGtlcnowMF80MDU8QmdMX2F1eHowMF8zMDQ5KTsgfSAKaWYoQmdM
X3Rlc3R6MDBfMzA0OCkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNzIgKi8KdW5zaWduZWQgY2hh
ciBCZ0xfYXV4ejAwXzMwNTQ7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDcyICovCmludCBCZ0xf
YXV4ejAwXzMwNTU7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDcyICovCmxvbmcgQmdMX2F1eHow
MF8zMDU2OwpCZ0xfYXV4ejAwXzMwNTYgPSAKKEJnTF93YWxrZXJ6MDBfNDA1KygobG9uZykxKSk7
IApCZ0xfYXV4ejAwXzMwNTUgPSAKKGludCkoQmdMX2F1eHowMF8zMDU2KTsgfSAKQmdMX2F1eHow
MF8zMDU0ID0gClNUUklOR19SRUYoQmdMX3N0cmluZ3owMF80MDMsIEJnTF9hdXh6MDBfMzA1NSk7
IH0gCkJnTF90ZXN0ejAwXzMwNDEgPSAKKEJnTF9hdXh6MDBfMzA1ND09KCh1bnNpZ25lZCBjaGFy
KSc6JykpOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA3MSAqLwpCZ0xfdGVzdHow
MF8zMDQxID0gKChib29sX3QpMCkKOyB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDcwICovCkJnTF90ZXN0ejAwXzMwNDEgPSAoKGJvb2xfdCkwKQo7IH0gfSAKaWYoQmdMX3Rlc3R6
MDBfMzA0MSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNzAgKi8KeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gNzMgKi8Kb2JqX3QgQmdMX2FyZzExMDZ6MDBfNDA5Owp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSA3MyAqLwppbnQgQmdMX2F1eHowMF8zMDYzO2ludCBCZ0xfYXV4ejAwXzMwNjE7CkJnTF9h
dXh6MDBfMzA2MyA9IAooaW50KShCZ0xfd2Fsa2VyejAwXzQwNSk7IApCZ0xfYXV4ejAwXzMwNjEg
PSAKKGludCkoKChsb25nKTApKTsgCkJnTF9hcmcxMTA2ejAwXzQwOSA9IApjX3N1YnN0cmluZyhC
Z0xfc3RyaW5nejAwXzQwMywgQmdMX2F1eHowMF8zMDYxLCBCZ0xfYXV4ejAwXzMwNjMpOyB9IAp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSA3MyAqLwpjaGFyICogQmdMX2F1eHowMF8zMDY2OwpCZ0xf
YXV4ejAwXzMwNjYgPSAKQlNUUklOR19UT19TVFJJTkcoQmdMX2FyZzExMDZ6MDBfNDA5KTsgCnJl
dHVybiAKc3RyaW5nX3RvX3N5bWJvbChCZ0xfYXV4ejAwXzMwNjYpO30gfSB9ICBlbHNlIAp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA3MCAqLwp7IApsb25nIEJnTF93YWxrZXJ6MDBfMzA2OTsKQmdM
X3dhbGtlcnowMF8zMDY5ID0gCihCZ0xfd2Fsa2VyejAwXzQwNSsoKGxvbmcpMSkpOyAKQmdMX3dh
bGtlcnowMF80MDUgPSBCZ0xfd2Fsa2VyejAwXzMwNjk7IApnb3RvIEJnTF9sb29wejAwXzQwNjt9
IH0gfSB9IH0gfSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDYyICovCnJldHVy
biBCZ0xfaWR6MDBfMzt9IH0gCn0KCgoKLyogdW50eXBlLWlkZW50KiAqLwpvYmpfdCBCR2xfdW50
eXBlemQyaWRlbnR6YTJ6NzB6el9fZXZjb21waWxlejAwKG9ial90IEJnTF9pZGVudHN6MDBfNCkK
eyBBTl9PQkpFQ1Q7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDgwICovCmlmKApOVUxMUChCZ0xf
aWRlbnRzejAwXzQpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA4MiAqLwpyZXR1cm4gQk5JTDt9
ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA4MiAqLwppZigKUEFJUlAoQmdMX2lkZW50
c3owMF80KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gODQgKi8KeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gODUgKi8Kb2JqX3QgQmdMX2F1eHowMF8zMDc4O29ial90IEJnTF9hdXh6MDBfMzA3NTsK
QmdMX2F1eHowMF8zMDc4ID0gCkJHbF91bnR5cGV6ZDJpZGVudHphMno3MHp6X19ldmNvbXBpbGV6
MDAoCkNEUihCZ0xfaWRlbnRzejAwXzQpKTsgCkJnTF9hdXh6MDBfMzA3NSA9IApCR2xfdW50eXBl
emQyaWRlbnR6ZDJ6el9fZXZjb21waWxlejAwKApDQVIoQmdMX2lkZW50c3owMF80KSk7IApyZXR1
cm4gCk1BS0VfUEFJUihCZ0xfYXV4ejAwXzMwNzUsIEJnTF9hdXh6MDBfMzA3OCk7fSB9ICBlbHNl
IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA4NCAqLwpyZXR1cm4gCkJHbF91bnR5cGV6ZDJpZGVu
dHpkMnp6X19ldmNvbXBpbGV6MDAoQmdMX2lkZW50c3owMF80KTt9IH0gfSAKfQoKCgovKiBldmNv
bXBpbGUgKi8Kb2JqX3QgQkdsX2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAob2JqX3QgQmdM
X2V4cHowMF81LCBvYmpfdCBCZ0xfZW52ejAwXzYsIG9ial90IEJnTF9nZW52ejAwXzcsIG9ial90
IEJnTF93aGVyZXowMF84LCBvYmpfdCBCZ0xfbmFtZWR6ZjN6ZjNfOSwgb2JqX3QgQmdMX2xvY3ow
MF8xMCkKeyBBTl9PQkpFQ1Q7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk1ICovCnsgCm9ial90
IEJnTF9mdW56MDBfNDU2O29ial90IEJnTF9hcmdzejAwXzQ1NztvYmpfdCBCZ0xfZnVuejAwXzQ1
MztvYmpfdCBCZ0xfYXJnc3owMF80NTQ7b2JqX3QgQmdMX2Zvcm1hbHN6MDBfNDUwO29ial90IEJn
TF9ib2R5ejAwXzQ1MTtvYmpfdCBCZ0xfYm9keXowMF80NDc7b2JqX3QgQmdMX3Byb3RlY3R6MDBf
NDQ4O29ial90IEJnTF9lc2NhcGV6MDBfNDQ0O29ial90IEJnTF9ib2R5ejAwXzQ0NTtvYmpfdCBC
Z0xfdmFyejAwXzQ0MDtvYmpfdCBCZ0xfdmFsejAwXzQ0MTtvYmpfdCBCZ0xfdmFyejAwXzQzNztv
YmpfdCBCZ0xfdmFsejAwXzQzODtvYmpfdCBCZ0xfc2l6MDBfNDMxO29ial90IEJnTF9hbG9yc3ow
MF80MzI7b2JqX3QgQmdMX3Npbm9uejAwXzQzMztvYmpfdCBCZ0xfYXRvbXowMF80Mjc7CmlmKApC
R2xfZXF1YWx6ZjN6ZjN6el9fcjRfZXF1aXZhbGVuY2VfNl8yejAwKEJnTF9leHB6MDBfNSwgQk5J
TCkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCnJldHVybiAKQkdsX2V2Y29tcGlsZXpk
MmVycm9yemQyenpfX2V2Y29tcGlsZXowMChCZ0xfbG9jejAwXzEwLCBCR2xfc3RyaW5nMTkyNnow
MHp6X19ldmNvbXBpbGV6MDAsIEJHbF9zdHJpbmcxOTM0ejAwenpfX2V2Y29tcGlsZXowMCwgQk5J
TCk7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KaWYoClBBSVJQKEJnTF9l
eHB6MDBfNSkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jZHJ6ZDIx
NTB6ZDJfNDYzOwpCZ0xfY2RyemQyMTUwemQyXzQ2MyA9IApDRFIoQmdMX2V4cHowMF81KTsgCnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCmJvb2xfdCBCZ0xfdGVzdHowMF8zMDg5Owp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfYXV4ejAwXzMwOTA7CkJnTF9hdXh6
MDBfMzA5MCA9IApDQVIoQmdMX2V4cHowMF81KTsgCkJnTF90ZXN0ejAwXzMwODkgPSAKKEJnTF9h
dXh6MDBfMzA5MD09QkdsX3N5bWJvbDE5MzV6MDB6el9fZXZjb21waWxlejAwKTsgfSAKaWYoQmdM
X3Rlc3R6MDBfMzA4OSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KaWYoClBBSVJQKEJn
TF9jZHJ6ZDIxNTB6ZDJfNDYzKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KQkdsX21v
ZHVsZXpkMmRlY2xhcmF0aW9uejEyemMwenpfX2V2YWx6MDAoCkNEUihCZ0xfY2RyemQyMTUwemQy
XzQ2MykpOyAKcmV0dXJuIEJVTlNQRUM7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
OTYgKi8Kb2JqX3QgQmdMX2NhcnpkMjI4MHpkMl80Njc7CkJnTF9jYXJ6ZDIyODB6ZDJfNDY3ID0g
CkNBUihCZ0xfZXhwejAwXzUpOyAKaWYoClBBSVJQKEJnTF9jYXJ6ZDIyODB6ZDJfNDY3KSkKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KQmdMX2Z1bnowMF80NTYgPSBCZ0xfY2FyemQyMjgw
emQyXzQ2NzsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9jZHJ6ZDIxNTB6ZDJfNDYzOyAKQmdMX3Rh
Z3pkMjExNXpkMl80NTg6CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIyOSAqLwpvYmpfdCBCZ0xf
bG9jejAwXzg1MjtvYmpfdCBCZ0xfYWN0dWFsc3owMF84NTM7b2JqX3QgQmdMX3Byb2N6MDBfODU0
Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyMjkgKi8KYm9vbF90IEJnTF90ZXN0MTEwMnowMF8x
OTc3OwpCZ0xfdGVzdDExMDJ6MDBfMTk3NyA9IApFWFRFTkRFRF9QQUlSUChCZ0xfZXhwejAwXzUp
OyAKaWYoQmdMX3Rlc3QxMTAyejAwXzE5NzcpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIyOSAq
LwpCZ0xfbG9jejAwXzg1MiA9IApDRVIoQmdMX2V4cHowMF81KTsgfSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMjI5ICovCkJnTF9sb2N6MDBfODUyID0gQmdMX2xvY3owMF8xMDsgfSB9
IAppZigKTlVMTFAoQmdMX2FyZ3N6MDBfNDU3KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjMw
ICovCkJnTF9hY3R1YWxzejAwXzg1MyA9IEJOSUw7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDIzMCAqLwpvYmpfdCBCZ0xfaGVhZDEwMTl6MDBfODU3OwpCZ0xfaGVhZDEwMTl6MDBf
ODU3ID0gCk1BS0VfUEFJUihCTklMLCBCTklMKTsgCnsgCm9ial90IEJnTF9sMTAxN3owMF84NTg7
b2JqX3QgQmdMX3RhaWwxMDIwejAwXzg1OTsKQmdMX2wxMDE3ejAwXzg1OCA9IEJnTF9hcmdzejAw
XzQ1NzsgCkJnTF90YWlsMTAyMHowMF84NTkgPSBCZ0xfaGVhZDEwMTl6MDBfODU3OyAKQmdMX2xu
YW1lMTAxOHowMF84NjA6CmlmKApOVUxMUChCZ0xfbDEwMTd6MDBfODU4KSkKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gMjMwICovCkJnTF9hY3R1YWxzejAwXzg1MyA9IApDRFIoQmdMX2hlYWQxMDE5
ejAwXzg1Nyk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIzMCAqLwpvYmpfdCBC
Z0xfbmV3dGFpbDEwMjF6MDBfODYyOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyMzAgKi8Kb2Jq
X3QgQmdMX2F1eHowMF8zMTA5OwpCZ0xfYXV4ejAwXzMxMDkgPSAKQkdsX2V2Y29tcGlsZXowMHp6
X19ldmNvbXBpbGV6MDAoCkNBUihCZ0xfbDEwMTd6MDBfODU4KSwgQmdMX2VudnowMF82LCBCZ0xf
Z2VudnowMF83LCBCZ0xfd2hlcmV6MDBfOCwgQkZBTFNFLCBCZ0xfbG9jejAwXzEwKTsgCkJnTF9u
ZXd0YWlsMTAyMXowMF84NjIgPSAKTUFLRV9QQUlSKEJnTF9hdXh6MDBfMzEwOSwgQk5JTCk7IH0g
ClNFVF9DRFIoQmdMX3RhaWwxMDIwejAwXzg1OSwgQmdMX25ld3RhaWwxMDIxejAwXzg2Mik7IAp7
IApvYmpfdCBCZ0xfdGFpbDEwMjB6MDBfMzExNjtvYmpfdCBCZ0xfbDEwMTd6MDBfMzExNDsKQmdM
X2wxMDE3ejAwXzMxMTQgPSAKQ0RSKEJnTF9sMTAxN3owMF84NTgpOyAKQmdMX3RhaWwxMDIwejAw
XzMxMTYgPSBCZ0xfbmV3dGFpbDEwMjF6MDBfODYyOyAKQmdMX3RhaWwxMDIwejAwXzg1OSA9IEJn
TF90YWlsMTAyMHowMF8zMTE2OyAKQmdMX2wxMDE3ejAwXzg1OCA9IEJnTF9sMTAxN3owMF8zMTE0
OyAKZ290byBCZ0xfbG5hbWUxMDE4ejAwXzg2MDt9IH0gfSB9IApCZ0xfcHJvY3owMF84NTQgPSAK
QkdsX2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAoQmdMX2Z1bnowMF80NTYsIEJnTF9lbnZ6
MDBfNiwgQmdMX2dlbnZ6MDBfNywgQmdMX3doZXJlejAwXzgsIEJGQUxTRSwgQmdMX2xvY3owMF8x
MCk7IApyZXR1cm4gCkJHbF9ldmNvbXBpbGV6ZDJhcHBsaWNhdGlvbnpkMnp6X19ldmNvbXBpbGV6
MDAoQmdMX2Z1bnowMF80NTYsIEJnTF9wcm9jejAwXzg1NCwgQmdMX2FjdHVhbHN6MDBfODUzLCBC
Z0xfbG9jejAwXzg1Mik7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpC
Z0xfZnVuejAwXzQ1MyA9IEJnTF9jYXJ6ZDIyODB6ZDJfNDY3OyAKQmdMX2FyZ3N6MDBfNDU0ID0g
QmdMX2NkcnpkMjE1MHpkMl80NjM7IApCZ0xfdGFnemQyMTE0emQyXzQ1NToKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gMjA3ICovCm9ial90IEJnTF9sb2N6MDBfODI1Owp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAyMDcgKi8KYm9vbF90IEJnTF90ZXN0MTEwMnowMF8xOTQwOwpCZ0xfdGVzdDExMDJ6
MDBfMTk0MCA9IApFWFRFTkRFRF9QQUlSUChCZ0xfZXhwejAwXzUpOyAKaWYoQmdMX3Rlc3QxMTAy
ejAwXzE5NDApCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIwNyAqLwpCZ0xfbG9jejAwXzgyNSA9
IApDRVIoQmdMX2V4cHowMF81KTsgfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjA3
ICovCkJnTF9sb2N6MDBfODI1ID0gQmdMX2xvY3owMF8xMDsgfSB9IAp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAyMDcgKi8Kb2JqX3QgQmdMX2FjdHVhbHN6MDBfODI2OwppZigKTlVMTFAoQmdMX2Fy
Z3N6MDBfNDU0KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjA4ICovCkJnTF9hY3R1YWxzejAw
XzgyNiA9IEJOSUw7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIwOCAqLwpvYmpf
dCBCZ0xfaGVhZDEwMTN6MDBfODQyOwpCZ0xfaGVhZDEwMTN6MDBfODQyID0gCk1BS0VfUEFJUihC
TklMLCBCTklMKTsgCnsgCm9ial90IEJnTF9sMTAxMXowMF84NDM7b2JqX3QgQmdMX3RhaWwxMDE0
ejAwXzg0NDsKQmdMX2wxMDExejAwXzg0MyA9IEJnTF9hcmdzejAwXzQ1NDsgCkJnTF90YWlsMTAx
NHowMF84NDQgPSBCZ0xfaGVhZDEwMTN6MDBfODQyOyAKQmdMX2xuYW1lMTAxMnowMF84NDU6Cmlm
KApOVUxMUChCZ0xfbDEwMTF6MDBfODQzKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjA4ICov
CkJnTF9hY3R1YWxzejAwXzgyNiA9IApDRFIoQmdMX2hlYWQxMDEzejAwXzg0Mik7IH0gIGVsc2Ug
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIwOCAqLwpvYmpfdCBCZ0xfbmV3dGFpbDEwMTV6MDBf
ODQ3Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyMDggKi8Kb2JqX3QgQmdMX2F1eHowMF8zMTI4
OwpCZ0xfYXV4ejAwXzMxMjggPSAKQkdsX2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAoCkNB
UihCZ0xfbDEwMTF6MDBfODQzKSwgQmdMX2VudnowMF82LCBCZ0xfZ2VudnowMF83LCBCZ0xfd2hl
cmV6MDBfOCwgQkZBTFNFLCBCZ0xfbG9jejAwXzgyNSk7IApCZ0xfbmV3dGFpbDEwMTV6MDBfODQ3
ID0gCk1BS0VfUEFJUihCZ0xfYXV4ejAwXzMxMjgsIEJOSUwpOyB9IApTRVRfQ0RSKEJnTF90YWls
MTAxNHowMF84NDQsIEJnTF9uZXd0YWlsMTAxNXowMF84NDcpOyAKeyAKb2JqX3QgQmdMX3RhaWwx
MDE0ejAwXzMxMzU7b2JqX3QgQmdMX2wxMDExejAwXzMxMzM7CkJnTF9sMTAxMXowMF8zMTMzID0g
CkNEUihCZ0xfbDEwMTF6MDBfODQzKTsgCkJnTF90YWlsMTAxNHowMF8zMTM1ID0gQmdMX25ld3Rh
aWwxMDE1ejAwXzg0NzsgCkJnTF90YWlsMTAxNHowMF84NDQgPSBCZ0xfdGFpbDEwMTR6MDBfMzEz
NTsgCkJnTF9sMTAxMXowMF84NDMgPSBCZ0xfbDEwMTF6MDBfMzEzMzsgCmdvdG8gQmdMX2xuYW1l
MTAxMnowMF84NDU7fSB9IH0gfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjA4ICovCgppZigK
U1lNQk9MUChCZ0xfZnVuejAwXzQ1MykpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIxMSAqLwp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyMTIgKi8Kb2JqX3QgQmdMX3Byb2N6MDBfODI4OwpCZ0xf
cHJvY3owMF84MjggPSAKQkdsX3ZhcmlhYmxlejAwenpfX2V2Y29tcGlsZXowMChCZ0xfbG9jejAw
XzgyNSwgQmdMX2Z1bnowMF80NTMsIEJnTF9lbnZ6MDBfNiwgQmdMX2dlbnZ6MDBfNyk7IAp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAyMTQgKi8KYm9vbF90IEJnTF90ZXN0MTQ1NXowMF84Mjk7Cmlm
KApWRUNUT1JQKEJnTF9wcm9jejAwXzgyOCkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDIxNCAq
LwppbnQgQmdMX2FyZzE3ODN6MDBfMTk1NzsKQmdMX2FyZzE3ODN6MDBfMTk1NyA9IApWRUNUT1Jf
TEVOR1RIKEJnTF9wcm9jejAwXzgyOCk7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyMTQgKi8K
bG9uZyBCZ0xfYXV4ejAwXzMxNDI7CkJnTF9hdXh6MDBfMzE0MiA9IAoobG9uZykoQmdMX2FyZzE3
ODN6MDBfMTk1Nyk7IApCZ0xfdGVzdDE0NTV6MDBfODI5ID0gCihCZ0xfYXV4ejAwXzMxNDI9PSgo
bG9uZykzKSk7IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjE0ICovCkJnTF90
ZXN0MTQ1NXowMF84MjkgPSAoKGJvb2xfdCkwKTsgfSAKaWYoQmdMX3Rlc3QxNDU1ejAwXzgyOSkK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjE0ICovCnJldHVybiAKQkdsX2V2Y29tcGlsZXpkMmds
b2JhbHpkMmFwcGxpY2F0aW9uejAwenpfX2V2Y29tcGlsZXowMChCZ0xfcHJvY3owMF84MjgsIEJn
TF9hY3R1YWxzejAwXzgyNiwgQmdMX2xvY3owMF84MjUpO30gIGVsc2UgCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDIxNCAqLwpyZXR1cm4gCkJHbF9ldmNvbXBpbGV6ZDJhcHBsaWNhdGlvbnpkMnp6
X19ldmNvbXBpbGV6MDAoQmdMX2Z1bnowMF80NTMsIApCR2xfZXZjb21waWxlemQycmVmemQyenpf
X2V2Y29tcGlsZXowMChCZ0xfcHJvY3owMF84MjgsIEJnTF9sb2N6MDBfODI1KSwgQmdMX2FjdHVh
bHN6MDBfODI2LCBCZ0xfbG9jejAwXzgyNSk7fSB9IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMjExICovCmlmKApQUk9DRURVUkVQKEJnTF9mdW56MDBfNDUzKSkKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMjIxICovCnJldHVybiAKQkdsX2V2Y29tcGlsZXpkMmNvbXBpbGVkemQy
YXBwbGljYXRpb256MDB6el9fZXZjb21waWxlejAwKEJnTF9mdW56MDBfNDUzLCBCZ0xfYWN0dWFs
c3owMF84MjYsIEJnTF9sb2N6MDBfODI1KTt9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNj
bSAyMjEgKi8KQkdsX2V2Y29tcGlsZXpkMmVycm9yemQyenpfX2V2Y29tcGlsZXowMChCZ0xfbG9j
ejAwXzgyNSwgQkdsX3N0cmluZzE5MjZ6MDB6el9fZXZjb21waWxlejAwLCBCR2xfc3RyaW5nMTkz
M3owMHp6X19ldmNvbXBpbGV6MDAsIEJnTF9mdW56MDBfNDUzKTsgCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDIyNSAqLwpvYmpfdCBCZ0xfdjEwMTZ6MDBfODMyOwp7IAppbnQgQmdMX2F1eHowMF8z
MTUzOwpCZ0xfYXV4ejAwXzMxNTMgPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92MTAxNnowMF84
MzIgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzMxNTMpOyB9IAp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAyMjUgKi8Kb2JqX3QgQmdMX2FyZzE0NjB6MDBfODM0Owp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAyMjcgKi8Kb2JqX3QgQmdMX2xpc3QxNDYxejAwXzgzNTsKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMjI3ICovCm9ial90IEJnTF9hcmcxNDYzejAwXzgzNzsKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMjI3ICovCm9ial90IEJnTF9hcmcxNDY1ejAwXzgzOTsKQmdMX2FyZzE0NjV6MDBf
ODM5ID0gCk1BS0VfUEFJUihCZ0xfZnVuejAwXzQ1MywgQk5JTCk7IApCZ0xfYXJnMTQ2M3owMF84
MzcgPSAKTUFLRV9QQUlSKEJHbF9zdHJpbmcxOTMzejAwenpfX2V2Y29tcGlsZXowMCwgQmdMX2Fy
ZzE0NjV6MDBfODM5KTsgfSAKQmdMX2xpc3QxNDYxejAwXzgzNSA9IApNQUtFX1BBSVIoQkdsX3N0
cmluZzE5MjZ6MDB6el9fZXZjb21waWxlejAwLCBCZ0xfYXJnMTQ2M3owMF84MzcpOyB9IApCZ0xf
YXJnMTQ2MHowMF84MzQgPSBCZ0xfbGlzdDE0NjF6MDBfODM1OyB9IAp7IAppbnQgQmdMX2F1eHow
MF8zMTU5OwpCZ0xfYXV4ejAwXzMxNTkgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQo
QmdMX3YxMDE2ejAwXzgzMixCZ0xfYXV4ejAwXzMxNTksQmdMX2FyZzE0NjB6MDBfODM0KTsgfSB9
IAp7IAppbnQgQmdMX2F1eHowMF8zMTYyOwpCZ0xfYXV4ejAwXzMxNjIgPSAKKGludCkoKChsb25n
KTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDE2ejAwXzgzMixCZ0xfYXV4ejAwXzMxNjIsQmdMX2xv
Y3owMF84MjUpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzMxNjc7aW50IEJnTF9hdXh6MDBfMzE2
NTsKQmdMX2F1eHowMF8zMTY3ID0gCkJJTlQoKChsb25nKS0yKSk7IApCZ0xfYXV4ejAwXzMxNjUg
PSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDE2ejAwXzgzMixCZ0xfYXV4
ejAwXzMxNjUsQmdMX2F1eHowMF8zMTY3KTsgfSAKcmV0dXJuIEJnTF92MTAxNnowMF84MzI7fSB9
IH0gfSB9IH0gfSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCmJvb2xf
dCBCZ0xfdGVzdHowMF8zMTcwOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBC
Z0xfYXV4ejAwXzMxNzE7CkJnTF9hdXh6MDBfMzE3MSA9IApDQVIoQmdMX2V4cHowMF81KTsgCkJn
TF90ZXN0ejAwXzMxNzAgPSAKKEJnTF9hdXh6MDBfMzE3MT09QkdsX3N5bWJvbDE5MzZ6MDB6el9f
ZXZjb21waWxlejAwKTsgfSAKaWYoQmdMX3Rlc3R6MDBfMzE3MCkKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gOTYgKi8KcmV0dXJuIEJVTlNQRUM7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gOTYgKi8KYm9vbF90IEJnTF90ZXN0ejAwXzMxNzQ7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDk2ICovCm9ial90IEJnTF9hdXh6MDBfMzE3NTsKQmdMX2F1eHowMF8zMTc1ID0gCkNBUihCZ0xf
ZXhwejAwXzUpOyAKQmdMX3Rlc3R6MDBfMzE3NCA9IAooQmdMX2F1eHowMF8zMTc1PT1CR2xfc3lt
Ym9sMTkzN3owMHp6X19ldmNvbXBpbGV6MDApOyB9IAppZihCZ0xfdGVzdHowMF8zMTc0KQp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwppZigKUEFJUlAoQmdMX2NkcnpkMjE1MHpkMl80NjMp
KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwppZigKQkdsX2VxdWFsemYzemYzenpfX3I0
X2VxdWl2YWxlbmNlXzZfMnowMCgKQ0RSKEJnTF9jZHJ6ZDIxNTB6ZDJfNDYzKSwgQk5JTCkpCnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9hcmcxMTM1ejAwXzQ3NzsKQmdM
X2FyZzExMzV6MDBfNDc3ID0gCkNBUihCZ0xfY2RyemQyMTUwemQyXzQ2Myk7IAp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfYXJnMTM4NnowMF8xNDU4Owp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA5NiAqLwpib29sX3QgQmdMX3Rlc3QxMTAyejAwXzE0NjE7CkJnTF90ZXN0
MTEwMnowMF8xNDYxID0gCkVYVEVOREVEX1BBSVJQKEJnTF9leHB6MDBfNSk7IAppZihCZ0xfdGVz
dDExMDJ6MDBfMTQ2MSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KQmdMX2FyZzEzODZ6
MDBfMTQ1OCA9IApDRVIoQmdMX2V4cHowMF81KTsgfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gOTYgKi8KQmdMX2FyZzEzODZ6MDBfMTQ1OCA9IEJnTF9sb2N6MDBfMTA7IH0gfSAKcmV0
dXJuIApCR2xfZXZjb21waWxlemQyY25zdHpkMnp6X19ldmNvbXBpbGV6MDAoQmdMX2FyZzExMzV6
MDBfNDc3LCBCZ0xfYXJnMTM4NnowMF8xNDU4KTt9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDk2ICovCm9ial90IEJnTF9jYXJ6ZDI0MzF6ZDJfNDc4OwpCZ0xfY2FyemQyNDMxemQy
XzQ3OCA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQyNDMxemQyXzQ3
OCkpCnsgCm9ial90IEJnTF9hcmdzejAwXzMxOTI7b2JqX3QgQmdMX2Z1bnowMF8zMTkxOwpCZ0xf
ZnVuejAwXzMxOTEgPSBCZ0xfY2FyemQyNDMxemQyXzQ3ODsgCkJnTF9hcmdzejAwXzMxOTIgPSAK
Q0RSKEJnTF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTcgPSBCZ0xfYXJnc3owMF8zMTkyOyAK
QmdMX2Z1bnowMF80NTYgPSBCZ0xfZnVuejAwXzMxOTE7IApnb3RvIEJnTF90YWd6ZDIxMTV6ZDJf
NDU4O30gIGVsc2UgCnsgCm9ial90IEJnTF9hcmdzejAwXzMxOTU7b2JqX3QgQmdMX2Z1bnowMF8z
MTk0OwpCZ0xfZnVuejAwXzMxOTQgPSBCZ0xfY2FyemQyNDMxemQyXzQ3ODsgCkJnTF9hcmdzejAw
XzMxOTUgPSAKQ0RSKEJnTF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTQgPSBCZ0xfYXJnc3ow
MF8zMTk1OyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzMxOTQ7IApnb3RvIEJnTF90YWd6
ZDIxMTR6ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpv
YmpfdCBCZ0xfY2FyemQyNTI4emQyXzQ4NTsKQmdMX2NhcnpkMjUyOHpkMl80ODUgPSAKQ0FSKEJn
TF9leHB6MDBfNSk7IAppZigKUEFJUlAoQmdMX2NhcnpkMjUyOHpkMl80ODUpKQp7IApvYmpfdCBC
Z0xfYXJnc3owMF8zMjAxO29ial90IEJnTF9mdW56MDBfMzIwMDsKQmdMX2Z1bnowMF8zMjAwID0g
QmdMX2NhcnpkMjUyOHpkMl80ODU7IApCZ0xfYXJnc3owMF8zMjAxID0gCkNEUihCZ0xfZXhwejAw
XzUpOyAKQmdMX2FyZ3N6MDBfNDU3ID0gQmdMX2FyZ3N6MDBfMzIwMTsgCkJnTF9mdW56MDBfNDU2
ID0gQmdMX2Z1bnowMF8zMjAwOyAKZ290byBCZ0xfdGFnemQyMTE1emQyXzQ1ODt9ICBlbHNlIAp7
IApvYmpfdCBCZ0xfYXJnc3owMF8zMjA0O29ial90IEJnTF9mdW56MDBfMzIwMzsKQmdMX2Z1bnow
MF8zMjAzID0gQmdMX2NhcnpkMjUyOHpkMl80ODU7IApCZ0xfYXJnc3owMF8zMjA0ID0gCkNEUihC
Z0xfZXhwejAwXzUpOyAKQmdMX2FyZ3N6MDBfNDU0ID0gQmdMX2FyZ3N6MDBfMzIwNDsgCkJnTF9m
dW56MDBfNDUzID0gQmdMX2Z1bnowMF8zMjAzOyAKZ290byBCZ0xfdGFnemQyMTE0emQyXzQ1NTt9
IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2Nkcnpk
MjU2MHpkMl80OTA7CkJnTF9jZHJ6ZDI1NjB6ZDJfNDkwID0gCkNEUihCZ0xfZXhwejAwXzUpOyAK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KYm9vbF90IEJnTF90ZXN0ejAwXzMyMDc7Cnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9hdXh6MDBfMzIwODsKQmdMX2F1
eHowMF8zMjA4ID0gCkNBUihCZ0xfZXhwejAwXzUpOyAKQmdMX3Rlc3R6MDBfMzIwNyA9IAooQmdM
X2F1eHowMF8zMjA4PT1CR2xfc3ltYm9sMTkzOHowMHp6X19ldmNvbXBpbGV6MDApOyB9IAppZihC
Z0xfdGVzdHowMF8zMjA3KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwppZigKUEFJUlAo
QmdMX2NkcnpkMjU2MHpkMl80OTApKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpf
dCBCZ0xfY2RyemQyNTY1emQyXzQ5MzsKQmdMX2NkcnpkMjU2NXpkMl80OTMgPSAKQ0RSKEJnTF9j
ZHJ6ZDI1NjB6ZDJfNDkwKTsgCmlmKApQQUlSUChCZ0xfY2RyemQyNTY1emQyXzQ5MykpCnsgLyog
RXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jZHJ6ZDI1NzB6ZDJfNDk1OwpCZ0xf
Y2RyemQyNTcwemQyXzQ5NSA9IApDRFIoQmdMX2NkcnpkMjU2NXpkMl80OTMpOyAKaWYoClBBSVJQ
KEJnTF9jZHJ6ZDI1NzB6ZDJfNDk1KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KaWYo
CkJHbF9lcXVhbHpmM3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6MDAoCkNEUihCZ0xfY2RyemQy
NTcwemQyXzQ5NSksIEJOSUwpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpCZ0xfc2l6
MDBfNDMxID0gCkNBUihCZ0xfY2RyemQyNTYwemQyXzQ5MCk7IApCZ0xfYWxvcnN6MDBfNDMyID0g
CkNBUihCZ0xfY2RyemQyNTY1emQyXzQ5Myk7IApCZ0xfc2lub256MDBfNDMzID0gCkNBUihCZ0xf
Y2RyemQyNTcwemQyXzQ5NSk7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMTkgKi8Kb2JqX3Qg
QmdMX2xvY3owMF83NDI7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDExOSAqLwpib29sX3QgQmdM
X3Rlc3QxMTAyejAwXzE3MTk7CkJnTF90ZXN0MTEwMnowMF8xNzE5ID0gCkVYVEVOREVEX1BBSVJQ
KEJnTF9leHB6MDBfNSk7IAppZihCZ0xfdGVzdDExMDJ6MDBfMTcxOSkKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMTE5ICovCkJnTF9sb2N6MDBfNzQyID0gCkNFUihCZ0xfZXhwejAwXzUpOyB9ICBl
bHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMTkgKi8KQmdMX2xvY3owMF83NDIgPSBCZ0xf
bG9jejAwXzEwOyB9IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDEyMSAqLwpvYmpfdCBCZ0xf
YXJnMTM4N3owMF83NDM7b2JqX3QgQmdMX2FyZzEzODh6MDBfNzQ0O29ial90IEJnTF9hcmcxMzg5
ejAwXzc0NTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTIxICovCm9ial90IEJnTF9hcmcxMzkw
ejAwXzc0NjsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTIxICovCmJvb2xfdCBCZ0xfdGVzdDEx
MDJ6MDBfMTcyNDsKQmdMX3Rlc3QxMTAyejAwXzE3MjQgPSAKRVhURU5ERURfUEFJUlAoQmdMX3Np
ejAwXzQzMSk7IAppZihCZ0xfdGVzdDExMDJ6MDBfMTcyNCkKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gMTIxICovCkJnTF9hcmcxMzkwejAwXzc0NiA9IApDRVIoQmdMX3NpejAwXzQzMSk7IH0gIGVs
c2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDEyMSAqLwpCZ0xfYXJnMTM5MHowMF83NDYgPSBC
Z0xfbG9jejAwXzc0MjsgfSB9IApCZ0xfYXJnMTM4N3owMF83NDMgPSAKQkdsX2V2Y29tcGlsZXow
MHp6X19ldmNvbXBpbGV6MDAoQmdMX3NpejAwXzQzMSwgQmdMX2VudnowMF82LCBCZ0xfZ2Vudnow
MF83LCBCZ0xfd2hlcmV6MDBfOCwgQkZBTFNFLCBCZ0xfYXJnMTM5MHowMF83NDYpOyB9IAp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAxMjMgKi8Kb2JqX3QgQmdMX2FyZzEzOTF6MDBfNzQ3Owp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAxMjMgKi8KYm9vbF90IEJnTF90ZXN0MTEwMnowMF8xNzI5OwpC
Z0xfdGVzdDExMDJ6MDBfMTcyOSA9IApFWFRFTkRFRF9QQUlSUChCZ0xfYWxvcnN6MDBfNDMyKTsg
CmlmKEJnTF90ZXN0MTEwMnowMF8xNzI5KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMjMgKi8K
QmdMX2FyZzEzOTF6MDBfNzQ3ID0gCkNFUihCZ0xfYWxvcnN6MDBfNDMyKTsgfSAgZWxzZSAKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMTIzICovCkJnTF9hcmcxMzkxejAwXzc0NyA9IEJnTF9sb2N6
MDBfNzQyOyB9IH0gCkJnTF9hcmcxMzg4ejAwXzc0NCA9IApCR2xfZXZjb21waWxlejAwenpfX2V2
Y29tcGlsZXowMChCZ0xfYWxvcnN6MDBfNDMyLCBCZ0xfZW52ejAwXzYsIEJnTF9nZW52ejAwXzcs
IEJnTF93aGVyZXowMF84LCBCZ0xfbmFtZWR6ZjN6ZjNfOSwgQmdMX2FyZzEzOTF6MDBfNzQ3KTsg
fSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTI1ICovCm9ial90IEJnTF9hcmcxMzkzejAwXzc0
ODsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTI1ICovCmJvb2xfdCBCZ0xfdGVzdDExMDJ6MDBf
MTczNDsKQmdMX3Rlc3QxMTAyejAwXzE3MzQgPSAKRVhURU5ERURfUEFJUlAoQmdMX3Npbm9uejAw
XzQzMyk7IAppZihCZ0xfdGVzdDExMDJ6MDBfMTczNCkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
MTI1ICovCkJnTF9hcmcxMzkzejAwXzc0OCA9IApDRVIoQmdMX3Npbm9uejAwXzQzMyk7IH0gIGVs
c2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDEyNSAqLwpCZ0xfYXJnMTM5M3owMF83NDggPSBC
Z0xfbG9jejAwXzc0MjsgfSB9IApCZ0xfYXJnMTM4OXowMF83NDUgPSAKQkdsX2V2Y29tcGlsZXow
MHp6X19ldmNvbXBpbGV6MDAoQmdMX3Npbm9uejAwXzQzMywgQmdMX2VudnowMF82LCBCZ0xfZ2Vu
dnowMF83LCBCZ0xfd2hlcmV6MDBfOCwgQmdMX25hbWVkemYzemYzXzksIEJnTF9hcmcxMzkzejAw
Xzc0OCk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDEyMCAqLwpvYmpfdCBCZ0xfdjEwMzV6
MDBfMTc0MTsKeyAKaW50IEJnTF9hdXh6MDBfMzIzNzsKQmdMX2F1eHowMF8zMjM3ID0gCihpbnQp
KCgobG9uZykzKSk7IApCZ0xfdjEwMzV6MDBfMTc0MSA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6
MDBfMzIzNyk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDEyMCAqLwpvYmpfdCBCZ0xfYXJn
MTUwNHowMF8xNzQzOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMjAgKi8Kb2JqX3QgQmdMX3Yx
MDM2ejAwXzE3NDQ7CnsgCmludCBCZ0xfYXV4ejAwXzMyNDA7CkJnTF9hdXh6MDBfMzI0MCA9IAoo
aW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDM2ejAwXzE3NDQgPSAKY3JlYXRlX3ZlY3RvcihCZ0xf
YXV4ejAwXzMyNDApOyB9IAp7IAppbnQgQmdMX2F1eHowMF8zMjQzOwpCZ0xfYXV4ejAwXzMyNDMg
PSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDM2ejAwXzE3NDQsQmdMX2F1
eHowMF8zMjQzLEJnTF9hcmcxMzg5ejAwXzc0NSk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzMyNDY7
CkJnTF9hdXh6MDBfMzI0NiA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEw
MzZ6MDBfMTc0NCxCZ0xfYXV4ejAwXzMyNDYsQmdMX2FyZzEzODh6MDBfNzQ0KTsgfSAKeyAKaW50
IEJnTF9hdXh6MDBfMzI0OTsKQmdMX2F1eHowMF8zMjQ5ID0gCihpbnQpKCgobG9uZykwKSk7IApW
RUNUT1JfU0VUKEJnTF92MTAzNnowMF8xNzQ0LEJnTF9hdXh6MDBfMzI0OSxCZ0xfYXJnMTM4N3ow
MF83NDMpOyB9IApCZ0xfYXJnMTUwNHowMF8xNzQzID0gQmdMX3YxMDM2ejAwXzE3NDQ7IH0gCnsg
CmludCBCZ0xfYXV4ejAwXzMyNTI7CkJnTF9hdXh6MDBfMzI1MiA9IAooaW50KSgoKGxvbmcpMikp
OyAKVkVDVE9SX1NFVChCZ0xfdjEwMzV6MDBfMTc0MSxCZ0xfYXV4ejAwXzMyNTIsQmdMX2FyZzE1
MDR6MDBfMTc0Myk7IH0gfSAKeyAKaW50IEJnTF9hdXh6MDBfMzI1NTsKQmdMX2F1eHowMF8zMjU1
ID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTAzNXowMF8xNzQxLEJnTF9h
dXh6MDBfMzI1NSxCZ0xfbG9jejAwXzc0Mik7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfMzI2MDtp
bnQgQmdMX2F1eHowMF8zMjU4OwpCZ0xfYXV4ejAwXzMyNjAgPSAKQklOVCgoKGxvbmcpMTUpKTsg
CkJnTF9hdXh6MDBfMzI1OCA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEw
MzV6MDBfMTc0MSxCZ0xfYXV4ejAwXzMyNTgsQmdMX2F1eHowMF8zMjYwKTsgfSAKcmV0dXJuIEJn
TF92MTAzNXowMF8xNzQxO30gfSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2
ICovCm9ial90IEJnTF9jYXJ6ZDI2NDJ6ZDJfNTAxOwpCZ0xfY2FyemQyNjQyemQyXzUwMSA9IApD
QVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQyNjQyemQyXzUwMSkpCnsgCm9i
al90IEJnTF9hcmdzejAwXzMyNzA7b2JqX3QgQmdMX2Z1bnowMF8zMjY5OwpCZ0xfZnVuejAwXzMy
NjkgPSBCZ0xfY2FyemQyNjQyemQyXzUwMTsgCkJnTF9hcmdzejAwXzMyNzAgPSBCZ0xfY2RyemQy
NTYwemQyXzQ5MDsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9hcmdzejAwXzMyNzA7IApCZ0xfZnVu
ejAwXzQ1NiA9IEJnTF9mdW56MDBfMzI2OTsgCmdvdG8gQmdMX3RhZ3pkMjExNXpkMl80NTg7fSAg
ZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzI3MjtvYmpfdCBCZ0xfZnVuejAwXzMyNzE7CkJn
TF9mdW56MDBfMzI3MSA9IEJnTF9jYXJ6ZDI2NDJ6ZDJfNTAxOyAKQmdMX2FyZ3N6MDBfMzI3MiA9
IEJnTF9jZHJ6ZDI1NjB6ZDJfNDkwOyAKQmdMX2FyZ3N6MDBfNDU0ID0gQmdMX2FyZ3N6MDBfMzI3
MjsgCkJnTF9mdW56MDBfNDUzID0gQmdMX2Z1bnowMF8zMjcxOyAKZ290byBCZ0xfdGFnemQyMTE0
emQyXzQ1NTt9IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3Qg
QmdMX2NhcnpkMjcyNHpkMl81MDg7CkJnTF9jYXJ6ZDI3MjR6ZDJfNTA4ID0gCkNBUihCZ0xfZXhw
ejAwXzUpOyAKaWYoClBBSVJQKEJnTF9jYXJ6ZDI3MjR6ZDJfNTA4KSkKeyAKb2JqX3QgQmdMX2Fy
Z3N6MDBfMzI3NztvYmpfdCBCZ0xfZnVuejAwXzMyNzY7CkJnTF9mdW56MDBfMzI3NiA9IEJnTF9j
YXJ6ZDI3MjR6ZDJfNTA4OyAKQmdMX2FyZ3N6MDBfMzI3NyA9IEJnTF9jZHJ6ZDI1NjB6ZDJfNDkw
OyAKQmdMX2FyZ3N6MDBfNDU3ID0gQmdMX2FyZ3N6MDBfMzI3NzsgCkJnTF9mdW56MDBfNDU2ID0g
QmdMX2Z1bnowMF8zMjc2OyAKZ290byBCZ0xfdGFnemQyMTE1emQyXzQ1ODt9ICBlbHNlIAp7IApv
YmpfdCBCZ0xfYXJnc3owMF8zMjc5O29ial90IEJnTF9mdW56MDBfMzI3ODsKQmdMX2Z1bnowMF8z
Mjc4ID0gQmdMX2NhcnpkMjcyNHpkMl81MDg7IApCZ0xfYXJnc3owMF8zMjc5ID0gQmdMX2Nkcnpk
MjU2MHpkMl80OTA7IApCZ0xfYXJnc3owMF80NTQgPSBCZ0xfYXJnc3owMF8zMjc5OyAKQmdMX2Z1
bnowMF80NTMgPSBCZ0xfZnVuejAwXzMyNzg7IApnb3RvIEJnTF90YWd6ZDIxMTR6ZDJfNDU1O30g
fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2FyemQy
ODA2emQyXzUxMzsKQmdMX2NhcnpkMjgwNnpkMl81MTMgPSAKQ0FSKEJnTF9leHB6MDBfNSk7IApp
ZigKUEFJUlAoQmdMX2NhcnpkMjgwNnpkMl81MTMpKQp7IApvYmpfdCBCZ0xfYXJnc3owMF8zMjg0
O29ial90IEJnTF9mdW56MDBfMzI4MzsKQmdMX2Z1bnowMF8zMjgzID0gQmdMX2NhcnpkMjgwNnpk
Ml81MTM7IApCZ0xfYXJnc3owMF8zMjg0ID0gQmdMX2NkcnpkMjU2MHpkMl80OTA7IApCZ0xfYXJn
c3owMF80NTcgPSBCZ0xfYXJnc3owMF8zMjg0OyAKQmdMX2Z1bnowMF80NTYgPSBCZ0xfZnVuejAw
XzMyODM7IApnb3RvIEJnTF90YWd6ZDIxMTV6ZDJfNDU4O30gIGVsc2UgCnsgCm9ial90IEJnTF9h
cmdzejAwXzMyODY7b2JqX3QgQmdMX2Z1bnowMF8zMjg1OwpCZ0xfZnVuejAwXzMyODUgPSBCZ0xf
Y2FyemQyODA2emQyXzUxMzsgCkJnTF9hcmdzejAwXzMyODYgPSBCZ0xfY2RyemQyNTYwemQyXzQ5
MDsgCkJnTF9hcmdzejAwXzQ1NCA9IEJnTF9hcmdzejAwXzMyODY7IApCZ0xfZnVuejAwXzQ1MyA9
IEJnTF9mdW56MDBfMzI4NTsgCmdvdG8gQmdMX3RhZ3pkMjExNHpkMl80NTU7fSB9IH0gIGVsc2Ug
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jYXJ6ZDI4ODh6ZDJfNTE4
OwpCZ0xfY2FyemQyODg4emQyXzUxOCA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChC
Z0xfY2FyemQyODg4emQyXzUxOCkpCnsgCm9ial90IEJnTF9hcmdzejAwXzMyOTE7b2JqX3QgQmdM
X2Z1bnowMF8zMjkwOwpCZ0xfZnVuejAwXzMyOTAgPSBCZ0xfY2FyemQyODg4emQyXzUxODsgCkJn
TF9hcmdzejAwXzMyOTEgPSBCZ0xfY2RyemQyNTYwemQyXzQ5MDsgCkJnTF9hcmdzejAwXzQ1NyA9
IEJnTF9hcmdzejAwXzMyOTE7IApCZ0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzI5MDsgCmdv
dG8gQmdMX3RhZ3pkMjExNXpkMl80NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzI5
MztvYmpfdCBCZ0xfZnVuejAwXzMyOTI7CkJnTF9mdW56MDBfMzI5MiA9IEJnTF9jYXJ6ZDI4ODh6
ZDJfNTE4OyAKQmdMX2FyZ3N6MDBfMzI5MyA9IEJnTF9jZHJ6ZDI1NjB6ZDJfNDkwOyAKQmdMX2Fy
Z3N6MDBfNDU0ID0gQmdMX2FyZ3N6MDBfMzI5MzsgCkJnTF9mdW56MDBfNDUzID0gQmdMX2Z1bnow
MF8zMjkyOyAKZ290byBCZ0xfdGFnemQyMTE0emQyXzQ1NTt9IH0gfSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gOTYgKi8KYm9vbF90IEJnTF90ZXN0ejAwXzMyOTQ7CnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9hdXh6MDBfMzI5NTsKQmdMX2F1eHowMF8zMjk1
ID0gCkNBUihCZ0xfZXhwejAwXzUpOyAKQmdMX3Rlc3R6MDBfMzI5NCA9IAooQmdMX2F1eHowMF8z
Mjk1PT1CR2xfc3ltYm9sMTkzOXowMHp6X19ldmNvbXBpbGV6MDApOyB9IAppZihCZ0xfdGVzdHow
MF8zMjk0KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfYXJnMTM5NXow
MF8xNTA4Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpib29sX3QgQmdMX3Rlc3QxMTAy
ejAwXzE1MTE7CkJnTF90ZXN0MTEwMnowMF8xNTExID0gCkVYVEVOREVEX1BBSVJQKEJnTF9leHB6
MDBfNSk7IAppZihCZ0xfdGVzdDExMDJ6MDBfMTUxMSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
OTYgKi8KQmdMX2FyZzEzOTV6MDBfMTUwOCA9IApDRVIoQmdMX2V4cHowMF81KTsgfSAgZWxzZSAK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KQmdMX2FyZzEzOTV6MDBfMTUwOCA9IEJnTF9s
b2N6MDBfMTA7IH0gfSAKcmV0dXJuIApCR2xfZXZjb21waWxlemQyYmVnaW56ZDJ6el9fZXZjb21w
aWxlejAwKEJnTF9jZHJ6ZDI1NjB6ZDJfNDkwLCBCZ0xfZW52ejAwXzYsIEJnTF9nZW52ejAwXzcs
IEJnTF93aGVyZXowMF84LCBCZ0xfbmFtZWR6ZjN6ZjNfOSwgQmdMX2FyZzEzOTV6MDBfMTUwOCk7
fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KYm9vbF90IEJnTF90ZXN0ejAw
XzMzMDI7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9hdXh6MDBfMzMw
MzsKQmdMX2F1eHowMF8zMzAzID0gCkNBUihCZ0xfZXhwejAwXzUpOyAKQmdMX3Rlc3R6MDBfMzMw
MiA9IAooQmdMX2F1eHowMF8zMzAzPT1CR2xfc3ltYm9sMTk0MHowMHp6X19ldmNvbXBpbGV6MDAp
OyB9IAppZihCZ0xfdGVzdHowMF8zMzAyKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpp
ZigKUEFJUlAoQmdMX2NkcnpkMjU2MHpkMl80OTApKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5
NiAqLwpvYmpfdCBCZ0xfY2RyemQyOTM1emQyXzUyODsKQmdMX2NkcnpkMjkzNXpkMl81MjggPSAK
Q0RSKEJnTF9jZHJ6ZDI1NjB6ZDJfNDkwKTsgCmlmKApQQUlSUChCZ0xfY2RyemQyOTM1emQyXzUy
OCkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jYXJ6ZDI5Mzh6ZDJf
NTMwOwpCZ0xfY2FyemQyOTM4emQyXzUzMCA9IApDQVIoQmdMX2NkcnpkMjkzNXpkMl81MjgpOyAK
aWYoClBBSVJQKEJnTF9jYXJ6ZDI5Mzh6ZDJfNTMwKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
OTYgKi8KYm9vbF90IEJnTF90ZXN0ejAwXzMzMTQ7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2
ICovCm9ial90IEJnTF9hdXh6MDBfMzMxNTsKQmdMX2F1eHowMF8zMzE1ID0gCkNBUihCZ0xfY2Fy
emQyOTM4emQyXzUzMCk7IApCZ0xfdGVzdHowMF8zMzE0ID0gCihCZ0xfYXV4ejAwXzMzMTU9PUJH
bF9zeW1ib2wxOTMyejAwenpfX2V2Y29tcGlsZXowMCk7IH0gCmlmKEJnTF90ZXN0ejAwXzMzMTQp
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCmlmKApCR2xfZXF1YWx6ZjN6ZjN6el9fcjRf
ZXF1aXZhbGVuY2VfNl8yejAwKApDRFIoQmdMX2NkcnpkMjkzNXpkMl81MjgpLCBCTklMKSkKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KQmdMX3ZhcnowMF80MzcgPSAKQ0FSKEJnTF9jZHJ6
ZDI1NjB6ZDJfNDkwKTsgCkJnTF92YWx6MDBfNDM4ID0gQmdMX2NhcnpkMjkzOHpkMl81MzA7IApC
Z0xfdGFnemQyMTA4emQyXzQzOToKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTMxICovCmJvb2xf
dCBCZ0xfdGVzdDEzOTZ6MDBfNzUwOwppZigKKEJnTF93aGVyZXowMF84PT1CR2xfc3ltYm9sMTky
OHowMHp6X19ldmNvbXBpbGV6MDApKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMzIgKi8KYm9v
bF90IEJnTF9fb3J0ZXN0XzEwMDl6MDBfNzYwOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMzIg
Ki8Kb2JqX3QgQmdMX2F1eHowMF8zMzIzOwpCZ0xfYXV4ejAwXzMzMjMgPSAKQkdsX3NjaGVtZXpk
MnJlcG9ydHpkMmVudmlyb25tZW50ejAwenpfX2V2YWx6MDAoCkJJTlQoKChsb25nKTUpKSk7IApC
Z0xfX29ydGVzdF8xMDA5ejAwXzc2MCA9IAooQmdMX2dlbnZ6MDBfNz09QmdMX2F1eHowMF8zMzIz
KTsgfSAKaWYoQmdMX19vcnRlc3RfMTAwOXowMF83NjApCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDEzMiAqLwpCZ0xfdGVzdDEzOTZ6MDBfNzUwID0gQmdMX19vcnRlc3RfMTAwOXowMF83NjA7IH0g
IGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDEzMyAqLwpvYmpfdCBCZ0xfYXV4ejAwXzMz
Mjg7CkJnTF9hdXh6MDBfMzMyOCA9IApCR2xfbnVsbHpkMmVudmlyb25tZW50emQyenpfX2V2YWx6
MDAoCkJJTlQoKChsb25nKTUpKSk7IApCZ0xfdGVzdDEzOTZ6MDBfNzUwID0gCihCZ0xfZ2Vudnow
MF83PT1CZ0xfYXV4ejAwXzMzMjgpOyB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDEzMSAqLwpCZ0xfdGVzdDEzOTZ6MDBfNzUwID0gKChib29sX3QpMCk7IH0gCmlmKEJnTF90ZXN0
MTM5NnowMF83NTApCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDEzMSAqLwpyZXR1cm4gCkJHbF9l
dmNvbXBpbGV6ZDJlcnJvcnpkMnp6X19ldmNvbXBpbGV6MDAoQmdMX2xvY3owMF8xMCwgQkdsX3N0
cmluZzE5MjZ6MDB6el9fZXZjb21waWxlejAwLCBCR2xfc3RyaW5nMTkyOXowMHp6X19ldmNvbXBp
bGV6MDAsIEJnTF9leHB6MDBfNSk7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTM4
ICovCm9ial90IEJnTF9sb2N6MDBfNzUxOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMzggKi8K
Ym9vbF90IEJnTF90ZXN0MTEwMnowMF8xNzcxOwpCZ0xfdGVzdDExMDJ6MDBfMTc3MSA9IApFWFRF
TkRFRF9QQUlSUChCZ0xfZXhwejAwXzUpOyAKaWYoQmdMX3Rlc3QxMTAyejAwXzE3NzEpCnsgLyog
RXZhbC9ldmNvbXBpbGUuc2NtIDEzOCAqLwpCZ0xfbG9jejAwXzc1MSA9IApDRVIoQmdMX2V4cHow
MF81KTsgfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTM4ICovCkJnTF9sb2N6MDBf
NzUxID0gQmdMX2xvY3owMF8xMDsgfSB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMzkgKi8K
b2JqX3QgQmdMX2FyZzEzOTd6MDBfNzUyO29ial90IEJnTF9hcmcxMzk4ejAwXzc1MzsKQmdMX2Fy
ZzEzOTd6MDBfNzUyID0gCkJHbF91bnR5cGV6ZDJpZGVudHpkMnp6X19ldmNvbXBpbGV6MDAoQmdM
X3ZhcnowMF80MzcpOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTQwICovCm9ial90IEJnTF96
YzNhbm9ueW1vdXN6YTMxNDAwemUzejgzXzI5NzU7CnsgCmludCBCZ0xfYXV4ejAwXzMzNDA7aW50
IEJnTF9hdXh6MDBfMzMzODsKQmdMX2F1eHowMF8zMzQwID0gCihpbnQpKCgobG9uZyk1KSk7IApC
Z0xfYXV4ejAwXzMzMzggPSAKKGludCkoKChsb25nKTApKTsgCkJnTF96YzNhbm9ueW1vdXN6YTMx
NDAwemUzejgzXzI5NzUgPSAKbWFrZV9meF9wcm9jZWR1cmUoQkdsX3pjM2Fub255bW91c3phMzE0
MDB6ZTN6ODN6el9fZXZjb21waWxlejAwLCBCZ0xfYXV4ejAwXzMzMzgsIEJnTF9hdXh6MDBfMzM0
MCk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE0MCAqLwppbnQgQmdMX2F1eHowMF8zMzQz
OwpCZ0xfYXV4ejAwXzMzNDMgPSAKKGludCkoKChsb25nKTApKTsgClBST0NFRFVSRV9TRVQoQmdM
X3pjM2Fub255bW91c3phMzE0MDB6ZTN6ODNfMjk3NSwgQmdMX2F1eHowMF8zMzQzLCBCZ0xfZXhw
ejAwXzUpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNDAgKi8KaW50IEJnTF9hdXh6MDBf
MzM0NjsKQmdMX2F1eHowMF8zMzQ2ID0gCihpbnQpKCgobG9uZykxKSk7IApQUk9DRURVUkVfU0VU
KEJnTF96YzNhbm9ueW1vdXN6YTMxNDAwemUzejgzXzI5NzUsIEJnTF9hdXh6MDBfMzM0NiwgQmdM
X2xvY3owMF83NTEpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNDAgKi8KaW50IEJnTF9h
dXh6MDBfMzM0OTsKQmdMX2F1eHowMF8zMzQ5ID0gCihpbnQpKCgobG9uZykyKSk7IApQUk9DRURV
UkVfU0VUKEJnTF96YzNhbm9ueW1vdXN6YTMxNDAwemUzejgzXzI5NzUsIEJnTF9hdXh6MDBfMzM0
OSwgQmdMX3ZhbHowMF80MzgpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNDAgKi8KaW50
IEJnTF9hdXh6MDBfMzM1MjsKQmdMX2F1eHowMF8zMzUyID0gCihpbnQpKCgobG9uZykzKSk7IApQ
Uk9DRURVUkVfU0VUKEJnTF96YzNhbm9ueW1vdXN6YTMxNDAwemUzejgzXzI5NzUsIEJnTF9hdXh6
MDBfMzM1MiwgQmdMX2dlbnZ6MDBfNyk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE0MCAq
LwppbnQgQmdMX2F1eHowMF8zMzU1OwpCZ0xfYXV4ejAwXzMzNTUgPSAKKGludCkoKChsb25nKTQp
KTsgClBST0NFRFVSRV9TRVQoQmdMX3pjM2Fub255bW91c3phMzE0MDB6ZTN6ODNfMjk3NSwgQmdM
X2F1eHowMF8zMzU1LCBCZ0xfdmFyejAwXzQzNyk7IH0gCkJnTF9hcmcxMzk4ejAwXzc1MyA9IApC
R2xfbWFrZXpkMnByb21pc2V6ZDJ6el9fcjRfY29udHJvbF9mZWF0dXJlc182Xzl6MDAoQmdMX3pj
M2Fub255bW91c3phMzE0MDB6ZTN6ODNfMjk3NSk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDEzOSAqLwpvYmpfdCBCZ0xfdjEwMzh6MDBfMTc4MjsKeyAKaW50IEJnTF9hdXh6MDBfMzM1OTsK
QmdMX2F1eHowMF8zMzU5ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwMzh6MDBfMTc4MiA9
IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfMzM1OSk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUu
c2NtIDEzOSAqLwpvYmpfdCBCZ0xfYXJnMTUyOXowMF8xNzg0OwpCZ0xfYXJnMTUyOXowMF8xNzg0
ID0gCk1BS0VfUEFJUihCZ0xfYXJnMTM5N3owMF83NTIsIEJnTF9hcmcxMzk4ejAwXzc1Myk7IAp7
IAppbnQgQmdMX2F1eHowMF8zMzYzOwpCZ0xfYXV4ejAwXzMzNjMgPSAKKGludCkoKChsb25nKTIp
KTsgClZFQ1RPUl9TRVQoQmdMX3YxMDM4ejAwXzE3ODIsQmdMX2F1eHowMF8zMzYzLEJnTF9hcmcx
NTI5ejAwXzE3ODQpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzMzNjY7CkJnTF9hdXh6MDBfMzM2
NiA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMzh6MDBfMTc4MixCZ0xf
YXV4ejAwXzMzNjYsQmdMX2xvY3owMF83NTEpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzMzNzE7
aW50IEJnTF9hdXh6MDBfMzM2OTsKQmdMX2F1eHowMF8zMzcxID0gCkJJTlQoKChsb25nKTE3KSk7
IApCZ0xfYXV4ejAwXzMzNjkgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDM4ejAwXzE3ODIsQmdMX2F1eHowMF8zMzY5LEJnTF9hdXh6MDBfMzM3MSk7IH0gCnJldHVybiBC
Z0xfdjEwMzh6MDBfMTc4Mjt9IH0gfSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDk2ICovCm9ial90IEJnTF9jYXJ6ZDI5OTB6ZDJfNTM1OwpCZ0xfY2FyemQyOTkwemQyXzUzNSA9
IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQyOTkwemQyXzUzNSkpCnsg
Cm9ial90IEJnTF9hcmdzejAwXzMzNzk7b2JqX3QgQmdMX2Z1bnowMF8zMzc4OwpCZ0xfZnVuejAw
XzMzNzggPSBCZ0xfY2FyemQyOTkwemQyXzUzNTsgCkJnTF9hcmdzejAwXzMzNzkgPSAKQ0RSKEJn
TF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTcgPSBCZ0xfYXJnc3owMF8zMzc5OyAKQmdMX2Z1
bnowMF80NTYgPSBCZ0xfZnVuejAwXzMzNzg7IApnb3RvIEJnTF90YWd6ZDIxMTV6ZDJfNDU4O30g
IGVsc2UgCnsgCm9ial90IEJnTF9hcmdzejAwXzMzODI7b2JqX3QgQmdMX2Z1bnowMF8zMzgxOwpC
Z0xfZnVuejAwXzMzODEgPSBCZ0xfY2FyemQyOTkwemQyXzUzNTsgCkJnTF9hcmdzejAwXzMzODIg
PSAKQ0RSKEJnTF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTQgPSBCZ0xfYXJnc3owMF8zMzgy
OyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzMzODE7IApnb3RvIEJnTF90YWd6ZDIxMTR6
ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBC
Z0xfY2RyemQyMTAxMHpkMl81NDI7CkJnTF9jZHJ6ZDIxMDEwemQyXzU0MiA9IApDRFIoQmdMX2V4
cHowMF81KTsgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jZHJ6ZDIx
MDE1emQyXzU0MzsKQmdMX2NkcnpkMjEwMTV6ZDJfNTQzID0gCkNEUihCZ0xfY2RyemQyMTAxMHpk
Ml81NDIpOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NhcnpkMjEw
MTl6ZDJfNTQ0OwpCZ0xfY2FyemQyMTAxOXpkMl81NDQgPSAKQ0FSKEJnTF9jZHJ6ZDIxMDE1emQy
XzU0Myk7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2RyemQyMTAy
M3pkMl81NDU7CkJnTF9jZHJ6ZDIxMDIzemQyXzU0NSA9IApDRFIoQmdMX2NhcnpkMjEwMTl6ZDJf
NTQ0KTsgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCmJvb2xfdCBCZ0xfdGVzdHowMF8z
Mzg4Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfYXV4ejAwXzMzODk7
CkJnTF9hdXh6MDBfMzM4OSA9IApDQVIoQmdMX2NhcnpkMjEwMTl6ZDJfNTQ0KTsgCkJnTF90ZXN0
ejAwXzMzODggPSAKKEJnTF9hdXh6MDBfMzM4OT09QkdsX3N5bWJvbDE5Mzl6MDB6el9fZXZjb21w
aWxlejAwKTsgfSAKaWYoQmdMX3Rlc3R6MDBfMzM4OCkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
OTYgKi8KaWYoClBBSVJQKEJnTF9jZHJ6ZDIxMDIzemQyXzU0NSkpCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDk2ICovCm9ial90IEJnTF9jYXJ6ZDIxMDI1emQyXzU0ODsKQmdMX2NhcnpkMjEwMjV6
ZDJfNTQ4ID0gCkNBUihCZ0xfY2RyemQyMTAyM3pkMl81NDUpOyAKaWYoClBBSVJQKEJnTF9jYXJ6
ZDIxMDI1emQyXzU0OCkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCmJvb2xfdCBCZ0xf
dGVzdHowMF8zMzk3Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfYXV4
ejAwXzMzOTg7CkJnTF9hdXh6MDBfMzM5OCA9IApDQVIoQmdMX2NhcnpkMjEwMjV6ZDJfNTQ4KTsg
CkJnTF90ZXN0ejAwXzMzOTcgPSAKKEJnTF9hdXh6MDBfMzM5OD09QkdsX3N5bWJvbDE5MzJ6MDB6
el9fZXZjb21waWxlejAwKTsgfSAKaWYoQmdMX3Rlc3R6MDBfMzM5NykKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gOTYgKi8KaWYoCkJHbF9lcXVhbHpmM3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6
MDAoCkNEUihCZ0xfY2RyemQyMTAyM3pkMl81NDUpLCBCTklMKSkKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gOTYgKi8KaWYoCkJHbF9lcXVhbHpmM3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6MDAo
CkNEUihCZ0xfY2RyemQyMTAxNXpkMl81NDMpLCBCTklMKSkKeyAKb2JqX3QgQmdMX3ZhbHowMF8z
NDA5O29ial90IEJnTF92YXJ6MDBfMzQwNzsKQmdMX3ZhcnowMF8zNDA3ID0gCkNBUihCZ0xfY2Ry
emQyMTAxMHpkMl81NDIpOyAKQmdMX3ZhbHowMF8zNDA5ID0gQmdMX2NhcnpkMjEwMjV6ZDJfNTQ4
OyAKQmdMX3ZhbHowMF80MzggPSBCZ0xfdmFsejAwXzM0MDk7IApCZ0xfdmFyejAwXzQzNyA9IEJn
TF92YXJ6MDBfMzQwNzsgCmdvdG8gQmdMX3RhZ3pkMjEwOHpkMl80Mzk7fSAgZWxzZSAKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NhcnpkMjEwNzR6ZDJfNTU0OwpCZ0xf
Y2FyemQyMTA3NHpkMl81NTQgPSAKQ0FSKEJnTF9leHB6MDBfNSk7IAppZigKUEFJUlAoQmdMX2Nh
cnpkMjEwNzR6ZDJfNTU0KSkKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzQxNDtvYmpfdCBCZ0xfZnVu
ejAwXzM0MTM7CkJnTF9mdW56MDBfMzQxMyA9IEJnTF9jYXJ6ZDIxMDc0emQyXzU1NDsgCkJnTF9h
cmdzejAwXzM0MTQgPSBCZ0xfY2RyemQyMTAxMHpkMl81NDI7IApCZ0xfYXJnc3owMF80NTcgPSBC
Z0xfYXJnc3owMF8zNDE0OyAKQmdMX2Z1bnowMF80NTYgPSBCZ0xfZnVuejAwXzM0MTM7IApnb3Rv
IEJnTF90YWd6ZDIxMTV6ZDJfNDU4O30gIGVsc2UgCnsgCm9ial90IEJnTF9hcmdzejAwXzM0MTY7
b2JqX3QgQmdMX2Z1bnowMF8zNDE1OwpCZ0xfZnVuejAwXzM0MTUgPSBCZ0xfY2FyemQyMTA3NHpk
Ml81NTQ7IApCZ0xfYXJnc3owMF8zNDE2ID0gQmdMX2NkcnpkMjEwMTB6ZDJfNTQyOyAKQmdMX2Fy
Z3N6MDBfNDU0ID0gQmdMX2FyZ3N6MDBfMzQxNjsgCkJnTF9mdW56MDBfNDUzID0gQmdMX2Z1bnow
MF8zNDE1OyAKZ290byBCZ0xfdGFnemQyMTE0emQyXzQ1NTt9IH0gfSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NkcnpkMjExMDd6ZDJfNTYyOwpCZ0xfY2Ry
emQyMTEwN3pkMl81NjIgPSAKQ0RSKEJnTF9jZHJ6ZDIxMDEwemQyXzU0Mik7IAppZigKQkdsX2Vx
dWFsemYzemYzenpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMCgKQ0RSKEJnTF9jZHJ6ZDIxMTA3emQy
XzU2MiksIEJOSUwpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpCZ0xfdmFyejAwXzQ0
MCA9IApDQVIoQmdMX2NkcnpkMjEwMTB6ZDJfNTQyKTsgCkJnTF92YWx6MDBfNDQxID0gCkNBUihC
Z0xfY2RyemQyMTEwN3pkMl81NjIpOyAKQmdMX3RhZ3pkMjEwOXpkMl80NDI6CnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDE0NCAqLwpib29sX3QgQmdMX3Rlc3QxNDA3ejAwXzc2MzsKaWYoCihCZ0xf
d2hlcmV6MDBfOD09QkdsX3N5bWJvbDE5Mjh6MDB6el9fZXZjb21waWxlejAwKSkKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMTQ1ICovCmJvb2xfdCBCZ0xfX29ydGVzdF8xMDEwejAwXzc3MDsKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMTQ1ICovCm9ial90IEJnTF9hdXh6MDBfMzQyMzsKQmdMX2F1
eHowMF8zNDIzID0gCkJHbF9zY2hlbWV6ZDJyZXBvcnR6ZDJlbnZpcm9ubWVudHowMHp6X19ldmFs
ejAwKApCSU5UKCgobG9uZyk1KSkpOyAKQmdMX19vcnRlc3RfMTAxMHowMF83NzAgPSAKKEJnTF9n
ZW52ejAwXzc9PUJnTF9hdXh6MDBfMzQyMyk7IH0gCmlmKEJnTF9fb3J0ZXN0XzEwMTB6MDBfNzcw
KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNDUgKi8KQmdMX3Rlc3QxNDA3ejAwXzc2MyA9IEJn
TF9fb3J0ZXN0XzEwMTB6MDBfNzcwOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAx
NDYgKi8Kb2JqX3QgQmdMX2F1eHowMF8zNDI4OwpCZ0xfYXV4ejAwXzM0MjggPSAKQkdsX251bGx6
ZDJlbnZpcm9ubWVudHpkMnp6X19ldmFsejAwKApCSU5UKCgobG9uZyk1KSkpOyAKQmdMX3Rlc3Qx
NDA3ejAwXzc2MyA9IAooQmdMX2dlbnZ6MDBfNz09QmdMX2F1eHowMF8zNDI4KTsgfSB9ICBlbHNl
IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNDQgKi8KQmdMX3Rlc3QxNDA3ejAwXzc2MyA9ICgo
Ym9vbF90KTApOyB9IAppZihCZ0xfdGVzdDE0MDd6MDBfNzYzKQp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAxNDQgKi8KcmV0dXJuIApCR2xfZXZjb21waWxlemQyZXJyb3J6ZDJ6el9fZXZjb21waWxl
ejAwKEJnTF9sb2N6MDBfMTAsIEJHbF9zdHJpbmcxOTI2ejAwenpfX2V2Y29tcGlsZXowMCwgQkds
X3N0cmluZzE5Mjl6MDB6el9fZXZjb21waWxlejAwLCBCZ0xfZXhwejAwXzUpO30gIGVsc2UgCnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDE1MSAqLwpvYmpfdCBCZ0xfbG9jejAwXzc2NDsKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gMTUxICovCmJvb2xfdCBCZ0xfdGVzdDExMDJ6MDBfMTc5NjsKQmdM
X3Rlc3QxMTAyejAwXzE3OTYgPSAKRVhURU5ERURfUEFJUlAoQmdMX2V4cHowMF81KTsgCmlmKEJn
TF90ZXN0MTEwMnowMF8xNzk2KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNTEgKi8KQmdMX2xv
Y3owMF83NjQgPSAKQ0VSKEJnTF9leHB6MDBfNSk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDE1MSAqLwpCZ0xfbG9jejAwXzc2NCA9IEJnTF9sb2N6MDBfMTA7IH0gfSAKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gMTUyICovCm9ial90IEJnTF9hcmcxNDA4ejAwXzc2NTtvYmpfdCBC
Z0xfYXJnMTQxMHowMF83NjY7CkJnTF9hcmcxNDA4ejAwXzc2NSA9IApCR2xfdW50eXBlemQyaWRl
bnR6ZDJ6el9fZXZjb21waWxlejAwKEJnTF92YXJ6MDBfNDQwKTsgCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDE1MyAqLwpvYmpfdCBCZ0xfYXJnMTQxNnowMF83Njg7CnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDE1NCAqLwpib29sX3QgQmdMX3Rlc3QxMTAyejAwXzE4MDE7CkJnTF90ZXN0MTEwMnow
MF8xODAxID0gCkVYVEVOREVEX1BBSVJQKEJnTF92YWx6MDBfNDQxKTsgCmlmKEJnTF90ZXN0MTEw
MnowMF8xODAxKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNTQgKi8KQmdMX2FyZzE0MTZ6MDBf
NzY4ID0gCkNFUihCZ0xfdmFsejAwXzQ0MSk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUu
c2NtIDE1NCAqLwpCZ0xfYXJnMTQxNnowMF83NjggPSBCZ0xfbG9jejAwXzc2NDsgfSB9IApCZ0xf
YXJnMTQxMHowMF83NjYgPSAKQkdsX2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAoQmdMX3Zh
bHowMF80NDEsIEJOSUwsIEJnTF9nZW52ejAwXzcsIEJnTF93aGVyZXowMF84LCBCZ0xfbmFtZWR6
ZjN6ZjNfOSwgQmdMX2FyZzE0MTZ6MDBfNzY4KTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
MTUyICovCm9ial90IEJnTF92MTAzOXowMF8xODA3Owp7IAppbnQgQmdMX2F1eHowMF8zNDQyOwpC
Z0xfYXV4ejAwXzM0NDIgPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92MTAzOXowMF8xODA3ID0g
CmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF8zNDQyKTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gMTUyICovCm9ial90IEJnTF9hcmcxNTMxejAwXzE4MDk7CkJnTF9hcmcxNTMxejAwXzE4MDkg
PSAKTUFLRV9QQUlSKEJnTF9hcmcxNDA4ejAwXzc2NSwgQmdMX2FyZzE0MTB6MDBfNzY2KTsgCnsg
CmludCBCZ0xfYXV4ejAwXzM0NDY7CkJnTF9hdXh6MDBfMzQ0NiA9IAooaW50KSgoKGxvbmcpMikp
OyAKVkVDVE9SX1NFVChCZ0xfdjEwMzl6MDBfMTgwNyxCZ0xfYXV4ejAwXzM0NDYsQmdMX2FyZzE1
MzF6MDBfMTgwOSk7IH0gfSAKeyAKaW50IEJnTF9hdXh6MDBfMzQ0OTsKQmdMX2F1eHowMF8zNDQ5
ID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTAzOXowMF8xODA3LEJnTF9h
dXh6MDBfMzQ0OSxCZ0xfbG9jejAwXzc2NCk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfMzQ1NDtp
bnQgQmdMX2F1eHowMF8zNDUyOwpCZ0xfYXV4ejAwXzM0NTQgPSAKQklOVCgoKGxvbmcpNjMpKTsg
CkJnTF9hdXh6MDBfMzQ1MiA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEw
Mzl6MDBfMTgwNyxCZ0xfYXV4ejAwXzM0NTIsQmdMX2F1eHowMF8zNDU0KTsgfSAKcmV0dXJuIEJn
TF92MTAzOXowMF8xODA3O30gfSB9IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
OTYgKi8Kb2JqX3QgQmdMX2NhcnpkMjExNDV6ZDJfNTY2OwpCZ0xfY2FyemQyMTE0NXpkMl81NjYg
PSAKQ0FSKEJnTF9leHB6MDBfNSk7IAppZigKUEFJUlAoQmdMX2NhcnpkMjExNDV6ZDJfNTY2KSkK
eyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzQ2MztvYmpfdCBCZ0xfZnVuejAwXzM0NjI7CkJnTF9mdW56
MDBfMzQ2MiA9IEJnTF9jYXJ6ZDIxMTQ1emQyXzU2NjsgCkJnTF9hcmdzejAwXzM0NjMgPSAKQ0RS
KEJnTF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTcgPSBCZ0xfYXJnc3owMF8zNDYzOyAKQmdM
X2Z1bnowMF80NTYgPSBCZ0xfZnVuejAwXzM0NjI7IApnb3RvIEJnTF90YWd6ZDIxMTV6ZDJfNDU4
O30gIGVsc2UgCnsgCm9ial90IEJnTF9hcmdzejAwXzM0NjY7b2JqX3QgQmdMX2Z1bnowMF8zNDY1
OwpCZ0xfZnVuejAwXzM0NjUgPSBCZ0xfY2FyemQyMTE0NXpkMl81NjY7IApCZ0xfYXJnc3owMF8z
NDY2ID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKQmdMX2FyZ3N6MDBfNDU0ID0gQmdMX2FyZ3N6MDBf
MzQ2NjsgCkJnTF9mdW56MDBfNDUzID0gQmdMX2Z1bnowMF8zNDY1OyAKZ290byBCZ0xfdGFnemQy
MTE0emQyXzQ1NTt9IH0gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpv
YmpfdCBCZ0xfY2RyemQyMTE3OHpkMl81NzY7CkJnTF9jZHJ6ZDIxMTc4emQyXzU3NiA9IApDRFIo
QmdMX2NkcnpkMjEwMTB6ZDJfNTQyKTsgCmlmKApCR2xfZXF1YWx6ZjN6ZjN6el9fcjRfZXF1aXZh
bGVuY2VfNl8yejAwKApDRFIoQmdMX2NkcnpkMjExNzh6ZDJfNTc2KSwgQk5JTCkpCnsgCm9ial90
IEJnTF92YWx6MDBfMzQ3NDtvYmpfdCBCZ0xfdmFyejAwXzM0NzI7CkJnTF92YXJ6MDBfMzQ3MiA9
IApDQVIoQmdMX2NkcnpkMjEwMTB6ZDJfNTQyKTsgCkJnTF92YWx6MDBfMzQ3NCA9IApDQVIoQmdM
X2NkcnpkMjExNzh6ZDJfNTc2KTsgCkJnTF92YWx6MDBfNDQxID0gQmdMX3ZhbHowMF8zNDc0OyAK
QmdMX3ZhcnowMF80NDAgPSBCZ0xfdmFyejAwXzM0NzI7IApnb3RvIEJnTF90YWd6ZDIxMDl6ZDJf
NDQyO30gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jYXJ6
ZDIxMjE2emQyXzU4MDsKQmdMX2NhcnpkMjEyMTZ6ZDJfNTgwID0gCkNBUihCZ0xfZXhwejAwXzUp
OyAKaWYoClBBSVJQKEJnTF9jYXJ6ZDIxMjE2emQyXzU4MCkpCnsgCm9ial90IEJnTF9hcmdzejAw
XzM0ODA7b2JqX3QgQmdMX2Z1bnowMF8zNDc5OwpCZ0xfZnVuejAwXzM0NzkgPSBCZ0xfY2FyemQy
MTIxNnpkMl81ODA7IApCZ0xfYXJnc3owMF8zNDgwID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKQmdM
X2FyZ3N6MDBfNDU3ID0gQmdMX2FyZ3N6MDBfMzQ4MDsgCkJnTF9mdW56MDBfNDU2ID0gQmdMX2Z1
bnowMF8zNDc5OyAKZ290byBCZ0xfdGFnemQyMTE1emQyXzQ1ODt9ICBlbHNlIAp7IApvYmpfdCBC
Z0xfYXJnc3owMF8zNDgzO29ial90IEJnTF9mdW56MDBfMzQ4MjsKQmdMX2Z1bnowMF8zNDgyID0g
QmdMX2NhcnpkMjEyMTZ6ZDJfNTgwOyAKQmdMX2FyZ3N6MDBfMzQ4MyA9IApDRFIoQmdMX2V4cHow
MF81KTsgCkJnTF9hcmdzejAwXzQ1NCA9IEJnTF9hcmdzejAwXzM0ODM7IApCZ0xfZnVuejAwXzQ1
MyA9IEJnTF9mdW56MDBfMzQ4MjsgCmdvdG8gQmdMX3RhZ3pkMjExNHpkMl80NTU7fSB9IH0gfSAg
ZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NkcnpkMjEyNDl6
ZDJfNTkwOwpCZ0xfY2RyemQyMTI0OXpkMl81OTAgPSAKQ0RSKEJnTF9jZHJ6ZDIxMDEwemQyXzU0
Mik7IAppZigKQkdsX2VxdWFsemYzemYzenpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMCgKQ0RSKEJn
TF9jZHJ6ZDIxMjQ5emQyXzU5MCksIEJOSUwpKQp7IApvYmpfdCBCZ0xfdmFsejAwXzM0OTE7b2Jq
X3QgQmdMX3ZhcnowMF8zNDg5OwpCZ0xfdmFyejAwXzM0ODkgPSAKQ0FSKEJnTF9jZHJ6ZDIxMDEw
emQyXzU0Mik7IApCZ0xfdmFsejAwXzM0OTEgPSAKQ0FSKEJnTF9jZHJ6ZDIxMjQ5emQyXzU5MCk7
IApCZ0xfdmFsejAwXzQ0MSA9IEJnTF92YWx6MDBfMzQ5MTsgCkJnTF92YXJ6MDBfNDQwID0gQmdM
X3ZhcnowMF8zNDg5OyAKZ290byBCZ0xfdGFnemQyMTA5emQyXzQ0Mjt9ICBlbHNlIAp7IC8qIEV2
YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2FyemQyMTI4N3pkMl81OTQ7CkJnTF9j
YXJ6ZDIxMjg3emQyXzU5NCA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2Fy
emQyMTI4N3pkMl81OTQpKQp7IApvYmpfdCBCZ0xfYXJnc3owMF8zNDk3O29ial90IEJnTF9mdW56
MDBfMzQ5NjsKQmdMX2Z1bnowMF8zNDk2ID0gQmdMX2NhcnpkMjEyODd6ZDJfNTk0OyAKQmdMX2Fy
Z3N6MDBfMzQ5NyA9IApDRFIoQmdMX2V4cHowMF81KTsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9h
cmdzejAwXzM0OTc7IApCZ0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzQ5NjsgCmdvdG8gQmdM
X3RhZ3pkMjExNXpkMl80NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzUwMDtvYmpf
dCBCZ0xfZnVuejAwXzM0OTk7CkJnTF9mdW56MDBfMzQ5OSA9IEJnTF9jYXJ6ZDIxMjg3emQyXzU5
NDsgCkJnTF9hcmdzejAwXzM1MDAgPSAKQ0RSKEJnTF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80
NTQgPSBCZ0xfYXJnc3owMF8zNTAwOyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzM0OTk7
IApnb3RvIEJnTF90YWd6ZDIxMTR6ZDJfNDU1O30gfSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jZHJ6ZDIxMzIwemQyXzYwMjsKQmdMX2NkcnpkMjEz
MjB6ZDJfNjAyID0gCkNEUihCZ0xfY2RyemQyMTAxMHpkMl81NDIpOyAKaWYoCkJHbF9lcXVhbHpm
M3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6MDAoCkNEUihCZ0xfY2RyemQyMTMyMHpkMl82MDIp
LCBCTklMKSkKeyAKb2JqX3QgQmdMX3ZhbHowMF8zNTA4O29ial90IEJnTF92YXJ6MDBfMzUwNjsK
QmdMX3ZhcnowMF8zNTA2ID0gCkNBUihCZ0xfY2RyemQyMTAxMHpkMl81NDIpOyAKQmdMX3ZhbHow
MF8zNTA4ID0gCkNBUihCZ0xfY2RyemQyMTMyMHpkMl82MDIpOyAKQmdMX3ZhbHowMF80NDEgPSBC
Z0xfdmFsejAwXzM1MDg7IApCZ0xfdmFyejAwXzQ0MCA9IEJnTF92YXJ6MDBfMzUwNjsgCmdvdG8g
QmdMX3RhZ3pkMjEwOXpkMl80NDI7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYg
Ki8Kb2JqX3QgQmdMX2NhcnpkMjEzNTh6ZDJfNjA2OwpCZ0xfY2FyemQyMTM1OHpkMl82MDYgPSAK
Q0FSKEJnTF9leHB6MDBfNSk7IAppZigKUEFJUlAoQmdMX2NhcnpkMjEzNTh6ZDJfNjA2KSkKeyAK
b2JqX3QgQmdMX2FyZ3N6MDBfMzUxNDtvYmpfdCBCZ0xfZnVuejAwXzM1MTM7CkJnTF9mdW56MDBf
MzUxMyA9IEJnTF9jYXJ6ZDIxMzU4emQyXzYwNjsgCkJnTF9hcmdzejAwXzM1MTQgPSAKQ0RSKEJn
TF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTcgPSBCZ0xfYXJnc3owMF8zNTE0OyAKQmdMX2Z1
bnowMF80NTYgPSBCZ0xfZnVuejAwXzM1MTM7IApnb3RvIEJnTF90YWd6ZDIxMTV6ZDJfNDU4O30g
IGVsc2UgCnsgCm9ial90IEJnTF9hcmdzejAwXzM1MTc7b2JqX3QgQmdMX2Z1bnowMF8zNTE2OwpC
Z0xfZnVuejAwXzM1MTYgPSBCZ0xfY2FyemQyMTM1OHpkMl82MDY7IApCZ0xfYXJnc3owMF8zNTE3
ID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKQmdMX2FyZ3N6MDBfNDU0ID0gQmdMX2FyZ3N6MDBfMzUx
NzsgCkJnTF9mdW56MDBfNDUzID0gQmdMX2Z1bnowMF8zNTE2OyAKZ290byBCZ0xfdGFnemQyMTE0
emQyXzQ1NTt9IH0gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpf
dCBCZ0xfY2RyemQyMTM5MXpkMl82MTQ7CkJnTF9jZHJ6ZDIxMzkxemQyXzYxNCA9IApDRFIoQmdM
X2NkcnpkMjEwMTB6ZDJfNTQyKTsgCmlmKApCR2xfZXF1YWx6ZjN6ZjN6el9fcjRfZXF1aXZhbGVu
Y2VfNl8yejAwKApDRFIoQmdMX2NkcnpkMjEzOTF6ZDJfNjE0KSwgQk5JTCkpCnsgCm9ial90IEJn
TF92YWx6MDBfMzUyNTtvYmpfdCBCZ0xfdmFyejAwXzM1MjM7CkJnTF92YXJ6MDBfMzUyMyA9IApD
QVIoQmdMX2NkcnpkMjEwMTB6ZDJfNTQyKTsgCkJnTF92YWx6MDBfMzUyNSA9IApDQVIoQmdMX2Nk
cnpkMjEzOTF6ZDJfNjE0KTsgCkJnTF92YWx6MDBfNDQxID0gQmdMX3ZhbHowMF8zNTI1OyAKQmdM
X3ZhcnowMF80NDAgPSBCZ0xfdmFyejAwXzM1MjM7IApnb3RvIEJnTF90YWd6ZDIxMDl6ZDJfNDQy
O30gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jYXJ6ZDIx
NDI5emQyXzYxODsKQmdMX2NhcnpkMjE0Mjl6ZDJfNjE4ID0gCkNBUihCZ0xfZXhwejAwXzUpOyAK
aWYoClBBSVJQKEJnTF9jYXJ6ZDIxNDI5emQyXzYxOCkpCnsgCm9ial90IEJnTF9hcmdzejAwXzM1
MzE7b2JqX3QgQmdMX2Z1bnowMF8zNTMwOwpCZ0xfZnVuejAwXzM1MzAgPSBCZ0xfY2FyemQyMTQy
OXpkMl82MTg7IApCZ0xfYXJnc3owMF8zNTMxID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKQmdMX2Fy
Z3N6MDBfNDU3ID0gQmdMX2FyZ3N6MDBfMzUzMTsgCkJnTF9mdW56MDBfNDU2ID0gQmdMX2Z1bnow
MF8zNTMwOyAKZ290byBCZ0xfdGFnemQyMTE1emQyXzQ1ODt9ICBlbHNlIAp7IApvYmpfdCBCZ0xf
YXJnc3owMF8zNTM0O29ial90IEJnTF9mdW56MDBfMzUzMzsKQmdMX2Z1bnowMF8zNTMzID0gQmdM
X2NhcnpkMjE0Mjl6ZDJfNjE4OyAKQmdMX2FyZ3N6MDBfMzUzNCA9IApDRFIoQmdMX2V4cHowMF81
KTsgCkJnTF9hcmdzejAwXzQ1NCA9IEJnTF9hcmdzejAwXzM1MzQ7IApCZ0xfZnVuejAwXzQ1MyA9
IEJnTF9mdW56MDBfMzUzMzsgCmdvdG8gQmdMX3RhZ3pkMjExNHpkMl80NTU7fSB9IH0gfSB9IH0g
fSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jZHJ6
ZDIxNDYwemQyXzYyOTsKQmdMX2NkcnpkMjE0NjB6ZDJfNjI5ID0gCkNEUihCZ0xfZXhwejAwXzUp
OyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NkcnpkMjE0NjV6ZDJf
NjMwOwpCZ0xfY2RyemQyMTQ2NXpkMl82MzAgPSAKQ0RSKEJnTF9jZHJ6ZDIxNDYwemQyXzYyOSk7
IAppZigKQkdsX2VxdWFsemYzemYzenpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMCgKQ0RSKEJnTF9j
ZHJ6ZDIxNDY1emQyXzYzMCksIEJOSUwpKQp7IApvYmpfdCBCZ0xfdmFsejAwXzM1NDM7b2JqX3Qg
QmdMX3ZhcnowMF8zNTQxOwpCZ0xfdmFyejAwXzM1NDEgPSAKQ0FSKEJnTF9jZHJ6ZDIxNDYwemQy
XzYyOSk7IApCZ0xfdmFsejAwXzM1NDMgPSAKQ0FSKEJnTF9jZHJ6ZDIxNDY1emQyXzYzMCk7IApC
Z0xfdmFsejAwXzQ0MSA9IEJnTF92YWx6MDBfMzU0MzsgCkJnTF92YXJ6MDBfNDQwID0gQmdMX3Zh
cnowMF8zNTQxOyAKZ290byBCZ0xfdGFnemQyMTA5emQyXzQ0Mjt9ICBlbHNlIAp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2FyemQyMTUwM3pkMl82MzQ7CkJnTF9jYXJ6
ZDIxNTAzemQyXzYzNCA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQy
MTUwM3pkMl82MzQpKQp7IApvYmpfdCBCZ0xfYXJnc3owMF8zNTQ5O29ial90IEJnTF9mdW56MDBf
MzU0ODsKQmdMX2Z1bnowMF8zNTQ4ID0gQmdMX2NhcnpkMjE1MDN6ZDJfNjM0OyAKQmdMX2FyZ3N6
MDBfMzU0OSA9IEJnTF9jZHJ6ZDIxNDYwemQyXzYyOTsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9h
cmdzejAwXzM1NDk7IApCZ0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzU0ODsgCmdvdG8gQmdM
X3RhZ3pkMjExNXpkMl80NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzU1MTtvYmpf
dCBCZ0xfZnVuejAwXzM1NTA7CkJnTF9mdW56MDBfMzU1MCA9IEJnTF9jYXJ6ZDIxNTAzemQyXzYz
NDsgCkJnTF9hcmdzejAwXzM1NTEgPSBCZ0xfY2RyemQyMTQ2MHpkMl82Mjk7IApCZ0xfYXJnc3ow
MF80NTQgPSBCZ0xfYXJnc3owMF8zNTUxOyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzM1
NTA7IApnb3RvIEJnTF90YWd6ZDIxMTR6ZDJfNDU1O30gfSB9IH0gfSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NhcnpkMjE1NjR6ZDJfNjQxOwpCZ0xfY2Fy
emQyMTU2NHpkMl82NDEgPSAKQ0FSKEJnTF9leHB6MDBfNSk7IAppZigKUEFJUlAoQmdMX2Nhcnpk
MjE1NjR6ZDJfNjQxKSkKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzU1NjtvYmpfdCBCZ0xfZnVuejAw
XzM1NTU7CkJnTF9mdW56MDBfMzU1NSA9IEJnTF9jYXJ6ZDIxNTY0emQyXzY0MTsgCkJnTF9hcmdz
ejAwXzM1NTYgPSAKQ0RSKEJnTF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTcgPSBCZ0xfYXJn
c3owMF8zNTU2OyAKQmdMX2Z1bnowMF80NTYgPSBCZ0xfZnVuejAwXzM1NTU7IApnb3RvIEJnTF90
YWd6ZDIxMTV6ZDJfNDU4O30gIGVsc2UgCnsgCm9ial90IEJnTF9hcmdzejAwXzM1NTk7b2JqX3Qg
QmdMX2Z1bnowMF8zNTU4OwpCZ0xfZnVuejAwXzM1NTggPSBCZ0xfY2FyemQyMTU2NHpkMl82NDE7
IApCZ0xfYXJnc3owMF8zNTU5ID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKQmdMX2FyZ3N6MDBfNDU0
ID0gQmdMX2FyZ3N6MDBfMzU1OTsgCkJnTF9mdW56MDBfNDUzID0gQmdMX2Z1bnowMF8zNTU4OyAK
Z290byBCZ0xfdGFnemQyMTE0emQyXzQ1NTt9IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NhcnpkMjE2MjN6ZDJfNjQ2OwpCZ0xfY2FyemQyMTYyM3pk
Ml82NDYgPSAKQ0FSKEJnTF9leHB6MDBfNSk7IAppZigKUEFJUlAoQmdMX2NhcnpkMjE2MjN6ZDJf
NjQ2KSkKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzU2NTtvYmpfdCBCZ0xfZnVuejAwXzM1NjQ7CkJn
TF9mdW56MDBfMzU2NCA9IEJnTF9jYXJ6ZDIxNjIzemQyXzY0NjsgCkJnTF9hcmdzejAwXzM1NjUg
PSAKQ0RSKEJnTF9leHB6MDBfNSk7IApCZ0xfYXJnc3owMF80NTcgPSBCZ0xfYXJnc3owMF8zNTY1
OyAKQmdMX2Z1bnowMF80NTYgPSBCZ0xfZnVuejAwXzM1NjQ7IApnb3RvIEJnTF90YWd6ZDIxMTV6
ZDJfNDU4O30gIGVsc2UgCnsgCm9ial90IEJnTF9hcmdzejAwXzM1Njg7b2JqX3QgQmdMX2Z1bnow
MF8zNTY3OwpCZ0xfZnVuejAwXzM1NjcgPSBCZ0xfY2FyemQyMTYyM3pkMl82NDY7IApCZ0xfYXJn
c3owMF8zNTY4ID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKQmdMX2FyZ3N6MDBfNDU0ID0gQmdMX2Fy
Z3N6MDBfMzU2ODsgCkJnTF9mdW56MDBfNDUzID0gQmdMX2Z1bnowMF8zNTY3OyAKZ290byBCZ0xf
dGFnemQyMTE0emQyXzQ1NTt9IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYg
Ki8KYm9vbF90IEJnTF90ZXN0ejAwXzM1NzA7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICov
Cm9ial90IEJnTF9hdXh6MDBfMzU3MTsKQmdMX2F1eHowMF8zNTcxID0gCkNBUihCZ0xfZXhwejAw
XzUpOyAKQmdMX3Rlc3R6MDBfMzU3MCA9IAooQmdMX2F1eHowMF8zNTcxPT1CR2xfc3ltYm9sMTk0
MXowMHp6X19ldmNvbXBpbGV6MDApOyB9IAppZihCZ0xfdGVzdHowMF8zNTcwKQp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA5NiAqLwppZigKUEFJUlAoQmdMX2V4cHowMF81KSkKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NkcnpkMjE5NTR6ZDJfNzc5OwpCZ0xfY2RyemQy
MTk1NHpkMl83NzkgPSAKQ0RSKEJnTF9leHB6MDBfNSk7IAppZigKUEFJUlAoQmdMX2NkcnpkMjE5
NTR6ZDJfNzc5KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2Nhcnpk
MjE5NTd6ZDJfNzgxO29ial90IEJnTF9jZHJ6ZDIxOTU4emQyXzc4MjsKQmdMX2NhcnpkMjE5NTd6
ZDJfNzgxID0gCkNBUihCZ0xfY2RyemQyMTk1NHpkMl83NzkpOyAKQmdMX2NkcnpkMjE5NTh6ZDJf
NzgyID0gCkNEUihCZ0xfY2RyemQyMTk1NHpkMl83NzkpOyAKaWYoClNZTUJPTFAoQmdMX2Nhcnpk
MjE5NTd6ZDJfNzgxKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KaWYoClBBSVJQKEJn
TF9jZHJ6ZDIxOTU4emQyXzc4MikpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCmlmKApC
R2xfZXF1YWx6ZjN6ZjN6el9fcjRfZXF1aXZhbGVuY2VfNl8yejAwKApDRFIoQmdMX2NkcnpkMjE5
NTh6ZDJfNzgyKSwgQk5JTCkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJn
TF9hcmcxNDI1ejAwXzc4NjsKQmdMX2FyZzE0MjV6MDBfNzg2ID0gCkNBUihCZ0xfY2RyemQyMTk1
OHpkMl83ODIpOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2xvY3ow
MF8xODMwOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpib29sX3QgQmdMX3Rlc3QxMTAy
ejAwXzE4MzY7CkJnTF90ZXN0MTEwMnowMF8xODM2ID0gCkVYVEVOREVEX1BBSVJQKEJnTF9leHB6
MDBfNSk7IAppZihCZ0xfdGVzdDExMDJ6MDBfMTgzNikKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
OTYgKi8KQmdMX2xvY3owMF8xODMwID0gCkNFUihCZ0xfZXhwejAwXzUpOyB9ICBlbHNlIAp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpCZ0xfbG9jejAwXzE4MzAgPSBCZ0xfbG9jejAwXzEw
OyB9IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9hcmcxNDI4ejAw
XzE4MzE7b2JqX3QgQmdMX2FyZzE0Mjl6MDBfMTgzMjsKQmdMX2FyZzE0Mjh6MDBfMTgzMSA9IApC
R2xfdmFyaWFibGV6MDB6el9fZXZjb21waWxlejAwKEJnTF9sb2N6MDBfMTgzMCwgQmdMX2Nhcnpk
MjE5NTd6ZDJfNzgxLCBCZ0xfZW52ejAwXzYsIEJnTF9nZW52ejAwXzcpOyAKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2FyZzE0MzB6MDBfMTgzMzsKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gOTYgKi8KYm9vbF90IEJnTF90ZXN0MTEwMnowMF8xODQxOwpCZ0xfdGVzdDEx
MDJ6MDBfMTg0MSA9IApFWFRFTkRFRF9QQUlSUChCZ0xfYXJnMTQyNXowMF83ODYpOyAKaWYoQmdM
X3Rlc3QxMTAyejAwXzE4NDEpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCkJnTF9hcmcx
NDMwejAwXzE4MzMgPSAKQ0VSKEJnTF9hcmcxNDI1ejAwXzc4Nik7IH0gIGVsc2UgCnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDk2ICovCkJnTF9hcmcxNDMwejAwXzE4MzMgPSBCZ0xfbG9jejAwXzE4
MzA7IH0gfSAKQmdMX2FyZzE0Mjl6MDBfMTgzMiA9IApCR2xfZXZjb21waWxlejAwenpfX2V2Y29t
cGlsZXowMChCZ0xfYXJnMTQyNXowMF83ODYsIEJnTF9lbnZ6MDBfNiwgQmdMX2dlbnZ6MDBfNywg
QmdMX2NhcnpkMjE5NTd6ZDJfNzgxLCBCVFJVRSwgQmdMX2FyZzE0MzB6MDBfMTgzMyk7IH0gCnJl
dHVybiAKQkdsX2V2Y29tcGlsZXpkMnNldHpkMnp6X19ldmNvbXBpbGV6MDAoQmdMX2FyZzE0Mjh6
MDBfMTgzMSwgQmdMX2FyZzE0Mjl6MDBfMTgzMiwgQmdMX2xvY3owMF8xODMwKTt9IH0gfSAgZWxz
ZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KRkFJTFVSRShCR2xfc3RyaW5nMTkzMHow
MHp6X19ldmNvbXBpbGV6MDAsQkdsX3N0cmluZzE5MzF6MDB6el9fZXZjb21waWxlejAwLEJnTF9l
eHB6MDBfNSk7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpGQUlMVVJF
KEJHbF9zdHJpbmcxOTMwejAwenpfX2V2Y29tcGlsZXowMCxCR2xfc3RyaW5nMTkzMXowMHp6X19l
dmNvbXBpbGV6MDAsQmdMX2V4cHowMF81KTt9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUu
c2NtIDk2ICovCkZBSUxVUkUoQkdsX3N0cmluZzE5MzB6MDB6el9fZXZjb21waWxlejAwLEJHbF9z
dHJpbmcxOTMxejAwenpfX2V2Y29tcGlsZXowMCxCZ0xfZXhwejAwXzUpO30gfSAgZWxzZSAKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KRkFJTFVSRShCR2xfc3RyaW5nMTkzMHowMHp6X19l
dmNvbXBpbGV6MDAsQkdsX3N0cmluZzE5MzF6MDB6el9fZXZjb21waWxlejAwLEJnTF9leHB6MDBf
NSk7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpGQUlMVVJFKEJHbF9z
dHJpbmcxOTMwejAwenpfX2V2Y29tcGlsZXowMCxCR2xfc3RyaW5nMTkzMXowMHp6X19ldmNvbXBp
bGV6MDAsQmdMX2V4cHowMF81KTt9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2
ICovCm9ial90IEJnTF9jZHJ6ZDIxNjY4emQyXzY1MjsKQmdMX2NkcnpkMjE2Njh6ZDJfNjUyID0g
CkNEUihCZ0xfZXhwejAwXzUpOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KYm9vbF90
IEJnTF90ZXN0ejAwXzM2MDQ7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJn
TF9hdXh6MDBfMzYwNTsKQmdMX2F1eHowMF8zNjA1ID0gCkNBUihCZ0xfZXhwejAwXzUpOyAKQmdM
X3Rlc3R6MDBfMzYwNCA9IAooQmdMX2F1eHowMF8zNjA1PT1CR2xfc3ltYm9sMTk0MnowMHp6X19l
dmNvbXBpbGV6MDApOyB9IAppZihCZ0xfdGVzdHowMF8zNjA0KQp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSA5NiAqLwppZigKUEFJUlAoQmdMX2NkcnpkMjE2Njh6ZDJfNjUyKSkKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NkcnpkMjE2NzJ6ZDJfNjU1OwpCZ0xfY2RyemQy
MTY3MnpkMl82NTUgPSAKQ0RSKEJnTF9jZHJ6ZDIxNjY4emQyXzY1Mik7IAppZigKUEFJUlAoQmdM
X2NkcnpkMjE2NzJ6ZDJfNjU1KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KaWYoCkJH
bF9lcXVhbHpmM3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6MDAoCkNEUihCZ0xfY2RyemQyMTY3
MnpkMl82NTUpLCBCTklMKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8KQmdMX2VzY2Fw
ZXowMF80NDQgPSAKQ0FSKEJnTF9jZHJ6ZDIxNjY4emQyXzY1Mik7IApCZ0xfYm9keXowMF80NDUg
PSAKQ0FSKEJnTF9jZHJ6ZDIxNjcyemQyXzY1NSk7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAx
NjYgKi8Kb2JqX3QgQmdMX2xvY3owMF83OTM7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE2NiAq
Lwpib29sX3QgQmdMX3Rlc3QxMTAyejAwXzE4Nzg7CkJnTF90ZXN0MTEwMnowMF8xODc4ID0gCkVY
VEVOREVEX1BBSVJQKEJnTF9leHB6MDBfNSk7IAppZihCZ0xfdGVzdDExMDJ6MDBfMTg3OCkKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMTY2ICovCkJnTF9sb2N6MDBfNzkzID0gCkNFUihCZ0xfZXhw
ejAwXzUpOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNjYgKi8KQmdMX2xvY3ow
MF83OTMgPSBCZ0xfbG9jejAwXzEwOyB9IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE2NyAq
LwpvYmpfdCBCZ0xfYXJnMTQzMXowMF83OTQ7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE2NyAq
LwpvYmpfdCBCZ0xfYXJnMTQzMnowMF83OTU7b2JqX3QgQmdMX2FyZzE0MzR6MDBfNzk2Owp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAxNjcgKi8Kb2JqX3QgQmdMX2FyZzE0MzZ6MDBfNzk3O29ial90
IEJnTF9hcmcxNDM3ejAwXzc5ODsKQmdMX2FyZzE0MzZ6MDBfNzk3ID0gQkdsX3N5bWJvbDE5MzJ6
MDB6el9fZXZjb21waWxlejAwOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTY3ICovCm9ial90
IEJnTF9hcmcxNDM4ejAwXzc5OTsKQmdMX2FyZzE0Mzh6MDBfNzk5ID0gCk1BS0VfUEFJUihCZ0xf
Ym9keXowMF80NDUsIEJOSUwpOyAKQmdMX2FyZzE0Mzd6MDBfNzk4ID0gCk1BS0VfUEFJUihCZ0xf
ZXNjYXBlejAwXzQ0NCwgQmdMX2FyZzE0Mzh6MDBfNzk5KTsgfSAKQmdMX2FyZzE0MzJ6MDBfNzk1
ID0gCk1BS0VfUEFJUihCZ0xfYXJnMTQzNnowMF83OTcsIEJnTF9hcmcxNDM3ejAwXzc5OCk7IH0g
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE3MiAqLwpib29sX3QgQmdMX3Rlc3QxMTAyejAwXzE4
ODM7CkJnTF90ZXN0MTEwMnowMF8xODgzID0gCkVYVEVOREVEX1BBSVJQKEJnTF9ib2R5ejAwXzQ0
NSk7IAppZihCZ0xfdGVzdDExMDJ6MDBfMTg4MykKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTcy
ICovCkJnTF9hcmcxNDM0ejAwXzc5NiA9IApDRVIoQmdMX2JvZHl6MDBfNDQ1KTsgfSAgZWxzZSAK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTcyICovCkJnTF9hcmcxNDM0ejAwXzc5NiA9IEJnTF9s
b2N6MDBfNzkzOyB9IH0gCkJnTF9hcmcxNDMxejAwXzc5NCA9IApCR2xfZXZjb21waWxlejAwenpf
X2V2Y29tcGlsZXowMChCZ0xfYXJnMTQzMnowMF83OTUsIEJnTF9lbnZ6MDBfNiwgQmdMX2dlbnZ6
MDBfNywgQmdMX2VzY2FwZXowMF80NDQsIEJUUlVFLCBCZ0xfYXJnMTQzNHowMF83OTYpOyB9IAp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNjcgKi8Kb2JqX3QgQmdMX3YxMDQwejAwXzE4ODg7Cnsg
CmludCBCZ0xfYXV4ejAwXzM2MjY7CkJnTF9hdXh6MDBfMzYyNiA9IAooaW50KSgoKGxvbmcpMykp
OyAKQmdMX3YxMDQwejAwXzE4ODggPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzM2MjYpOyB9
IAp7IAppbnQgQmdMX2F1eHowMF8zNjI5OwpCZ0xfYXV4ejAwXzM2MjkgPSAKKGludCkoKChsb25n
KTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDQwejAwXzE4ODgsQmdMX2F1eHowMF8zNjI5LEJnTF9h
cmcxNDMxejAwXzc5NCk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM2MzI7CkJnTF9hdXh6MDBfMzYz
MiA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDB6MDBfMTg4OCxCZ0xf
YXV4ejAwXzM2MzIsQmdMX2xvY3owMF83OTMpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzM2Mzc7
aW50IEJnTF9hdXh6MDBfMzYzNTsKQmdMX2F1eHowMF8zNjM3ID0gCkJJTlQoKChsb25nKTE4KSk7
IApCZ0xfYXV4ejAwXzM2MzUgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDQwejAwXzE4ODgsQmdMX2F1eHowMF8zNjM1LEJnTF9hdXh6MDBfMzYzNyk7IH0gCnJldHVybiBC
Z0xfdjEwNDB6MDBfMTg4ODt9IH0gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5
NiAqLwpvYmpfdCBCZ0xfY2FyemQyMTY5NXpkMl82NjA7CkJnTF9jYXJ6ZDIxNjk1emQyXzY2MCA9
IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQyMTY5NXpkMl82NjApKQp7
IApvYmpfdCBCZ0xfYXJnc3owMF8zNjQ2O29ial90IEJnTF9mdW56MDBfMzY0NTsKQmdMX2Z1bnow
MF8zNjQ1ID0gQmdMX2NhcnpkMjE2OTV6ZDJfNjYwOyAKQmdMX2FyZ3N6MDBfMzY0NiA9IEJnTF9j
ZHJ6ZDIxNjY4emQyXzY1MjsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9hcmdzejAwXzM2NDY7IApC
Z0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzY0NTsgCmdvdG8gQmdMX3RhZ3pkMjExNXpkMl80
NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzY0ODtvYmpfdCBCZ0xfZnVuejAwXzM2
NDc7CkJnTF9mdW56MDBfMzY0NyA9IEJnTF9jYXJ6ZDIxNjk1emQyXzY2MDsgCkJnTF9hcmdzejAw
XzM2NDggPSBCZ0xfY2RyemQyMTY2OHpkMl82NTI7IApCZ0xfYXJnc3owMF80NTQgPSBCZ0xfYXJn
c3owMF8zNjQ4OyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzM2NDc7IApnb3RvIEJnTF90
YWd6ZDIxMTR6ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAq
LwpvYmpfdCBCZ0xfY2FyemQyMTcyOHpkMl82Njc7CkJnTF9jYXJ6ZDIxNzI4emQyXzY2NyA9IApD
QVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQyMTcyOHpkMl82NjcpKQp7IApv
YmpfdCBCZ0xfYXJnc3owMF8zNjUzO29ial90IEJnTF9mdW56MDBfMzY1MjsKQmdMX2Z1bnowMF8z
NjUyID0gQmdMX2NhcnpkMjE3Mjh6ZDJfNjY3OyAKQmdMX2FyZ3N6MDBfMzY1MyA9IEJnTF9jZHJ6
ZDIxNjY4emQyXzY1MjsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9hcmdzejAwXzM2NTM7IApCZ0xf
ZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzY1MjsgCmdvdG8gQmdMX3RhZ3pkMjExNXpkMl80NTg7
fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzY1NTtvYmpfdCBCZ0xfZnVuejAwXzM2NTQ7
CkJnTF9mdW56MDBfMzY1NCA9IEJnTF9jYXJ6ZDIxNzI4emQyXzY2NzsgCkJnTF9hcmdzejAwXzM2
NTUgPSBCZ0xfY2RyemQyMTY2OHpkMl82NTI7IApCZ0xfYXJnc3owMF80NTQgPSBCZ0xfYXJnc3ow
MF8zNjU1OyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzM2NTQ7IApnb3RvIEJnTF90YWd6
ZDIxMTR6ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpv
YmpfdCBCZ0xfY2FyemQyMTc2MXpkMl82NzI7CkJnTF9jYXJ6ZDIxNzYxemQyXzY3MiA9IApDQVIo
QmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQyMTc2MXpkMl82NzIpKQp7IApvYmpf
dCBCZ0xfYXJnc3owMF8zNjYwO29ial90IEJnTF9mdW56MDBfMzY1OTsKQmdMX2Z1bnowMF8zNjU5
ID0gQmdMX2NhcnpkMjE3NjF6ZDJfNjcyOyAKQmdMX2FyZ3N6MDBfMzY2MCA9IEJnTF9jZHJ6ZDIx
NjY4emQyXzY1MjsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9hcmdzejAwXzM2NjA7IApCZ0xfZnVu
ejAwXzQ1NiA9IEJnTF9mdW56MDBfMzY1OTsgCmdvdG8gQmdMX3RhZ3pkMjExNXpkMl80NTg7fSAg
ZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzY2MjtvYmpfdCBCZ0xfZnVuejAwXzM2NjE7CkJn
TF9mdW56MDBfMzY2MSA9IEJnTF9jYXJ6ZDIxNzYxemQyXzY3MjsgCkJnTF9hcmdzejAwXzM2NjIg
PSBCZ0xfY2RyemQyMTY2OHpkMl82NTI7IApCZ0xfYXJnc3owMF80NTQgPSBCZ0xfYXJnc3owMF8z
NjYyOyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzM2NjE7IApnb3RvIEJnTF90YWd6ZDIx
MTR6ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpib29s
X3QgQmdMX3Rlc3R6MDBfMzY2MzsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3Qg
QmdMX2F1eHowMF8zNjY0OwpCZ0xfYXV4ejAwXzM2NjQgPSAKQ0FSKEJnTF9leHB6MDBfNSk7IApC
Z0xfdGVzdHowMF8zNjYzID0gCihCZ0xfYXV4ejAwXzM2NjQ9PUJHbF9zeW1ib2wxOTQzejAwenpf
X2V2Y29tcGlsZXowMCk7IH0gCmlmKEJnTF90ZXN0ejAwXzM2NjMpCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDk2ICovCmlmKApQQUlSUChCZ0xfY2RyemQyMTY2OHpkMl82NTIpKQp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA5NiAqLwpCZ0xfYm9keXowMF80NDcgPSAKQ0FSKEJnTF9jZHJ6ZDIxNjY4
emQyXzY1Mik7IApCZ0xfcHJvdGVjdHowMF80NDggPSAKQ0RSKEJnTF9jZHJ6ZDIxNjY4emQyXzY1
Mik7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNzUgKi8Kb2JqX3QgQmdMX2xvY3owMF84MDA7
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE3NSAqLwpib29sX3QgQmdMX3Rlc3QxMTAyejAwXzE5
MDA7CkJnTF90ZXN0MTEwMnowMF8xOTAwID0gCkVYVEVOREVEX1BBSVJQKEJnTF9leHB6MDBfNSk7
IAppZihCZ0xfdGVzdDExMDJ6MDBfMTkwMCkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTc1ICov
CkJnTF9sb2N6MDBfODAwID0gCkNFUihCZ0xfZXhwejAwXzUpOyB9ICBlbHNlIAp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAxNzUgKi8KQmdMX2xvY3owMF84MDAgPSBCZ0xfbG9jejAwXzEwOyB9IH0g
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE3NyAqLwpvYmpfdCBCZ0xfYXJnMTQzOXowMF84MDE7
b2JqX3QgQmdMX2FyZzE0NDB6MDBfODAyOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNzcgKi8K
b2JqX3QgQmdMX2FyZzE0NDF6MDBfODAzOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNzcgKi8K
Ym9vbF90IEJnTF90ZXN0MTEwMnowMF8xOTA1OwpCZ0xfdGVzdDExMDJ6MDBfMTkwNSA9IApFWFRF
TkRFRF9QQUlSUChCZ0xfYm9keXowMF80NDcpOyAKaWYoQmdMX3Rlc3QxMTAyejAwXzE5MDUpCnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDE3NyAqLwpCZ0xfYXJnMTQ0MXowMF84MDMgPSAKQ0VSKEJn
TF9ib2R5ejAwXzQ0Nyk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE3NyAqLwpC
Z0xfYXJnMTQ0MXowMF84MDMgPSBCZ0xfbG9jejAwXzgwMDsgfSB9IApCZ0xfYXJnMTQzOXowMF84
MDEgPSAKQkdsX2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAoQmdMX2JvZHl6MDBfNDQ3LCBC
Z0xfZW52ejAwXzYsIEJnTF9nZW52ejAwXzcsIEJnTF93aGVyZXowMF84LCBCZ0xfbmFtZWR6ZjN6
ZjNfOSwgQmdMX2FyZzE0NDF6MDBfODAzKTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTgw
ICovCm9ial90IEJnTF9hcmcxNDQzejAwXzgwNDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTgw
ICovCmJvb2xfdCBCZ0xfdGVzdDExMDJ6MDBfMTkxMDsKQmdMX3Rlc3QxMTAyejAwXzE5MTAgPSAK
RVhURU5ERURfUEFJUlAoQmdMX3Byb3RlY3R6MDBfNDQ4KTsgCmlmKEJnTF90ZXN0MTEwMnowMF8x
OTEwKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxODAgKi8KQmdMX2FyZzE0NDN6MDBfODA0ID0g
CkNFUihCZ0xfcHJvdGVjdHowMF80NDgpOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNj
bSAxODAgKi8KQmdMX2FyZzE0NDN6MDBfODA0ID0gQmdMX2xvY3owMF84MDA7IH0gfSAKQmdMX2Fy
ZzE0NDB6MDBfODAyID0gCkJHbF9ldmNvbXBpbGV6ZDJiZWdpbnpkMnp6X19ldmNvbXBpbGV6MDAo
QmdMX3Byb3RlY3R6MDBfNDQ4LCBCZ0xfZW52ejAwXzYsIEJnTF9nZW52ejAwXzcsIEJnTF93aGVy
ZXowMF84LCBCZ0xfbmFtZWR6ZjN6ZjNfOSwgQmdMX2FyZzE0NDN6MDBfODA0KTsgfSAKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gMTc2ICovCm9ial90IEJnTF92MTA0MXowMF8xOTE2Owp7IAppbnQg
QmdMX2F1eHowMF8zNjgwOwpCZ0xfYXV4ejAwXzM2ODAgPSAKKGludCkoKChsb25nKTMpKTsgCkJn
TF92MTA0MXowMF8xOTE2ID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF8zNjgwKTsgfSAKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMTc2ICovCm9ial90IEJnTF9hcmcxNTMzejAwXzE5MTg7CkJn
TF9hcmcxNTMzejAwXzE5MTggPSAKTUFLRV9QQUlSKEJnTF9hcmcxNDM5ejAwXzgwMSwgQmdMX2Fy
ZzE0NDB6MDBfODAyKTsgCnsgCmludCBCZ0xfYXV4ejAwXzM2ODQ7CkJnTF9hdXh6MDBfMzY4NCA9
IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDF6MDBfMTkxNixCZ0xfYXV4
ejAwXzM2ODQsQmdMX2FyZzE1MzN6MDBfMTkxOCk7IH0gfSAKeyAKaW50IEJnTF9hdXh6MDBfMzY4
NzsKQmdMX2F1eHowMF8zNjg3ID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92
MTA0MXowMF8xOTE2LEJnTF9hdXh6MDBfMzY4NyxCZ0xfbG9jejAwXzgwMCk7IH0gCnsgCm9ial90
IEJnTF9hdXh6MDBfMzY5MjtpbnQgQmdMX2F1eHowMF8zNjkwOwpCZ0xfYXV4ejAwXzM2OTIgPSAK
QklOVCgoKGxvbmcpNjQpKTsgCkJnTF9hdXh6MDBfMzY5MCA9IAooaW50KSgoKGxvbmcpMCkpOyAK
VkVDVE9SX1NFVChCZ0xfdjEwNDF6MDBfMTkxNixCZ0xfYXV4ejAwXzM2OTAsQmdMX2F1eHowMF8z
NjkyKTsgfSAKcmV0dXJuIEJnTF92MTA0MXowMF8xOTE2O30gfSB9IH0gIGVsc2UgCnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDk2ICovCm9ial90IEJnTF9jYXJ6ZDIxODAyemQyXzY4MjsKQmdMX2Nh
cnpkMjE4MDJ6ZDJfNjgyID0gCkNBUihCZ0xfZXhwejAwXzUpOyAKaWYoClBBSVJQKEJnTF9jYXJ6
ZDIxODAyemQyXzY4MikpCnsgCm9ial90IEJnTF9hcmdzejAwXzM3MDE7b2JqX3QgQmdMX2Z1bnow
MF8zNzAwOwpCZ0xfZnVuejAwXzM3MDAgPSBCZ0xfY2FyemQyMTgwMnpkMl82ODI7IApCZ0xfYXJn
c3owMF8zNzAxID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKQmdMX2FyZ3N6MDBfNDU3ID0gQmdMX2Fy
Z3N6MDBfMzcwMTsgCkJnTF9mdW56MDBfNDU2ID0gQmdMX2Z1bnowMF8zNzAwOyAKZ290byBCZ0xf
dGFnemQyMTE1emQyXzQ1ODt9ICBlbHNlIAp7IApvYmpfdCBCZ0xfYXJnc3owMF8zNzA0O29ial90
IEJnTF9mdW56MDBfMzcwMzsKQmdMX2Z1bnowMF8zNzAzID0gQmdMX2NhcnpkMjE4MDJ6ZDJfNjgy
OyAKQmdMX2FyZ3N6MDBfMzcwNCA9IApDRFIoQmdMX2V4cHowMF81KTsgCkJnTF9hcmdzejAwXzQ1
NCA9IEJnTF9hcmdzejAwXzM3MDQ7IApCZ0xfZnVuejAwXzQ1MyA9IEJnTF9mdW56MDBfMzcwMzsg
CmdvdG8gQmdMX3RhZ3pkMjExNHpkMl80NTU7fSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDk2ICovCm9ial90IEJnTF9jZHJ6ZDIxODI1emQyXzY4NzsKQmdMX2NkcnpkMjE4MjV6
ZDJfNjg3ID0gCkNEUihCZ0xfZXhwejAwXzUpOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYg
Ki8KYm9vbF90IEJnTF90ZXN0ejAwXzM3MDc7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICov
Cm9ial90IEJnTF9hdXh6MDBfMzcwODsKQmdMX2F1eHowMF8zNzA4ID0gCkNBUihCZ0xfZXhwejAw
XzUpOyAKQmdMX3Rlc3R6MDBfMzcwNyA9IAooQmdMX2F1eHowMF8zNzA4PT1CR2xfc3ltYm9sMTkz
MnowMHp6X19ldmNvbXBpbGV6MDApOyB9IAppZihCZ0xfdGVzdHowMF8zNzA3KQp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA5NiAqLwppZigKUEFJUlAoQmdMX2NkcnpkMjE4MjV6ZDJfNjg3KSkKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8Kb2JqX3QgQmdMX2NkcnpkMjE4Mjl6ZDJfNjkwOwpC
Z0xfY2RyemQyMTgyOXpkMl82OTAgPSAKQ0RSKEJnTF9jZHJ6ZDIxODI1emQyXzY4Nyk7IAppZigK
UEFJUlAoQmdMX2NkcnpkMjE4Mjl6ZDJfNjkwKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYg
Ki8KaWYoCkJHbF9lcXVhbHpmM3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6MDAoCkNEUihCZ0xf
Y2RyemQyMTgyOXpkMl82OTApLCBCTklMKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gOTYgKi8K
QmdMX2Zvcm1hbHN6MDBfNDUwID0gCkNBUihCZ0xfY2RyemQyMTgyNXpkMl82ODcpOyAKQmdMX2Jv
ZHl6MDBfNDUxID0gCkNBUihCZ0xfY2RyemQyMTgyOXpkMl82OTApOyAKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMTgzICovCm9ial90IEJnTF9sb2N6MDBfODA1Owp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAxODMgKi8KYm9vbF90IEJnTF90ZXN0MTEwMnowMF8xOTMwOwpCZ0xfdGVzdDExMDJ6MDBf
MTkzMCA9IApFWFRFTkRFRF9QQUlSUChCZ0xfZXhwejAwXzUpOyAKaWYoQmdMX3Rlc3QxMTAyejAw
XzE5MzApCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE4MyAqLwpCZ0xfbG9jejAwXzgwNSA9IApD
RVIoQmdMX2V4cHowMF81KTsgfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTgzICov
CkJnTF9sb2N6MDBfODA1ID0gQmdMX2xvY3owMF8xMDsgfSB9IAp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAxODMgKi8Kb2JqX3QgQmdMX3NjbXpkMmZvcm1hbHN6ZDJfODA2Owp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSAxODcgKi8Kb2JqX3QgQmdMX3pjM2Fub255bW91c3phMzE0NTN6ZTN6ODNfMjk3
NDsKeyAKaW50IEJnTF9hdXh6MDBfMzcyNDtpbnQgQmdMX2F1eHowMF8zNzIyOwpCZ0xfYXV4ejAw
XzM3MjQgPSAKKGludCkoKChsb25nKTEpKTsgCkJnTF9hdXh6MDBfMzcyMiA9IAooaW50KSgoKGxv
bmcpMykpOyAKQmdMX3pjM2Fub255bW91c3phMzE0NTN6ZTN6ODNfMjk3NCA9IAptYWtlX2Z4X3By
b2NlZHVyZShCR2xfemMzYW5vbnltb3VzemEzMTQ1M3plM3o4M3p6X19ldmNvbXBpbGV6MDAsIEJn
TF9hdXh6MDBfMzcyMiwgQmdMX2F1eHowMF8zNzI0KTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gMTg3ICovCmludCBCZ0xfYXV4ejAwXzM3Mjc7CkJnTF9hdXh6MDBfMzcyNyA9IAooaW50KSgo
KGxvbmcpMCkpOyAKUFJPQ0VEVVJFX1NFVChCZ0xfemMzYW5vbnltb3VzemEzMTQ1M3plM3o4M18y
OTc0LCBCZ0xfYXV4ejAwXzM3MjcsIEJnTF9sb2N6MDBfODA1KTsgfSAKQmdMX3NjbXpkMmZvcm1h
bHN6ZDJfODA2ID0gCkJHbF9kc3NzbHpkMmZvcm1hbHN6ZDJ6ZTNzY2hlbWV6ZDJmb3JtYWxzejMx
enpfX2Rzc3NsejAwKEJnTF9mb3JtYWxzejAwXzQ1MCwgQmdMX3pjM2Fub255bW91c3phMzE0NTN6
ZTN6ODNfMjk3NCk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE4NCAqLwpvYmpfdCBCZ0xf
dW50eXBlZHpkMnNjbXpkMmZvcm1hbHN6MDBfODA3OwpCZ0xfdW50eXBlZHpkMnNjbXpkMmZvcm1h
bHN6MDBfODA3ID0gCkJHbF91bnR5cGV6ZDJpZGVudHphMno3MHp6X19ldmNvbXBpbGV6MDAoQmdM
X3NjbXpkMmZvcm1hbHN6ZDJfODA2KTsgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE4OCAqLwoK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTk2ICovCm9ial90IEJnTF9hcmcxNDQ0ejAwXzgwODsK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTk2ICovCm9ial90IEJnTF9hcmcxNDQ1ejAwXzgwOTtv
YmpfdCBCZ0xfYXJnMTQ0NnowMF84MTA7b2JqX3QgQmdMX2FyZzE0NDd6MDBfODExOwp7IC8qIEV2
YWwvZXZjb21waWxlLnNjbSAxOTYgKi8Kb2JqX3QgQmdMX2FyZzE0NDh6MDBfODEyOwp7IC8qIEV2
YWwvZXZjb21waWxlLnNjbSAxOTYgKi8Kb2JqX3QgQmdMX3pjM2Fub255bW91c3phMzE0NTB6ZTN6
ODNfMjk3MzsKeyAKaW50IEJnTF9hdXh6MDBfMzczNDtpbnQgQmdMX2F1eHowMF8zNzMyOwpCZ0xf
YXV4ejAwXzM3MzQgPSAKKGludCkoKChsb25nKTEpKTsgCkJnTF9hdXh6MDBfMzczMiA9IAooaW50
KSgoKGxvbmcpMykpOyAKQmdMX3pjM2Fub255bW91c3phMzE0NTB6ZTN6ODNfMjk3MyA9IAptYWtl
X2Z4X3Byb2NlZHVyZShCR2xfemMzYW5vbnltb3VzemEzMTQ1MHplM3o4M3p6X19ldmNvbXBpbGV6
MDAsIEJnTF9hdXh6MDBfMzczMiwgQmdMX2F1eHowMF8zNzM0KTsgfSAKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMTk2ICovCmludCBCZ0xfYXV4ejAwXzM3Mzc7CkJnTF9hdXh6MDBfMzczNyA9IAoo
aW50KSgoKGxvbmcpMCkpOyAKUFJPQ0VEVVJFX1NFVChCZ0xfemMzYW5vbnltb3VzemEzMTQ1MHpl
M3o4M18yOTczLCBCZ0xfYXV4ejAwXzM3MzcsIEJnTF9sb2N6MDBfODA1KTsgfSAKQmdMX2FyZzE0
NDh6MDBfODEyID0gCkJHbF9tYWtlemQyZHNzc2x6ZDJmdW5jdGlvbnpkMnByZWx1ZGV6ZDJ6el9f
ZHNzc2x6MDAoQmdMX2V4cHowMF81LCBCZ0xfZm9ybWFsc3owMF80NTAsIEJnTF9ib2R5ejAwXzQ1
MSwgQmdMX3pjM2Fub255bW91c3phMzE0NTB6ZTN6ODNfMjk3Myk7IH0gCkJnTF9hcmcxNDQ1ejAw
XzgwOSA9IApCR2xfZXhwYW5kejAwenpfX2V4cGFuZHowMChCZ0xfYXJnMTQ0OHowMF84MTIpOyB9
IApCZ0xfYXJnMTQ0NnowMF84MTAgPSAKQkdsX19sb29wX3owMHp6X19ldmNvbXBpbGV6MDAoQmdM
X2VudnowMF82LCBCZ0xfdW50eXBlZHpkMnNjbXpkMmZvcm1hbHN6MDBfODA3KTsgCnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDIwMyAqLwpib29sX3QgQmdMX3Rlc3QxMTAyejAwXzE5MzU7CkJnTF90
ZXN0MTEwMnowMF8xOTM1ID0gCkVYVEVOREVEX1BBSVJQKEJnTF9ib2R5ejAwXzQ1MSk7IAppZihC
Z0xfdGVzdDExMDJ6MDBfMTkzNSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjAzICovCkJnTF9h
cmcxNDQ3ejAwXzgxMSA9IApDRVIoQmdMX2JvZHl6MDBfNDUxKTsgfSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMjAzICovCkJnTF9hcmcxNDQ3ejAwXzgxMSA9IEJnTF9sb2N6MDBfODA1
OyB9IH0gCkJnTF9hcmcxNDQ0ejAwXzgwOCA9IApCR2xfZXZjb21waWxlejAwenpfX2V2Y29tcGls
ZXowMChCZ0xfYXJnMTQ0NXowMF84MDksIEJnTF9hcmcxNDQ2ejAwXzgxMCwgQmdMX2dlbnZ6MDBf
NywgQmdMX3doZXJlejAwXzgsIEJGQUxTRSwgQmdMX2FyZzE0NDd6MDBfODExKTsgfSAKcmV0dXJu
IApCR2xfZXZjb21waWxlemQybGFtYmRhemQyenpfX2V2Y29tcGlsZXowMChCZ0xfdW50eXBlZHpk
MnNjbXpkMmZvcm1hbHN6MDBfODA3LCBCZ0xfYXJnMTQ0NHowMF84MDgsIEJnTF93aGVyZXowMF84
LCBCZ0xfbmFtZWR6ZjN6ZjNfOSwgQmdMX2xvY3owMF84MDUpO30gfSB9IH0gfSB9ICBlbHNlIAp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2FyemQyMTgzOXpkMl82OTU7
CkJnTF9jYXJ6ZDIxODM5emQyXzY5NSA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChC
Z0xfY2FyemQyMTgzOXpkMl82OTUpKQp7IApvYmpfdCBCZ0xfYXJnc3owMF8zNzU0O29ial90IEJn
TF9mdW56MDBfMzc1MzsKQmdMX2Z1bnowMF8zNzUzID0gQmdMX2NhcnpkMjE4Mzl6ZDJfNjk1OyAK
QmdMX2FyZ3N6MDBfMzc1NCA9IEJnTF9jZHJ6ZDIxODI1emQyXzY4NzsgCkJnTF9hcmdzejAwXzQ1
NyA9IEJnTF9hcmdzejAwXzM3NTQ7IApCZ0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzc1Mzsg
CmdvdG8gQmdMX3RhZ3pkMjExNXpkMl80NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBf
Mzc1NjtvYmpfdCBCZ0xfZnVuejAwXzM3NTU7CkJnTF9mdW56MDBfMzc1NSA9IEJnTF9jYXJ6ZDIx
ODM5emQyXzY5NTsgCkJnTF9hcmdzejAwXzM3NTYgPSBCZ0xfY2RyemQyMTgyNXpkMl82ODc7IApC
Z0xfYXJnc3owMF80NTQgPSBCZ0xfYXJnc3owMF8zNzU2OyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xf
ZnVuejAwXzM3NTU7IApnb3RvIEJnTF90YWd6ZDIxMTR6ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2FyemQyMTg1OXpkMl83MDI7CkJn
TF9jYXJ6ZDIxODU5emQyXzcwMiA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xf
Y2FyemQyMTg1OXpkMl83MDIpKQp7IApvYmpfdCBCZ0xfYXJnc3owMF8zNzYxO29ial90IEJnTF9m
dW56MDBfMzc2MDsKQmdMX2Z1bnowMF8zNzYwID0gQmdMX2NhcnpkMjE4NTl6ZDJfNzAyOyAKQmdM
X2FyZ3N6MDBfMzc2MSA9IEJnTF9jZHJ6ZDIxODI1emQyXzY4NzsgCkJnTF9hcmdzejAwXzQ1NyA9
IEJnTF9hcmdzejAwXzM3NjE7IApCZ0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzc2MDsgCmdv
dG8gQmdMX3RhZ3pkMjExNXpkMl80NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzc2
MztvYmpfdCBCZ0xfZnVuejAwXzM3NjI7CkJnTF9mdW56MDBfMzc2MiA9IEJnTF9jYXJ6ZDIxODU5
emQyXzcwMjsgCkJnTF9hcmdzejAwXzM3NjMgPSBCZ0xfY2RyemQyMTgyNXpkMl82ODc7IApCZ0xf
YXJnc3owMF80NTQgPSBCZ0xfYXJnc3owMF8zNzYzOyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVu
ejAwXzM3NjI7IApnb3RvIEJnTF90YWd6ZDIxMTR6ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8qIEV2
YWwvZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2FyemQyMTg3OXpkMl83MDc7CkJnTF9j
YXJ6ZDIxODc5emQyXzcwNyA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2Fy
emQyMTg3OXpkMl83MDcpKQp7IApvYmpfdCBCZ0xfYXJnc3owMF8zNzY4O29ial90IEJnTF9mdW56
MDBfMzc2NzsKQmdMX2Z1bnowMF8zNzY3ID0gQmdMX2NhcnpkMjE4Nzl6ZDJfNzA3OyAKQmdMX2Fy
Z3N6MDBfMzc2OCA9IEJnTF9jZHJ6ZDIxODI1emQyXzY4NzsgCkJnTF9hcmdzejAwXzQ1NyA9IEJn
TF9hcmdzejAwXzM3Njg7IApCZ0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzc2NzsgCmdvdG8g
QmdMX3RhZ3pkMjExNXpkMl80NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzc3MDtv
YmpfdCBCZ0xfZnVuejAwXzM3Njk7CkJnTF9mdW56MDBfMzc2OSA9IEJnTF9jYXJ6ZDIxODc5emQy
XzcwNzsgCkJnTF9hcmdzejAwXzM3NzAgPSBCZ0xfY2RyemQyMTgyNXpkMl82ODc7IApCZ0xfYXJn
c3owMF80NTQgPSBCZ0xfYXJnc3owMF8zNzcwOyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAw
XzM3Njk7IApnb3RvIEJnTF90YWd6ZDIxMTR6ZDJfNDU1O30gfSB9ICBlbHNlIAp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA5NiAqLwpvYmpfdCBCZ0xfY2FyemQyMTg5OXpkMl83MTI7CkJnTF9jYXJ6
ZDIxODk5emQyXzcxMiA9IApDQVIoQmdMX2V4cHowMF81KTsgCmlmKApQQUlSUChCZ0xfY2FyemQy
MTg5OXpkMl83MTIpKQp7IApvYmpfdCBCZ0xfYXJnc3owMF8zNzc1O29ial90IEJnTF9mdW56MDBf
Mzc3NDsKQmdMX2Z1bnowMF8zNzc0ID0gQmdMX2NhcnpkMjE4OTl6ZDJfNzEyOyAKQmdMX2FyZ3N6
MDBfMzc3NSA9IEJnTF9jZHJ6ZDIxODI1emQyXzY4NzsgCkJnTF9hcmdzejAwXzQ1NyA9IEJnTF9h
cmdzejAwXzM3NzU7IApCZ0xfZnVuejAwXzQ1NiA9IEJnTF9mdW56MDBfMzc3NDsgCmdvdG8gQmdM
X3RhZ3pkMjExNXpkMl80NTg7fSAgZWxzZSAKeyAKb2JqX3QgQmdMX2FyZ3N6MDBfMzc3NztvYmpf
dCBCZ0xfZnVuejAwXzM3NzY7CkJnTF9mdW56MDBfMzc3NiA9IEJnTF9jYXJ6ZDIxODk5emQyXzcx
MjsgCkJnTF9hcmdzejAwXzM3NzcgPSBCZ0xfY2RyemQyMTgyNXpkMl82ODc7IApCZ0xfYXJnc3ow
MF80NTQgPSBCZ0xfYXJnc3owMF8zNzc3OyAKQmdMX2Z1bnowMF80NTMgPSBCZ0xfZnVuejAwXzM3
NzY7IApnb3RvIEJnTF90YWd6ZDIxMTR6ZDJfNDU1O30gfSB9IH0gfSB9IH0gfSB9IH0gfSB9IH0g
fSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDk2ICovCkJnTF9hdG9tejAwXzQy
NyA9IEJnTF9leHB6MDBfNTsgCmlmKApTWU1CT0xQKEJnTF9hdG9tejAwXzQyNykpCnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDEwNiAqLwpyZXR1cm4gCkJHbF9ldmNvbXBpbGV6ZDJyZWZ6ZDJ6el9f
ZXZjb21waWxlejAwKApCR2xfdmFyaWFibGV6MDB6el9fZXZjb21waWxlejAwKEJnTF9sb2N6MDBf
MTAsIEJnTF9hdG9tejAwXzQyNywgQmdMX2VudnowMF82LCBCZ0xfZ2VudnowMF83KSwgQmdMX2xv
Y3owMF8xMCk7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTA4ICovCmJvb2xfdCBC
Z0xfdGVzdHowMF8zNzgyOwppZigKVkVDVE9SUChCZ0xfYXRvbXowMF80MjcpKQp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAxMDggKi8KQmdMX3Rlc3R6MDBfMzc4MiA9ICgoYm9vbF90KTEpCjsgfSAg
ZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTA4ICovCkJnTF90ZXN0ejAwXzM3ODIgPSAK
U1RSVUNUUChCZ0xfYXRvbXowMF80MjcpCjsgfSAKaWYoQmdMX3Rlc3R6MDBfMzc4MikKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gMTA4ICovCnJldHVybiAKQkdsX2V2Y29tcGlsZXpkMmVycm9yemQy
enpfX2V2Y29tcGlsZXowMChCZ0xfbG9jejAwXzEwLCBCR2xfc3RyaW5nMTkyNnowMHp6X19ldmNv
bXBpbGV6MDAsIEJHbF9zdHJpbmcxOTI3ejAwenpfX2V2Y29tcGlsZXowMCwgQmdMX2V4cHowMF81
KTt9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMDggKi8KaWYoClZFQ1RPUlAoQmdM
X2F0b216MDBfNDI3KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTE1ICovCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDExNSAqLwpvYmpfdCBCZ0xfdjEwMjJ6MDBfMTY4NjsKeyAKaW50IEJnTF9h
dXh6MDBfMzc4OTsKQmdMX2F1eHowMF8zNzg5ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEw
MjJ6MDBfMTY4NiA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfMzc4OSk7IH0gCnsgCmludCBC
Z0xfYXV4ejAwXzM3OTI7CkJnTF9hdXh6MDBfMzc5MiA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVD
VE9SX1NFVChCZ0xfdjEwMjJ6MDBfMTY4NixCZ0xfYXV4ejAwXzM3OTIsQmdMX2F0b216MDBfNDI3
KTsgfSAKeyAKaW50IEJnTF9hdXh6MDBfMzc5NTsKQmdMX2F1eHowMF8zNzk1ID0gCihpbnQpKCgo
bG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTAyMnowMF8xNjg2LEJnTF9hdXh6MDBfMzc5NSxC
Z0xfbG9jejAwXzEwKTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF8zODAwO2ludCBCZ0xfYXV4ejAw
XzM3OTg7CkJnTF9hdXh6MDBfMzgwMCA9IApCSU5UKCgobG9uZyktMSkpOyAKQmdMX2F1eHowMF8z
Nzk4ID0gCihpbnQpKCgobG9uZykwKSk7IApWRUNUT1JfU0VUKEJnTF92MTAyMnowMF8xNjg2LEJn
TF9hdXh6MDBfMzc5OCxCZ0xfYXV4ejAwXzM4MDApOyB9IApyZXR1cm4gQmdMX3YxMDIyejAwXzE2
ODY7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxMTUgKi8KcmV0dXJuIEJnTF9h
dG9tejAwXzQyNzt9IH0gfSB9IH0gfSB9IAp9CgoKCi8qIF9ldmNvbXBpbGUgKi8Kb2JqX3QgQkds
X19ldmNvbXBpbGV6MDB6el9fZXZjb21waWxlejAwKG9ial90IEJnTF9lbnZ6MDBfMjk3Niwgb2Jq
X3QgQmdMX2V4cHowMF8yOTc3LCBvYmpfdCBCZ0xfZW52ejAwXzI5NzgsIG9ial90IEJnTF9nZW52
ejAwXzI5NzksIG9ial90IEJnTF93aGVyZXowMF8yOTgwLCBvYmpfdCBCZ0xfbmFtZWR6ZjN6ZjNf
Mjk4MSwgb2JqX3QgQmdMX2xvY3owMF8yOTgyKQp7IEFOX09CSkVDVDsKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gOTUgKi8KcmV0dXJuIApCR2xfZXZjb21waWxlejAwenpfX2V2Y29tcGlsZXowMChC
Z0xfZXhwejAwXzI5NzcsIEJnTF9lbnZ6MDBfMjk3OCwgQmdMX2dlbnZ6MDBfMjk3OSwgQmdMX3do
ZXJlejAwXzI5ODAsIEJnTF9uYW1lZHpmM3pmM18yOTgxLCBCZ0xfbG9jejAwXzI5ODIpO30gCn0K
CgoKLyogPGFub255bW91czoxNDUwPiAqLwpvYmpfdCBCR2xfemMzYW5vbnltb3VzemEzMTQ1MHpl
M3o4M3p6X19ldmNvbXBpbGV6MDAob2JqX3QgQmdMX2VudnowMF8yOTgzLCBvYmpfdCBCZ0xfcHJv
Y3owMF8yOTg1LCBvYmpfdCBCZ0xfbXNnejAwXzI5ODYsIG9ial90IEJnTF9vYmp6MDBfMjk4NykK
eyBBTl9PQkpFQ1Q7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE5NSAqLwp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSAxOTYgKi8Kb2JqX3QgQmdMX2xvY3owMF8yOTg0Owp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAxOTYgKi8KaW50IEJnTF9hdXh6MDBfMzgwNDsKQmdMX2F1eHowMF8zODA0ID0gCihp
bnQpKCgobG9uZykwKSk7IApCZ0xfbG9jejAwXzI5ODQgPSAKUFJPQ0VEVVJFX1JFRihCZ0xfZW52
ejAwXzI5ODMsIEJnTF9hdXh6MDBfMzgwNCk7IH0gCnsgCm9ial90IEJnTF9wcm9jejAwXzgxNDtv
YmpfdCBCZ0xfbXNnejAwXzgxNTtvYmpfdCBCZ0xfb2JqejAwXzgxNjsKQmdMX3Byb2N6MDBfODE0
ID0gQmdMX3Byb2N6MDBfMjk4NTsgCkJnTF9tc2d6MDBfODE1ID0gQmdMX21zZ3owMF8yOTg2OyAK
QmdMX29ianowMF84MTYgPSBCZ0xfb2JqejAwXzI5ODc7IApyZXR1cm4gCkJHbF9ldmNvbXBpbGV6
ZDJlcnJvcnpkMnp6X19ldmNvbXBpbGV6MDAoQmdMX2xvY3owMF8yOTg0LCBCZ0xfcHJvY3owMF84
MTQsIEJnTF9tc2d6MDBfODE1LCBCZ0xfb2JqejAwXzgxNik7fSB9IH0gCn0KCgoKLyogPGFub255
bW91czoxNDUzPiAqLwpvYmpfdCBCR2xfemMzYW5vbnltb3VzemEzMTQ1M3plM3o4M3p6X19ldmNv
bXBpbGV6MDAob2JqX3QgQmdMX2VudnowMF8yOTg4LCBvYmpfdCBCZ0xfcHJvY3owMF8yOTkwLCBv
YmpfdCBCZ0xfbXNnejAwXzI5OTEsIG9ial90IEJnTF9vYmp6MDBfMjk5MikKeyBBTl9PQkpFQ1Q7
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE4NiAqLwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAx
ODcgKi8Kb2JqX3QgQmdMX2xvY3owMF8yOTg5Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxODcg
Ki8KaW50IEJnTF9hdXh6MDBfMzgwODsKQmdMX2F1eHowMF8zODA4ID0gCihpbnQpKCgobG9uZykw
KSk7IApCZ0xfbG9jejAwXzI5ODkgPSAKUFJPQ0VEVVJFX1JFRihCZ0xfZW52ejAwXzI5ODgsIEJn
TF9hdXh6MDBfMzgwOCk7IH0gCnsgCm9ial90IEJnTF9wcm9jejAwXzgyMDtvYmpfdCBCZ0xfbXNn
ejAwXzgyMTtvYmpfdCBCZ0xfb2JqejAwXzgyMjsKQmdMX3Byb2N6MDBfODIwID0gQmdMX3Byb2N6
MDBfMjk5MDsgCkJnTF9tc2d6MDBfODIxID0gQmdMX21zZ3owMF8yOTkxOyAKQmdMX29ianowMF84
MjIgPSBCZ0xfb2JqejAwXzI5OTI7IApyZXR1cm4gCkJHbF9ldmNvbXBpbGV6ZDJlcnJvcnpkMnp6
X19ldmNvbXBpbGV6MDAoQmdMX2xvY3owMF8yOTg5LCBCZ0xfcHJvY3owMF84MjAsIEJnTF9tc2d6
MDBfODIxLCBCZ0xfb2JqejAwXzgyMik7fSB9IH0gCn0KCgoKLyogPGFub255bW91czoxNDAwPiAq
LwpvYmpfdCBCR2xfemMzYW5vbnltb3VzemEzMTQwMHplM3o4M3p6X19ldmNvbXBpbGV6MDAob2Jq
X3QgQmdMX2VudnowMF8yOTkzKQp7IEFOX09CSkVDVDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
MTQwICovCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE0MCAqLwpvYmpfdCBCZ0xfZXhwejAwXzI5
OTQ7b2JqX3QgQmdMX2xvY3owMF8yOTk1O29ial90IEJnTF92YWx6MDBfMjk5NjtvYmpfdCBCZ0xf
Z2VudnowMF8yOTk3O29ial90IEJnTF92YXJ6MDBfMjk5ODsKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gMTQwICovCmludCBCZ0xfYXV4ejAwXzM4MTI7CkJnTF9hdXh6MDBfMzgxMiA9IAooaW50KSgo
KGxvbmcpMCkpOyAKQmdMX2V4cHowMF8yOTk0ID0gClBST0NFRFVSRV9SRUYoQmdMX2VudnowMF8y
OTkzLCBCZ0xfYXV4ejAwXzM4MTIpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNDAgKi8K
aW50IEJnTF9hdXh6MDBfMzgxNTsKQmdMX2F1eHowMF8zODE1ID0gCihpbnQpKCgobG9uZykxKSk7
IApCZ0xfbG9jejAwXzI5OTUgPSAKUFJPQ0VEVVJFX1JFRihCZ0xfZW52ejAwXzI5OTMsIEJnTF9h
dXh6MDBfMzgxNSk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDE0MCAqLwppbnQgQmdMX2F1
eHowMF8zODE4OwpCZ0xfYXV4ejAwXzM4MTggPSAKKGludCkoKChsb25nKTIpKTsgCkJnTF92YWx6
MDBfMjk5NiA9IApQUk9DRURVUkVfUkVGKEJnTF9lbnZ6MDBfMjk5MywgQmdMX2F1eHowMF8zODE4
KTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMTQwICovCmludCBCZ0xfYXV4ejAwXzM4MjE7
CkJnTF9hdXh6MDBfMzgyMSA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX2dlbnZ6MDBfMjk5NyA9
IApQUk9DRURVUkVfUkVGKEJnTF9lbnZ6MDBfMjk5MywgQmdMX2F1eHowMF8zODIxKTsgfSAKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMTQwICovCmludCBCZ0xfYXV4ejAwXzM4MjQ7CkJnTF9hdXh6
MDBfMzgyNCA9IAooaW50KSgoKGxvbmcpNCkpOyAKQmdMX3ZhcnowMF8yOTk4ID0gClBST0NFRFVS
RV9SRUYoQmdMX2VudnowMF8yOTkzLCBCZ0xfYXV4ejAwXzM4MjQpOyB9IAp7IAoKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMTQwICovCm9ial90IEJnTF9hcmcxNDAyejAwXzc1NzsKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMTQxICovCmJvb2xfdCBCZ0xfdGVzdDExMDJ6MDBfMTc3NjsKQmdMX3Rl
c3QxMTAyejAwXzE3NzYgPSAKRVhURU5ERURfUEFJUlAoQmdMX2V4cHowMF8yOTk0KTsgCmlmKEJn
TF90ZXN0MTEwMnowMF8xNzc2KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAxNDEgKi8KQmdMX2Fy
ZzE0MDJ6MDBfNzU3ID0gCkNFUihCZ0xfZXhwejAwXzI5OTQpOyB9ICBlbHNlIAp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAxNDEgKi8KQmdMX2FyZzE0MDJ6MDBfNzU3ID0gQmdMX2xvY3owMF8yOTk1
OyB9IH0gCnJldHVybiAKQkdsX2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAoQmdMX3ZhbHow
MF8yOTk2LCBCTklMLCBCZ0xfZ2VudnowMF8yOTk3LCBCZ0xfdmFyejAwXzI5OTgsIEJUUlVFLCBC
Z0xfYXJnMTQwMnowMF83NTcpO30gfSB9IH0gCn0KCgoKLyogZXZjb21waWxlLWNuc3QgKi8Kb2Jq
X3QgQkdsX2V2Y29tcGlsZXpkMmNuc3R6ZDJ6el9fZXZjb21waWxlejAwKG9ial90IEJnTF9jbnN0
ejAwXzExLCBvYmpfdCBCZ0xfbG9jejAwXzEyKQp7IEFOX09CSkVDVDsKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMjQwICovCmlmKApWRUNUT1JQKEJnTF9jbnN0ejAwXzExKSkKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gMjQyICovCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI0MiAqLwpvYmpfdCBC
Z0xfdjEwMjJ6MDBfMTk5MjsKeyAKaW50IEJnTF9hdXh6MDBfMzgzMzsKQmdMX2F1eHowMF8zODMz
ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwMjJ6MDBfMTk5MiA9IApjcmVhdGVfdmVjdG9y
KEJnTF9hdXh6MDBfMzgzMyk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM4MzY7CkJnTF9hdXh6MDBf
MzgzNiA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMjJ6MDBfMTk5MixC
Z0xfYXV4ejAwXzM4MzYsQmdMX2Nuc3R6MDBfMTEpOyB9IAp7IAppbnQgQmdMX2F1eHowMF8zODM5
OwpCZ0xfYXV4ejAwXzM4MzkgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDIyejAwXzE5OTIsQmdMX2F1eHowMF8zODM5LEJnTF9sb2N6MDBfMTIpOyB9IAp7IApvYmpfdCBC
Z0xfYXV4ejAwXzM4NDQ7aW50IEJnTF9hdXh6MDBfMzg0MjsKQmdMX2F1eHowMF8zODQ0ID0gCkJJ
TlQoKChsb25nKS0xKSk7IApCZ0xfYXV4ejAwXzM4NDIgPSAKKGludCkoKChsb25nKTApKTsgClZF
Q1RPUl9TRVQoQmdMX3YxMDIyejAwXzE5OTIsQmdMX2F1eHowMF8zODQyLEJnTF9hdXh6MDBfMzg0
NCk7IH0gCnJldHVybiBCZ0xfdjEwMjJ6MDBfMTk5Mjt9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDI0MiAqLwpyZXR1cm4gQmdMX2Nuc3R6MDBfMTE7fSB9IAp9CgoKCi8qIGV2Y29t
cGlsZS1yZWYgKi8Kb2JqX3QgQkdsX2V2Y29tcGlsZXpkMnJlZnpkMnp6X19ldmNvbXBpbGV6MDAo
b2JqX3QgQmdMX3ZhcmlhYmxlejAwXzEzLCBvYmpfdCBCZ0xfbG9jejAwXzE0KQp7IEFOX09CSkVD
VDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjUwICovCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDI1MiAqLwpib29sX3QgQmdMX3Rlc3QxNDc4ejAwXzg2OTsKaWYoClZFQ1RPUlAoQmdMX3Zhcmlh
YmxlejAwXzEzKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjUyICovCmludCBCZ0xfYXJnMTc4
M3owMF8yMDA1OwpCZ0xfYXJnMTc4M3owMF8yMDA1ID0gClZFQ1RPUl9MRU5HVEgoQmdMX3Zhcmlh
YmxlejAwXzEzKTsgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI1MiAqLwpsb25nIEJnTF9hdXh6
MDBfMzg1MDsKQmdMX2F1eHowMF8zODUwID0gCihsb25nKShCZ0xfYXJnMTc4M3owMF8yMDA1KTsg
CkJnTF90ZXN0MTQ3OHowMF84NjkgPSAKKEJnTF9hdXh6MDBfMzg1MD09KChsb25nKTMpKTsgfSB9
ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNTIgKi8KQmdMX3Rlc3QxNDc4ejAwXzg2
OSA9ICgoYm9vbF90KTApOyB9IAppZihCZ0xfdGVzdDE0Nzh6MDBfODY5KQp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSAyNTIgKi8KeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjUzICovCm9ial90IEJn
TF92MTAyM3owMF84NzA7CnsgCmludCBCZ0xfYXV4ejAwXzM4NTQ7CkJnTF9hdXh6MDBfMzg1NCA9
IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDIzejAwXzg3MCA9IApjcmVhdGVfdmVjdG9yKEJn
TF9hdXh6MDBfMzg1NCk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM4NTc7CkJnTF9hdXh6MDBfMzg1
NyA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMjN6MDBfODcwLEJnTF9h
dXh6MDBfMzg1NyxCZ0xfdmFyaWFibGV6MDBfMTMpOyB9IAp7IAppbnQgQmdMX2F1eHowMF8zODYw
OwpCZ0xfYXV4ejAwXzM4NjAgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDIzejAwXzg3MCxCZ0xfYXV4ejAwXzM4NjAsQmdMX2xvY3owMF8xNCk7IH0gCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDI1MyAqLwpsb25nIEJnTF9hcmcxNDgxejAwXzg3MjsKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gMjUzICovCmJvb2xfdCBCZ0xfdGVzdHowMF8zODYzOwp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSAyNTMgKi8Kb2JqX3QgQmdMX2F1eHowMF8zODY4O29ial90IEJnTF9hdXh6MDBf
Mzg2NDsKQmdMX2F1eHowMF8zODY4ID0gCkJJTlQoKChsb25nKTEpKTsgCnsgCmludCBCZ0xfYXV4
ejAwXzM4NjU7CkJnTF9hdXh6MDBfMzg2NSA9IAooaW50KSgoKGxvbmcpMCkpOyAKQmdMX2F1eHow
MF8zODY0ID0gClZFQ1RPUl9SRUYoQmdMX3ZhcmlhYmxlejAwXzEzLEJnTF9hdXh6MDBfMzg2NSk7
IH0gCkJnTF90ZXN0ejAwXzM4NjMgPSAKKEJnTF9hdXh6MDBfMzg2ND09QmdMX2F1eHowMF8zODY4
KTsgfSAKaWYoQmdMX3Rlc3R6MDBfMzg2MykKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjUzICov
CkJnTF9hcmcxNDgxejAwXzg3MiA9ICgobG9uZyk1KTsgfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMjUzICovCkJnTF9hcmcxNDgxejAwXzg3MiA9ICgobG9uZyk2KTsgfSB9IAp7IApv
YmpfdCBCZ0xfYXV4ejAwXzM4NzM7aW50IEJnTF9hdXh6MDBfMzg3MTsKQmdMX2F1eHowMF8zODcz
ID0gCkJJTlQoQmdMX2FyZzE0ODF6MDBfODcyKTsgCkJnTF9hdXh6MDBfMzg3MSA9IAooaW50KSgo
KGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMjN6MDBfODcwLEJnTF9hdXh6MDBfMzg3MSxC
Z0xfYXV4ejAwXzM4NzMpOyB9IH0gCnJldHVybiBCZ0xfdjEwMjN6MDBfODcwO30gfSAgZWxzZSAK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjU2ICovCmJvb2xfdCBCZ0xfdGVzdHowMF8zODc2Owpp
ZigKUEFJUlAoQmdMX3ZhcmlhYmxlejAwXzEzKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjU2
ICovCm9ial90IEJnTF9hdXh6MDBfMzg3OTsKQmdMX2F1eHowMF8zODc5ID0gCkNBUihCZ0xfdmFy
aWFibGV6MDBfMTMpOyAKQmdMX3Rlc3R6MDBfMzg3NiA9IAooQmdMX2F1eHowMF8zODc5PT1CR2xf
c3ltYm9sMTk0NHowMHp6X19ldmNvbXBpbGV6MDApOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAyNTYgKi8KQmdMX3Rlc3R6MDBfMzg3NiA9ICgoYm9vbF90KTApCjsgfSAKaWYoQmdM
X3Rlc3R6MDBfMzg3NikKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjU2ICovCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDI1NyAqLwpvYmpfdCBCZ0xfdjEwMjR6MDBfODc3Owp7IAppbnQgQmdMX2F1
eHowMF8zODgyOwpCZ0xfYXV4ejAwXzM4ODIgPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92MTAy
NHowMF84NzcgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzM4ODIpOyB9IAp7IApvYmpfdCBC
Z0xfYXV4ejAwXzM4ODc7aW50IEJnTF9hdXh6MDBfMzg4NTsKQmdMX2F1eHowMF8zODg3ID0gCkNE
UihCZ0xfdmFyaWFibGV6MDBfMTMpOyAKQmdMX2F1eHowMF8zODg1ID0gCihpbnQpKCgobG9uZyky
KSk7IApWRUNUT1JfU0VUKEJnTF92MTAyNHowMF84NzcsQmdMX2F1eHowMF8zODg1LEJnTF9hdXh6
MDBfMzg4Nyk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM4OTA7CkJnTF9hdXh6MDBfMzg5MCA9IAoo
aW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMjR6MDBfODc3LEJnTF9hdXh6MDBf
Mzg5MCxCZ0xfbG9jejAwXzE0KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF8zODk1O2ludCBCZ0xf
YXV4ejAwXzM4OTM7CkJnTF9hdXh6MDBfMzg5NSA9IApCSU5UKCgobG9uZyk3KSk7IApCZ0xfYXV4
ejAwXzM4OTMgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDI0ejAwXzg3
NyxCZ0xfYXV4ejAwXzM4OTMsQmdMX2F1eHowMF8zODk1KTsgfSAKcmV0dXJuIEJnTF92MTAyNHow
MF84Nzc7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNTYgKi8KeyAKCmlmKApJ
TlRFR0VSUChCZ0xfdmFyaWFibGV6MDBfMTMpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNTkg
Ki8Kc3dpdGNoKCAKKGxvbmcpQ0lOVChCZ0xfdmFyaWFibGV6MDBfMTMpKSB7IGNhc2UgKChsb25n
KTApIDogCmNhc2UgKChsb25nKTEpIDogCmNhc2UgKChsb25nKTIpIDogCmNhc2UgKChsb25nKTMp
IDogCgp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNjEgKi8Kb2JqX3QgQmdMX3YxMDI4ejAwXzg4
MzsKeyAKaW50IEJnTF9hdXh6MDBfMzkwMDsKQmdMX2F1eHowMF8zOTAwID0gCihpbnQpKCgobG9u
ZykzKSk7IApCZ0xfdjEwMjh6MDBfODgzID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF8zOTAw
KTsgfSAKeyAKaW50IEJnTF9hdXh6MDBfMzkwMzsKQmdMX2F1eHowMF8zOTAzID0gCihpbnQpKCgo
bG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTAyOHowMF84ODMsQmdMX2F1eHowMF8zOTAzLEJO
SUwpOyB9IAp7IAppbnQgQmdMX2F1eHowMF8zOTA2OwpCZ0xfYXV4ejAwXzM5MDYgPSAKKGludCko
KChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDI4ejAwXzg4MyxCZ0xfYXV4ejAwXzM5MDYs
QmdMX2xvY3owMF8xNCk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM5MDk7CkJnTF9hdXh6MDBfMzkw
OSA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMjh6MDBfODgzLEJnTF9h
dXh6MDBfMzkwOSxCZ0xfdmFyaWFibGV6MDBfMTMpOyB9IApyZXR1cm4gQmdMX3YxMDI4ejAwXzg4
Mzt9IGJyZWFrOwpkZWZhdWx0OiAKQmdMX2Nhc2VfZWxzZTEwMjZ6MDBfODgwOgp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAyNjMgKi8Kb2JqX3QgQmdMX3YxMDI1ejAwXzg4NDsKeyAKaW50IEJnTF9h
dXh6MDBfMzkxMjsKQmdMX2F1eHowMF8zOTEyID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEw
MjV6MDBfODg0ID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF8zOTEyKTsgfSAKeyAKaW50IEJn
TF9hdXh6MDBfMzkxNTsKQmdMX2F1eHowMF8zOTE1ID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNU
T1JfU0VUKEJnTF92MTAyNXowMF84ODQsQmdMX2F1eHowMF8zOTE1LEJnTF92YXJpYWJsZXowMF8x
Myk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM5MTg7CkJnTF9hdXh6MDBfMzkxOCA9IAooaW50KSgo
KGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMjV6MDBfODg0LEJnTF9hdXh6MDBfMzkxOCxC
Z0xfbG9jejAwXzE0KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF8zOTIzO2ludCBCZ0xfYXV4ejAw
XzM5MjE7CkJnTF9hdXh6MDBfMzkyMyA9IApCSU5UKCgobG9uZyk0KSk7IApCZ0xfYXV4ejAwXzM5
MjEgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDI1ejAwXzg4NCxCZ0xf
YXV4ejAwXzM5MjEsQmdMX2F1eHowMF8zOTIzKTsgfSAKcmV0dXJuIEJnTF92MTAyNXowMF84ODQ7
fSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI1OSAqLwpnb3RvIEJnTF9jYXNl
X2Vsc2UxMDI2ejAwXzg4MDt9IH0gfSB9IH0gfSAKfQoKCgovKiBldmNvbXBpbGUtc2V0ICovCm9i
al90IEJHbF9ldmNvbXBpbGV6ZDJzZXR6ZDJ6el9fZXZjb21waWxlejAwKG9ial90IEJnTF92YXJp
YWJsZXowMF8xNSwgb2JqX3QgQmdMX3ZhbHVlejAwXzE2LCBvYmpfdCBCZ0xfbG9jejAwXzE3KQp7
IEFOX09CSkVDVDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjY4ICovCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDI3MCAqLwpib29sX3QgQmdMX3Rlc3QxNDg5ejAwXzg4NTsKaWYoClZFQ1RPUlAo
QmdMX3ZhcmlhYmxlejAwXzE1KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjcwICovCmludCBC
Z0xfYXJnMTc4M3owMF8yMDYwOwpCZ0xfYXJnMTc4M3owMF8yMDYwID0gClZFQ1RPUl9MRU5HVEgo
QmdMX3ZhcmlhYmxlejAwXzE1KTsgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI3MCAqLwpsb25n
IEJnTF9hdXh6MDBfMzkzMTsKQmdMX2F1eHowMF8zOTMxID0gCihsb25nKShCZ0xfYXJnMTc4M3ow
MF8yMDYwKTsgCkJnTF90ZXN0MTQ4OXowMF84ODUgPSAKKEJnTF9hdXh6MDBfMzkzMT09KChsb25n
KTMpKTsgfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNzAgKi8KQmdMX3Rlc3Qx
NDg5ejAwXzg4NSA9ICgoYm9vbF90KTApOyB9IAppZihCZ0xfdGVzdDE0ODl6MDBfODg1KQp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAyNzAgKi8KeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjcxICov
Cm9ial90IEJnTF92MTAyOXowMF84ODY7CnsgCmludCBCZ0xfYXV4ejAwXzM5MzU7CkJnTF9hdXh6
MDBfMzkzNSA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDI5ejAwXzg4NiA9IApjcmVhdGVf
dmVjdG9yKEJnTF9hdXh6MDBfMzkzNSk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI3MSAq
LwpvYmpfdCBCZ0xfYXJnMTQ5MXowMF84ODg7CkJnTF9hcmcxNDkxejAwXzg4OCA9IApNQUtFX1BB
SVIoQmdMX3ZhcmlhYmxlejAwXzE1LCBCZ0xfdmFsdWV6MDBfMTYpOyAKeyAKaW50IEJnTF9hdXh6
MDBfMzkzOTsKQmdMX2F1eHowMF8zOTM5ID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VU
KEJnTF92MTAyOXowMF84ODYsQmdMX2F1eHowMF8zOTM5LEJnTF9hcmcxNDkxejAwXzg4OCk7IH0g
fSAKeyAKaW50IEJnTF9hdXh6MDBfMzk0MjsKQmdMX2F1eHowMF8zOTQyID0gCihpbnQpKCgobG9u
ZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTAyOXowMF84ODYsQmdMX2F1eHowMF8zOTQyLEJnTF9s
b2N6MDBfMTcpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzM5NDc7aW50IEJnTF9hdXh6MDBfMzk0
NTsKQmdMX2F1eHowMF8zOTQ3ID0gCkJJTlQoKChsb25nKTgpKTsgCkJnTF9hdXh6MDBfMzk0NSA9
IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMjl6MDBfODg2LEJnTF9hdXh6
MDBfMzk0NSxCZ0xfYXV4ejAwXzM5NDcpOyB9IApyZXR1cm4gQmdMX3YxMDI5ejAwXzg4Njt9IH0g
IGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI3MiAqLwpib29sX3QgQmdMX3Rlc3R6MDBf
Mzk1MDsKaWYoClBBSVJQKEJnTF92YXJpYWJsZXowMF8xNSkpCnsgLyogRXZhbC9ldmNvbXBpbGUu
c2NtIDI3MiAqLwpvYmpfdCBCZ0xfYXV4ejAwXzM5NTM7CkJnTF9hdXh6MDBfMzk1MyA9IApDQVIo
QmdMX3ZhcmlhYmxlejAwXzE1KTsgCkJnTF90ZXN0ejAwXzM5NTAgPSAKKEJnTF9hdXh6MDBfMzk1
Mz09QkdsX3N5bWJvbDE5NDR6MDB6el9fZXZjb21waWxlejAwKTsgfSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMjcyICovCkJnTF90ZXN0ejAwXzM5NTAgPSAoKGJvb2xfdCkwKQo7IH0g
CmlmKEJnTF90ZXN0ejAwXzM5NTApCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI3MiAqLwp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAyNzMgKi8Kb2JqX3QgQmdMX3YxMDMwejAwXzg5MDsKeyAKaW50
IEJnTF9hdXh6MDBfMzk1NjsKQmdMX2F1eHowMF8zOTU2ID0gCihpbnQpKCgobG9uZykzKSk7IApC
Z0xfdjEwMzB6MDBfODkwID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF8zOTU2KTsgfSAKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMjczICovCm9ial90IEJnTF9hcmcxNDk1ejAwXzg5MjsKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMjczICovCm9ial90IEJnTF9hdXh6MDBfMzk1OTsKQmdMX2F1
eHowMF8zOTU5ID0gCkNEUihCZ0xfdmFyaWFibGV6MDBfMTUpOyAKQmdMX2FyZzE0OTV6MDBfODky
ID0gCk1BS0VfUEFJUihCZ0xfYXV4ejAwXzM5NTksIEJnTF92YWx1ZXowMF8xNik7IH0gCnsgCmlu
dCBCZ0xfYXV4ejAwXzM5NjI7CkJnTF9hdXh6MDBfMzk2MiA9IAooaW50KSgoKGxvbmcpMikpOyAK
VkVDVE9SX1NFVChCZ0xfdjEwMzB6MDBfODkwLEJnTF9hdXh6MDBfMzk2MixCZ0xfYXJnMTQ5NXow
MF84OTIpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM5NjU7CkJnTF9hdXh6MDBfMzk2NSA9IAoo
aW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMzB6MDBfODkwLEJnTF9hdXh6MDBf
Mzk2NSxCZ0xfbG9jejAwXzE3KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF8zOTcwO2ludCBCZ0xf
YXV4ejAwXzM5Njg7CkJnTF9hdXh6MDBfMzk3MCA9IApCSU5UKCgobG9uZyk5KSk7IApCZ0xfYXV4
ejAwXzM5NjggPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDMwejAwXzg5
MCxCZ0xfYXV4ejAwXzM5NjgsQmdMX2F1eHowMF8zOTcwKTsgfSAKcmV0dXJuIEJnTF92MTAzMHow
MF84OTA7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNzIgKi8KeyAKCmlmKApJ
TlRFR0VSUChCZ0xfdmFyaWFibGV6MDBfMTUpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNzUg
Ki8Kc3dpdGNoKCAKKGxvbmcpQ0lOVChCZ0xfdmFyaWFibGV6MDBfMTUpKSB7IGNhc2UgKChsb25n
KTApIDogCmNhc2UgKChsb25nKTEpIDogCmNhc2UgKChsb25nKTIpIDogCmNhc2UgKChsb25nKTMp
IDogCgp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyNzcgKi8Kb2JqX3QgQmdMX3YxMDM0ejAwXzg5
NzsKeyAKaW50IEJnTF9hdXh6MDBfMzk3NTsKQmdMX2F1eHowMF8zOTc1ID0gCihpbnQpKCgobG9u
ZykzKSk7IApCZ0xfdjEwMzR6MDBfODk3ID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF8zOTc1
KTsgfSAKeyAKaW50IEJnTF9hdXh6MDBfMzk3ODsKQmdMX2F1eHowMF8zOTc4ID0gCihpbnQpKCgo
bG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTAzNHowMF84OTcsQmdMX2F1eHowMF8zOTc4LEJn
TF92YWx1ZXowMF8xNik7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzM5ODE7CkJnTF9hdXh6MDBfMzk4
MSA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMzR6MDBfODk3LEJnTF9h
dXh6MDBfMzk4MSxCZ0xfbG9jejAwXzE3KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF8zOTg2O2lu
dCBCZ0xfYXV4ejAwXzM5ODQ7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI3NyAqLwpsb25nIEJn
TF9hdXh6MDBfMzk4NzsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjc3ICovCmxvbmcgQmdMX2F1
eHowMF8zOTg4OwpCZ0xfYXV4ejAwXzM5ODggPSAKKGxvbmcpQ0lOVChCZ0xfdmFyaWFibGV6MDBf
MTUpOyAKQmdMX2F1eHowMF8zOTg3ID0gCigoKGxvbmcpMTApK0JnTF9hdXh6MDBfMzk4OCk7IH0g
CkJnTF9hdXh6MDBfMzk4NiA9IApCSU5UKEJnTF9hdXh6MDBfMzk4Nyk7IH0gCkJnTF9hdXh6MDBf
Mzk4NCA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMzR6MDBfODk3LEJn
TF9hdXh6MDBfMzk4NCxCZ0xfYXV4ejAwXzM5ODYpOyB9IApyZXR1cm4gQmdMX3YxMDM0ejAwXzg5
Nzt9IGJyZWFrOwpkZWZhdWx0OiAKQmdMX2Nhc2VfZWxzZTEwMzJ6MDBfODk0Ogp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAyNzkgKi8Kb2JqX3QgQmdMX3YxMDMxejAwXzkwMDsKeyAKaW50IEJnTF9h
dXh6MDBfMzk5MzsKQmdMX2F1eHowMF8zOTkzID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEw
MzF6MDBfOTAwID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF8zOTkzKTsgfSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMjc5ICovCm9ial90IEJnTF9hcmcxNTAyejAwXzkwMjsKQmdMX2FyZzE1
MDJ6MDBfOTAyID0gCk1BS0VfUEFJUihCZ0xfdmFyaWFibGV6MDBfMTUsIEJnTF92YWx1ZXowMF8x
Nik7IAp7IAppbnQgQmdMX2F1eHowMF8zOTk3OwpCZ0xfYXV4ejAwXzM5OTcgPSAKKGludCkoKChs
b25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDMxejAwXzkwMCxCZ0xfYXV4ejAwXzM5OTcsQmdM
X2FyZzE1MDJ6MDBfOTAyKTsgfSB9IAp7IAppbnQgQmdMX2F1eHowMF80MDAwOwpCZ0xfYXV4ejAw
XzQwMDAgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDMxejAwXzkwMCxC
Z0xfYXV4ejAwXzQwMDAsQmdMX2xvY3owMF8xNyk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDAw
NTtpbnQgQmdMX2F1eHowMF80MDAzOwpCZ0xfYXV4ejAwXzQwMDUgPSAKQklOVCgoKGxvbmcpMTQp
KTsgCkJnTF9hdXh6MDBfNDAwMyA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xf
djEwMzF6MDBfOTAwLEJnTF9hdXh6MDBfNDAwMyxCZ0xfYXV4ejAwXzQwMDUpOyB9IApyZXR1cm4g
QmdMX3YxMDMxejAwXzkwMDt9IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjc1
ICovCmdvdG8gQmdMX2Nhc2VfZWxzZTEwMzJ6MDBfODk0O30gfSB9IH0gfSB9IAp9CgoKCi8qIGV2
Y29tcGlsZS1iZWdpbiAqLwpvYmpfdCBCR2xfZXZjb21waWxlemQyYmVnaW56ZDJ6el9fZXZjb21w
aWxlejAwKG9ial90IEJnTF9ib2R5ejAwXzIyLCBvYmpfdCBCZ0xfZW52ejAwXzIzLCBvYmpfdCBC
Z0xfZ2VudnowMF8yNCwgb2JqX3QgQmdMX3doZXJlejAwXzI1LCBvYmpfdCBCZ0xfbmFtZWR6ZjN6
ZjNfMjYsIG9ial90IEJnTF9sb2N6MDBfMjcpCnsgQU5fT0JKRUNUOwp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAyOTAgKi8KaWYoCk5VTExQKEJnTF9ib2R5ejAwXzIyKSkKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMjkyICovCnJldHVybiAKQkdsX2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAo
QlVOU1BFQywgQmdMX2VudnowMF8yMywgQmdMX2dlbnZ6MDBfMjQsIEJnTF93aGVyZXowMF8yNSwg
QmdMX25hbWVkemYzemYzXzI2LCBCZ0xfbG9jejAwXzI3KTt9ICBlbHNlIAp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSAyOTQgKi8KYm9vbF90IEJnTF90ZXN0ejAwXzQwMTM7CnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDI5NCAqLwpvYmpfdCBCZ0xfYXV4ejAwXzQwMTQ7CkJnTF9hdXh6MDBfNDAxNCA9
IApDRFIoQmdMX2JvZHl6MDBfMjIpOyAKQmdMX3Rlc3R6MDBfNDAxMyA9IApOVUxMUChCZ0xfYXV4
ejAwXzQwMTQpOyB9IAppZihCZ0xfdGVzdHowMF80MDEzKQp7IC8qIEV2YWwvZXZjb21waWxlLnNj
bSAyOTQgKi8KeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjk1ICovCm9ial90IEJnTF9hcmcxNTA4
ejAwXzkwOTtvYmpfdCBCZ0xfYXJnMTUwOXowMF85MTA7CkJnTF9hcmcxNTA4ejAwXzkwOSA9IApD
QVIoQmdMX2JvZHl6MDBfMjIpOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjk1ICovCm9ial90
IEJnTF9hcmcxNTEwejAwXzkxMTsKQmdMX2FyZzE1MTB6MDBfOTExID0gCkNBUihCZ0xfYm9keXow
MF8yMik7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyOTUgKi8KYm9vbF90IEJnTF90ZXN0MTEw
MnowMF8yMTQxOwpCZ0xfdGVzdDExMDJ6MDBfMjE0MSA9IApFWFRFTkRFRF9QQUlSUChCZ0xfYXJn
MTUxMHowMF85MTEpOyAKaWYoQmdMX3Rlc3QxMTAyejAwXzIxNDEpCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDI5NSAqLwpCZ0xfYXJnMTUwOXowMF85MTAgPSAKQ0VSKEJnTF9hcmcxNTEwejAwXzkx
MSk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI5NSAqLwpCZ0xfYXJnMTUwOXow
MF85MTAgPSBCZ0xfbG9jejAwXzI3OyB9IH0gfSAKcmV0dXJuIApCR2xfZXZjb21waWxlejAwenpf
X2V2Y29tcGlsZXowMChCZ0xfYXJnMTUwOHowMF85MDksIEJnTF9lbnZ6MDBfMjMsIEJnTF9nZW52
ejAwXzI0LCBCZ0xfd2hlcmV6MDBfMjUsIEJnTF9uYW1lZHpmM3pmM18yNiwgQmdMX2FyZzE1MDl6
MDBfOTEwKTt9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDI5NCAqLwp7IC8qIEV2
YWwvZXZjb21waWxlLnNjbSAyOTcgKi8Kb2JqX3QgQmdMX2Nib2R5ejAwXzkxMjsKQmdMX2Nib2R5
ejAwXzkxMiA9IApCR2xfbG9vcHowMHp6X19ldmNvbXBpbGV6MDAoQmdMX25hbWVkemYzemYzXzI2
LCBCZ0xfd2hlcmV6MDBfMjUsIEJnTF9nZW52ejAwXzI0LCBCZ0xfZW52ejAwXzIzLCBCZ0xfbG9j
ejAwXzI3LCBCZ0xfYm9keXowMF8yMik7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzMDkgKi8K
b2JqX3QgQmdMX3YxMDM3ejAwXzkxMzsKeyAKaW50IEJnTF9hdXh6MDBfNDAyNDsKQmdMX2F1eHow
MF80MDI0ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwMzd6MDBfOTEzID0gCmNyZWF0ZV92
ZWN0b3IoQmdMX2F1eHowMF80MDI0KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80MDI5O2ludCBC
Z0xfYXV4ejAwXzQwMjc7CkJnTF9hdXh6MDBfNDAyOSA9IApCR2xfbGlzdHpkMnplM3ZlY3Rvcnoz
MXp6X19yNF92ZWN0b3JzXzZfOHowMChCZ0xfY2JvZHl6MDBfOTEyKTsgCkJnTF9hdXh6MDBfNDAy
NyA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwMzd6MDBfOTEzLEJnTF9h
dXh6MDBfNDAyNyxCZ0xfYXV4ejAwXzQwMjkpOyB9IAp7IAppbnQgQmdMX2F1eHowMF80MDMyOwpC
Z0xfYXV4ejAwXzQwMzIgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDM3
ejAwXzkxMyxCZ0xfYXV4ejAwXzQwMzIsQmdMX2xvY3owMF8yNyk7IH0gCnsgCm9ial90IEJnTF9h
dXh6MDBfNDAzNztpbnQgQmdMX2F1eHowMF80MDM1OwpCZ0xfYXV4ejAwXzQwMzcgPSAKQklOVCgo
KGxvbmcpMTYpKTsgCkJnTF9hdXh6MDBfNDAzNSA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9S
X1NFVChCZ0xfdjEwMzd6MDBfOTEzLEJnTF9hdXh6MDBfNDAzNSxCZ0xfYXV4ejAwXzQwMzcpOyB9
IApyZXR1cm4gQmdMX3YxMDM3ejAwXzkxMzt9IH0gfSB9IH0gCn0KCgoKLyogbG9vcCAqLwpvYmpf
dCBCR2xfbG9vcHowMHp6X19ldmNvbXBpbGV6MDAob2JqX3QgQmdMX25hbWVkemYzemYzXzMwMDQs
IG9ial90IEJnTF93aGVyZXowMF8zMDAzLCBvYmpfdCBCZ0xfZ2VudnowMF8zMDAyLCBvYmpfdCBC
Z0xfZW52ejAwXzMwMDEsIG9ial90IEJnTF9sb2N6MDBfMzAwMCwgb2JqX3QgQmdMX3Jlc3R6MDBf
OTE2KQp7IEFOX09CSkVDVDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMjk3ICovCmlmKApOVUxM
UChCZ0xfcmVzdHowMF85MTYpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAyOTkgKi8KcmV0dXJu
IEJOSUw7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzAxICovCmJvb2xfdCBCZ0xf
dGVzdHowMF80MDQyOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzMDEgKi8Kb2JqX3QgQmdMX2F1
eHowMF80MDQzOwpCZ0xfYXV4ejAwXzQwNDMgPSAKQ0RSKEJnTF9yZXN0ejAwXzkxNik7IApCZ0xf
dGVzdHowMF80MDQyID0gCk5VTExQKEJnTF9hdXh6MDBfNDA0Myk7IH0gCmlmKEJnTF90ZXN0ejAw
XzQwNDIpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDMwMSAqLwp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzMDIgKi8Kb2JqX3QgQmdMX2FyZzE1MTV6MDBfOTIwOwp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzMDIgKi8Kb2JqX3QgQmdMX2FyZzE1MTd6MDBfOTIyO29ial90IEJnTF9hcmcxNTE4ejAw
XzkyMzsKQmdMX2FyZzE1MTd6MDBfOTIyID0gCkNBUihCZ0xfcmVzdHowMF85MTYpOyAKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gMzAzICovCm9ial90IEJnTF9hcmcxNTE5ejAwXzkyNDsKQmdMX2Fy
ZzE1MTl6MDBfOTI0ID0gCkNBUihCZ0xfcmVzdHowMF85MTYpOyAKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gMzAzICovCmJvb2xfdCBCZ0xfdGVzdDExMDJ6MDBfMjE1MTsKQmdMX3Rlc3QxMTAyejAw
XzIxNTEgPSAKRVhURU5ERURfUEFJUlAoQmdMX2FyZzE1MTl6MDBfOTI0KTsgCmlmKEJnTF90ZXN0
MTEwMnowMF8yMTUxKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzMDMgKi8KQmdMX2FyZzE1MTh6
MDBfOTIzID0gCkNFUihCZ0xfYXJnMTUxOXowMF85MjQpOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSAzMDMgKi8KQmdMX2FyZzE1MTh6MDBfOTIzID0gQmdMX2xvY3owMF8zMDAwOyB9
IH0gfSAKQmdMX2FyZzE1MTV6MDBfOTIwID0gCkJHbF9ldmNvbXBpbGV6MDB6el9fZXZjb21waWxl
ejAwKEJnTF9hcmcxNTE3ejAwXzkyMiwgQmdMX2VudnowMF8zMDAxLCBCZ0xfZ2VudnowMF8zMDAy
LCBCZ0xfd2hlcmV6MDBfMzAwMywgQmdMX25hbWVkemYzemYzXzMwMDQsIEJnTF9hcmcxNTE4ejAw
XzkyMyk7IH0gCnJldHVybiAKTUFLRV9QQUlSKEJnTF9hcmcxNTE1ejAwXzkyMCwgQk5JTCk7fSB9
ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzMDEgKi8KeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gMzA2ICovCm9ial90IEJnTF9hcmcxNTIwejAwXzkyNTtvYmpfdCBCZ0xfYXJnMTUyMXow
MF85MjY7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDMwNiAqLwpvYmpfdCBCZ0xfYXJnMTUyMnow
MF85Mjc7b2JqX3QgQmdMX2FyZzE1MjN6MDBfOTI4OwpCZ0xfYXJnMTUyMnowMF85MjcgPSAKQ0FS
KEJnTF9yZXN0ejAwXzkxNik7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzMDcgKi8Kb2JqX3Qg
QmdMX2FyZzE1MjR6MDBfOTI5OwpCZ0xfYXJnMTUyNHowMF85MjkgPSAKQ0FSKEJnTF9yZXN0ejAw
XzkxNik7IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzMDcgKi8KYm9vbF90IEJnTF90ZXN0MTEw
MnowMF8yMTU4OwpCZ0xfdGVzdDExMDJ6MDBfMjE1OCA9IApFWFRFTkRFRF9QQUlSUChCZ0xfYXJn
MTUyNHowMF85MjkpOyAKaWYoQmdMX3Rlc3QxMTAyejAwXzIxNTgpCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDMwNyAqLwpCZ0xfYXJnMTUyM3owMF85MjggPSAKQ0VSKEJnTF9hcmcxNTI0ejAwXzky
OSk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDMwNyAqLwpCZ0xfYXJnMTUyM3ow
MF85MjggPSBCZ0xfbG9jejAwXzMwMDA7IH0gfSB9IApCZ0xfYXJnMTUyMHowMF85MjUgPSAKQkds
X2V2Y29tcGlsZXowMHp6X19ldmNvbXBpbGV6MDAoQmdMX2FyZzE1MjJ6MDBfOTI3LCBCZ0xfZW52
ejAwXzMwMDEsIEJnTF9nZW52ejAwXzMwMDIsIEJnTF93aGVyZXowMF8zMDAzLCBCRkFMU0UsIEJn
TF9hcmcxNTIzejAwXzkyOCk7IH0gCkJnTF9hcmcxNTIxejAwXzkyNiA9IApCR2xfbG9vcHowMHp6
X19ldmNvbXBpbGV6MDAoQmdMX25hbWVkemYzemYzXzMwMDQsIEJnTF93aGVyZXowMF8zMDAzLCBC
Z0xfZ2VudnowMF8zMDAyLCBCZ0xfZW52ejAwXzMwMDEsIEJnTF9sb2N6MDBfMzAwMCwgCkNEUihC
Z0xfcmVzdHowMF85MTYpKTsgCnJldHVybiAKTUFLRV9QQUlSKEJnTF9hcmcxNTIwejAwXzkyNSwg
QmdMX2FyZzE1MjF6MDBfOTI2KTt9IH0gfSB9IAp9CgoKCi8qIGV2Y29tcGlsZS1sYW1iZGEgKi8K
b2JqX3QgQkdsX2V2Y29tcGlsZXpkMmxhbWJkYXpkMnp6X19ldmNvbXBpbGV6MDAob2JqX3QgQmdM
X2Zvcm1hbHN6MDBfMzksIG9ial90IEJnTF9ib2R5ejAwXzQwLCBvYmpfdCBCZ0xfd2hlcmV6MDBf
NDEsIG9ial90IEJnTF9uYW1lZHpmM3pmM180Miwgb2JqX3QgQmdMX2xvY3owMF80MykKeyBBTl9P
QkpFQ1Q7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NCAqLwp7IAoKaWYoCkJHbF9lcXVhbHpm
M3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6MDAoQmdMX2Zvcm1hbHN6MDBfMzksIEJOSUwpKQp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8KQmdMX3RhZ3pkMjE5NjZ6ZDJfOTQzOgppZigK
Q0JPT0woQmdMX25hbWVkemYzemYzXzQyKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ4ICov
Cm9ial90IEJnTF92MTA0MnowMF85OTg7CnsgCmludCBCZ0xfYXV4ejAwXzQwNjY7CkJnTF9hdXh6
MDBfNDA2NiA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDQyejAwXzk5OCA9IApjcmVhdGVf
dmVjdG9yKEJnTF9hdXh6MDBfNDA2Nik7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0OCAq
LwpvYmpfdCBCZ0xfYXJnMTU4NnowMF8xMDAwOwpCZ0xfYXJnMTU4NnowMF8xMDAwID0gCk1BS0Vf
UEFJUihCZ0xfd2hlcmV6MDBfNDEsIEJnTF9ib2R5ejAwXzQwKTsgCnsgCmludCBCZ0xfYXV4ejAw
XzQwNzA7CkJnTF9hdXh6MDBfNDA3MCA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChC
Z0xfdjEwNDJ6MDBfOTk4LEJnTF9hdXh6MDBfNDA3MCxCZ0xfYXJnMTU4NnowMF8xMDAwKTsgfSB9
IAp7IAppbnQgQmdMX2F1eHowMF80MDczOwpCZ0xfYXV4ejAwXzQwNzMgPSAKKGludCkoKChsb25n
KTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDQyejAwXzk5OCxCZ0xfYXV4ejAwXzQwNzMsQmdMX2xv
Y3owMF80Myk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDA3ODtpbnQgQmdMX2F1eHowMF80MDc2
Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDggKi8KbG9uZyBCZ0xfYXV4ejAwXzQwNzk7Cnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0OCAqLwpsb25nIEJnTF9hdXh6MDBfNDA4MDsKQmdMX2F1
eHowMF80MDgwID0gCmJnbF9saXN0X2xlbmd0aChCZ0xfZm9ybWFsc3owMF8zOSk7IApCZ0xfYXV4
ejAwXzQwNzkgPSAKKEJnTF9hdXh6MDBfNDA4MCsoKGxvbmcpMzcpKTsgfSAKQmdMX2F1eHowMF80
MDc4ID0gCkJJTlQoQmdMX2F1eHowMF80MDc5KTsgfSAKQmdMX2F1eHowMF80MDc2ID0gCihpbnQp
KCgobG9uZykwKSk7IApWRUNUT1JfU0VUKEJnTF92MTA0MnowMF85OTgsQmdMX2F1eHowMF80MDc2
LEJnTF9hdXh6MDBfNDA3OCk7IH0gCnJldHVybiBCZ0xfdjEwNDJ6MDBfOTk4O30gIGVsc2UgCnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0OSAqLwpvYmpfdCBCZ0xfdjEwNDN6MDBfMTAwNTsKeyAK
aW50IEJnTF9hdXh6MDBfNDA4NTsKQmdMX2F1eHowMF80MDg1ID0gCihpbnQpKCgobG9uZykzKSk7
IApCZ0xfdjEwNDN6MDBfMTAwNSA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDA4NSk7IH0g
CnsgCmludCBCZ0xfYXV4ejAwXzQwODg7CkJnTF9hdXh6MDBfNDA4OCA9IAooaW50KSgoKGxvbmcp
MikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDN6MDBfMTAwNSxCZ0xfYXV4ejAwXzQwODgsQmdMX2Jv
ZHl6MDBfNDApOyB9IAp7IAppbnQgQmdMX2F1eHowMF80MDkxOwpCZ0xfYXV4ejAwXzQwOTEgPSAK
KGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDQzejAwXzEwMDUsQmdMX2F1eHow
MF80MDkxLEJnTF9sb2N6MDBfNDMpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQwOTY7aW50IEJn
TF9hdXh6MDBfNDA5NDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ5ICovCmxvbmcgQmdMX2F1
eHowMF80MDk3Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDkgKi8KbG9uZyBCZ0xfYXV4ejAw
XzQwOTg7CkJnTF9hdXh6MDBfNDA5OCA9IApiZ2xfbGlzdF9sZW5ndGgoQmdMX2Zvcm1hbHN6MDBf
MzkpOyAKQmdMX2F1eHowMF80MDk3ID0gCihCZ0xfYXV4ejAwXzQwOTgrKChsb25nKTQyKSk7IH0g
CkJnTF9hdXh6MDBfNDA5NiA9IApCSU5UKEJnTF9hdXh6MDBfNDA5Nyk7IH0gCkJnTF9hdXh6MDBf
NDA5NCA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDN6MDBfMTAwNSxC
Z0xfYXV4ejAwXzQwOTQsQmdMX2F1eHowMF80MDk2KTsgfSAKcmV0dXJuIEJnTF92MTA0M3owMF8x
MDA1O30gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCmlmKApQQUlSUChC
Z0xfZm9ybWFsc3owMF8zOSkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwppZigKQkds
X2VxdWFsemYzemYzenpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMCgKQ0RSKEJnTF9mb3JtYWxzejAw
XzM5KSwgQk5JTCkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpnb3RvIEJnTF90YWd6
ZDIxOTY2emQyXzk0Mzt9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8Kb2Jq
X3QgQmdMX2NkcnpkMjE5Nzl6ZDJfOTUzOwpCZ0xfY2RyemQyMTk3OXpkMl85NTMgPSAKQ0RSKEJn
TF9mb3JtYWxzejAwXzM5KTsgCmlmKApQQUlSUChCZ0xfY2RyemQyMTk3OXpkMl85NTMpKQp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8KaWYoCkJHbF9lcXVhbHpmM3pmM3p6X19yNF9lcXVp
dmFsZW5jZV82XzJ6MDAoCkNEUihCZ0xfY2RyemQyMTk3OXpkMl85NTMpLCBCTklMKSkKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCmdvdG8gQmdMX3RhZ3pkMjE5NjZ6ZDJfOTQzO30gIGVs
c2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpvYmpfdCBCZ0xfY2RyemQyMTk4Nnpk
Ml85NTY7CkJnTF9jZHJ6ZDIxOTg2emQyXzk1NiA9IApDRFIoQmdMX2NkcnpkMjE5Nzl6ZDJfOTUz
KTsgCmlmKApQQUlSUChCZ0xfY2RyemQyMTk4NnpkMl85NTYpKQp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzNDUgKi8KaWYoCkJHbF9lcXVhbHpmM3pmM3p6X19yNF9lcXVpdmFsZW5jZV82XzJ6MDAo
CkNEUihCZ0xfY2RyemQyMTk4NnpkMl85NTYpLCBCTklMKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gMzQ1ICovCmdvdG8gQmdMX3RhZ3pkMjE5NjZ6ZDJfOTQzO30gIGVsc2UgCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDM0NSAqLwpvYmpfdCBCZ0xfY2RyemQyMTk5NHpkMl85NTk7CnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpvYmpfdCBCZ0xfYXV4ejAwXzQxMjA7CkJnTF9hdXh6MDBf
NDEyMCA9IApDRFIoQmdMX2NkcnpkMjE5Nzl6ZDJfOTUzKTsgCkJnTF9jZHJ6ZDIxOTk0emQyXzk1
OSA9IApDRFIoQmdMX2F1eHowMF80MTIwKTsgfSAKaWYoClBBSVJQKEJnTF9jZHJ6ZDIxOTk0emQy
Xzk1OSkpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwppZigKQkdsX2VxdWFsemYzemYz
enpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMCgKQ0RSKEJnTF9jZHJ6ZDIxOTk0emQyXzk1OSksIEJO
SUwpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8KZ290byBCZ0xfdGFnemQyMTk2Nnpk
Ml85NDM7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCmJvb2xfdCBCZ0xf
dGVzdHowMF80MTI4Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8Kb2JqX3QgQmdMX2F1
eHowMF80MTI5OwpCZ0xfYXV4ejAwXzQxMjkgPSAKQ0FSKEJnTF9mb3JtYWxzejAwXzM5KTsgCkJn
TF90ZXN0ejAwXzQxMjggPSAKUEFJUlAoQmdMX2F1eHowMF80MTI5KTsgfSAKaWYoQmdMX3Rlc3R6
MDBfNDEyOCkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCkJnTF90YWd6ZDIxOTcxemQy
Xzk0ODoKaWYoCkNCT09MKEJnTF9uYW1lZHpmM3pmM180MikpCnsgLyogRXZhbC9ldmNvbXBpbGUu
c2NtIDM2OCAqLwpvYmpfdCBCZ0xfdjEwNTJ6MDBfMTAyNjsKeyAKaW50IEJnTF9hdXh6MDBfNDEz
NDsKQmdMX2F1eHowMF80MTM0ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNTJ6MDBfMTAy
NiA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDEzNCk7IH0gCnsgLyogRXZhbC9ldmNvbXBp
bGUuc2NtIDM2OCAqLwpvYmpfdCBCZ0xfYXJnMTYwNnowMF8xMDI4Owp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAzNjggKi8Kb2JqX3QgQmdMX3YxMDUzejAwXzEwMjk7CnsgCmludCBCZ0xfYXV4ejAw
XzQxMzc7CkJnTF9hdXh6MDBfNDEzNyA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDUzejAw
XzEwMjkgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQxMzcpOyB9IAp7IAppbnQgQmdMX2F1
eHowMF80MTQwOwpCZ0xfYXV4ejAwXzQxNDAgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9T
RVQoQmdMX3YxMDUzejAwXzEwMjksQmdMX2F1eHowMF80MTQwLEJnTF9mb3JtYWxzejAwXzM5KTsg
fSAKeyAKaW50IEJnTF9hdXh6MDBfNDE0MzsKQmdMX2F1eHowMF80MTQzID0gCihpbnQpKCgobG9u
ZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTA1M3owMF8xMDI5LEJnTF9hdXh6MDBfNDE0MyxCZ0xf
Ym9keXowMF80MCk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQxNDY7CkJnTF9hdXh6MDBfNDE0NiA9
IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNTN6MDBfMTAyOSxCZ0xfYXV4
ejAwXzQxNDYsQmdMX3doZXJlejAwXzQxKTsgfSAKQmdMX2FyZzE2MDZ6MDBfMTAyOCA9IEJnTF92
MTA1M3owMF8xMDI5OyB9IAp7IAppbnQgQmdMX2F1eHowMF80MTQ5OwpCZ0xfYXV4ejAwXzQxNDkg
PSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDUyejAwXzEwMjYsQmdMX2F1
eHowMF80MTQ5LEJnTF9hcmcxNjA2ejAwXzEwMjgpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQx
NTI7CkJnTF9hdXh6MDBfNDE1MiA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xf
djEwNTJ6MDBfMTAyNixCZ0xfYXV4ejAwXzQxNTIsQmdMX2xvY3owMF80Myk7IH0gCnsgCm9ial90
IEJnTF9hdXh6MDBfNDE1NztpbnQgQmdMX2F1eHowMF80MTU1OwpCZ0xfYXV4ejAwXzQxNTcgPSAK
QklOVCgoKGxvbmcpNTUpKTsgCkJnTF9hdXh6MDBfNDE1NSA9IAooaW50KSgoKGxvbmcpMCkpOyAK
VkVDVE9SX1NFVChCZ0xfdjEwNTJ6MDBfMTAyNixCZ0xfYXV4ejAwXzQxNTUsQmdMX2F1eHowMF80
MTU3KTsgfSAKcmV0dXJuIEJnTF92MTA1MnowMF8xMDI2O30gIGVsc2UgCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDM2OSAqLwpvYmpfdCBCZ0xfdjEwNTR6MDBfMTAzMDsKeyAKaW50IEJnTF9hdXh6
MDBfNDE2MDsKQmdMX2F1eHowMF80MTYwID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNTR6
MDBfMTAzMCA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDE2MCk7IH0gCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDM2OSAqLwpvYmpfdCBCZ0xfYXJnMTYwOHowMF8xMDMyOwpCZ0xfYXJnMTYw
OHowMF8xMDMyID0gCk1BS0VfUEFJUihCZ0xfYm9keXowMF80MCwgQmdMX2Zvcm1hbHN6MDBfMzkp
OyAKeyAKaW50IEJnTF9hdXh6MDBfNDE2NDsKQmdMX2F1eHowMF80MTY0ID0gCihpbnQpKCgobG9u
ZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTA1NHowMF8xMDMwLEJnTF9hdXh6MDBfNDE2NCxCZ0xf
YXJnMTYwOHowMF8xMDMyKTsgfSB9IAp7IAppbnQgQmdMX2F1eHowMF80MTY3OwpCZ0xfYXV4ejAw
XzQxNjcgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDU0ejAwXzEwMzAs
QmdMX2F1eHowMF80MTY3LEJnTF9sb2N6MDBfNDMpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQx
NzI7aW50IEJnTF9hdXh6MDBfNDE3MDsKQmdMX2F1eHowMF80MTcyID0gCkJJTlQoKChsb25nKTU2
KSk7IApCZ0xfYXV4ejAwXzQxNzAgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdM
X3YxMDU0ejAwXzEwMzAsQmdMX2F1eHowMF80MTcwLEJnTF9hdXh6MDBfNDE3Mik7IH0gCnJldHVy
biBCZ0xfdjEwNTR6MDBfMTAzMDt9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0
NSAqLwpib29sX3QgQmdMX3Rlc3R6MDBfNDE3NTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1
ICovCm9ial90IEJnTF9hdXh6MDBfNDE3NjsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICov
Cm9ial90IEJnTF9hdXh6MDBfNDE3NzsKQmdMX2F1eHowMF80MTc3ID0gCkNEUihCZ0xfZm9ybWFs
c3owMF8zOSk7IApCZ0xfYXV4ejAwXzQxNzYgPSAKQ0FSKEJnTF9hdXh6MDBfNDE3Nyk7IH0gCkJn
TF90ZXN0ejAwXzQxNzUgPSAKUEFJUlAoQmdMX2F1eHowMF80MTc2KTsgfSAKaWYoQmdMX3Rlc3R6
MDBfNDE3NSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCmdvdG8gQmdMX3RhZ3pkMjE5
NzF6ZDJfOTQ4O30gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpib29sX3Qg
QmdMX3Rlc3R6MDBfNDE4MTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJn
TF9hdXh6MDBfNDE4MjsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJnTF9h
dXh6MDBfNDE4MzsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJnTF9hdXh6
MDBfNDE4NDsKQmdMX2F1eHowMF80MTg0ID0gCkNEUihCZ0xfZm9ybWFsc3owMF8zOSk7IApCZ0xf
YXV4ejAwXzQxODMgPSAKQ0RSKEJnTF9hdXh6MDBfNDE4NCk7IH0gCkJnTF9hdXh6MDBfNDE4MiA9
IApDQVIoQmdMX2F1eHowMF80MTgzKTsgfSAKQmdMX3Rlc3R6MDBfNDE4MSA9IApQQUlSUChCZ0xf
YXV4ejAwXzQxODIpOyB9IAppZihCZ0xfdGVzdHowMF80MTgxKQp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzNDUgKi8KZ290byBCZ0xfdGFnemQyMTk3MXpkMl85NDg7fSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMzQ1ICovCmdvdG8gQmdMX3RhZ3pkMjE5NzF6ZDJfOTQ4O30gfSB9IH0g
fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCmJvb2xfdCBCZ0xfdGVzdHow
MF80MTg5Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8Kb2JqX3QgQmdMX2F1eHowMF80
MTkwOwpCZ0xfYXV4ejAwXzQxOTAgPSAKQ0FSKEJnTF9mb3JtYWxzejAwXzM5KTsgCkJnTF90ZXN0
ejAwXzQxODkgPSAKUEFJUlAoQmdMX2F1eHowMF80MTkwKTsgfSAKaWYoQmdMX3Rlc3R6MDBfNDE4
OSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCmdvdG8gQmdMX3RhZ3pkMjE5NzF6ZDJf
OTQ4O30gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpib29sX3QgQmdMX3Rl
c3R6MDBfNDE5MzsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJnTF9hdXh6
MDBfNDE5NDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJnTF9hdXh6MDBf
NDE5NTsKQmdMX2F1eHowMF80MTk1ID0gCkNEUihCZ0xfZm9ybWFsc3owMF8zOSk7IApCZ0xfYXV4
ejAwXzQxOTQgPSAKQ0FSKEJnTF9hdXh6MDBfNDE5NSk7IH0gCkJnTF90ZXN0ejAwXzQxOTMgPSAK
UEFJUlAoQmdMX2F1eHowMF80MTk0KTsgfSAKaWYoQmdMX3Rlc3R6MDBfNDE5MykKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMzQ1ICovCmdvdG8gQmdMX3RhZ3pkMjE5NzF6ZDJfOTQ4O30gIGVsc2Ug
CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpib29sX3QgQmdMX3Rlc3R6MDBfNDE5OTsK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJnTF9hdXh6MDBfNDIwMDsKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJnTF9hdXh6MDBfNDIwMTsKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCm9ial90IEJnTF9hdXh6MDBfNDIwMjsKQmdMX2F1eHow
MF80MjAyID0gCkNEUihCZ0xfZm9ybWFsc3owMF8zOSk7IApCZ0xfYXV4ejAwXzQyMDEgPSAKQ0RS
KEJnTF9hdXh6MDBfNDIwMik7IH0gCkJnTF9hdXh6MDBfNDIwMCA9IApDQVIoQmdMX2F1eHowMF80
MjAxKTsgfSAKQmdMX3Rlc3R6MDBfNDE5OSA9IApQQUlSUChCZ0xfYXV4ejAwXzQyMDApOyB9IApp
ZihCZ0xfdGVzdHowMF80MTk5KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8KZ290byBC
Z0xfdGFnemQyMTk3MXpkMl85NDg7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1
ICovCmlmKApDQk9PTChCZ0xfbmFtZWR6ZjN6ZjNfNDIpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNj
bSAzNjQgKi8Kb2JqX3QgQmdMX3YxMDUwejAwXzEwMjI7CnsgCmludCBCZ0xfYXV4ejAwXzQyMDk7
CkJnTF9hdXh6MDBfNDIwOSA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDUwejAwXzEwMjIg
PSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQyMDkpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzNjQgKi8Kb2JqX3QgQmdMX2FyZzE2MDR6MDBfMTAyNDsKQmdMX2FyZzE2MDR6MDBfMTAy
NCA9IApNQUtFX1BBSVIoQmdMX3doZXJlejAwXzQxLCBCZ0xfYm9keXowMF80MCk7IAp7IAppbnQg
QmdMX2F1eHowMF80MjEzOwpCZ0xfYXV4ejAwXzQyMTMgPSAKKGludCkoKChsb25nKTIpKTsgClZF
Q1RPUl9TRVQoQmdMX3YxMDUwejAwXzEwMjIsQmdMX2F1eHowMF80MjEzLEJnTF9hcmcxNjA0ejAw
XzEwMjQpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQyMTY7CkJnTF9hdXh6MDBfNDIxNiA9IAoo
aW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNTB6MDBfMTAyMixCZ0xfYXV4ejAw
XzQyMTYsQmdMX2xvY3owMF80Myk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDIyMTtpbnQgQmdM
X2F1eHowMF80MjE5OwpCZ0xfYXV4ejAwXzQyMjEgPSAKQklOVCgoKGxvbmcpNTApKTsgCkJnTF9h
dXh6MDBfNDIxOSA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNTB6MDBf
MTAyMixCZ0xfYXV4ejAwXzQyMTksQmdMX2F1eHowMF80MjIxKTsgfSAKcmV0dXJuIEJnTF92MTA1
MHowMF8xMDIyO30gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM2NSAqLwpvYmpfdCBC
Z0xfdjEwNTF6MDBfMTAyNTsKeyAKaW50IEJnTF9hdXh6MDBfNDIyNDsKQmdMX2F1eHowMF80MjI0
ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNTF6MDBfMTAyNSA9IApjcmVhdGVfdmVjdG9y
KEJnTF9hdXh6MDBfNDIyNCk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQyMjc7CkJnTF9hdXh6MDBf
NDIyNyA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNTF6MDBfMTAyNSxC
Z0xfYXV4ejAwXzQyMjcsQmdMX2JvZHl6MDBfNDApOyB9IAp7IAppbnQgQmdMX2F1eHowMF80MjMw
OwpCZ0xfYXV4ejAwXzQyMzAgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDUxejAwXzEwMjUsQmdMX2F1eHowMF80MjMwLEJnTF9sb2N6MDBfNDMpOyB9IAp7IApvYmpfdCBC
Z0xfYXV4ejAwXzQyMzU7aW50IEJnTF9hdXh6MDBfNDIzMzsKQmdMX2F1eHowMF80MjM1ID0gCkJJ
TlQoKChsb25nKTU0KSk7IApCZ0xfYXV4ejAwXzQyMzMgPSAKKGludCkoKChsb25nKTApKTsgClZF
Q1RPUl9TRVQoQmdMX3YxMDUxejAwXzEwMjUsQmdMX2F1eHowMF80MjMzLEJnTF9hdXh6MDBfNDIz
NSk7IH0gCnJldHVybiBCZ0xfdjEwNTF6MDBfMTAyNTt9IH0gfSB9IH0gfSB9ICBlbHNlIAp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8KYm9vbF90IEJnTF90ZXN0ejAwXzQyMzg7CnsgLyog
RXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpvYmpfdCBCZ0xfYXV4ejAwXzQyMzk7CkJnTF9hdXh6
MDBfNDIzOSA9IApDQVIoQmdMX2Zvcm1hbHN6MDBfMzkpOyAKQmdMX3Rlc3R6MDBfNDIzOCA9IApQ
QUlSUChCZ0xfYXV4ejAwXzQyMzkpOyB9IAppZihCZ0xfdGVzdHowMF80MjM4KQp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAzNDUgKi8KZ290byBCZ0xfdGFnemQyMTk3MXpkMl85NDg7fSAgZWxzZSAK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzQ1ICovCmJvb2xfdCBCZ0xfdGVzdHowMF80MjQyOwp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8Kb2JqX3QgQmdMX2F1eHowMF80MjQzOwpCZ0xf
YXV4ejAwXzQyNDMgPSAKQ0FSKEJnTF9jZHJ6ZDIxOTc5emQyXzk1Myk7IApCZ0xfdGVzdHowMF80
MjQyID0gClBBSVJQKEJnTF9hdXh6MDBfNDI0Myk7IH0gCmlmKEJnTF90ZXN0ejAwXzQyNDIpCnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwpnb3RvIEJnTF90YWd6ZDIxOTcxemQyXzk0ODt9
ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8KaWYoCkNCT09MKEJnTF9uYW1l
ZHpmM3pmM180MikpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM2MCAqLwpvYmpfdCBCZ0xfdjEw
NDh6MDBfMTAxODsKeyAKaW50IEJnTF9hdXh6MDBfNDI0ODsKQmdMX2F1eHowMF80MjQ4ID0gCihp
bnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNDh6MDBfMTAxOCA9IApjcmVhdGVfdmVjdG9yKEJnTF9h
dXh6MDBfNDI0OCk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM2MCAqLwpvYmpfdCBCZ0xf
YXJnMTYwMnowMF8xMDIwOwpCZ0xfYXJnMTYwMnowMF8xMDIwID0gCk1BS0VfUEFJUihCZ0xfd2hl
cmV6MDBfNDEsIEJnTF9ib2R5ejAwXzQwKTsgCnsgCmludCBCZ0xfYXV4ejAwXzQyNTI7CkJnTF9h
dXh6MDBfNDI1MiA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDh6MDBf
MTAxOCxCZ0xfYXV4ejAwXzQyNTIsQmdMX2FyZzE2MDJ6MDBfMTAyMCk7IH0gfSAKeyAKaW50IEJn
TF9hdXh6MDBfNDI1NTsKQmdMX2F1eHowMF80MjU1ID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNU
T1JfU0VUKEJnTF92MTA0OHowMF8xMDE4LEJnTF9hdXh6MDBfNDI1NSxCZ0xfbG9jejAwXzQzKTsg
fSAKeyAKb2JqX3QgQmdMX2F1eHowMF80MjYwO2ludCBCZ0xfYXV4ejAwXzQyNTg7CkJnTF9hdXh6
MDBfNDI2MCA9IApCSU5UKCgobG9uZyk0OSkpOyAKQmdMX2F1eHowMF80MjU4ID0gCihpbnQpKCgo
bG9uZykwKSk7IApWRUNUT1JfU0VUKEJnTF92MTA0OHowMF8xMDE4LEJnTF9hdXh6MDBfNDI1OCxC
Z0xfYXV4ejAwXzQyNjApOyB9IApyZXR1cm4gQmdMX3YxMDQ4ejAwXzEwMTg7fSAgZWxzZSAKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gMzYxICovCm9ial90IEJnTF92MTA0OXowMF8xMDIxOwp7IApp
bnQgQmdMX2F1eHowMF80MjYzOwpCZ0xfYXV4ejAwXzQyNjMgPSAKKGludCkoKChsb25nKTMpKTsg
CkJnTF92MTA0OXowMF8xMDIxID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80MjYzKTsgfSAK
eyAKaW50IEJnTF9hdXh6MDBfNDI2NjsKQmdMX2F1eHowMF80MjY2ID0gCihpbnQpKCgobG9uZyky
KSk7IApWRUNUT1JfU0VUKEJnTF92MTA0OXowMF8xMDIxLEJnTF9hdXh6MDBfNDI2NixCZ0xfYm9k
eXowMF80MCk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQyNjk7CkJnTF9hdXh6MDBfNDI2OSA9IAoo
aW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDl6MDBfMTAyMSxCZ0xfYXV4ejAw
XzQyNjksQmdMX2xvY3owMF80Myk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDI3NDtpbnQgQmdM
X2F1eHowMF80MjcyOwpCZ0xfYXV4ejAwXzQyNzQgPSAKQklOVCgoKGxvbmcpNTMpKTsgCkJnTF9h
dXh6MDBfNDI3MiA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDl6MDBf
MTAyMSxCZ0xfYXV4ejAwXzQyNzIsQmdMX2F1eHowMF80Mjc0KTsgfSAKcmV0dXJuIEJnTF92MTA0
OXowMF8xMDIxO30gfSB9IH0gfSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUg
Ki8KYm9vbF90IEJnTF90ZXN0ejAwXzQyNzc7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAq
LwpvYmpfdCBCZ0xfYXV4ejAwXzQyNzg7CkJnTF9hdXh6MDBfNDI3OCA9IApDQVIoQmdMX2Zvcm1h
bHN6MDBfMzkpOyAKQmdMX3Rlc3R6MDBfNDI3NyA9IApQQUlSUChCZ0xfYXV4ejAwXzQyNzgpOyB9
IAppZihCZ0xfdGVzdHowMF80Mjc3KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNDUgKi8KZ290
byBCZ0xfdGFnemQyMTk3MXpkMl85NDg7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
MzQ1ICovCmlmKApDQk9PTChCZ0xfbmFtZWR6ZjN6ZjNfNDIpKQp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzNTYgKi8Kb2JqX3QgQmdMX3YxMDQ2ejAwXzEwMTQ7CnsgCmludCBCZ0xfYXV4ejAwXzQy
ODM7CkJnTF9hdXh6MDBfNDI4MyA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDQ2ejAwXzEw
MTQgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQyODMpOyB9IAp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAzNTYgKi8Kb2JqX3QgQmdMX2FyZzE2MDB6MDBfMTAxNjsKQmdMX2FyZzE2MDB6MDBf
MTAxNiA9IApNQUtFX1BBSVIoQmdMX3doZXJlejAwXzQxLCBCZ0xfYm9keXowMF80MCk7IAp7IApp
bnQgQmdMX2F1eHowMF80Mjg3OwpCZ0xfYXV4ejAwXzQyODcgPSAKKGludCkoKChsb25nKTIpKTsg
ClZFQ1RPUl9TRVQoQmdMX3YxMDQ2ejAwXzEwMTQsQmdMX2F1eHowMF80Mjg3LEJnTF9hcmcxNjAw
ejAwXzEwMTYpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQyOTA7CkJnTF9hdXh6MDBfNDI5MCA9
IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDZ6MDBfMTAxNCxCZ0xfYXV4
ejAwXzQyOTAsQmdMX2xvY3owMF80Myk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDI5NTtpbnQg
QmdMX2F1eHowMF80MjkzOwpCZ0xfYXV4ejAwXzQyOTUgPSAKQklOVCgoKGxvbmcpNDgpKTsgCkJn
TF9hdXh6MDBfNDI5MyA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDZ6
MDBfMTAxNCxCZ0xfYXV4ejAwXzQyOTMsQmdMX2F1eHowMF80Mjk1KTsgfSAKcmV0dXJuIEJnTF92
MTA0NnowMF8xMDE0O30gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM1NyAqLwpvYmpf
dCBCZ0xfdjEwNDd6MDBfMTAxNzsKeyAKaW50IEJnTF9hdXh6MDBfNDI5ODsKQmdMX2F1eHowMF80
Mjk4ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNDd6MDBfMTAxNyA9IApjcmVhdGVfdmVj
dG9yKEJnTF9hdXh6MDBfNDI5OCk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQzMDE7CkJnTF9hdXh6
MDBfNDMwMSA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNDd6MDBfMTAx
NyxCZ0xfYXV4ejAwXzQzMDEsQmdMX2JvZHl6MDBfNDApOyB9IAp7IAppbnQgQmdMX2F1eHowMF80
MzA0OwpCZ0xfYXV4ejAwXzQzMDQgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdM
X3YxMDQ3ejAwXzEwMTcsQmdMX2F1eHowMF80MzA0LEJnTF9sb2N6MDBfNDMpOyB9IAp7IApvYmpf
dCBCZ0xfYXV4ejAwXzQzMDk7aW50IEJnTF9hdXh6MDBfNDMwNzsKQmdMX2F1eHowMF80MzA5ID0g
CkJJTlQoKChsb25nKTUyKSk7IApCZ0xfYXV4ejAwXzQzMDcgPSAKKGludCkoKChsb25nKTApKTsg
ClZFQ1RPUl9TRVQoQmdMX3YxMDQ3ejAwXzEwMTcsQmdMX2F1eHowMF80MzA3LEJnTF9hdXh6MDBf
NDMwOSk7IH0gCnJldHVybiBCZ0xfdjEwNDd6MDBfMTAxNzt9IH0gfSB9IH0gIGVsc2UgCnsgLyog
RXZhbC9ldmNvbXBpbGUuc2NtIDM0NSAqLwppZigKQ0JPT0woQmdMX25hbWVkemYzemYzXzQyKSkK
eyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzUyICovCm9ial90IEJnTF92MTA0NHowMF8xMDEwOwp7
IAppbnQgQmdMX2F1eHowMF80MzE0OwpCZ0xfYXV4ejAwXzQzMTQgPSAKKGludCkoKChsb25nKTMp
KTsgCkJnTF92MTA0NHowMF8xMDEwID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80MzE0KTsg
fSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzUyICovCm9ial90IEJnTF9hcmcxNTk4ejAwXzEw
MTI7CkJnTF9hcmcxNTk4ejAwXzEwMTIgPSAKTUFLRV9QQUlSKEJnTF93aGVyZXowMF80MSwgQmdM
X2JvZHl6MDBfNDApOyAKeyAKaW50IEJnTF9hdXh6MDBfNDMxODsKQmdMX2F1eHowMF80MzE4ID0g
CihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTA0NHowMF8xMDEwLEJnTF9hdXh6
MDBfNDMxOCxCZ0xfYXJnMTU5OHowMF8xMDEyKTsgfSB9IAp7IAppbnQgQmdMX2F1eHowMF80MzIx
OwpCZ0xfYXV4ejAwXzQzMjEgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDQ0ejAwXzEwMTAsQmdMX2F1eHowMF80MzIxLEJnTF9sb2N6MDBfNDMpOyB9IAp7IApvYmpfdCBC
Z0xfYXV4ejAwXzQzMjY7aW50IEJnTF9hdXh6MDBfNDMyNDsKQmdMX2F1eHowMF80MzI2ID0gCkJJ
TlQoKChsb25nKTQ3KSk7IApCZ0xfYXV4ejAwXzQzMjQgPSAKKGludCkoKChsb25nKTApKTsgClZF
Q1RPUl9TRVQoQmdMX3YxMDQ0ejAwXzEwMTAsQmdMX2F1eHowMF80MzI0LEJnTF9hdXh6MDBfNDMy
Nik7IH0gCnJldHVybiBCZ0xfdjEwNDR6MDBfMTAxMDt9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSAzNTMgKi8Kb2JqX3QgQmdMX3YxMDQ1ejAwXzEwMTM7CnsgCmludCBCZ0xfYXV4ejAw
XzQzMjk7CkJnTF9hdXh6MDBfNDMyOSA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDQ1ejAw
XzEwMTMgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQzMjkpOyB9IAp7IAppbnQgQmdMX2F1
eHowMF80MzMyOwpCZ0xfYXV4ejAwXzQzMzIgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9T
RVQoQmdMX3YxMDQ1ejAwXzEwMTMsQmdMX2F1eHowMF80MzMyLEJnTF9ib2R5ejAwXzQwKTsgfSAK
eyAKaW50IEJnTF9hdXh6MDBfNDMzNTsKQmdMX2F1eHowMF80MzM1ID0gCihpbnQpKCgobG9uZykx
KSk7IApWRUNUT1JfU0VUKEJnTF92MTA0NXowMF8xMDEzLEJnTF9hdXh6MDBfNDMzNSxCZ0xfbG9j
ejAwXzQzKTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80MzQwO2ludCBCZ0xfYXV4ejAwXzQzMzg7
CkJnTF9hdXh6MDBfNDM0MCA9IApCSU5UKCgobG9uZyk1MSkpOyAKQmdMX2F1eHowMF80MzM4ID0g
CihpbnQpKCgobG9uZykwKSk7IApWRUNUT1JfU0VUKEJnTF92MTA0NXowMF8xMDEzLEJnTF9hdXh6
MDBfNDMzOCxCZ0xfYXV4ejAwXzQzNDApOyB9IApyZXR1cm4gQmdMX3YxMDQ1ejAwXzEwMTM7fSB9
IH0gfSB9IAp9CgoKCi8qIGV2Y29tcGlsZS1nbG9iYWwtYXBwbGljYXRpb24gKi8Kb2JqX3QgQkds
X2V2Y29tcGlsZXpkMmdsb2JhbHpkMmFwcGxpY2F0aW9uejAwenpfX2V2Y29tcGlsZXowMChvYmpf
dCBCZ0xfcHJvY3owMF80NCwgb2JqX3QgQmdMX2FjdHVhbHN6MDBfNDUsIG9ial90IEJnTF9sb2N6
MDBfNDYpCnsgQU5fT0JKRUNUOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNzQgKi8KeyAKCnN3
aXRjaCggCmJnbF9saXN0X2xlbmd0aChCZ0xfYWN0dWFsc3owMF80NSkpIHsgY2FzZSAoKGxvbmcp
MCkgOiAKCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM3NyAqLwpvYmpfdCBCZ0xfdjEwNTl6MDBf
MTAzNjsKeyAKaW50IEJnTF9hdXh6MDBfNDM0MzsKQmdMX2F1eHowMF80MzQzID0gCihpbnQpKCgo
bG9uZykzKSk7IApCZ0xfdjEwNTl6MDBfMTAzNiA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBf
NDM0Myk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM3NyAqLwpvYmpfdCBCZ0xfYXJnMTYx
MXowMF8xMDM4Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNzkgKi8Kb2JqX3QgQmdMX3YxMDYw
ejAwXzEwMzk7CnsgCmludCBCZ0xfYXV4ejAwXzQzNDY7CkJnTF9hdXh6MDBfNDM0NiA9IAooaW50
KSgoKGxvbmcpMikpOyAKQmdMX3YxMDYwejAwXzEwMzkgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4
ejAwXzQzNDYpOyB9IAp7IAppbnQgQmdMX2F1eHowMF80MzQ5OwpCZ0xfYXV4ejAwXzQzNDkgPSAK
KGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDYwejAwXzEwMzksQmdMX2F1eHow
MF80MzQ5LEJnTF9wcm9jejAwXzQ0KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80MzU0O2ludCBC
Z0xfYXV4ejAwXzQzNTI7CnsgCmludCBCZ0xfYXV4ejAwXzQzNTU7CkJnTF9hdXh6MDBfNDM1NSA9
IAooaW50KSgoKGxvbmcpMSkpOyAKQmdMX2F1eHowMF80MzU0ID0gClZFQ1RPUl9SRUYoQmdMX3By
b2N6MDBfNDQsQmdMX2F1eHowMF80MzU1KTsgfSAKQmdMX2F1eHowMF80MzUyID0gCihpbnQpKCgo
bG9uZykwKSk7IApWRUNUT1JfU0VUKEJnTF92MTA2MHowMF8xMDM5LEJnTF9hdXh6MDBfNDM1MixC
Z0xfYXV4ejAwXzQzNTQpOyB9IApCZ0xfYXJnMTYxMXowMF8xMDM4ID0gQmdMX3YxMDYwejAwXzEw
Mzk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQzNTk7CkJnTF9hdXh6MDBfNDM1OSA9IAooaW50KSgo
KGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNTl6MDBfMTAzNixCZ0xfYXV4ejAwXzQzNTks
QmdMX2FyZzE2MTF6MDBfMTAzOCk7IH0gfSAKeyAKaW50IEJnTF9hdXh6MDBfNDM2MjsKQmdMX2F1
eHowMF80MzYyID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTA1OXowMF8x
MDM2LEJnTF9hdXh6MDBfNDM2MixCZ0xfbG9jejAwXzQ2KTsgfSAKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gMzc3ICovCmxvbmcgQmdMX2FyZzE2MTV6MDBfMTA0MzsKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gMzc3ICovCmJvb2xfdCBCZ0xfdGVzdHowMF80MzY1Owp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzNzcgKi8Kb2JqX3QgQmdMX2F1eHowMF80MzcwO29ial90IEJnTF9hdXh6MDBfNDM2NjsK
QmdMX2F1eHowMF80MzcwID0gCkJJTlQoKChsb25nKTEpKTsgCnsgCmludCBCZ0xfYXV4ejAwXzQz
Njc7CkJnTF9hdXh6MDBfNDM2NyA9IAooaW50KSgoKGxvbmcpMCkpOyAKQmdMX2F1eHowMF80MzY2
ID0gClZFQ1RPUl9SRUYoQmdMX3Byb2N6MDBfNDQsQmdMX2F1eHowMF80MzY3KTsgfSAKQmdMX3Rl
c3R6MDBfNDM2NSA9IAooQmdMX2F1eHowMF80MzY2PT1CZ0xfYXV4ejAwXzQzNzApOyB9IAppZihC
Z0xfdGVzdHowMF80MzY1KQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzNzcgKi8KQmdMX2FyZzE2
MTV6MDBfMTA0MyA9ICgobG9uZykxOSk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDM3NyAqLwpCZ0xfYXJnMTYxNXowMF8xMDQzID0gKChsb25nKTU3KTsgfSB9IAp7IApvYmpfdCBC
Z0xfYXV4ejAwXzQzNzU7aW50IEJnTF9hdXh6MDBfNDM3MzsKQmdMX2F1eHowMF80Mzc1ID0gCkJJ
TlQoQmdMX2FyZzE2MTV6MDBfMTA0Myk7IApCZ0xfYXV4ejAwXzQzNzMgPSAKKGludCkoKChsb25n
KTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDU5ejAwXzEwMzYsQmdMX2F1eHowMF80MzczLEJnTF9h
dXh6MDBfNDM3NSk7IH0gfSAKcmV0dXJuIEJnTF92MTA1OXowMF8xMDM2O30gYnJlYWs7Y2FzZSAo
KGxvbmcpMSkgOiAKCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM4MiAqLwpvYmpfdCBCZ0xfdjEw
NjF6MDBfMTA0NzsKeyAKaW50IEJnTF9hdXh6MDBfNDM3ODsKQmdMX2F1eHowMF80Mzc4ID0gCihp
bnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNjF6MDBfMTA0NyA9IApjcmVhdGVfdmVjdG9yKEJnTF9h
dXh6MDBfNDM3OCk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM4MiAqLwpvYmpfdCBCZ0xf
YXJnMTYyMHowMF8xMDQ5Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzODQgKi8Kb2JqX3QgQmdM
X3YxMDYyejAwXzEwNTA7CnsgCmludCBCZ0xfYXV4ejAwXzQzODE7CkJnTF9hdXh6MDBfNDM4MSA9
IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDYyejAwXzEwNTAgPSAKY3JlYXRlX3ZlY3RvcihC
Z0xfYXV4ejAwXzQzODEpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQzODY7aW50IEJnTF9hdXh6
MDBfNDM4NDsKQmdMX2F1eHowMF80Mzg2ID0gCkNBUihCZ0xfYWN0dWFsc3owMF80NSk7IApCZ0xf
YXV4ejAwXzQzODQgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDYyejAw
XzEwNTAsQmdMX2F1eHowMF80Mzg0LEJnTF9hdXh6MDBfNDM4Nik7IH0gCnsgCmludCBCZ0xfYXV4
ejAwXzQzODk7CkJnTF9hdXh6MDBfNDM4OSA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NF
VChCZ0xfdjEwNjJ6MDBfMTA1MCxCZ0xfYXV4ejAwXzQzODksQmdMX3Byb2N6MDBfNDQpOyB9IAp7
IApvYmpfdCBCZ0xfYXV4ejAwXzQzOTQ7aW50IEJnTF9hdXh6MDBfNDM5MjsKeyAKaW50IEJnTF9h
dXh6MDBfNDM5NTsKQmdMX2F1eHowMF80Mzk1ID0gCihpbnQpKCgobG9uZykxKSk7IApCZ0xfYXV4
ejAwXzQzOTQgPSAKVkVDVE9SX1JFRihCZ0xfcHJvY3owMF80NCxCZ0xfYXV4ejAwXzQzOTUpOyB9
IApCZ0xfYXV4ejAwXzQzOTIgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDYyejAwXzEwNTAsQmdMX2F1eHowMF80MzkyLEJnTF9hdXh6MDBfNDM5NCk7IH0gCkJnTF9hcmcx
NjIwejAwXzEwNDkgPSBCZ0xfdjEwNjJ6MDBfMTA1MDsgfSAKeyAKaW50IEJnTF9hdXh6MDBfNDM5
OTsKQmdMX2F1eHowMF80Mzk5ID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92
MTA2MXowMF8xMDQ3LEJnTF9hdXh6MDBfNDM5OSxCZ0xfYXJnMTYyMHowMF8xMDQ5KTsgfSB9IAp7
IAppbnQgQmdMX2F1eHowMF80NDAyOwpCZ0xfYXV4ejAwXzQ0MDIgPSAKKGludCkoKChsb25nKTEp
KTsgClZFQ1RPUl9TRVQoQmdMX3YxMDYxejAwXzEwNDcsQmdMX2F1eHowMF80NDAyLEJnTF9sb2N6
MDBfNDYpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzODIgKi8KbG9uZyBCZ0xfYXJnMTYy
NnowMF8xMDU2Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzODIgKi8KYm9vbF90IEJnTF90ZXN0
ejAwXzQ0MDU7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM4MiAqLwpvYmpfdCBCZ0xfYXV4ejAw
XzQ0MTA7b2JqX3QgQmdMX2F1eHowMF80NDA2OwpCZ0xfYXV4ejAwXzQ0MTAgPSAKQklOVCgoKGxv
bmcpMSkpOyAKeyAKaW50IEJnTF9hdXh6MDBfNDQwNzsKQmdMX2F1eHowMF80NDA3ID0gCihpbnQp
KCgobG9uZykwKSk7IApCZ0xfYXV4ejAwXzQ0MDYgPSAKVkVDVE9SX1JFRihCZ0xfcHJvY3owMF80
NCxCZ0xfYXV4ejAwXzQ0MDcpOyB9IApCZ0xfdGVzdHowMF80NDA1ID0gCihCZ0xfYXV4ejAwXzQ0
MDY9PUJnTF9hdXh6MDBfNDQxMCk7IH0gCmlmKEJnTF90ZXN0ejAwXzQ0MDUpCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDM4MiAqLwpCZ0xfYXJnMTYyNnowMF8xMDU2ID0gKChsb25nKTIwKTsgfSAg
ZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzgyICovCkJnTF9hcmcxNjI2ejAwXzEwNTYg
PSAoKGxvbmcpNTgpOyB9IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDQxNTtpbnQgQmdMX2F1eHow
MF80NDEzOwpCZ0xfYXV4ejAwXzQ0MTUgPSAKQklOVChCZ0xfYXJnMTYyNnowMF8xMDU2KTsgCkJn
TF9hdXh6MDBfNDQxMyA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNjF6
MDBfMTA0NyxCZ0xfYXV4ejAwXzQ0MTMsQmdMX2F1eHowMF80NDE1KTsgfSB9IApyZXR1cm4gQmdM
X3YxMDYxejAwXzEwNDc7fSBicmVhaztjYXNlICgobG9uZykyKSA6IAoKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMzg4ICovCm9ial90IEJnTF92MTA2M3owMF8xMDYwOwp7IAppbnQgQmdMX2F1eHow
MF80NDE4OwpCZ0xfYXV4ejAwXzQ0MTggPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92MTA2M3ow
MF8xMDYwID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80NDE4KTsgfSAKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gMzg4ICovCm9ial90IEJnTF9hcmcxNjMxejAwXzEwNjI7CnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDM5MCAqLwpvYmpfdCBCZ0xfdjEwNjR6MDBfMTA2MzsKeyAKaW50IEJnTF9h
dXh6MDBfNDQyMTsKQmdMX2F1eHowMF80NDIxID0gCihpbnQpKCgobG9uZyk0KSk7IApCZ0xfdjEw
NjR6MDBfMTA2MyA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDQyMSk7IH0gCnsgCm9ial90
IEJnTF9hdXh6MDBfNDQyNjtpbnQgQmdMX2F1eHowMF80NDI0Owp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSAzOTMgKi8Kb2JqX3QgQmdMX2F1eHowMF80NDI3OwpCZ0xfYXV4ejAwXzQ0MjcgPSAKQ0RS
KEJnTF9hY3R1YWxzejAwXzQ1KTsgCkJnTF9hdXh6MDBfNDQyNiA9IApDQVIoQmdMX2F1eHowMF80
NDI3KTsgfSAKQmdMX2F1eHowMF80NDI0ID0gCihpbnQpKCgobG9uZykzKSk7IApWRUNUT1JfU0VU
KEJnTF92MTA2NHowMF8xMDYzLEJnTF9hdXh6MDBfNDQyNCxCZ0xfYXV4ejAwXzQ0MjYpOyB9IAp7
IApvYmpfdCBCZ0xfYXV4ejAwXzQ0MzM7aW50IEJnTF9hdXh6MDBfNDQzMTsKQmdMX2F1eHowMF80
NDMzID0gCkNBUihCZ0xfYWN0dWFsc3owMF80NSk7IApCZ0xfYXV4ejAwXzQ0MzEgPSAKKGludCko
KChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDY0ejAwXzEwNjMsQmdMX2F1eHowMF80NDMx
LEJnTF9hdXh6MDBfNDQzMyk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ0MzY7CkJnTF9hdXh6MDBf
NDQzNiA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNjR6MDBfMTA2MyxC
Z0xfYXV4ejAwXzQ0MzYsQmdMX3Byb2N6MDBfNDQpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ0
NDE7aW50IEJnTF9hdXh6MDBfNDQzOTsKeyAKaW50IEJnTF9hdXh6MDBfNDQ0MjsKQmdMX2F1eHow
MF80NDQyID0gCihpbnQpKCgobG9uZykxKSk7IApCZ0xfYXV4ejAwXzQ0NDEgPSAKVkVDVE9SX1JF
RihCZ0xfcHJvY3owMF80NCxCZ0xfYXV4ejAwXzQ0NDIpOyB9IApCZ0xfYXV4ejAwXzQ0MzkgPSAK
KGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDY0ejAwXzEwNjMsQmdMX2F1eHow
MF80NDM5LEJnTF9hdXh6MDBfNDQ0MSk7IH0gCkJnTF9hcmcxNjMxejAwXzEwNjIgPSBCZ0xfdjEw
NjR6MDBfMTA2MzsgfSAKeyAKaW50IEJnTF9hdXh6MDBfNDQ0NjsKQmdMX2F1eHowMF80NDQ2ID0g
CihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTA2M3owMF8xMDYwLEJnTF9hdXh6
MDBfNDQ0NixCZ0xfYXJnMTYzMXowMF8xMDYyKTsgfSB9IAp7IAppbnQgQmdMX2F1eHowMF80NDQ5
OwpCZ0xfYXV4ejAwXzQ0NDkgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDYzejAwXzEwNjAsQmdMX2F1eHowMF80NDQ5LEJnTF9sb2N6MDBfNDYpOyB9IAp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAzODggKi8KbG9uZyBCZ0xfYXJnMTYzOXowMF8xMDcxOwp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSAzODggKi8KYm9vbF90IEJnTF90ZXN0ejAwXzQ0NTI7CnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDM4OCAqLwpvYmpfdCBCZ0xfYXV4ejAwXzQ0NTc7b2JqX3QgQmdMX2F1eHow
MF80NDUzOwpCZ0xfYXV4ejAwXzQ0NTcgPSAKQklOVCgoKGxvbmcpMSkpOyAKeyAKaW50IEJnTF9h
dXh6MDBfNDQ1NDsKQmdMX2F1eHowMF80NDU0ID0gCihpbnQpKCgobG9uZykwKSk7IApCZ0xfYXV4
ejAwXzQ0NTMgPSAKVkVDVE9SX1JFRihCZ0xfcHJvY3owMF80NCxCZ0xfYXV4ejAwXzQ0NTQpOyB9
IApCZ0xfdGVzdHowMF80NDUyID0gCihCZ0xfYXV4ejAwXzQ0NTM9PUJnTF9hdXh6MDBfNDQ1Nyk7
IH0gCmlmKEJnTF90ZXN0ejAwXzQ0NTIpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM4OCAqLwpC
Z0xfYXJnMTYzOXowMF8xMDcxID0gKChsb25nKTIxKTsgfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gMzg4ICovCkJnTF9hcmcxNjM5ejAwXzEwNzEgPSAoKGxvbmcpNTkpOyB9IH0gCnsg
Cm9ial90IEJnTF9hdXh6MDBfNDQ2MjtpbnQgQmdMX2F1eHowMF80NDYwOwpCZ0xfYXV4ejAwXzQ0
NjIgPSAKQklOVChCZ0xfYXJnMTYzOXowMF8xMDcxKTsgCkJnTF9hdXh6MDBfNDQ2MCA9IAooaW50
KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNjN6MDBfMTA2MCxCZ0xfYXV4ejAwXzQ0
NjAsQmdMX2F1eHowMF80NDYyKTsgfSB9IApyZXR1cm4gQmdMX3YxMDYzejAwXzEwNjA7fSBicmVh
aztjYXNlICgobG9uZykzKSA6IAoKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzk1ICovCm9ial90
IEJnTF92MTA2NXowMF8xMDc1Owp7IAppbnQgQmdMX2F1eHowMF80NDY1OwpCZ0xfYXV4ejAwXzQ0
NjUgPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92MTA2NXowMF8xMDc1ID0gCmNyZWF0ZV92ZWN0
b3IoQmdMX2F1eHowMF80NDY1KTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzk1ICovCm9i
al90IEJnTF9hcmcxNjQ0ejAwXzEwNzc7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM5NyAqLwpv
YmpfdCBCZ0xfdjEwNjZ6MDBfMTA3ODsKeyAKaW50IEJnTF9hdXh6MDBfNDQ2ODsKQmdMX2F1eHow
MF80NDY4ID0gCihpbnQpKCgobG9uZyk1KSk7IApCZ0xfdjEwNjZ6MDBfMTA3OCA9IApjcmVhdGVf
dmVjdG9yKEJnTF9hdXh6MDBfNDQ2OCk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDQ3MztpbnQg
QmdMX2F1eHowMF80NDcxOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MDEgKi8Kb2JqX3QgQmdM
X2F1eHowMF80NDc0Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MDEgKi8Kb2JqX3QgQmdMX2F1
eHowMF80NDc1OwpCZ0xfYXV4ejAwXzQ0NzUgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzQ1KTsgCkJn
TF9hdXh6MDBfNDQ3NCA9IApDRFIoQmdMX2F1eHowMF80NDc1KTsgfSAKQmdMX2F1eHowMF80NDcz
ID0gCkNBUihCZ0xfYXV4ejAwXzQ0NzQpOyB9IApCZ0xfYXV4ejAwXzQ0NzEgPSAKKGludCkoKChs
b25nKTQpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDY2ejAwXzEwNzgsQmdMX2F1eHowMF80NDcxLEJn
TF9hdXh6MDBfNDQ3Myk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDQ4MjtpbnQgQmdMX2F1eHow
MF80NDgwOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MDAgKi8Kb2JqX3QgQmdMX2F1eHowMF80
NDgzOwpCZ0xfYXV4ejAwXzQ0ODMgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzQ1KTsgCkJnTF9hdXh6
MDBfNDQ4MiA9IApDQVIoQmdMX2F1eHowMF80NDgzKTsgfSAKQmdMX2F1eHowMF80NDgwID0gCihp
bnQpKCgobG9uZykzKSk7IApWRUNUT1JfU0VUKEJnTF92MTA2NnowMF8xMDc4LEJnTF9hdXh6MDBf
NDQ4MCxCZ0xfYXV4ejAwXzQ0ODIpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ0ODk7aW50IEJn
TF9hdXh6MDBfNDQ4NzsKQmdMX2F1eHowMF80NDg5ID0gCkNBUihCZ0xfYWN0dWFsc3owMF80NSk7
IApCZ0xfYXV4ejAwXzQ0ODcgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDY2ejAwXzEwNzgsQmdMX2F1eHowMF80NDg3LEJnTF9hdXh6MDBfNDQ4OSk7IH0gCnsgCmludCBC
Z0xfYXV4ejAwXzQ0OTI7CkJnTF9hdXh6MDBfNDQ5MiA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVD
VE9SX1NFVChCZ0xfdjEwNjZ6MDBfMTA3OCxCZ0xfYXV4ejAwXzQ0OTIsQmdMX3Byb2N6MDBfNDQp
OyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ0OTc7aW50IEJnTF9hdXh6MDBfNDQ5NTsKeyAKaW50
IEJnTF9hdXh6MDBfNDQ5ODsKQmdMX2F1eHowMF80NDk4ID0gCihpbnQpKCgobG9uZykxKSk7IApC
Z0xfYXV4ejAwXzQ0OTcgPSAKVkVDVE9SX1JFRihCZ0xfcHJvY3owMF80NCxCZ0xfYXV4ejAwXzQ0
OTgpOyB9IApCZ0xfYXV4ejAwXzQ0OTUgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQo
QmdMX3YxMDY2ejAwXzEwNzgsQmdMX2F1eHowMF80NDk1LEJnTF9hdXh6MDBfNDQ5Nyk7IH0gCkJn
TF9hcmcxNjQ0ejAwXzEwNzcgPSBCZ0xfdjEwNjZ6MDBfMTA3ODsgfSAKeyAKaW50IEJnTF9hdXh6
MDBfNDUwMjsKQmdMX2F1eHowMF80NTAyID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VU
KEJnTF92MTA2NXowMF8xMDc1LEJnTF9hdXh6MDBfNDUwMixCZ0xfYXJnMTY0NHowMF8xMDc3KTsg
fSB9IAp7IAppbnQgQmdMX2F1eHowMF80NTA1OwpCZ0xfYXV4ejAwXzQ1MDUgPSAKKGludCkoKChs
b25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDY1ejAwXzEwNzUsQmdMX2F1eHowMF80NTA1LEJn
TF9sb2N6MDBfNDYpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzOTUgKi8KbG9uZyBCZ0xf
YXJnMTY1NHowMF8xMDg4Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSAzOTUgKi8KYm9vbF90IEJn
TF90ZXN0ejAwXzQ1MDg7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDM5NSAqLwpvYmpfdCBCZ0xf
YXV4ejAwXzQ1MTM7b2JqX3QgQmdMX2F1eHowMF80NTA5OwpCZ0xfYXV4ejAwXzQ1MTMgPSAKQklO
VCgoKGxvbmcpMSkpOyAKeyAKaW50IEJnTF9hdXh6MDBfNDUxMDsKQmdMX2F1eHowMF80NTEwID0g
CihpbnQpKCgobG9uZykwKSk7IApCZ0xfYXV4ejAwXzQ1MDkgPSAKVkVDVE9SX1JFRihCZ0xfcHJv
Y3owMF80NCxCZ0xfYXV4ejAwXzQ1MTApOyB9IApCZ0xfdGVzdHowMF80NTA4ID0gCihCZ0xfYXV4
ejAwXzQ1MDk9PUJnTF9hdXh6MDBfNDUxMyk7IH0gCmlmKEJnTF90ZXN0ejAwXzQ1MDgpCnsgLyog
RXZhbC9ldmNvbXBpbGUuc2NtIDM5NSAqLwpCZ0xfYXJnMTY1NHowMF8xMDg4ID0gKChsb25nKTIy
KTsgfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gMzk1ICovCkJnTF9hcmcxNjU0ejAw
XzEwODggPSAoKGxvbmcpNjApOyB9IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDUxODtpbnQgQmdM
X2F1eHowMF80NTE2OwpCZ0xfYXV4ejAwXzQ1MTggPSAKQklOVChCZ0xfYXJnMTY1NHowMF8xMDg4
KTsgCkJnTF9hdXh6MDBfNDUxNiA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xf
djEwNjV6MDBfMTA3NSxCZ0xfYXV4ejAwXzQ1MTYsQmdMX2F1eHowMF80NTE4KTsgfSB9IApyZXR1
cm4gQmdMX3YxMDY1ejAwXzEwNzU7fSBicmVhaztjYXNlICgobG9uZyk0KSA6IAoKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gNDAzICovCm9ial90IEJnTF92MTA2N3owMF8xMDkyOwp7IAppbnQgQmdM
X2F1eHowMF80NTIxOwpCZ0xfYXV4ejAwXzQ1MjEgPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92
MTA2N3owMF8xMDkyID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80NTIxKTsgfSAKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gNDAzICovCm9ial90IEJnTF9hcmcxNjU5ejAwXzEwOTQ7CnsgLyog
RXZhbC9ldmNvbXBpbGUuc2NtIDQwNSAqLwpvYmpfdCBCZ0xfdjEwNjh6MDBfMTA5NTsKeyAKaW50
IEJnTF9hdXh6MDBfNDUyNDsKQmdMX2F1eHowMF80NTI0ID0gCihpbnQpKCgobG9uZyk2KSk7IApC
Z0xfdjEwNjh6MDBfMTA5NSA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDUyNCk7IH0gCnsg
Cm9ial90IEJnTF9hdXh6MDBfNDUyOTtpbnQgQmdMX2F1eHowMF80NTI3Owp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSA0MTAgKi8Kb2JqX3QgQmdMX2F1eHowMF80NTMwOwp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSA0MTAgKi8Kb2JqX3QgQmdMX2F1eHowMF80NTMxOwp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSA0MTAgKi8Kb2JqX3QgQmdMX2F1eHowMF80NTMyOwpCZ0xfYXV4ejAwXzQ1MzIgPSAKQ0RS
KEJnTF9hY3R1YWxzejAwXzQ1KTsgCkJnTF9hdXh6MDBfNDUzMSA9IApDRFIoQmdMX2F1eHowMF80
NTMyKTsgfSAKQmdMX2F1eHowMF80NTMwID0gCkNEUihCZ0xfYXV4ejAwXzQ1MzEpOyB9IApCZ0xf
YXV4ejAwXzQ1MjkgPSAKQ0FSKEJnTF9hdXh6MDBfNDUzMCk7IH0gCkJnTF9hdXh6MDBfNDUyNyA9
IAooaW50KSgoKGxvbmcpNSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNjh6MDBfMTA5NSxCZ0xfYXV4
ejAwXzQ1MjcsQmdMX2F1eHowMF80NTI5KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80NTQwO2lu
dCBCZ0xfYXV4ejAwXzQ1Mzg7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQwOSAqLwpvYmpfdCBC
Z0xfYXV4ejAwXzQ1NDE7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQwOSAqLwpvYmpfdCBCZ0xf
YXV4ejAwXzQ1NDI7CkJnTF9hdXh6MDBfNDU0MiA9IApDRFIoQmdMX2FjdHVhbHN6MDBfNDUpOyAK
QmdMX2F1eHowMF80NTQxID0gCkNEUihCZ0xfYXV4ejAwXzQ1NDIpOyB9IApCZ0xfYXV4ejAwXzQ1
NDAgPSAKQ0FSKEJnTF9hdXh6MDBfNDU0MSk7IH0gCkJnTF9hdXh6MDBfNDUzOCA9IAooaW50KSgo
KGxvbmcpNCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNjh6MDBfMTA5NSxCZ0xfYXV4ejAwXzQ1Mzgs
QmdMX2F1eHowMF80NTQwKTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80NTQ5O2ludCBCZ0xfYXV4
ejAwXzQ1NDc7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQwOCAqLwpvYmpfdCBCZ0xfYXV4ejAw
XzQ1NTA7CkJnTF9hdXh6MDBfNDU1MCA9IApDRFIoQmdMX2FjdHVhbHN6MDBfNDUpOyAKQmdMX2F1
eHowMF80NTQ5ID0gCkNBUihCZ0xfYXV4ejAwXzQ1NTApOyB9IApCZ0xfYXV4ejAwXzQ1NDcgPSAK
KGludCkoKChsb25nKTMpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDY4ejAwXzEwOTUsQmdMX2F1eHow
MF80NTQ3LEJnTF9hdXh6MDBfNDU0OSk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDU1NjtpbnQg
QmdMX2F1eHowMF80NTU0OwpCZ0xfYXV4ejAwXzQ1NTYgPSAKQ0FSKEJnTF9hY3R1YWxzejAwXzQ1
KTsgCkJnTF9hdXh6MDBfNDU1NCA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xf
djEwNjh6MDBfMTA5NSxCZ0xfYXV4ejAwXzQ1NTQsQmdMX2F1eHowMF80NTU2KTsgfSAKeyAKaW50
IEJnTF9hdXh6MDBfNDU1OTsKQmdMX2F1eHowMF80NTU5ID0gCihpbnQpKCgobG9uZykxKSk7IApW
RUNUT1JfU0VUKEJnTF92MTA2OHowMF8xMDk1LEJnTF9hdXh6MDBfNDU1OSxCZ0xfcHJvY3owMF80
NCk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDU2NDtpbnQgQmdMX2F1eHowMF80NTYyOwp7IApp
bnQgQmdMX2F1eHowMF80NTY1OwpCZ0xfYXV4ejAwXzQ1NjUgPSAKKGludCkoKChsb25nKTEpKTsg
CkJnTF9hdXh6MDBfNDU2NCA9IApWRUNUT1JfUkVGKEJnTF9wcm9jejAwXzQ0LEJnTF9hdXh6MDBf
NDU2NSk7IH0gCkJnTF9hdXh6MDBfNDU2MiA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NF
VChCZ0xfdjEwNjh6MDBfMTA5NSxCZ0xfYXV4ejAwXzQ1NjIsQmdMX2F1eHowMF80NTY0KTsgfSAK
QmdMX2FyZzE2NTl6MDBfMTA5NCA9IEJnTF92MTA2OHowMF8xMDk1OyB9IAp7IAppbnQgQmdMX2F1
eHowMF80NTY5OwpCZ0xfYXV4ejAwXzQ1NjkgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9T
RVQoQmdMX3YxMDY3ejAwXzEwOTIsQmdMX2F1eHowMF80NTY5LEJnTF9hcmcxNjU5ejAwXzEwOTQp
OyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ1NzI7CkJnTF9hdXh6MDBfNDU3MiA9IAooaW50KSgo
KGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNjd6MDBfMTA5MixCZ0xfYXV4ejAwXzQ1NzIs
QmdMX2xvY3owMF80Nik7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQwMyAqLwpsb25nIEJn
TF9hcmcxNjc0ejAwXzExMDc7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQwMyAqLwpib29sX3Qg
QmdMX3Rlc3R6MDBfNDU3NTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDAzICovCm9ial90IEJn
TF9hdXh6MDBfNDU4MDtvYmpfdCBCZ0xfYXV4ejAwXzQ1NzY7CkJnTF9hdXh6MDBfNDU4MCA9IApC
SU5UKCgobG9uZykxKSk7IAp7IAppbnQgQmdMX2F1eHowMF80NTc3OwpCZ0xfYXV4ejAwXzQ1Nzcg
PSAKKGludCkoKChsb25nKTApKTsgCkJnTF9hdXh6MDBfNDU3NiA9IApWRUNUT1JfUkVGKEJnTF9w
cm9jejAwXzQ0LEJnTF9hdXh6MDBfNDU3Nyk7IH0gCkJnTF90ZXN0ejAwXzQ1NzUgPSAKKEJnTF9h
dXh6MDBfNDU3Nj09QmdMX2F1eHowMF80NTgwKTsgfSAKaWYoQmdMX3Rlc3R6MDBfNDU3NSkKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gNDAzICovCkJnTF9hcmcxNjc0ejAwXzExMDcgPSAoKGxvbmcp
MjMpOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MDMgKi8KQmdMX2FyZzE2NzR6
MDBfMTEwNyA9ICgobG9uZyk2MSk7IH0gfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80NTg1O2ludCBC
Z0xfYXV4ejAwXzQ1ODM7CkJnTF9hdXh6MDBfNDU4NSA9IApCSU5UKEJnTF9hcmcxNjc0ejAwXzEx
MDcpOyAKQmdMX2F1eHowMF80NTgzID0gCihpbnQpKCgobG9uZykwKSk7IApWRUNUT1JfU0VUKEJn
TF92MTA2N3owMF8xMDkyLEJnTF9hdXh6MDBfNDU4MyxCZ0xfYXV4ejAwXzQ1ODUpOyB9IH0gCnJl
dHVybiBCZ0xfdjEwNjd6MDBfMTA5Mjt9IGJyZWFrOwpkZWZhdWx0OiAKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gNDEyICovCm9ial90IEJnTF92MTA1NXowMF8xMTExOwp7IAppbnQgQmdMX2F1eHow
MF80NTg4OwpCZ0xfYXV4ejAwXzQ1ODggPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92MTA1NXow
MF8xMTExID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80NTg4KTsgfSAKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gNDEyICovCm9ial90IEJnTF9hcmcxNjc5ejAwXzExMTM7CnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDQxNCAqLwpvYmpfdCBCZ0xfdjEwNTZ6MDBfMTExNDsKeyAKaW50IEJnTF9h
dXh6MDBfNDU5MTsKQmdMX2F1eHowMF80NTkxID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEw
NTZ6MDBfMTExNCA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDU5MSk7IH0gCnsgCmludCBC
Z0xfYXV4ejAwXzQ1OTQ7CkJnTF9hdXh6MDBfNDU5NCA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVD
VE9SX1NFVChCZ0xfdjEwNTZ6MDBfMTExNCxCZ0xfYXV4ejAwXzQ1OTQsQmdMX2FjdHVhbHN6MDBf
NDUpOyB9IAp7IAppbnQgQmdMX2F1eHowMF80NTk3OwpCZ0xfYXV4ejAwXzQ1OTcgPSAKKGludCko
KChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDU2ejAwXzExMTQsQmdMX2F1eHowMF80NTk3
LEJnTF9wcm9jejAwXzQ0KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80NjAyO2ludCBCZ0xfYXV4
ejAwXzQ2MDA7CnsgCmludCBCZ0xfYXV4ejAwXzQ2MDM7CkJnTF9hdXh6MDBfNDYwMyA9IAooaW50
KSgoKGxvbmcpMSkpOyAKQmdMX2F1eHowMF80NjAyID0gClZFQ1RPUl9SRUYoQmdMX3Byb2N6MDBf
NDQsQmdMX2F1eHowMF80NjAzKTsgfSAKQmdMX2F1eHowMF80NjAwID0gCihpbnQpKCgobG9uZykw
KSk7IApWRUNUT1JfU0VUKEJnTF92MTA1NnowMF8xMTE0LEJnTF9hdXh6MDBfNDYwMCxCZ0xfYXV4
ejAwXzQ2MDIpOyB9IApCZ0xfYXJnMTY3OXowMF8xMTEzID0gQmdMX3YxMDU2ejAwXzExMTQ7IH0g
CnsgCmludCBCZ0xfYXV4ejAwXzQ2MDc7CkJnTF9hdXh6MDBfNDYwNyA9IAooaW50KSgoKGxvbmcp
MikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNTV6MDBfMTExMSxCZ0xfYXV4ejAwXzQ2MDcsQmdMX2Fy
ZzE2Nzl6MDBfMTExMyk7IH0gfSAKeyAKaW50IEJnTF9hdXh6MDBfNDYxMDsKQmdMX2F1eHowMF80
NjEwID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTA1NXowMF8xMTExLEJn
TF9hdXh6MDBfNDYxMCxCZ0xfbG9jejAwXzQ2KTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
NDEyICovCmxvbmcgQmdMX2FyZzE2ODN6MDBfMTExODsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
NDEyICovCmJvb2xfdCBCZ0xfdGVzdHowMF80NjEzOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0
MTIgKi8Kb2JqX3QgQmdMX2F1eHowMF80NjE4O29ial90IEJnTF9hdXh6MDBfNDYxNDsKQmdMX2F1
eHowMF80NjE4ID0gCkJJTlQoKChsb25nKTEpKTsgCnsgCmludCBCZ0xfYXV4ejAwXzQ2MTU7CkJn
TF9hdXh6MDBfNDYxNSA9IAooaW50KSgoKGxvbmcpMCkpOyAKQmdMX2F1eHowMF80NjE0ID0gClZF
Q1RPUl9SRUYoQmdMX3Byb2N6MDBfNDQsQmdMX2F1eHowMF80NjE1KTsgfSAKQmdMX3Rlc3R6MDBf
NDYxMyA9IAooQmdMX2F1eHowMF80NjE0PT1CZ0xfYXV4ejAwXzQ2MTgpOyB9IAppZihCZ0xfdGVz
dHowMF80NjEzKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MTIgKi8KQmdMX2FyZzE2ODN6MDBf
MTExOCA9ICgobG9uZykyNCk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQxMiAq
LwpCZ0xfYXJnMTY4M3owMF8xMTE4ID0gKChsb25nKTYyKTsgfSB9IAp7IApvYmpfdCBCZ0xfYXV4
ejAwXzQ2MjM7aW50IEJnTF9hdXh6MDBfNDYyMTsKQmdMX2F1eHowMF80NjIzID0gCkJJTlQoQmdM
X2FyZzE2ODN6MDBfMTExOCk7IApCZ0xfYXV4ejAwXzQ2MjEgPSAKKGludCkoKChsb25nKTApKTsg
ClZFQ1RPUl9TRVQoQmdMX3YxMDU1ejAwXzExMTEsQmdMX2F1eHowMF80NjIxLEJnTF9hdXh6MDBf
NDYyMyk7IH0gfSAKcmV0dXJuIEJnTF92MTA1NXowMF8xMTExO30gfSB9IH0gCn0KCgoKLyogZXZj
b21waWxlLWNvbXBpbGVkLWFwcGxpY2F0aW9uICovCm9ial90IEJHbF9ldmNvbXBpbGV6ZDJjb21w
aWxlZHpkMmFwcGxpY2F0aW9uejAwenpfX2V2Y29tcGlsZXowMChvYmpfdCBCZ0xfcHJvY3owMF80
Nywgb2JqX3QgQmdMX2FjdHVhbHN6MDBfNDgsIG9ial90IEJnTF9sb2N6MDBfNDkpCnsgQU5fT0JK
RUNUOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MjEgKi8KeyAKCnN3aXRjaCggCmJnbF9saXN0
X2xlbmd0aChCZ0xfYWN0dWFsc3owMF80OCkpIHsgY2FzZSAoKGxvbmcpMCkgOiAKCnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDQyNCAqLwpvYmpfdCBCZ0xfdjEwNzJ6MDBfMTEyNTsKeyAKaW50IEJn
TF9hdXh6MDBfNDYyODsKQmdMX2F1eHowMF80NjI4ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xf
djEwNzJ6MDBfMTEyNSA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDYyOCk7IH0gCnsgCmlu
dCBCZ0xfYXV4ejAwXzQ2MzE7CkJnTF9hdXh6MDBfNDYzMSA9IAooaW50KSgoKGxvbmcpMikpOyAK
VkVDVE9SX1NFVChCZ0xfdjEwNzJ6MDBfMTEyNSxCZ0xfYXV4ejAwXzQ2MzEsQmdMX3Byb2N6MDBf
NDcpOyB9IAp7IAppbnQgQmdMX2F1eHowMF80NjM0OwpCZ0xfYXV4ejAwXzQ2MzQgPSAKKGludCko
KChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDcyejAwXzExMjUsQmdMX2F1eHowMF80NjM0
LEJnTF9sb2N6MDBfNDkpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ2Mzk7aW50IEJnTF9hdXh6
MDBfNDYzNzsKQmdMX2F1eHowMF80NjM5ID0gCkJJTlQoKChsb25nKTI1KSk7IApCZ0xfYXV4ejAw
XzQ2MzcgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDcyejAwXzExMjUs
QmdMX2F1eHowMF80NjM3LEJnTF9hdXh6MDBfNDYzOSk7IH0gCnJldHVybiBCZ0xfdjEwNzJ6MDBf
MTEyNTt9IGJyZWFrO2Nhc2UgKChsb25nKTEpIDogCgp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0
MjYgKi8Kb2JqX3QgQmdMX3YxMDczejAwXzExMjY7CnsgCmludCBCZ0xfYXV4ejAwXzQ2NDI7CkJn
TF9hdXh6MDBfNDY0MiA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDczejAwXzExMjYgPSAK
Y3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQ2NDIpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNj
bSA0MjYgKi8Kb2JqX3QgQmdMX2FyZzE2ODl6MDBfMTEyODsKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gNDI2ICovCm9ial90IEJnTF92MTA3NHowMF8xMTI5Owp7IAppbnQgQmdMX2F1eHowMF80NjQ1
OwpCZ0xfYXV4ejAwXzQ2NDUgPSAKKGludCkoKChsb25nKTIpKTsgCkJnTF92MTA3NHowMF8xMTI5
ID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80NjQ1KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHow
MF80NjUwO2ludCBCZ0xfYXV4ejAwXzQ2NDg7CkJnTF9hdXh6MDBfNDY1MCA9IApDQVIoQmdMX2Fj
dHVhbHN6MDBfNDgpOyAKQmdMX2F1eHowMF80NjQ4ID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNU
T1JfU0VUKEJnTF92MTA3NHowMF8xMTI5LEJnTF9hdXh6MDBfNDY0OCxCZ0xfYXV4ejAwXzQ2NTAp
OyB9IAp7IAppbnQgQmdMX2F1eHowMF80NjUzOwpCZ0xfYXV4ejAwXzQ2NTMgPSAKKGludCkoKChs
b25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDc0ejAwXzExMjksQmdMX2F1eHowMF80NjUzLEJn
TF9wcm9jejAwXzQ3KTsgfSAKQmdMX2FyZzE2ODl6MDBfMTEyOCA9IEJnTF92MTA3NHowMF8xMTI5
OyB9IAp7IAppbnQgQmdMX2F1eHowMF80NjU2OwpCZ0xfYXV4ejAwXzQ2NTYgPSAKKGludCkoKChs
b25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDczejAwXzExMjYsQmdMX2F1eHowMF80NjU2LEJn
TF9hcmcxNjg5ejAwXzExMjgpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ2NTk7CkJnTF9hdXh6
MDBfNDY1OSA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNzN6MDBfMTEy
NixCZ0xfYXV4ejAwXzQ2NTksQmdMX2xvY3owMF80OSk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBf
NDY2NDtpbnQgQmdMX2F1eHowMF80NjYyOwpCZ0xfYXV4ejAwXzQ2NjQgPSAKQklOVCgoKGxvbmcp
MjYpKTsgCkJnTF9hdXh6MDBfNDY2MiA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChC
Z0xfdjEwNzN6MDBfMTEyNixCZ0xfYXV4ejAwXzQ2NjIsQmdMX2F1eHowMF80NjY0KTsgfSAKcmV0
dXJuIEJnTF92MTA3M3owMF8xMTI2O30gYnJlYWs7Y2FzZSAoKGxvbmcpMikgOiAKCnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDQyOCAqLwpvYmpfdCBCZ0xfdjEwNzV6MDBfMTEzMjsKeyAKaW50IEJn
TF9hdXh6MDBfNDY2NzsKQmdMX2F1eHowMF80NjY3ID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xf
djEwNzV6MDBfMTEzMiA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDY2Nyk7IH0gCnsgLyog
RXZhbC9ldmNvbXBpbGUuc2NtIDQyOCAqLwpvYmpfdCBCZ0xfYXJnMTY5NHowMF8xMTM0Owp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA0MjggKi8Kb2JqX3QgQmdMX3YxMDc2ejAwXzExMzU7CnsgCmlu
dCBCZ0xfYXV4ejAwXzQ2NzA7CkJnTF9hdXh6MDBfNDY3MCA9IAooaW50KSgoKGxvbmcpMykpOyAK
QmdMX3YxMDc2ejAwXzExMzUgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQ2NzApOyB9IAp7
IApvYmpfdCBCZ0xfYXV4ejAwXzQ2NzU7aW50IEJnTF9hdXh6MDBfNDY3MzsKeyAvKiBFdmFsL2V2
Y29tcGlsZS5zY20gNDI5ICovCm9ial90IEJnTF9hdXh6MDBfNDY3NjsKQmdMX2F1eHowMF80Njc2
ID0gCkNEUihCZ0xfYWN0dWFsc3owMF80OCk7IApCZ0xfYXV4ejAwXzQ2NzUgPSAKQ0FSKEJnTF9h
dXh6MDBfNDY3Nik7IH0gCkJnTF9hdXh6MDBfNDY3MyA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVD
VE9SX1NFVChCZ0xfdjEwNzZ6MDBfMTEzNSxCZ0xfYXV4ejAwXzQ2NzMsQmdMX2F1eHowMF80Njc1
KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80NjgyO2ludCBCZ0xfYXV4ejAwXzQ2ODA7CkJnTF9h
dXh6MDBfNDY4MiA9IApDQVIoQmdMX2FjdHVhbHN6MDBfNDgpOyAKQmdMX2F1eHowMF80NjgwID0g
CihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTA3NnowMF8xMTM1LEJnTF9hdXh6
MDBfNDY4MCxCZ0xfYXV4ejAwXzQ2ODIpOyB9IAp7IAppbnQgQmdMX2F1eHowMF80Njg1OwpCZ0xf
YXV4ejAwXzQ2ODUgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDc2ejAw
XzExMzUsQmdMX2F1eHowMF80Njg1LEJnTF9wcm9jejAwXzQ3KTsgfSAKQmdMX2FyZzE2OTR6MDBf
MTEzNCA9IEJnTF92MTA3NnowMF8xMTM1OyB9IAp7IAppbnQgQmdMX2F1eHowMF80Njg4OwpCZ0xf
YXV4ejAwXzQ2ODggPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDc1ejAw
XzExMzIsQmdMX2F1eHowMF80Njg4LEJnTF9hcmcxNjk0ejAwXzExMzQpOyB9IH0gCnsgCmludCBC
Z0xfYXV4ejAwXzQ2OTE7CkJnTF9hdXh6MDBfNDY5MSA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVD
VE9SX1NFVChCZ0xfdjEwNzV6MDBfMTEzMixCZ0xfYXV4ejAwXzQ2OTEsQmdMX2xvY3owMF80OSk7
IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDY5NjtpbnQgQmdMX2F1eHowMF80Njk0OwpCZ0xfYXV4
ejAwXzQ2OTYgPSAKQklOVCgoKGxvbmcpMjcpKTsgCkJnTF9hdXh6MDBfNDY5NCA9IAooaW50KSgo
KGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNzV6MDBfMTEzMixCZ0xfYXV4ejAwXzQ2OTQs
QmdMX2F1eHowMF80Njk2KTsgfSAKcmV0dXJuIEJnTF92MTA3NXowMF8xMTMyO30gYnJlYWs7Y2Fz
ZSAoKGxvbmcpMykgOiAKCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQzMSAqLwpvYmpfdCBCZ0xf
djEwNzd6MDBfMTE0MDsKeyAKaW50IEJnTF9hdXh6MDBfNDY5OTsKQmdMX2F1eHowMF80Njk5ID0g
CihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNzd6MDBfMTE0MCA9IApjcmVhdGVfdmVjdG9yKEJn
TF9hdXh6MDBfNDY5OSk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQzMSAqLwpvYmpfdCBC
Z0xfYXJnMTcwMHowMF8xMTQyOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MzEgKi8Kb2JqX3Qg
QmdMX3YxMDc4ejAwXzExNDM7CnsgCmludCBCZ0xfYXV4ejAwXzQ3MDI7CkJnTF9hdXh6MDBfNDcw
MiA9IAooaW50KSgoKGxvbmcpNCkpOyAKQmdMX3YxMDc4ejAwXzExNDMgPSAKY3JlYXRlX3ZlY3Rv
cihCZ0xfYXV4ejAwXzQ3MDIpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ3MDc7aW50IEJnTF9h
dXh6MDBfNDcwNTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDMzICovCm9ial90IEJnTF9hdXh6
MDBfNDcwODsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDMzICovCm9ial90IEJnTF9hdXh6MDBf
NDcwOTsKQmdMX2F1eHowMF80NzA5ID0gCkNEUihCZ0xfYWN0dWFsc3owMF80OCk7IApCZ0xfYXV4
ejAwXzQ3MDggPSAKQ0RSKEJnTF9hdXh6MDBfNDcwOSk7IH0gCkJnTF9hdXh6MDBfNDcwNyA9IApD
QVIoQmdMX2F1eHowMF80NzA4KTsgfSAKQmdMX2F1eHowMF80NzA1ID0gCihpbnQpKCgobG9uZykz
KSk7IApWRUNUT1JfU0VUKEJnTF92MTA3OHowMF8xMTQzLEJnTF9hdXh6MDBfNDcwNSxCZ0xfYXV4
ejAwXzQ3MDcpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ3MTY7aW50IEJnTF9hdXh6MDBfNDcx
NDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDMyICovCm9ial90IEJnTF9hdXh6MDBfNDcxNzsK
QmdMX2F1eHowMF80NzE3ID0gCkNEUihCZ0xfYWN0dWFsc3owMF80OCk7IApCZ0xfYXV4ejAwXzQ3
MTYgPSAKQ0FSKEJnTF9hdXh6MDBfNDcxNyk7IH0gCkJnTF9hdXh6MDBfNDcxNCA9IAooaW50KSgo
KGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNzh6MDBfMTE0MyxCZ0xfYXV4ejAwXzQ3MTQs
QmdMX2F1eHowMF80NzE2KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80NzIzO2ludCBCZ0xfYXV4
ejAwXzQ3MjE7CkJnTF9hdXh6MDBfNDcyMyA9IApDQVIoQmdMX2FjdHVhbHN6MDBfNDgpOyAKQmdM
X2F1eHowMF80NzIxID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTA3OHow
MF8xMTQzLEJnTF9hdXh6MDBfNDcyMSxCZ0xfYXV4ejAwXzQ3MjMpOyB9IAp7IAppbnQgQmdMX2F1
eHowMF80NzI2OwpCZ0xfYXV4ejAwXzQ3MjYgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9T
RVQoQmdMX3YxMDc4ejAwXzExNDMsQmdMX2F1eHowMF80NzI2LEJnTF9wcm9jejAwXzQ3KTsgfSAK
QmdMX2FyZzE3MDB6MDBfMTE0MiA9IEJnTF92MTA3OHowMF8xMTQzOyB9IAp7IAppbnQgQmdMX2F1
eHowMF80NzI5OwpCZ0xfYXV4ejAwXzQ3MjkgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9T
RVQoQmdMX3YxMDc3ejAwXzExNDAsQmdMX2F1eHowMF80NzI5LEJnTF9hcmcxNzAwejAwXzExNDIp
OyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ3MzI7CkJnTF9hdXh6MDBfNDczMiA9IAooaW50KSgo
KGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNzd6MDBfMTE0MCxCZ0xfYXV4ejAwXzQ3MzIs
QmdMX2xvY3owMF80OSk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDczNztpbnQgQmdMX2F1eHow
MF80NzM1OwpCZ0xfYXV4ejAwXzQ3MzcgPSAKQklOVCgoKGxvbmcpMjgpKTsgCkJnTF9hdXh6MDBf
NDczNSA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwNzd6MDBfMTE0MCxC
Z0xfYXV4ejAwXzQ3MzUsQmdMX2F1eHowMF80NzM3KTsgfSAKcmV0dXJuIEJnTF92MTA3N3owMF8x
MTQwO30gYnJlYWs7Y2FzZSAoKGxvbmcpNCkgOiAKCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQz
NSAqLwpvYmpfdCBCZ0xfdjEwNzl6MDBfMTE1MDsKeyAKaW50IEJnTF9hdXh6MDBfNDc0MDsKQmdM
X2F1eHowMF80NzQwID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNzl6MDBfMTE1MCA9IApj
cmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDc0MCk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2Nt
IDQzNSAqLwpvYmpfdCBCZ0xfYXJnMTcwOHowMF8xMTUyOwp7IC8qIEV2YWwvZXZjb21waWxlLnNj
bSA0MzUgKi8Kb2JqX3QgQmdMX3YxMDgwejAwXzExNTM7CnsgCmludCBCZ0xfYXV4ejAwXzQ3NDM7
CkJnTF9hdXh6MDBfNDc0MyA9IAooaW50KSgoKGxvbmcpNSkpOyAKQmdMX3YxMDgwejAwXzExNTMg
PSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQ3NDMpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAw
XzQ3NDg7aW50IEJnTF9hdXh6MDBfNDc0NjsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDM4ICov
Cm9ial90IEJnTF9hdXh6MDBfNDc0OTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDM4ICovCm9i
al90IEJnTF9hdXh6MDBfNDc1MDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDM4ICovCm9ial90
IEJnTF9hdXh6MDBfNDc1MTsKQmdMX2F1eHowMF80NzUxID0gCkNEUihCZ0xfYWN0dWFsc3owMF80
OCk7IApCZ0xfYXV4ejAwXzQ3NTAgPSAKQ0RSKEJnTF9hdXh6MDBfNDc1MSk7IH0gCkJnTF9hdXh6
MDBfNDc0OSA9IApDRFIoQmdMX2F1eHowMF80NzUwKTsgfSAKQmdMX2F1eHowMF80NzQ4ID0gCkNB
UihCZ0xfYXV4ejAwXzQ3NDkpOyB9IApCZ0xfYXV4ejAwXzQ3NDYgPSAKKGludCkoKChsb25nKTQp
KTsgClZFQ1RPUl9TRVQoQmdMX3YxMDgwejAwXzExNTMsQmdMX2F1eHowMF80NzQ2LEJnTF9hdXh6
MDBfNDc0OCk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDc1OTtpbnQgQmdMX2F1eHowMF80NzU3
Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MzcgKi8Kb2JqX3QgQmdMX2F1eHowMF80NzYwOwp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0MzcgKi8Kb2JqX3QgQmdMX2F1eHowMF80NzYxOwpCZ0xf
YXV4ejAwXzQ3NjEgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzQ4KTsgCkJnTF9hdXh6MDBfNDc2MCA9
IApDRFIoQmdMX2F1eHowMF80NzYxKTsgfSAKQmdMX2F1eHowMF80NzU5ID0gCkNBUihCZ0xfYXV4
ejAwXzQ3NjApOyB9IApCZ0xfYXV4ejAwXzQ3NTcgPSAKKGludCkoKChsb25nKTMpKTsgClZFQ1RP
Ul9TRVQoQmdMX3YxMDgwejAwXzExNTMsQmdMX2F1eHowMF80NzU3LEJnTF9hdXh6MDBfNDc1OSk7
IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDc2ODtpbnQgQmdMX2F1eHowMF80NzY2Owp7IC8qIEV2
YWwvZXZjb21waWxlLnNjbSA0MzYgKi8Kb2JqX3QgQmdMX2F1eHowMF80NzY5OwpCZ0xfYXV4ejAw
XzQ3NjkgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzQ4KTsgCkJnTF9hdXh6MDBfNDc2OCA9IApDQVIo
QmdMX2F1eHowMF80NzY5KTsgfSAKQmdMX2F1eHowMF80NzY2ID0gCihpbnQpKCgobG9uZykyKSk7
IApWRUNUT1JfU0VUKEJnTF92MTA4MHowMF8xMTUzLEJnTF9hdXh6MDBfNDc2NixCZ0xfYXV4ejAw
XzQ3NjgpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ3NzU7aW50IEJnTF9hdXh6MDBfNDc3MzsK
QmdMX2F1eHowMF80Nzc1ID0gCkNBUihCZ0xfYWN0dWFsc3owMF80OCk7IApCZ0xfYXV4ejAwXzQ3
NzMgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDgwejAwXzExNTMsQmdM
X2F1eHowMF80NzczLEJnTF9hdXh6MDBfNDc3NSk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ3Nzg7
CkJnTF9hdXh6MDBfNDc3OCA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEw
ODB6MDBfMTE1MyxCZ0xfYXV4ejAwXzQ3NzgsQmdMX3Byb2N6MDBfNDcpOyB9IApCZ0xfYXJnMTcw
OHowMF8xMTUyID0gQmdMX3YxMDgwejAwXzExNTM7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ3ODE7
CkJnTF9hdXh6MDBfNDc4MSA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEw
Nzl6MDBfMTE1MCxCZ0xfYXV4ejAwXzQ3ODEsQmdMX2FyZzE3MDh6MDBfMTE1Mik7IH0gfSAKeyAK
aW50IEJnTF9hdXh6MDBfNDc4NDsKQmdMX2F1eHowMF80Nzg0ID0gCihpbnQpKCgobG9uZykxKSk7
IApWRUNUT1JfU0VUKEJnTF92MTA3OXowMF8xMTUwLEJnTF9hdXh6MDBfNDc4NCxCZ0xfbG9jejAw
XzQ5KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80Nzg5O2ludCBCZ0xfYXV4ejAwXzQ3ODc7CkJn
TF9hdXh6MDBfNDc4OSA9IApCSU5UKCgobG9uZykyOSkpOyAKQmdMX2F1eHowMF80Nzg3ID0gCihp
bnQpKCgobG9uZykwKSk7IApWRUNUT1JfU0VUKEJnTF92MTA3OXowMF8xMTUwLEJnTF9hdXh6MDBf
NDc4NyxCZ0xfYXV4ejAwXzQ3ODkpOyB9IApyZXR1cm4gQmdMX3YxMDc5ejAwXzExNTA7fSBicmVh
azsKZGVmYXVsdDogCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ0MCAqLwpvYmpfdCBCZ0xfdjEw
Njl6MDBfMTE2MjsKeyAKaW50IEJnTF9hdXh6MDBfNDc5MjsKQmdMX2F1eHowMF80NzkyID0gCihp
bnQpKCgobG9uZykzKSk7IApCZ0xfdjEwNjl6MDBfMTE2MiA9IApjcmVhdGVfdmVjdG9yKEJnTF9h
dXh6MDBfNDc5Mik7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ0MCAqLwpvYmpfdCBCZ0xf
YXJnMTcxOHowMF8xMTY0OwpCZ0xfYXJnMTcxOHowMF8xMTY0ID0gCk1BS0VfUEFJUihCZ0xfcHJv
Y3owMF80NywgQmdMX2FjdHVhbHN6MDBfNDgpOyAKeyAKaW50IEJnTF9hdXh6MDBfNDc5NjsKQmdM
X2F1eHowMF80Nzk2ID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTA2OXow
MF8xMTYyLEJnTF9hdXh6MDBfNDc5NixCZ0xfYXJnMTcxOHowMF8xMTY0KTsgfSB9IAp7IAppbnQg
QmdMX2F1eHowMF80Nzk5OwpCZ0xfYXV4ejAwXzQ3OTkgPSAKKGludCkoKChsb25nKTEpKTsgClZF
Q1RPUl9TRVQoQmdMX3YxMDY5ejAwXzExNjIsQmdMX2F1eHowMF80Nzk5LEJnTF9sb2N6MDBfNDkp
OyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ4MDQ7aW50IEJnTF9hdXh6MDBfNDgwMjsKQmdMX2F1
eHowMF80ODA0ID0gCkJJTlQoKChsb25nKTMwKSk7IApCZ0xfYXV4ejAwXzQ4MDIgPSAKKGludCko
KChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDY5ejAwXzExNjIsQmdMX2F1eHowMF80ODAy
LEJnTF9hdXh6MDBfNDgwNCk7IH0gCnJldHVybiBCZ0xfdjEwNjl6MDBfMTE2Mjt9IH0gfSB9IAp9
CgoKCi8qIGV2Y29tcGlsZS1hcHBsaWNhdGlvbiAqLwpvYmpfdCBCR2xfZXZjb21waWxlemQyYXBw
bGljYXRpb256ZDJ6el9fZXZjb21waWxlejAwKG9ial90IEJnTF9uYW1lejAwXzUwLCBvYmpfdCBC
Z0xfcHJvY3owMF81MSwgb2JqX3QgQmdMX2FjdHVhbHN6MDBfNTIsIG9ial90IEJnTF9sb2N6MDBf
NTMpCnsgQU5fT0JKRUNUOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NDUgKi8KeyAKCnN3aXRj
aCggCmJnbF9saXN0X2xlbmd0aChCZ0xfYWN0dWFsc3owMF81MikpIHsgY2FzZSAoKGxvbmcpMCkg
OiAKCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ0OCAqLwpvYmpfdCBCZ0xfdjEwODV6MDBfMTE2
ODsKeyAKaW50IEJnTF9hdXh6MDBfNDgwOTsKQmdMX2F1eHowMF80ODA5ID0gCihpbnQpKCgobG9u
ZykzKSk7IApCZ0xfdjEwODV6MDBfMTE2OCA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDgw
OSk7IH0gCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ0OCAqLwpvYmpfdCBCZ0xfYXJnMTcyMXow
MF8xMTcwOwpCZ0xfYXJnMTcyMXowMF8xMTcwID0gCk1BS0VfUEFJUihCZ0xfbmFtZXowMF81MCwg
QmdMX3Byb2N6MDBfNTEpOyAKeyAKaW50IEJnTF9hdXh6MDBfNDgxMzsKQmdMX2F1eHowMF80ODEz
ID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTA4NXowMF8xMTY4LEJnTF9h
dXh6MDBfNDgxMyxCZ0xfYXJnMTcyMXowMF8xMTcwKTsgfSB9IAp7IAppbnQgQmdMX2F1eHowMF80
ODE2OwpCZ0xfYXV4ejAwXzQ4MTYgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdM
X3YxMDg1ejAwXzExNjgsQmdMX2F1eHowMF80ODE2LEJnTF9sb2N6MDBfNTMpOyB9IAp7IApvYmpf
dCBCZ0xfYXV4ejAwXzQ4MjE7aW50IEJnTF9hdXh6MDBfNDgxOTsKQmdMX2F1eHowMF80ODIxID0g
CkJJTlQoKChsb25nKTMxKSk7IApCZ0xfYXV4ejAwXzQ4MTkgPSAKKGludCkoKChsb25nKTApKTsg
ClZFQ1RPUl9TRVQoQmdMX3YxMDg1ejAwXzExNjgsQmdMX2F1eHowMF80ODE5LEJnTF9hdXh6MDBf
NDgyMSk7IH0gCnJldHVybiBCZ0xfdjEwODV6MDBfMTE2ODt9IGJyZWFrO2Nhc2UgKChsb25nKTEp
IDogCgp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NTAgKi8Kb2JqX3QgQmdMX3YxMDg2ejAwXzEx
NzE7CnsgCmludCBCZ0xfYXV4ejAwXzQ4MjQ7CkJnTF9hdXh6MDBfNDgyNCA9IAooaW50KSgoKGxv
bmcpMykpOyAKQmdMX3YxMDg2ejAwXzExNzEgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQ4
MjQpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NTAgKi8Kb2JqX3QgQmdMX2FyZzE3MjN6
MDBfMTE3MzsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDUwICovCm9ial90IEJnTF92MTA4N3ow
MF8xMTc0Owp7IAppbnQgQmdMX2F1eHowMF80ODI3OwpCZ0xfYXV4ejAwXzQ4MjcgPSAKKGludCko
KChsb25nKTMpKTsgCkJnTF92MTA4N3owMF8xMTc0ID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHow
MF80ODI3KTsgfSAKeyAKb2JqX3QgQmdMX2F1eHowMF80ODMyO2ludCBCZ0xfYXV4ejAwXzQ4MzA7
CkJnTF9hdXh6MDBfNDgzMiA9IApDQVIoQmdMX2FjdHVhbHN6MDBfNTIpOyAKQmdMX2F1eHowMF80
ODMwID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNUT1JfU0VUKEJnTF92MTA4N3owMF8xMTc0LEJn
TF9hdXh6MDBfNDgzMCxCZ0xfYXV4ejAwXzQ4MzIpOyB9IAp7IAppbnQgQmdMX2F1eHowMF80ODM1
OwpCZ0xfYXV4ejAwXzQ4MzUgPSAKKGludCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDg3ejAwXzExNzQsQmdMX2F1eHowMF80ODM1LEJnTF9wcm9jejAwXzUxKTsgfSAKeyAKaW50IEJn
TF9hdXh6MDBfNDgzODsKQmdMX2F1eHowMF80ODM4ID0gCihpbnQpKCgobG9uZykwKSk7IApWRUNU
T1JfU0VUKEJnTF92MTA4N3owMF8xMTc0LEJnTF9hdXh6MDBfNDgzOCxCZ0xfbmFtZXowMF81MCk7
IH0gCkJnTF9hcmcxNzIzejAwXzExNzMgPSBCZ0xfdjEwODd6MDBfMTE3NDsgfSAKeyAKaW50IEJn
TF9hdXh6MDBfNDg0MTsKQmdMX2F1eHowMF80ODQxID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNU
T1JfU0VUKEJnTF92MTA4NnowMF8xMTcxLEJnTF9hdXh6MDBfNDg0MSxCZ0xfYXJnMTcyM3owMF8x
MTczKTsgfSB9IAp7IAppbnQgQmdMX2F1eHowMF80ODQ0OwpCZ0xfYXV4ejAwXzQ4NDQgPSAKKGlu
dCkoKChsb25nKTEpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDg2ejAwXzExNzEsQmdMX2F1eHowMF80
ODQ0LEJnTF9sb2N6MDBfNTMpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ4NDk7aW50IEJnTF9h
dXh6MDBfNDg0NzsKQmdMX2F1eHowMF80ODQ5ID0gCkJJTlQoKChsb25nKTMyKSk7IApCZ0xfYXV4
ejAwXzQ4NDcgPSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDg2ejAwXzEx
NzEsQmdMX2F1eHowMF80ODQ3LEJnTF9hdXh6MDBfNDg0OSk7IH0gCnJldHVybiBCZ0xfdjEwODZ6
MDBfMTE3MTt9IGJyZWFrO2Nhc2UgKChsb25nKTIpIDogCgp7IC8qIEV2YWwvZXZjb21waWxlLnNj
bSA0NTMgKi8Kb2JqX3QgQmdMX3YxMDg4ejAwXzExNzc7CnsgCmludCBCZ0xfYXV4ejAwXzQ4NTI7
CkJnTF9hdXh6MDBfNDg1MiA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDg4ejAwXzExNzcg
PSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQ4NTIpOyB9IAp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSA0NTMgKi8Kb2JqX3QgQmdMX2FyZzE3Mjd6MDBfMTE3OTsKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gNDUzICovCm9ial90IEJnTF92MTA4OXowMF8xMTgwOwp7IAppbnQgQmdMX2F1eHowMF80
ODU1OwpCZ0xfYXV4ejAwXzQ4NTUgPSAKKGludCkoKChsb25nKTQpKTsgCkJnTF92MTA4OXowMF8x
MTgwID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80ODU1KTsgfSAKeyAKb2JqX3QgQmdMX2F1
eHowMF80ODYwO2ludCBCZ0xfYXV4ejAwXzQ4NTg7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ1
NSAqLwpvYmpfdCBCZ0xfYXV4ejAwXzQ4NjE7CkJnTF9hdXh6MDBfNDg2MSA9IApDRFIoQmdMX2Fj
dHVhbHN6MDBfNTIpOyAKQmdMX2F1eHowMF80ODYwID0gCkNBUihCZ0xfYXV4ejAwXzQ4NjEpOyB9
IApCZ0xfYXV4ejAwXzQ4NTggPSAKKGludCkoKChsb25nKTMpKTsgClZFQ1RPUl9TRVQoQmdMX3Yx
MDg5ejAwXzExODAsQmdMX2F1eHowMF80ODU4LEJnTF9hdXh6MDBfNDg2MCk7IH0gCnsgCm9ial90
IEJnTF9hdXh6MDBfNDg2NztpbnQgQmdMX2F1eHowMF80ODY1OwpCZ0xfYXV4ejAwXzQ4NjcgPSAK
Q0FSKEJnTF9hY3R1YWxzejAwXzUyKTsgCkJnTF9hdXh6MDBfNDg2NSA9IAooaW50KSgoKGxvbmcp
MikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwODl6MDBfMTE4MCxCZ0xfYXV4ejAwXzQ4NjUsQmdMX2F1
eHowMF80ODY3KTsgfSAKeyAKaW50IEJnTF9hdXh6MDBfNDg3MDsKQmdMX2F1eHowMF80ODcwID0g
CihpbnQpKCgobG9uZykxKSk7IApWRUNUT1JfU0VUKEJnTF92MTA4OXowMF8xMTgwLEJnTF9hdXh6
MDBfNDg3MCxCZ0xfcHJvY3owMF81MSk7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ4NzM7CkJnTF9h
dXh6MDBfNDg3MyA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwODl6MDBf
MTE4MCxCZ0xfYXV4ejAwXzQ4NzMsQmdMX25hbWV6MDBfNTApOyB9IApCZ0xfYXJnMTcyN3owMF8x
MTc5ID0gQmdMX3YxMDg5ejAwXzExODA7IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ4NzY7CkJnTF9h
dXh6MDBfNDg3NiA9IAooaW50KSgoKGxvbmcpMikpOyAKVkVDVE9SX1NFVChCZ0xfdjEwODh6MDBf
MTE3NyxCZ0xfYXV4ejAwXzQ4NzYsQmdMX2FyZzE3Mjd6MDBfMTE3OSk7IH0gfSAKeyAKaW50IEJn
TF9hdXh6MDBfNDg3OTsKQmdMX2F1eHowMF80ODc5ID0gCihpbnQpKCgobG9uZykxKSk7IApWRUNU
T1JfU0VUKEJnTF92MTA4OHowMF8xMTc3LEJnTF9hdXh6MDBfNDg3OSxCZ0xfbG9jejAwXzUzKTsg
fSAKeyAKb2JqX3QgQmdMX2F1eHowMF80ODg0O2ludCBCZ0xfYXV4ejAwXzQ4ODI7CkJnTF9hdXh6
MDBfNDg4NCA9IApCSU5UKCgobG9uZykzMykpOyAKQmdMX2F1eHowMF80ODgyID0gCihpbnQpKCgo
bG9uZykwKSk7IApWRUNUT1JfU0VUKEJnTF92MTA4OHowMF8xMTc3LEJnTF9hdXh6MDBfNDg4MixC
Z0xfYXV4ejAwXzQ4ODQpOyB9IApyZXR1cm4gQmdMX3YxMDg4ejAwXzExNzc7fSBicmVhaztjYXNl
ICgobG9uZykzKSA6IAoKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDU3ICovCm9ial90IEJnTF92
MTA5MHowMF8xMTg1Owp7IAppbnQgQmdMX2F1eHowMF80ODg3OwpCZ0xfYXV4ejAwXzQ4ODcgPSAK
KGludCkoKChsb25nKTMpKTsgCkJnTF92MTA5MHowMF8xMTg1ID0gCmNyZWF0ZV92ZWN0b3IoQmdM
X2F1eHowMF80ODg3KTsgfSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDU3ICovCm9ial90IEJn
TF9hcmcxNzMzejAwXzExODc7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ1NyAqLwpvYmpfdCBC
Z0xfdjEwOTF6MDBfMTE4ODsKeyAKaW50IEJnTF9hdXh6MDBfNDg5MDsKQmdMX2F1eHowMF80ODkw
ID0gCihpbnQpKCgobG9uZyk1KSk7IApCZ0xfdjEwOTF6MDBfMTE4OCA9IApjcmVhdGVfdmVjdG9y
KEJnTF9hdXh6MDBfNDg5MCk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDg5NTtpbnQgQmdMX2F1
eHowMF80ODkzOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NjAgKi8Kb2JqX3QgQmdMX2F1eHow
MF80ODk2Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NjAgKi8Kb2JqX3QgQmdMX2F1eHowMF80
ODk3OwpCZ0xfYXV4ejAwXzQ4OTcgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzUyKTsgCkJnTF9hdXh6
MDBfNDg5NiA9IApDRFIoQmdMX2F1eHowMF80ODk3KTsgfSAKQmdMX2F1eHowMF80ODk1ID0gCkNB
UihCZ0xfYXV4ejAwXzQ4OTYpOyB9IApCZ0xfYXV4ejAwXzQ4OTMgPSAKKGludCkoKChsb25nKTQp
KTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkxejAwXzExODgsQmdMX2F1eHowMF80ODkzLEJnTF9hdXh6
MDBfNDg5NSk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDkwNDtpbnQgQmdMX2F1eHowMF80OTAy
Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NTkgKi8Kb2JqX3QgQmdMX2F1eHowMF80OTA1OwpC
Z0xfYXV4ejAwXzQ5MDUgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzUyKTsgCkJnTF9hdXh6MDBfNDkw
NCA9IApDQVIoQmdMX2F1eHowMF80OTA1KTsgfSAKQmdMX2F1eHowMF80OTAyID0gCihpbnQpKCgo
bG9uZykzKSk7IApWRUNUT1JfU0VUKEJnTF92MTA5MXowMF8xMTg4LEJnTF9hdXh6MDBfNDkwMixC
Z0xfYXV4ejAwXzQ5MDQpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ5MTE7aW50IEJnTF9hdXh6
MDBfNDkwOTsKQmdMX2F1eHowMF80OTExID0gCkNBUihCZ0xfYWN0dWFsc3owMF81Mik7IApCZ0xf
YXV4ejAwXzQ5MDkgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkxejAw
XzExODgsQmdMX2F1eHowMF80OTA5LEJnTF9hdXh6MDBfNDkxMSk7IH0gCnsgCmludCBCZ0xfYXV4
ejAwXzQ5MTQ7CkJnTF9hdXh6MDBfNDkxNCA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NF
VChCZ0xfdjEwOTF6MDBfMTE4OCxCZ0xfYXV4ejAwXzQ5MTQsQmdMX3Byb2N6MDBfNTEpOyB9IAp7
IAppbnQgQmdMX2F1eHowMF80OTE3OwpCZ0xfYXV4ejAwXzQ5MTcgPSAKKGludCkoKChsb25nKTAp
KTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkxejAwXzExODgsQmdMX2F1eHowMF80OTE3LEJnTF9uYW1l
ejAwXzUwKTsgfSAKQmdMX2FyZzE3MzN6MDBfMTE4NyA9IEJnTF92MTA5MXowMF8xMTg4OyB9IAp7
IAppbnQgQmdMX2F1eHowMF80OTIwOwpCZ0xfYXV4ejAwXzQ5MjAgPSAKKGludCkoKChsb25nKTIp
KTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkwejAwXzExODUsQmdMX2F1eHowMF80OTIwLEJnTF9hcmcx
NzMzejAwXzExODcpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ5MjM7CkJnTF9hdXh6MDBfNDky
MyA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwOTB6MDBfMTE4NSxCZ0xf
YXV4ejAwXzQ5MjMsQmdMX2xvY3owMF81Myk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDkyODtp
bnQgQmdMX2F1eHowMF80OTI2OwpCZ0xfYXV4ejAwXzQ5MjggPSAKQklOVCgoKGxvbmcpMzQpKTsg
CkJnTF9hdXh6MDBfNDkyNiA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xfdjEw
OTB6MDBfMTE4NSxCZ0xfYXV4ejAwXzQ5MjYsQmdMX2F1eHowMF80OTI4KTsgfSAKcmV0dXJuIEJn
TF92MTA5MHowMF8xMTg1O30gYnJlYWs7Y2FzZSAoKGxvbmcpNCkgOiAKCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDQ2MiAqLwpvYmpfdCBCZ0xfdjEwOTJ6MDBfMTE5NTsKeyAKaW50IEJnTF9hdXh6
MDBfNDkzMTsKQmdMX2F1eHowMF80OTMxID0gCihpbnQpKCgobG9uZykzKSk7IApCZ0xfdjEwOTJ6
MDBfMTE5NSA9IApjcmVhdGVfdmVjdG9yKEJnTF9hdXh6MDBfNDkzMSk7IH0gCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDQ2MiAqLwpvYmpfdCBCZ0xfYXJnMTc0MXowMF8xMTk3Owp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA0NjIgKi8Kb2JqX3QgQmdMX3YxMDkzejAwXzExOTg7CnsgCmludCBCZ0xf
YXV4ejAwXzQ5MzQ7CkJnTF9hdXh6MDBfNDkzNCA9IAooaW50KSgoKGxvbmcpNikpOyAKQmdMX3Yx
MDkzejAwXzExOTggPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQ5MzQpOyB9IAp7IApvYmpf
dCBCZ0xfYXV4ejAwXzQ5Mzk7aW50IEJnTF9hdXh6MDBfNDkzNzsKeyAvKiBFdmFsL2V2Y29tcGls
ZS5zY20gNDY2ICovCm9ial90IEJnTF9hdXh6MDBfNDk0MDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gNDY2ICovCm9ial90IEJnTF9hdXh6MDBfNDk0MTsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20g
NDY2ICovCm9ial90IEJnTF9hdXh6MDBfNDk0MjsKQmdMX2F1eHowMF80OTQyID0gCkNEUihCZ0xf
YWN0dWFsc3owMF81Mik7IApCZ0xfYXV4ejAwXzQ5NDEgPSAKQ0RSKEJnTF9hdXh6MDBfNDk0Mik7
IH0gCkJnTF9hdXh6MDBfNDk0MCA9IApDRFIoQmdMX2F1eHowMF80OTQxKTsgfSAKQmdMX2F1eHow
MF80OTM5ID0gCkNBUihCZ0xfYXV4ejAwXzQ5NDApOyB9IApCZ0xfYXV4ejAwXzQ5MzcgPSAKKGlu
dCkoKChsb25nKTUpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkzejAwXzExOTgsQmdMX2F1eHowMF80
OTM3LEJnTF9hdXh6MDBfNDkzOSk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDk1MDtpbnQgQmdM
X2F1eHowMF80OTQ4Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NjUgKi8Kb2JqX3QgQmdMX2F1
eHowMF80OTUxOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NjUgKi8Kb2JqX3QgQmdMX2F1eHow
MF80OTUyOwpCZ0xfYXV4ejAwXzQ5NTIgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzUyKTsgCkJnTF9h
dXh6MDBfNDk1MSA9IApDRFIoQmdMX2F1eHowMF80OTUyKTsgfSAKQmdMX2F1eHowMF80OTUwID0g
CkNBUihCZ0xfYXV4ejAwXzQ5NTEpOyB9IApCZ0xfYXV4ejAwXzQ5NDggPSAKKGludCkoKChsb25n
KTQpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkzejAwXzExOTgsQmdMX2F1eHowMF80OTQ4LEJnTF9h
dXh6MDBfNDk1MCk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDk1OTtpbnQgQmdMX2F1eHowMF80
OTU3Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NjQgKi8Kb2JqX3QgQmdMX2F1eHowMF80OTYw
OwpCZ0xfYXV4ejAwXzQ5NjAgPSAKQ0RSKEJnTF9hY3R1YWxzejAwXzUyKTsgCkJnTF9hdXh6MDBf
NDk1OSA9IApDQVIoQmdMX2F1eHowMF80OTYwKTsgfSAKQmdMX2F1eHowMF80OTU3ID0gCihpbnQp
KCgobG9uZykzKSk7IApWRUNUT1JfU0VUKEJnTF92MTA5M3owMF8xMTk4LEJnTF9hdXh6MDBfNDk1
NyxCZ0xfYXV4ejAwXzQ5NTkpOyB9IAp7IApvYmpfdCBCZ0xfYXV4ejAwXzQ5NjY7aW50IEJnTF9h
dXh6MDBfNDk2NDsKQmdMX2F1eHowMF80OTY2ID0gCkNBUihCZ0xfYWN0dWFsc3owMF81Mik7IApC
Z0xfYXV4ejAwXzQ5NjQgPSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkz
ejAwXzExOTgsQmdMX2F1eHowMF80OTY0LEJnTF9hdXh6MDBfNDk2Nik7IH0gCnsgCmludCBCZ0xf
YXV4ejAwXzQ5Njk7CkJnTF9hdXh6MDBfNDk2OSA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9S
X1NFVChCZ0xfdjEwOTN6MDBfMTE5OCxCZ0xfYXV4ejAwXzQ5NjksQmdMX3Byb2N6MDBfNTEpOyB9
IAp7IAppbnQgQmdMX2F1eHowMF80OTcyOwpCZ0xfYXV4ejAwXzQ5NzIgPSAKKGludCkoKChsb25n
KTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkzejAwXzExOTgsQmdMX2F1eHowMF80OTcyLEJnTF9u
YW1lejAwXzUwKTsgfSAKQmdMX2FyZzE3NDF6MDBfMTE5NyA9IEJnTF92MTA5M3owMF8xMTk4OyB9
IAp7IAppbnQgQmdMX2F1eHowMF80OTc1OwpCZ0xfYXV4ejAwXzQ5NzUgPSAKKGludCkoKChsb25n
KTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDkyejAwXzExOTUsQmdMX2F1eHowMF80OTc1LEJnTF9h
cmcxNzQxejAwXzExOTcpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ5Nzg7CkJnTF9hdXh6MDBf
NDk3OCA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwOTJ6MDBfMTE5NSxC
Z0xfYXV4ejAwXzQ5NzgsQmdMX2xvY3owMF81Myk7IH0gCnsgCm9ial90IEJnTF9hdXh6MDBfNDk4
MztpbnQgQmdMX2F1eHowMF80OTgxOwpCZ0xfYXV4ejAwXzQ5ODMgPSAKQklOVCgoKGxvbmcpMzUp
KTsgCkJnTF9hdXh6MDBfNDk4MSA9IAooaW50KSgoKGxvbmcpMCkpOyAKVkVDVE9SX1NFVChCZ0xf
djEwOTJ6MDBfMTE5NSxCZ0xfYXV4ejAwXzQ5ODEsQmdMX2F1eHowMF80OTgzKTsgfSAKcmV0dXJu
IEJnTF92MTA5MnowMF8xMTk1O30gYnJlYWs7CmRlZmF1bHQ6IAp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSA0NjggKi8Kb2JqX3QgQmdMX3YxMDgxejAwXzEyMDc7CnsgCmludCBCZ0xfYXV4ejAwXzQ5
ODY7CkJnTF9hdXh6MDBfNDk4NiA9IAooaW50KSgoKGxvbmcpMykpOyAKQmdMX3YxMDgxejAwXzEy
MDcgPSAKY3JlYXRlX3ZlY3RvcihCZ0xfYXV4ejAwXzQ5ODYpOyB9IAp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSA0NjggKi8Kb2JqX3QgQmdMX2FyZzE3NTF6MDBfMTIwOTsKeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gNDY4ICovCm9ial90IEJnTF92MTA4MnowMF8xMjEwOwp7IAppbnQgQmdMX2F1eHow
MF80OTg5OwpCZ0xfYXV4ejAwXzQ5ODkgPSAKKGludCkoKChsb25nKTMpKTsgCkJnTF92MTA4Mnow
MF8xMjEwID0gCmNyZWF0ZV92ZWN0b3IoQmdMX2F1eHowMF80OTg5KTsgfSAKeyAKaW50IEJnTF9h
dXh6MDBfNDk5MjsKQmdMX2F1eHowMF80OTkyID0gCihpbnQpKCgobG9uZykyKSk7IApWRUNUT1Jf
U0VUKEJnTF92MTA4MnowMF8xMjEwLEJnTF9hdXh6MDBfNDk5MixCZ0xfYWN0dWFsc3owMF81Mik7
IH0gCnsgCmludCBCZ0xfYXV4ejAwXzQ5OTU7CkJnTF9hdXh6MDBfNDk5NSA9IAooaW50KSgoKGxv
bmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xfdjEwODJ6MDBfMTIxMCxCZ0xfYXV4ejAwXzQ5OTUsQmdM
X3Byb2N6MDBfNTEpOyB9IAp7IAppbnQgQmdMX2F1eHowMF80OTk4OwpCZ0xfYXV4ejAwXzQ5OTgg
PSAKKGludCkoKChsb25nKTApKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDgyejAwXzEyMTAsQmdMX2F1
eHowMF80OTk4LEJnTF9uYW1lejAwXzUwKTsgfSAKQmdMX2FyZzE3NTF6MDBfMTIwOSA9IEJnTF92
MTA4MnowMF8xMjEwOyB9IAp7IAppbnQgQmdMX2F1eHowMF81MDAxOwpCZ0xfYXV4ejAwXzUwMDEg
PSAKKGludCkoKChsb25nKTIpKTsgClZFQ1RPUl9TRVQoQmdMX3YxMDgxejAwXzEyMDcsQmdMX2F1
eHowMF81MDAxLEJnTF9hcmcxNzUxejAwXzEyMDkpOyB9IH0gCnsgCmludCBCZ0xfYXV4ejAwXzUw
MDQ7CkJnTF9hdXh6MDBfNTAwNCA9IAooaW50KSgoKGxvbmcpMSkpOyAKVkVDVE9SX1NFVChCZ0xf
djEwODF6MDBfMTIwNyxCZ0xfYXV4ejAwXzUwMDQsQmdMX2xvY3owMF81Myk7IH0gCnsgCm9ial90
IEJnTF9hdXh6MDBfNTAwOTtpbnQgQmdMX2F1eHowMF81MDA3OwpCZ0xfYXV4ejAwXzUwMDkgPSAK
QklOVCgoKGxvbmcpMzYpKTsgCkJnTF9hdXh6MDBfNTAwNyA9IAooaW50KSgoKGxvbmcpMCkpOyAK
VkVDVE9SX1NFVChCZ0xfdjEwODF6MDBfMTIwNyxCZ0xfYXV4ejAwXzUwMDcsQmdMX2F1eHowMF81
MDA5KTsgfSAKcmV0dXJuIEJnTF92MTA4MXowMF8xMjA3O30gfSB9IH0gCn0KCgoKLyogdmFyaWFi
bGUgKi8Kb2JqX3QgQkdsX3ZhcmlhYmxlejAwenpfX2V2Y29tcGlsZXowMChvYmpfdCBCZ0xfbG9j
ejAwXzU0LCBvYmpfdCBCZ0xfc3ltYm9sejAwXzU1LCBvYmpfdCBCZ0xfZW52ejAwXzU2LCBvYmpf
dCBCZ0xfZ2VudnowMF81NykKeyBBTl9PQkpFQ1Q7CnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ3
NCAqLwppZigKU1lNQk9MUChCZ0xfc3ltYm9sejAwXzU1KSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5z
Y20gNDc3ICovCm9ial90IEJnTF9vZmZzZXR6MDBfMTIxMjsKeyAKb2JqX3QgQmdMX2VudnowMF8y
ODU5O2xvbmcgQmdMX2NvdW50ejAwXzI4NjA7CkJnTF9lbnZ6MDBfMjg1OSA9IEJnTF9lbnZ6MDBf
NTY7IApCZ0xfY291bnR6MDBfMjg2MCA9ICgobG9uZykwKTsgCkJnTF9sb29wejAwXzI4NTg6Cmlm
KApOVUxMUChCZ0xfZW52ejAwXzI4NTkpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0NzcgKi8K
QmdMX29mZnNldHowMF8xMjEyID0gQkZBTFNFOyB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxl
LnNjbSA0NzcgKi8KYm9vbF90IEJnTF90ZXN0ejAwXzUwMTg7CnsgLyogRXZhbC9ldmNvbXBpbGUu
c2NtIDQ3NyAqLwpvYmpfdCBCZ0xfYXV4ejAwXzUwMTk7CkJnTF9hdXh6MDBfNTAxOSA9IApDQVIo
QmdMX2VudnowMF8yODU5KTsgCkJnTF90ZXN0ejAwXzUwMTggPSAKKEJnTF9hdXh6MDBfNTAxOT09
QmdMX3N5bWJvbHowMF81NSk7IH0gCmlmKEJnTF90ZXN0ejAwXzUwMTgpCnsgLyogRXZhbC9ldmNv
bXBpbGUuc2NtIDQ3NyAqLwpCZ0xfb2Zmc2V0ejAwXzEyMTIgPSAKQklOVChCZ0xfY291bnR6MDBf
Mjg2MCk7IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ3NyAqLwp7IApsb25nIEJn
TF9jb3VudHowMF81MDI1O29ial90IEJnTF9lbnZ6MDBfNTAyMzsKQmdMX2VudnowMF81MDIzID0g
CkNEUihCZ0xfZW52ejAwXzI4NTkpOyAKQmdMX2NvdW50ejAwXzUwMjUgPSAKKEJnTF9jb3VudHow
MF8yODYwKygobG9uZykxKSk7IApCZ0xfY291bnR6MDBfMjg2MCA9IEJnTF9jb3VudHowMF81MDI1
OyAKQmdMX2VudnowMF8yODU5ID0gQmdMX2VudnowMF81MDIzOyAKZ290byBCZ0xfbG9vcHowMF8y
ODU4O30gfSB9IH0gCmlmKApDQk9PTChCZ0xfb2Zmc2V0ejAwXzEyMTIpKQp7IC8qIEV2YWwvZXZj
b21waWxlLnNjbSA0ODYgKi8KcmV0dXJuIEJnTF9vZmZzZXR6MDBfMTIxMjt9ICBlbHNlIAp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA0ODggKi8Kb2JqX3QgQmdMX2dsb2JhbHowMF8xMjEzOwp7IC8q
IEV2YWwvZXZjb21waWxlLnNjbSA0ODggKi8KYm9vbF90IEJnTF90ZXN0MTc1NXowMF8xMjE2Owp7
IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0ODggKi8KYm9vbF90IEJnTF90ZXN0ejAwXzUwMjk7Cnsg
LyogRXZhbC9ldmNvbXBpbGUuc2NtIDQ4OCAqLwpvYmpfdCBCZ0xfYXV4ejAwXzUwMzA7CkJnTF9h
dXh6MDBfNTAzMCA9IApCR2xfc2NoZW1lemQycmVwb3J0emQyZW52aXJvbm1lbnR6MDB6el9fZXZh
bHowMCgKQklOVCgoKGxvbmcpNSkpKTsgCkJnTF90ZXN0ejAwXzUwMjkgPSAKKEJnTF9nZW52ejAw
XzU3PT1CZ0xfYXV4ejAwXzUwMzApOyB9IAppZihCZ0xfdGVzdHowMF81MDI5KQp7IC8qIEV2YWwv
ZXZjb21waWxlLnNjbSA0ODggKi8KQmdMX3Rlc3QxNzU1ejAwXzEyMTYgPSAoKGJvb2xfdCkxKTsg
fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDg5ICovCm9ial90IEJnTF9hdXh6MDBf
NTAzNDsKQmdMX2F1eHowMF81MDM0ID0gCkJHbF9pbnRlcmFjdGlvbnpkMmVudmlyb25tZW50emQy
enpfX2V2YWx6MDAoKTsgCkJnTF90ZXN0MTc1NXowMF8xMjE2ID0gCihCZ0xfZ2VudnowMF81Nz09
QmdMX2F1eHowMF81MDM0KTsgfSB9IAppZihCZ0xfdGVzdDE3NTV6MDBfMTIxNikKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gNDg4ICovCkJnTF9nbG9iYWx6MDBfMTIxMyA9IApCR2xfZXZhbHpkMmxv
b2t1cHpkMnp6X19ldmVudnowMChCZ0xfc3ltYm9sejAwXzU1KTsgfSAgZWxzZSAKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gNDg4ICovCkJnTF9nbG9iYWx6MDBfMTIxMyA9IApCR2xfZXZjb21waWxl
emQyZXJyb3J6ZDJ6el9fZXZjb21waWxlejAwKEJnTF9sb2N6MDBfNTQsIEJHbF9zdHJpbmcxOTI2
ejAwenpfX2V2Y29tcGlsZXowMCwgQkdsX3N0cmluZzE5NDV6MDB6el9fZXZjb21waWxlejAwLCBC
Z0xfc3ltYm9sejAwXzU1KTsgfSB9IAppZigKQ0JPT0woQmdMX2dsb2JhbHowMF8xMjEzKSkKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gNDk1ICovCnJldHVybiBCZ0xfZ2xvYmFsejAwXzEyMTM7fSAg
ZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDk2ICovCmJvb2xfdCBCZ0xfdGVzdHowMF81
MDQyOwp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA0OTYgKi8Kb2JqX3QgQmdMX2F1eHowMF81MDQz
OwpCZ0xfYXV4ejAwXzUwNDMgPSAKQkdsX3NjaGVtZXpkMnJlcG9ydHpkMmVudmlyb25tZW50ejAw
enpfX2V2YWx6MDAoCkJJTlQoKChsb25nKTUpKSk7IApCZ0xfdGVzdHowMF81MDQyID0gCihCZ0xf
Z2VudnowMF81Nz09QmdMX2F1eHowMF81MDQzKTsgfSAKaWYoQmdMX3Rlc3R6MDBfNTA0MikKeyAv
KiBFdmFsL2V2Y29tcGlsZS5zY20gNDk2ICovCnJldHVybiAKQkdsX2V2Y29tcGlsZXpkMmVycm9y
emQyenpfX2V2Y29tcGlsZXowMChCZ0xfbG9jejAwXzU0LCBCR2xfc3RyaW5nMTkyNnowMHp6X19l
dmNvbXBpbGV6MDAsIEJHbF9zdHJpbmcxOTQ1ejAwenpfX2V2Y29tcGlsZXowMCwgQmdMX3N5bWJv
bHowMF81NSk7fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDk2ICovCnJldHVybiAK
TUFLRV9QQUlSKEJHbF9zeW1ib2wxOTQ0ejAwenpfX2V2Y29tcGlsZXowMCwgQmdMX3N5bWJvbHow
MF81NSk7fSB9IH0gfSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNDc1ICovCnJldHVy
biAKQkdsX2V2Y29tcGlsZXpkMmVycm9yemQyenpfX2V2Y29tcGlsZXowMChCZ0xfbG9jejAwXzU0
LCBCR2xfc3RyaW5nMTkyNnowMHp6X19ldmNvbXBpbGV6MDAsIEJHbF9zdHJpbmcxOTQ2ejAwenpf
X2V2Y29tcGlsZXowMCwgQmdMX3N5bWJvbHowMF81NSk7fSB9IAp9CgoKCi8qIF9sb29wXyAqLwpv
YmpfdCBCR2xfX2xvb3BfejAwenpfX2V2Y29tcGlsZXowMChvYmpfdCBCZ0xfb2xkemQyZW52emQy
XzI5OTksIG9ial90IEJnTF9leHRlbmR6MDBfMTIzMSkKeyBBTl9PQkpFQ1Q7CnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDUyMSAqLwppZigKTlVMTFAoQmdMX2V4dGVuZHowMF8xMjMxKSkKeyAvKiBF
dmFsL2V2Y29tcGlsZS5zY20gNTIzICovCnJldHVybiBCZ0xfb2xkemQyZW52emQyXzI5OTk7fSAg
ZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNTIzICovCmlmKApQQUlSUChCZ0xfZXh0ZW5k
ejAwXzEyMzEpKQp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA1MjUgKi8KeyAvKiBFdmFsL2V2Y29t
cGlsZS5zY20gNTI4ICovCm9ial90IEJnTF9hdXh6MDBfNTA1NjtvYmpfdCBCZ0xfYXV4ejAwXzUw
NTQ7CkJnTF9hdXh6MDBfNTA1NiA9IApCR2xfX2xvb3BfejAwenpfX2V2Y29tcGlsZXowMChCZ0xf
b2xkemQyZW52emQyXzI5OTksIApDRFIoQmdMX2V4dGVuZHowMF8xMjMxKSk7IApCZ0xfYXV4ejAw
XzUwNTQgPSAKQ0FSKEJnTF9leHRlbmR6MDBfMTIzMSk7IApyZXR1cm4gCk1BS0VfUEFJUihCZ0xf
YXV4ejAwXzUwNTQsIEJnTF9hdXh6MDBfNTA1Nik7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSA1MjUgKi8KcmV0dXJuIApNQUtFX1BBSVIoQmdMX2V4dGVuZHowMF8xMjMxLCBCZ0xf
b2xkemQyZW52emQyXzI5OTkpO30gfSB9IAp9CgoKCi8qIGV2Y29tcGlsZS1lcnJvciAqLwpvYmpf
dCBCR2xfZXZjb21waWxlemQyZXJyb3J6ZDJ6el9fZXZjb21waWxlejAwKG9ial90IEJnTF9sb2N6
MDBfNjIsIG9ial90IEJnTF9wcm9jejAwXzYzLCBvYmpfdCBCZ0xfbWVzejAwXzY0LCBvYmpfdCBC
Z0xfb2JqejAwXzY1KQp7IEFOX09CSkVDVDsKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNTMzICov
CmlmKApQQUlSUChCZ0xfbG9jejAwXzYyKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNTM0ICov
Cm9ial90IEJnTF9jZHJ6ZDIyMTEwemQyXzEyNDQ7CkJnTF9jZHJ6ZDIyMTEwemQyXzEyNDQgPSAK
Q0RSKEJnTF9sb2N6MDBfNjIpOyAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNTM0ICovCmJvb2xf
dCBCZ0xfdGVzdHowMF81MDY0Owp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA1MzQgKi8Kb2JqX3Qg
QmdMX2F1eHowMF81MDY1OwpCZ0xfYXV4ejAwXzUwNjUgPSAKQ0FSKEJnTF9sb2N6MDBfNjIpOyAK
QmdMX3Rlc3R6MDBfNTA2NCA9IAooQmdMX2F1eHowMF81MDY1PT1CR2xfc3ltYm9sMTk0N3owMHp6
X19ldmNvbXBpbGV6MDApOyB9IAppZihCZ0xfdGVzdHowMF81MDY0KQp7IC8qIEV2YWwvZXZjb21w
aWxlLnNjbSA1MzQgKi8KaWYoClBBSVJQKEJnTF9jZHJ6ZDIyMTEwemQyXzEyNDQpKQp7IC8qIEV2
YWwvZXZjb21waWxlLnNjbSA1MzQgKi8Kb2JqX3QgQmdMX2NkcnpkMjIxMTR6ZDJfMTI0NzsKQmdM
X2NkcnpkMjIxMTR6ZDJfMTI0NyA9IApDRFIoQmdMX2NkcnpkMjIxMTB6ZDJfMTI0NCk7IAppZigK
UEFJUlAoQmdMX2NkcnpkMjIxMTR6ZDJfMTI0NykpCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDUz
NCAqLwppZigKQkdsX2VxdWFsemYzemYzenpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMCgKQ0RSKEJn
TF9jZHJ6ZDIyMTE0emQyXzEyNDcpLCBCTklMKSkKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNTM0
ICovCnJldHVybiAKQkdsX2Vycm9yemYybG9jYXRpb256ZjJ6el9fZXJyb3J6MDAoQmdMX3Byb2N6
MDBfNjMsIEJnTF9tZXN6MDBfNjQsIEJnTF9vYmp6MDBfNjUsIApDQVIoQmdMX2NkcnpkMjIxMTB6
ZDJfMTI0NCksIApDQVIoQmdMX2NkcnpkMjIxMTR6ZDJfMTI0NykpO30gIGVsc2UgCnsgLyogRXZh
bC9ldmNvbXBpbGUuc2NtIDUzNCAqLwpGQUlMVVJFKEJnTF9wcm9jejAwXzYzLEJnTF9tZXN6MDBf
NjQsQmdMX29ianowMF82NSk7fSB9ICBlbHNlIAp7IC8qIEV2YWwvZXZjb21waWxlLnNjbSA1MzQg
Ki8KRkFJTFVSRShCZ0xfcHJvY3owMF82MyxCZ0xfbWVzejAwXzY0LEJnTF9vYmp6MDBfNjUpO30g
fSAgZWxzZSAKeyAvKiBFdmFsL2V2Y29tcGlsZS5zY20gNTM0ICovCkZBSUxVUkUoQmdMX3Byb2N6
MDBfNjMsQmdMX21lc3owMF82NCxCZ0xfb2JqejAwXzY1KTt9IH0gIGVsc2UgCnsgLyogRXZhbC9l
dmNvbXBpbGUuc2NtIDUzNCAqLwpGQUlMVVJFKEJnTF9wcm9jejAwXzYzLEJnTF9tZXN6MDBfNjQs
QmdMX29ianowMF82NSk7fSB9IH0gIGVsc2UgCnsgLyogRXZhbC9ldmNvbXBpbGUuc2NtIDUzNCAq
LwpGQUlMVVJFKEJnTF9wcm9jejAwXzYzLEJnTF9tZXN6MDBfNjQsQmdMX29ianowMF82NSk7fSB9
IAp9CgoKCi8qIGltcG9ydGVkLW1vZHVsZXMtaW5pdCAqLwpvYmpfdCBCR2xfaW1wb3J0ZWR6ZDJt
b2R1bGVzemQyaW5pdHowMHp6X19ldmNvbXBpbGV6MDAoKQp7IEFOX09CSkVDVDsKeyAvKiBFdmFs
L2V2Y29tcGlsZS5zY20gMTUgKi8KQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9f
dHlwZXowMCgoKGxvbmcpOTQ5MTMpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0
aWFsaXphN2F0aW9uejc1enpfX2Vycm9yejAwKCgobG9uZyk4NzY1NSksICJfX2V2Y29tcGlsZSIp
OyAKQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fYmlnbG9vejAwKCgobG9uZykx
Nzg1NDcpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1
enpfX3R2ZWN0b3J6MDAoKChsb25nKTU2MjM0KSwgIl9fZXZjb21waWxlIik7IApCR2xfbW9kdWxl
emQyaW5pdGlhbGl6YTdhdGlvbno3NXp6X19zdHJ1Y3R1cmV6MDAoKChsb25nKTQ4MzQyKSwgIl9f
ZXZjb21waWxlIik7IApCR2xfbW9kdWxlemQyaW5pdGlhbGl6YTdhdGlvbno3NXp6X19iZXhpdHow
MCgoKGxvbmcpMzA5MjMpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFsaXph
N2F0aW9uejc1enpfX29zejAwKCgobG9uZykxMDU1NDMpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9t
b2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX2Rzc3NsejAwKCgobG9uZyk0ODQ1NiksICJf
X2V2Y29tcGlsZSIpOyAKQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfbnVt
YmVyc182XzV6MDAoKChsb25nKTExOTcxMCksICJfX2V2Y29tcGlsZSIpOyAKQkdsX21vZHVsZXpk
MmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfbnVtYmVyc182XzVfZml4bnVtejAwKCgobG9uZykx
OTMzMCksICJfX2V2Y29tcGlsZSIpOyAKQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6
el9fcjRfbnVtYmVyc182XzVfZmxvbnVtejAwKCgobG9uZykyMDg3NzcpLCAiX19ldmNvbXBpbGUi
KTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX3I0X2NoYXJhY3RlcnNfNl82
ejAwKCgobG9uZykxODk4MDkpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFs
aXphN2F0aW9uejc1enpfX3I0X2VxdWl2YWxlbmNlXzZfMnowMCgoKGxvbmcpMjA1MjkpLCAiX19l
dmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX3I0X2Jvb2xl
YW5zXzZfMXowMCgoKGxvbmcpNjQ0ODIpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJp
bml0aWFsaXphN2F0aW9uejc1enpfX3I0X3N5bWJvbHNfNl80ejAwKCgobG9uZyk1OTk1OSksICJf
X2V2Y29tcGlsZSIpOyAKQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfc3Ry
aW5nc182Xzd6MDAoKChsb25nKTk4NTE5KSwgIl9fZXZjb21waWxlIik7IApCR2xfbW9kdWxlemQy
aW5pdGlhbGl6YTdhdGlvbno3NXp6X19yNF9wYWlyc19hbmRfbGlzdHNfNl8zejAwKCgobG9uZyk5
MTkwNCksICJfX2V2Y29tcGlsZSIpOyAKQkdsX21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6
el9fcjRfaW5wdXRfNl8xMF8yejAwKCgobG9uZyk0MTMxOSksICJfX2V2Y29tcGlsZSIpOyAKQkds
X21vZHVsZXpkMmluaXRpYWxpemE3YXRpb256NzV6el9fcjRfY29udHJvbF9mZWF0dXJlc182Xzl6
MDAoKChsb25nKTcwNDkzKSwgIl9fZXZjb21waWxlIik7IApCR2xfbW9kdWxlemQyaW5pdGlhbGl6
YTdhdGlvbno3NXp6X19yNF92ZWN0b3JzXzZfOHowMCgoKGxvbmcpMjU3MDMpLCAiX19ldmNvbXBp
bGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX3I0X3BvcnRzXzZfMTBf
MXowMCgoKGxvbmcpMzkyNDkpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFs
aXphN2F0aW9uejc1enpfX3I0X291dHB1dF82XzEwXzN6MDAoKChsb25nKTg1NzAxKSwgIl9fZXZj
b21waWxlIik7IApCR2xfbW9kdWxlemQyaW5pdGlhbGl6YTdhdGlvbno3NXp6X19ldmVudnowMCgo
KGxvbmcpMzA5NTgpLCAiX19ldmNvbXBpbGUiKTsgCkJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0
aW9uejc1enpfX2V2YWx6MDAoKChsb25nKTI2OTM5KSwgIl9fZXZjb21waWxlIik7IApyZXR1cm4g
CkJHbF9tb2R1bGV6ZDJpbml0aWFsaXphN2F0aW9uejc1enpfX2V4cGFuZHowMCgoKGxvbmcpNTk1
MjApLCAiX19ldmNvbXBpbGUiKTt9IAp9Cgo=


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-03-15  8:06 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-15  0:06 c/5830: The compiler crashes Manuel Serrano
  -- strict thread matches above, loose matches on Subject: below --
2002-03-12  2:36 Gwenole Beauchesne
2002-03-10 23:46 Manuel Serrano
2002-03-08 10:36 Gwenole Beauchesne
2002-03-06 17:26 rodrigc
2002-03-04  8:46 Zack Weinberg
2002-03-04  7:56 Manuel.Serrano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).