public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/8549: --pedantic-errors problems on RedHat 6.1
@ 2002-11-20  6:59 Marc Mengel
  0 siblings, 0 replies; 6+ messages in thread
From: Marc Mengel @ 2002-11-20  6:59 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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

From: Marc Mengel <mengel@fnal.gov>
To: Zack Weinberg <zack@codesourcery.com>
Cc: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: c++/8549: --pedantic-errors problems on RedHat 6.1
Date: Wed, 13 Nov 2002 17:24:01 -0600

 Zack Weinberg wrote:
 > bangerth@dealii.org writes:
 > 
 > 
 >>    So I think, the whole thing is attributable to the following:
 >>    Somewhen an extension in gcc was deprecated and the kernel
 >>    folks changed their header files accordingly.I think the
 >>    only way to make newer gccs work on these old systems
 >>    would be to fixinclude the respective header files, but I
 >>    doubt someone would like to put much energy in backporting
 >>    gcc to such old systems.
 > 
 > 
 > Note that the kernel has nothing to do with this.  The header
 > bits/mathinline.h is part of GNU libc.
 
 The point is, this is a case where --pedantic doesn't give
 a warning, but --pedantic-errors fails the compile.  That's the
 bug.  The fact that it's in an older glibc header file isn't
 neccesarily relevant to that point.  Either --pedantic should
 give a warning about it too, or --pedantic-errors shouldn't
 give an error.
 
 Of course the "old system" issue is relevant to the priority which one places 
 on fixing the bug, so I'm not saying the origin shouldn't be discussed,
 but I just want to remind folks what I thought the issue was.
 
 Marc Mengel
 


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

* Re: c++/8549: --pedantic-errors problems on RedHat 6.1
@ 2002-11-20  6:56 Zack Weinberg
  0 siblings, 0 replies; 6+ messages in thread
From: Zack Weinberg @ 2002-11-20  6:56 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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

From: Zack Weinberg <zack@codesourcery.com>
To: bangerth@dealii.org
Cc: gcc-bugs@gcc.gnu.org, mengel@fnal.gov, gcc-gnats@gcc.gnu.org
Subject: Re: c++/8549: --pedantic-errors problems on RedHat 6.1
Date: Wed, 13 Nov 2002 15:14:42 -0800

 bangerth@dealii.org writes:
 
 >     So I think, the whole thing is attributable to the following:
 >     Somewhen an extension in gcc was deprecated and the kernel
 >     folks changed their header files accordingly.I think the
 >     only way to make newer gccs work on these old systems
 >     would be to fixinclude the respective header files, but I
 >     doubt someone would like to put much energy in backporting
 >     gcc to such old systems.
 
 Note that the kernel has nothing to do with this.  The header
 bits/mathinline.h is part of GNU libc.
 
 zw


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

* Re: c++/8549: --pedantic-errors problems on RedHat 6.1
@ 2002-11-19 18:37 bangerth
  0 siblings, 0 replies; 6+ messages in thread
From: bangerth @ 2002-11-19 18:37 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, mengel, nobody

Synopsis: --pedantic-errors problems on RedHat 6.1

State-Changed-From-To: feedback->analyzed
State-Changed-By: bangerth
State-Changed-When: Wed Nov 13 09:29:30 2002
State-Changed-Why:
    The problem boils down to the following: in cmath, the
    isgreaterequal (and other) macros are used, of which the
    definition has changed between kernels 2.2 and 2.4. They are
    defined in /usr/include/bits/mathinline.h. The
    following snippet shows that:
    --------------------------------------
    // code from /usr/include/bits/mathinline.h 
    #if 1   // from kernel 2.2
    #  define isgreaterequal(x, y) \
         ({ register char __result;						      \
    	__asm__ ("fucomip %%st(1), %%st; setae %%al"			      \
    		 : "=a" (__result) : "u" (y), "t" (x) : "cc", "st");	      \
    	__result; })
    #else     // from kernel 2.4
    #  define isgreaterequal(x, y) __builtin_isgreaterequal (x, y)
    #endif
    
    int main () 
    {
      isgreaterequal(1.,2.);
    };
    ---------------------------------------
    If compiled as is, I get
    tmp/g> /home/bangerth/bin/gcc-3.2.1-pre/bin/c++ -c -O2 --pedantic-errors foo2.cc
    foo2.cc: In function `int main()':
    foo2.cc:14: ISO C++ forbids braced-groups within expressions
    
    If I change the #if 1 to #if 0 to enable the code that
    is in the 2.4 kernel series, I get no errors. This is
    the behavior of all gccs since 3.0, but also with 2.95!
    
    So I think, the whole thing is attributable to the following:
    Somewhen an extension in gcc was deprecated and the kernel
    folks changed their header files accordingly.I think the
    only way to make newer gccs work on these old systems
    would be to fixinclude the respective header files, but I
    doubt someone would like to put much energy in backporting
    gcc to such old systems.
    
    What do we do with this report then?
    
    Regards
      Wolfgang

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


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

* Re: c++/8549: --pedantic-errors problems on RedHat 6.1
@ 2002-11-19 18:36 Marc Mengel
  0 siblings, 0 replies; 6+ messages in thread
From: Marc Mengel @ 2002-11-19 18:36 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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

From: Marc Mengel <mengel@fnal.gov>
To: bangerth@dealii.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
 mengel@fnal.gov, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: c++/8549: --pedantic-errors problems on RedHat 6.1
Date: Wed, 13 Nov 2002 10:58:17 -0600

 This is a multi-part message in MIME format.
 --------------000801000200090106090205
 Content-Type: text/plain; charset=us-ascii; format=flowed
 Content-Transfer-Encoding: 7bit
 
 bangerth@dealii.org wrote:
 > Synopsis: --pedantic-errors problems on RedHat 6.1
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: bangerth
 > State-Changed-When: Tue Nov 12 10:21:26 2002
 > State-Changed-Why:
 >     You have a very old system... I cannot reproduce this
 >     problem with a more recent distribtion, neither with
 >     3.0, 3.1, or 3.2.
 >     
 >     Nevertheless, if you want us
 >     to look at the problem, please tell us what happens exactly
 >     at the lines indicated in std_cmath. Probably, there are
 >     initializers used that come from system headers. Please also 
 >     provide preprocessed files as described on the gcc homepage.
 >     (However, in this case we would need both information I
 >     mentioned above.)
 >     
 >     Could you please also test 3.2.1 once it will be released in
 >     a few days?
 > 
 > http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8549
 
 I did not include a preprocessed file, as the problem goes away if you
 preprocess it and run on the preprocessed file.
 
 Instead, I have built a tarfile of all the include files touched in the build, 
 and a script that uses -nostdinc -Ifoo -Ibar ... which reproduces the problem 
 on other platforms.
 
 As I mentioned this is a very hard to reproduce bug.
 
 Hopefully the attached tarfile makes it clear; unpack it in an empty 
 directory, and run ./reproduce_it (a shell script).
 
 Marc
 
 --------------000801000200090106090205
 Content-Type: application/x-tar;
  name="reproduce_it.tar"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="reproduce_it.tar"
 
 Li8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUA
 MDAwMzMwNQAwMDExNjM3ADAwMDAwMDAwMDAwADA3NTY0NTAxNTcxADAxMDA3MwAgNQAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdl
 bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2xpYi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAA
 MDc1NjQ1MDA2MzEAMDEwNjM1ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv
 c3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4v
 bGliL2djYy1saWIvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDQwNzc1ADAw
 MDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMDYzMQAwMTIxMzUAIDUAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdu
 dS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDAwMDAwADA3
 NTY0NTAwNjMxADAxNTE1NQAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3Nz
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2xp
 Yi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAz
 MzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDE1NDU3ACA1AAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUv
 My4xL3NwZWNzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAxNDMxNwAwNzQ3
 MzA0MjU1MQAwMTY1MjAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKmFzbToK
 JXt2Oi1WfSAle1F5On0gJXshUW46LVF5fSAle259ICV7VH0gJXtZbSwqfSAle1lkLCp9ICV7
 V2EsKjolKn0KCiphc21fZGVidWc6CiV7Z3N0YWJzKjotLWdzdGFic30leyFnc3RhYnMqOiV7
 Zyo6LS1nZHdhcmYyfX0KCiphc21fZmluYWw6CiV8CgoqYXNtX29wdGlvbnM6CiVhICVZICV7
 YzolV3tvKn0leyFvKjotbyAldyViJU99fSV7IWM6LW8gJWQldyV1JU99CgoqaW52b2tlX2Fz
 OgoleyFTOi1vICV7fCFwaXBlOiVnLnN9IHwKIGFzICUoYXNtX29wdGlvbnMpICV7IXBpcGU6
 JWcuc30gJUEgfQoKKmNwcDoKJShjcHBfY3B1KSAle2ZQSUM6LURfX1BJQ19fIC1EX19waWNf
 X30gJXtmcGljOi1EX19QSUNfXyAtRF9fcGljX199ICV7cG9zaXg6LURfUE9TSVhfU09VUkNF
 fSAle3B0aHJlYWQ6LURfUkVFTlRSQU5UfQoKKmNwcF9vcHRpb25zOgolKGNwcF91bmlxdWVf
 b3B0aW9ucykgJXtzdGQqfSAle2QqfSAle1cqfSAle3d9ICV7cGVkYW50aWMqfSAle2ZzaG93
 LWNvbHVtbn0gJXtmbm8tc2hvdy1jb2x1bW59ICV7ZnNpZ25lZC1jaGFyJmZ1bnNpZ25lZC1j
 aGFyfSAle2ZsZWFkaW5nLXVuZGVyc2NvcmV9ICV7Zm5vLWxlYWRpbmctdW5kZXJzY29yZX0g
 JXtmbm8tb3BlcmF0b3ItbmFtZXN9ICV7ZnRhYnN0b3A9Kn0KCipjcHBfdW5pcXVlX29wdGlv
 bnM6CiV7QzoleyFFOiVlR05VIEMgZG9lcyBub3Qgc3VwcG9ydCAtQyB3aXRob3V0IHVzaW5n
 IC1FfX0gJXtub3N0ZGluYyp9ICV7Q30gJXt2fSAle0kqfSAle1B9ICV7JH0gJUkgJXtNRDot
 TUQgJVd7IW86ICViLmR9JVd7byo6JS5kJSp9fSAle01NRDotTU1EICVXeyFvOiAlYi5kfSVX
 e28qOiUuZCUqfX0gJXtNfSAle01NfSAlV3tNRip9ICV7TUd9ICV7TVB9ICV7TVEqfSAle01U
 Kn0gJXshRToleyFNOiV7IU1NOiV7TUR8TU1EOiV7byo6LU1RICUqfX19fX0gJXshbm8tZ2Nj
 Oi1EX19HTlVDX189JXYxIC1EX19HTlVDX01JTk9SX189JXYyIC1EX19HTlVDX1BBVENITEVW
 RUxfXz0ldjN9ICV7IXVuZGVmOiV7IWFuc2k6JXshc3RkPSo6JXB9JXtzdGQ9Z251KjolcH19
 ICVQfSAle3RyaWdyYXBoc30gJXtPczotRF9fT1BUSU1JWkVfU0laRV9ffSAle08qOiV7IU8w
 Oi1EX19PUFRJTUlaRV9ffX0gJXtmbm8taW5saW5lfE8wfCFPKjotRF9fTk9fSU5MSU5FX199
 ICV7ZmZhc3QtbWF0aDotRF9fRkFTVF9NQVRIX199ICV7ZnNob3J0LXdjaGFyOi1VX19XQ0hB
 Ul9UWVBFX18gLURfX1dDSEFSX1RZUEVfXz1zaG9ydFwgdW5zaWduZWRcIGludH0gJXtmZnJl
 ZXN0YW5kaW5nOi1EX19TVERDX0hPU1RFRF9fPTB9ICV7Zm5vLWhvc3RlZDotRF9fU1REQ19I
 T1NURURfXz0wfSAleyFmZnJlZXN0YW5kaW5nOiV7IWZuby1ob3N0ZWQ6LURfX1NURENfSE9T
 VEVEX189MX19ICV7cmVtYXB9ICV7ZzM6LWREfSAle0h9ICVDICV7RComVSomQSp9ICV7aSp9
 ICVaICVpICV7RXxNfE1NOiVXe28qfX0KCip0cmFkX2NhcGFibGVfY3BwOgole3RyYWRpdGlv
 bmFsfGZ0cmFkaXRpb25hbHx0cmFkaXRpb25hbC1jcHA6dHJhZH1jcHAwCgoqY2MxOgolKGNj
 MV9jcHUpICV7cHJvZmlsZTotcH0KCipjYzFfb3B0aW9uczoKJXtwZzole2ZvbWl0LWZyYW1l
 LXBvaW50ZXI6JWUtcGcgYW5kIC1mb21pdC1mcmFtZS1wb2ludGVyIGFyZSBpbmNvbXBhdGli
 bGV9fSAlMSAleyFROi1xdWlldH0gLWR1bXBiYXNlICVCICV7ZCp9ICV7bSp9ICV7YSp9ICV7
 Zyp9ICV7Typ9ICV7Vyp9ICV7d30gJXtwZWRhbnRpYyp9ICV7c3RkKn0gJXthbnNpfSAle3Ry
 YWRpdGlvbmFsfSAle3Y6LXZlcnNpb259ICV7cGc6LXB9ICV7cH0gJXtmKn0gJXtRbjotZm5v
 LWlkZW50fSAley0taGVscDotLWhlbHB9ICV7LS10YXJnZXQtaGVscDotLXRhcmdldC1oZWxw
 fSAleyFmc3ludGF4LW9ubHk6JXtTOiVXe28qfSV7IW8qOi1vICViLnN9fX0gJXtmc3ludGF4
 LW9ubHk6LW8gJWp9ICV7LXBhcmFtKn0KCipjYzFwbHVzOgoKCipsaW5rX2djY19jX3NlcXVl
 bmNlOgolRyAlTCAlRwoKKmVuZGZpbGU6CiV7IXNoYXJlZDpjcnRlbmQubyVzfSAle3NoYXJl
 ZDpjcnRlbmRTLm8lc30gY3J0bi5vJXMKCipsaW5rOgotbSBlbGZfaTM4NiAle3NoYXJlZDot
 c2hhcmVkfSAgICV7IXNoYXJlZDogICAgICV7IWliY3M6ICAgICAgICV7IXN0YXRpYzogCSV7
 cmR5bmFtaWM6LWV4cG9ydC1keW5hbWljfSAJJXshZHluYW1pYy1saW5rZXI6LWR5bmFtaWMt
 bGlua2VyIC9saWIvbGQtbGludXguc28uMn19IAkle3N0YXRpYzotc3RhdGljfX19CgoqbGli
 Ogole3NoYXJlZDogLWxjfSAgICAleyFzaGFyZWQ6ICV7bWllZWUtZnA6LWxpZWVlfSAle3B0
 aHJlYWQ6LWxwdGhyZWFkfSAJJXtwcm9maWxlOi1sY19wfSAleyFwcm9maWxlOiAtbGN9fQoK
 KmxpYmdjYzoKLWxnY2MKCipzdGFydGZpbGU6CiV7IXNoYXJlZDogICAgICAle3BnOmdjcnQx
 Lm8lc30gJXshcGc6JXtwOmdjcnQxLm8lc30gCQkgICAgICAgJXshcDole3Byb2ZpbGU6Z2Ny
 dDEubyVzfSAJCQkgJXshcHJvZmlsZTpjcnQxLm8lc319fX0gICAgY3J0aS5vJXMgJXtzdGF0
 aWM6Y3J0YmVnaW5ULm8lc30gICAleyFzdGF0aWM6JXshc2hhcmVkOmNydGJlZ2luLm8lc30g
 JXtzaGFyZWQ6Y3J0YmVnaW5TLm8lc319Cgoqc3dpdGNoZXNfbmVlZF9zcGFjZXM6CgoKKnBy
 ZWRlZmluZXM6Ci1EX19FTEZfXyAtRHVuaXggLURfX2dudV9saW51eF9fIC1EbGludXggLUFz
 eXN0ZW09cG9zaXgKCipjcm9zc19jb21waWxlOgowCgoqdmVyc2lvbjoKMy4xCgoqbXVsdGls
 aWI6Ci4gOwoKKm11bHRpbGliX2RlZmF1bHRzOgoKCiptdWx0aWxpYl9leHRyYToKCgoqbXVs
 dGlsaWJfbWF0Y2hlczoKCgoqbXVsdGlsaWJfZXhjbHVzaW9uczoKCgoqbGlua2VyOgpjb2xs
 ZWN0MgoKKmxpbmtfbGliZ2NjOgolRAoKKm1kX2V4ZWNfcHJlZml4OgoKCiptZF9zdGFydGZp
 bGVfcHJlZml4OgoKCiptZF9zdGFydGZpbGVfcHJlZml4XzE6CgoKKmNwcF9jcHVfZGVmYXVs
 dDoKLURfX3R1bmVfaTY4Nl9fIC1EX190dW5lX3BlbnRpdW1wcm9fXwoKKmNwcF9jcHU6CiUo
 Y3BwX2NwdTMyKSAlKGNwcF9jcHVjb21tb24pCgoqY3BwX2NwdTMyOgotQWNwdT1pMzg2IC1B
 bWFjaGluZT1pMzg2ICV7IWFuc2k6JXshc3RkPWMqOiV7IXN0ZD1pKjotRGkzODZ9fX0gLURf
 X2kzODYgLURfX2kzODZfXyAlKGNwcF9jcHUzMnNpemV0KQoKKmNwcF9jcHU2NDoKLUFjcHU9
 eDg2XzY0IC1BbWFjaGluZT14ODZfNjQgLURfX3g4Nl82NCAtRF9feDg2XzY0X18gJShjcHBf
 Y3B1NjRzaXpldCkKCipjcHBfY3B1MzJzaXpldDoKCgoqY3BwX2NwdTY0c2l6ZXQ6CgoKKmNw
 cF9jcHVjb21tb246CiV7bWFyY2g9aTM4NjoleyFtY3B1KjotRF9fdHVuZV9pMzg2X18gfX0l
 e21hcmNoPWk0ODY6LURfX2k0ODYgLURfX2k0ODZfXyAleyFtY3B1KjotRF9fdHVuZV9pNDg2
 X18gfX0le21hcmNoPXBlbnRpdW18bWFyY2g9aTU4NjotRF9faTU4NiAtRF9faTU4Nl9fIC1E
 X19wZW50aXVtIC1EX19wZW50aXVtX18gICAleyFtY3B1KjotRF9fdHVuZV9pNTg2X18gLURf
 X3R1bmVfcGVudGl1bV9fIH19JXttYXJjaD1wZW50aXVtLW1teDotRF9faTU4NiAtRF9faTU4
 Nl9fIC1EX19wZW50aXVtIC1EX19wZW50aXVtX18gICAtRF9fcGVudGl1bV9fbW14X18gICAl
 eyFtY3B1KjotRF9fdHVuZV9pNTg2X18gLURfX3R1bmVfcGVudGl1bV9fIC1EX190dW5lX3Bl
 bnRpdW1fbW14X199fSV7bWFyY2g9cGVudGl1bXByb3xtYXJjaD1pNjg2Oi1EX19pNjg2IC1E
 X19pNjg2X18gICAtRF9fcGVudGl1bXBybyAtRF9fcGVudGl1bXByb19fICAgJXshbWNwdSo6
 LURfX3R1bmVfaTY4Nl9fIC1EX190dW5lX3BlbnRpdW1wcm9fXyB9fSV7bWFyY2g9azY6LURf
 X2s2IC1EX19rNl9fICV7IW1jcHUqOi1EX190dW5lX2s2X18gfX0le21hcmNoPWs2LTI6LURf
 X2s2IC1EX19rNl9fIC1EX19rNl8yX18gICAleyFtY3B1KjotRF9fdHVuZV9rNl9fIC1EX190
 dW5lX2s2XzJfXyB9fSV7bWFyY2g9azYtMzotRF9fazYgLURfX2s2X18gLURfX2s2XzNfXyAg
 ICV7IW1jcHUqOi1EX190dW5lX2s2X18gLURfX3R1bmVfazZfM19fIH19JXttYXJjaD1hdGhs
 b258bWFyY2g9YXRobG9uLXRiaXJkOi1EX19hdGhsb24gLURfX2F0aGxvbl9fICAgJXshbWNw
 dSo6LURfX3R1bmVfYXRobG9uX18gfX0le21hcmNoPWF0aGxvbi00fG1hcmNoPWF0aGxvbi14
 cHxtYXJjaD1hdGhsb24tbXA6LURfX2F0aGxvbiAtRF9fYXRobG9uX18gICAtRF9fYXRobG9u
 X3NzZV9fICAgJXshbWNwdSo6LURfX3R1bmVfYXRobG9uX18gLURfX3R1bmVfYXRobG9uX3Nz
 ZV9fIH19JXttYXJjaD1wZW50aXVtNDotRF9fcGVudGl1bTQgLURfX3BlbnRpdW00X18gJXsh
 bWNwdSo6LURfX3R1bmVfcGVudGl1bTRfXyB9fSV7bTM4NnxtY3B1PWkzODY6LURfX3R1bmVf
 aTM4Nl9fIH0le200ODZ8bWNwdT1pNDg2Oi1EX190dW5lX2k0ODZfXyB9JXttcGVudGl1bXxt
 Y3B1PXBlbnRpdW18bWNwdT1pNTg2fG1jcHU9cGVudGl1bS1tbXg6LURfX3R1bmVfaTU4Nl9f
 IC1EX190dW5lX3BlbnRpdW1fXyB9JXttcGVudGl1bXByb3xtY3B1PXBlbnRpdW1wcm98bWNw
 dT1pNjg2fGNwdT1wZW50aXVtMnxjcHU9cGVudGl1bTM6LURfX3R1bmVfaTY4Nl9fIC1EX190
 dW5lX3BlbnRpdW1wcm9fXyB9JXttY3B1PWs2fG1jcHU9azYtMnxtY3B1PWs2LTM6LURfX3R1
 bmVfazZfXyB9JXttY3B1PWF0aGxvbnxtY3B1PWF0aGxvbi10YmlyZHxtY3B1PWF0aGxvbi00
 fG1jcHU9YXRobG9uLXhwfG1jcHU9YXRobG9uLW1wOi1EX190dW5lX2F0aGxvbl9fIH0le21j
 cHU9YXRobG9uLTR8bWNwdT1hdGhsb24teHB8bWNwdT1hdGhsb24tbXA6LURfX3R1bmVfYXRo
 bG9uX3NzZV9fIH0le21jcHU9cGVudGl1bTQ6LURfX3R1bmVfcGVudGl1bTRfXyB9JXttYXJj
 aD1hdGhsb24tdGJpcmR8bWFyY2g9YXRobG9uLXhwfG1hcmNoPWF0aGxvbi1tcHxtYXJjaD1w
 ZW50aXVtM3xtYXJjaD1wZW50aXVtNDotRF9fU1NFX18gfSV7bWFyY2g9cGVudGl1bS1tbXh8
 bWFyY2g9azZ8bWFyY2g9azYtMnxtYXJjaD1rNi0zfG1hcmNoPWF0aGxvbnxtYXJjaD1hdGhs
 b24tdGJpcmR8bWFyY2g9YXRobG9uLTR8bWFyY2g9YXRobG9uLXhwfG1hcmNoPWF0aGxvbi1t
 cHxtYXJjaD1wZW50aXVtMnxtYXJjaD1wZW50aXVtM3xtYXJjaD1wZW50aXVtNDogLURfX01N
 WF9fIH0le21hcmNoPWs2LTJ8bWFyY2g9azYtM3xtYXJjaD1hdGhsb258bWFyY2g9YXRobG9u
 LXRiaXJkfG1hcmNoPWF0aGxvbi00fG1hcmNoPWF0aGxvbi14cHxtYXJjaD1hdGhsb24tbXA6
 IC1EX18zZE5PV19fIH0le21hcmNoPWF0aGxvbnxtYXJjaD1hdGhsb24tdGJpcmR8bWFyY2g9
 YXRobG9uLTR8bWFyY2g9YXRobG9uLXhwfG1hcmNoPWF0aGxvbi1tcDogLURfXzNkTk9XX0Ff
 XyB9JXttYXJjaD1wZW50aXVtNDogLURfX1NTRTJfXyB9JXshbWFyY2gqOiV7IW1jcHUqOiV7
 IW0zODY6JXshbTQ4NjoleyFtcGVudGl1bSo6JShjcHBfY3B1X2RlZmF1bHQpfX19fX0KCipj
 YzFfY3B1OgoleyFtY3B1KjogJXttMzg2Oi1tY3B1PWkzODYgJW5gLW0zODYnIGlzIGRlcHJl
 Y2F0ZWQuIFVzZSBgLW1hcmNoPWkzODYnIG9yIGAtbWNwdT1pMzg2JyBpbnN0ZWFkLgp9ICV7
 bTQ4NjotbWNwdT1pNDg2ICVuYC1tNDg2JyBpcyBkZXByZWNhdGVkLiBVc2UgYC1tYXJjaD1p
 NDg2JyBvciBgLW1jcHU9aTQ4NicgaW5zdGVhZC4KfSAle21wZW50aXVtOi1tY3B1PXBlbnRp
 dW0gJW5gLW1wZW50aXVtJyBpcyBkZXByZWNhdGVkLiBVc2UgYC1tYXJjaD1wZW50aXVtJyBv
 ciBgLW1jcHU9cGVudGl1bScgaW5zdGVhZC4KfSAle21wZW50aXVtcHJvOi1tY3B1PXBlbnRp
 dW1wcm8gJW5gLW1wZW50aXVtcHJvJyBpcyBkZXByZWNhdGVkLiBVc2UgYC1tYXJjaD1wZW50
 aXVtcHJvJyBvciBgLW1jcHU9cGVudGl1bXBybycgaW5zdGVhZC4KfX0gJXttaW50ZWwtc3lu
 dGF4Oi1tYXNtPWludGVsICVuYC1taW50ZWwtc3ludGF4JyBpcyBkZXByZWNhdGVkLiBVc2Ug
 YC1tYXNtPWludGVsJyBpbnN0ZWFkLgp9ICV7bW5vLWludGVsLXN5bnRheDotbWFzbT1hdHQg
 JW5gLW1uby1pbnRlbC1zeW50YXgnIGlzIGRlcHJlY2F0ZWQuIFVzZSBgLW1hc209YXR0JyBp
 bnN0ZWFkLgp9CgoqbGlua19jb21tYW5kOgoleyFmc3ludGF4LW9ubHk6JXshYzoleyFNOiV7
 IU1NOiV7IUU6JXshUzogICAgJShsaW5rZXIpICVsICVYICV7byp9ICV7QX0gJXtkfSAle2Uq
 fSAle219ICV7Tn0gJXtufSAle3J9ICV7c30gJXt0fSAgICAle3UqfSAle3h9ICV7en0gJXta
 fSAleyFBOiV7IW5vc3RkbGliOiV7IW5vc3RhcnRmaWxlczolU319fSAgICAle3N0YXRpYzp9
 ICV7TCp9ICUobGlua19saWJnY2MpICVvICV7IW5vc3RkbGliOiV7IW5vZGVmYXVsdGxpYnM6
 JShsaW5rX2djY19jX3NlcXVlbmNlKX19ICAgICV7IUE6JXshbm9zdGRsaWI6JXshbm9zdGFy
 dGZpbGVzOiVFfX19ICV7VCp9IH19fX19fQoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAuL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlLwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 MDA0MDc3NQAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDE3MTAy
 ACA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy
 ICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vbGliL2djYy1saWIvaTY4Ni1w
 Yy1saW51eC1nbnUvMy4xL2luY2x1ZGUvZmxvYXQuaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjY0ADAwMDMzMDUAMDAxMTYzNwAwMDAw
 MDAxMDYzNQAwNzQ3MzAyMTcwMgAwMjAzNTUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAALyogZmxvYXQuaCBmb3IgdGFyZ2V0IHdpdGggSUVFRSAzMi82NCBiaXQgYW5kIElu
 dGVsIDM4NiBzdHlsZSA4MCBiaXQKICAgZmxvYXRpbmcgcG9pbnQgZm9ybWF0cyAqLwojaWZu
 ZGVmIF9GTE9BVF9IXwojZGVmaW5lIF9GTE9BVF9IXwovKiBQcm9kdWNlZCBieSBlbnF1aXJl
 IHZlcnNpb24gNC4zLCBDV0ksIEFtc3RlcmRhbSAqLwoKICAgLyogUmFkaXggb2YgZXhwb25l
 bnQgcmVwcmVzZW50YXRpb24gKi8KI3VuZGVmIEZMVF9SQURJWAojZGVmaW5lIEZMVF9SQURJ
 WCAyCiAgIC8qIE51bWJlciBvZiBiYXNlLUZMVF9SQURJWCBkaWdpdHMgaW4gdGhlIHNpZ25p
 ZmljYW5kIG9mIGEgZmxvYXQgKi8KI3VuZGVmIEZMVF9NQU5UX0RJRwojZGVmaW5lIEZMVF9N
 QU5UX0RJRyAyNAogICAvKiBOdW1iZXIgb2YgZGVjaW1hbCBkaWdpdHMgb2YgcHJlY2lzaW9u
 IGluIGEgZmxvYXQgKi8KI3VuZGVmIEZMVF9ESUcKI2RlZmluZSBGTFRfRElHIDYKICAgLyog
 QWRkaXRpb24gcm91bmRzIHRvIDA6IHplcm8sIDE6IG5lYXJlc3QsIDI6ICtpbmYsIDM6IC1p
 bmYsIC0xOiB1bmtub3duICovCiN1bmRlZiBGTFRfUk9VTkRTCiNkZWZpbmUgRkxUX1JPVU5E
 UyAxCiAgIC8qIERpZmZlcmVuY2UgYmV0d2VlbiAxLjAgYW5kIHRoZSBtaW5pbXVtIGZsb2F0
 IGdyZWF0ZXIgdGhhbiAxLjAgKi8KI3VuZGVmIEZMVF9FUFNJTE9OCiNkZWZpbmUgRkxUX0VQ
 U0lMT04gMS4xOTIwOTI5MGUtMDdGCiAgIC8qIE1pbmltdW0gaW50IHggc3VjaCB0aGF0IEZM
 VF9SQURJWCoqKHgtMSkgaXMgYSBub3JtYWxpc2VkIGZsb2F0ICovCiN1bmRlZiBGTFRfTUlO
 X0VYUAojZGVmaW5lIEZMVF9NSU5fRVhQICgtMTI1KQogICAvKiBNaW5pbXVtIG5vcm1hbGlz
 ZWQgZmxvYXQgKi8KI3VuZGVmIEZMVF9NSU4KI2RlZmluZSBGTFRfTUlOIDEuMTc1NDk0MzVl
 LTM4RgogICAvKiBNaW5pbXVtIGludCB4IHN1Y2ggdGhhdCAxMCoqeCBpcyBhIG5vcm1hbGlz
 ZWQgZmxvYXQgKi8KI3VuZGVmIEZMVF9NSU5fMTBfRVhQCiNkZWZpbmUgRkxUX01JTl8xMF9F
 WFAgKC0zNykKICAgLyogTWF4aW11bSBpbnQgeCBzdWNoIHRoYXQgRkxUX1JBRElYKiooeC0x
 KSBpcyBhIHJlcHJlc2VudGFibGUgZmxvYXQgKi8KI3VuZGVmIEZMVF9NQVhfRVhQCiNkZWZp
 bmUgRkxUX01BWF9FWFAgMTI4CiAgIC8qIE1heGltdW0gZmxvYXQgKi8KI3VuZGVmIEZMVF9N
 QVgKI2RlZmluZSBGTFRfTUFYIDMuNDAyODIzNDdlKzM4RgogICAvKiBNYXhpbXVtIGludCB4
 IHN1Y2ggdGhhdCAxMCoqeCBpcyBhIHJlcHJlc2VudGFibGUgZmxvYXQgKi8KI3VuZGVmIEZM
 VF9NQVhfMTBfRVhQCiNkZWZpbmUgRkxUX01BWF8xMF9FWFAgMzgKCiAgIC8qIE51bWJlciBv
 ZiBiYXNlLUZMVF9SQURJWCBkaWdpdHMgaW4gdGhlIHNpZ25pZmljYW5kIG9mIGEgZG91Ymxl
 ICovCiN1bmRlZiBEQkxfTUFOVF9ESUcKI2RlZmluZSBEQkxfTUFOVF9ESUcgNTMKICAgLyog
 TnVtYmVyIG9mIGRlY2ltYWwgZGlnaXRzIG9mIHByZWNpc2lvbiBpbiBhIGRvdWJsZSAqLwoj
 dW5kZWYgREJMX0RJRwojZGVmaW5lIERCTF9ESUcgMTUKICAgLyogRGlmZmVyZW5jZSBiZXR3
 ZWVuIDEuMCBhbmQgdGhlIG1pbmltdW0gZG91YmxlIGdyZWF0ZXIgdGhhbiAxLjAgKi8KI3Vu
 ZGVmIERCTF9FUFNJTE9OCiNkZWZpbmUgREJMX0VQU0lMT04gMi4yMjA0NDYwNDkyNTAzMTMx
 ZS0xNgogICAvKiBNaW5pbXVtIGludCB4IHN1Y2ggdGhhdCBGTFRfUkFESVgqKih4LTEpIGlz
 IGEgbm9ybWFsaXNlZCBkb3VibGUgKi8KI3VuZGVmIERCTF9NSU5fRVhQCiNkZWZpbmUgREJM
 X01JTl9FWFAgKC0xMDIxKQogICAvKiBNaW5pbXVtIG5vcm1hbGlzZWQgZG91YmxlICovCiN1
 bmRlZiBEQkxfTUlOCiNkZWZpbmUgREJMX01JTiAyLjIyNTA3Mzg1ODUwNzIwMTRlLTMwOAog
 ICAvKiBNaW5pbXVtIGludCB4IHN1Y2ggdGhhdCAxMCoqeCBpcyBhIG5vcm1hbGlzZWQgZG91
 YmxlICovCiN1bmRlZiBEQkxfTUlOXzEwX0VYUAojZGVmaW5lIERCTF9NSU5fMTBfRVhQICgt
 MzA3KQogICAvKiBNYXhpbXVtIGludCB4IHN1Y2ggdGhhdCBGTFRfUkFESVgqKih4LTEpIGlz
 IGEgcmVwcmVzZW50YWJsZSBkb3VibGUgKi8KI3VuZGVmIERCTF9NQVhfRVhQCiNkZWZpbmUg
 REJMX01BWF9FWFAgMTAyNAogICAvKiBNYXhpbXVtIGRvdWJsZSAqLwojdW5kZWYgREJMX01B
 WAojZGVmaW5lIERCTF9NQVggMS43OTc2OTMxMzQ4NjIzMTU3ZSszMDgKICAgLyogTWF4aW11
 bSBpbnQgeCBzdWNoIHRoYXQgMTAqKnggaXMgYSByZXByZXNlbnRhYmxlIGRvdWJsZSAqLwoj
 dW5kZWYgREJMX01BWF8xMF9FWFAKI2RlZmluZSBEQkxfTUFYXzEwX0VYUCAzMDgKCiAgIC8q
 IE51bWJlciBvZiBiYXNlLUZMVF9SQURJWCBkaWdpdHMgaW4gdGhlIHNpZ25pZmljYW5kIG9m
 IGEgbG9uZyBkb3VibGUgKi8KI3VuZGVmIExEQkxfTUFOVF9ESUcKI2RlZmluZSBMREJMX01B
 TlRfRElHIDY0CiAgIC8qIE51bWJlciBvZiBkZWNpbWFsIGRpZ2l0cyBvZiBwcmVjaXNpb24g
 aW4gYSBsb25nIGRvdWJsZSAqLwojdW5kZWYgTERCTF9ESUcKI2RlZmluZSBMREJMX0RJRyAx
 OAogICAvKiBEaWZmZXJlbmNlIGJldHdlZW4gMS4wIGFuZCB0aGUgbWluaW11bSBsb25nIGRv
 dWJsZSBncmVhdGVyIHRoYW4gMS4wICovCiN1bmRlZiBMREJMX0VQU0lMT04KI2RlZmluZSBM
 REJMX0VQU0lMT04gMS4wODQyMDIxNzI0ODU1MDQ0MzQwMWUtMTlMCiAgIC8qIE1pbmltdW0g
 aW50IHggc3VjaCB0aGF0IEZMVF9SQURJWCoqKHgtMSkgaXMgYSBub3JtYWxpc2VkIGxvbmcg
 ZG91YmxlICovCiN1bmRlZiBMREJMX01JTl9FWFAKI2RlZmluZSBMREJMX01JTl9FWFAgKC0x
 NjM4MSkKICAgLyogTWluaW11bSBub3JtYWxpc2VkIGxvbmcgZG91YmxlICovCiN1bmRlZiBM
 REJMX01JTgojZGVmaW5lIExEQkxfTUlOIDMuMzYyMTAzMTQzMTEyMDkzNTA2MjZlLTQ5MzJM
 CiAgIC8qIE1pbmltdW0gaW50IHggc3VjaCB0aGF0IDEwKip4IGlzIGEgbm9ybWFsaXNlZCBs
 b25nIGRvdWJsZSAqLwojdW5kZWYgTERCTF9NSU5fMTBfRVhQCiNkZWZpbmUgTERCTF9NSU5f
 MTBfRVhQICgtNDkzMSkKICAgLyogTWF4aW11bSBpbnQgeCBzdWNoIHRoYXQgRkxUX1JBRElY
 KiooeC0xKSBpcyBhIHJlcHJlc2VudGFibGUgbG9uZyBkb3VibGUgKi8KI3VuZGVmIExEQkxf
 TUFYX0VYUAojZGVmaW5lIExEQkxfTUFYX0VYUCAxNjM4NAogICAvKiBNYXhpbXVtIGxvbmcg
 ZG91YmxlICovCiN1bmRlZiBMREJMX01BWAojZGVmaW5lIExEQkxfTUFYIDEuMTg5NzMxNDk1
 MzU3MjMxNzY1MDJlKzQ5MzJMCiAgIC8qIE1heGltdW0gaW50IHggc3VjaCB0aGF0IDEwKip4
 IGlzIGEgcmVwcmVzZW50YWJsZSBsb25nIGRvdWJsZSAqLwojdW5kZWYgTERCTF9NQVhfMTBf
 RVhQCiNkZWZpbmUgTERCTF9NQVhfMTBfRVhQIDQ5MzIKCiNpZiBkZWZpbmVkIChfX1NURENf
 VkVSU0lPTl9fKSAmJiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwKICAgLyogVGhlIGZs
 b2F0aW5nLXBvaW50IGV4cHJlc3Npb24gZXZhbHVhdGlvbiBtZXRob2QuCiAgICAgICAgLTEg
 IGluZGV0ZXJtaW5hdGUKICAgICAgICAgMCAgZXZhbHVhdGUgYWxsIG9wZXJhdGlvbnMgYW5k
 IGNvbnN0YW50cyBqdXN0IHRvIHRoZSByYW5nZSBhbmQKICAgICAgICAgICAgcHJlY2lzaW9u
 IG9mIHRoZSB0eXBlCiAgICAgICAgIDEgIGV2YWx1YXRlIG9wZXJhdGlvbnMgYW5kIGNvbnN0
 YW50cyBvZiB0eXBlIGZsb2F0IGFuZCBkb3VibGUKICAgICAgICAgICAgdG8gdGhlIHJhbmdl
 IGFuZCBwcmVjaXNpb24gb2YgdGhlIGRvdWJsZSB0eXBlLCBldmFsdWF0ZQogICAgICAgICAg
 ICBsb25nIGRvdWJsZSBvcGVyYXRpb25zIGFuZCBjb25zdGFudHMgdG8gdGhlIHJhbmdlIGFu
 ZAogICAgICAgICAgICBwcmVjaXNpb24gb2YgdGhlIGxvbmcgZG91YmxlIHR5cGUKICAgICAg
 ICAgMiAgZXZhbHVhdGUgYWxsIG9wZXJhdGlvbnMgYW5kIGNvbnN0YW50cyB0byB0aGUgcmFu
 Z2UgYW5kCiAgICAgICAgICAgIHByZWNpc2lvbiBvZiB0aGUgbG9uZyBkb3VibGUgdHlwZQog
 ICAqLwojIHVuZGVmIEZMVF9FVkFMX01FVEhPRAojIGRlZmluZSBGTFRfRVZBTF9NRVRIT0QJ
 MgoKICAgLyogTnVtYmVyIG9mIGRlY2ltYWwgZGlnaXRzIHRvIGVuYWJsZSByb3VuZGluZyB0
 byB0aGUgZ2l2ZW4gbnVtYmVyIG9mCiAgICAgIGRlY2ltYWwgZGlnaXRzIHdpdGhvdXQgbG9z
 cyBvZiBwcmVjaXNpb24uCiAgICAgICAgIGlmIEZMVF9SQURJWCA9PSAxMF5uOiAgI21hbnRp
 c3NhICogbG9nMTAgKEZMVF9SQURJWCkKICAgICAgICAgZWxzZSAgICAgICAgICAgICAgICA6
 ICBjZWlsICgxICsgI21hbnRpc3NhICogbG9nMTAgKEZMVF9SQURJWCkpCiAgICAgIHdoZXJl
 ICNtYW50aXNzYSBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gdGhlIG1hbnRpc3NhIG9mIHRo
 ZSB3aWRlc3QKICAgICAgc3VwcG9ydGVkIGZsb2F0aW5nLXBvaW50IHR5cGUuCiAgICovCiMg
 dW5kZWYgREVDSU1BTF9ESUcKIyBkZWZpbmUgREVDSU1BTF9ESUcJMjEKCiNlbmRpZgkvKiBD
 OTkgKi8KCiNlbmRpZiAvKiAgX0ZMT0FUX0hfX18gKi8KAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9pbmNsdWRlLwAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDAwMDAwADA3
 NTY0NTAwNjMyADAxMTUxMwAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3Nz
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2lu
 Y2x1ZGUvZysrLXYzLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAz
 MzA1ADAwMTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDEyNDE1ACA1AAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vaW5jbHVkZS9nKystdjMvY21hdGgAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAzNjAxMAAwNzQ3
 MzA0MjY1NwAwMTM0MzYAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALy8gLSot
 IEMrKyAtKi0gQyBmb3J3YXJkaW5nIGhlYWRlci4KCi8vIENvcHlyaWdodCAoQykgMTk5Nywg
 MTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMgovLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
 b24sIEluYy4KLy8KLy8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExp
 YnJhcnkuICBUaGlzIGxpYnJhcnkgaXMgZnJlZQovLyBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
 c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKLy8gdGVybXMgb2YgdGhl
 IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKLy8gRnJl
 ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBv
 cHRpb24pCi8vIGFueSBsYXRlciB2ZXJzaW9uLgoKLy8gVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
 aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi8vIGJ1dCBXSVRI
 T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
 Ci8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
 RS4gIFNlZSB0aGUKLy8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
 YWlscy4KCi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH
 ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCi8vIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
 dGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLy8gU29mdHdh
 cmUgRm91bmRhdGlvbiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1B
 IDAyMTExLTEzMDcsCi8vIFVTQS4KCi8vIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHlvdSBt
 YXkgdXNlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgZnJlZSBzb2Z0d2FyZQovLyBsaWJyYXJ5
 IHdpdGhvdXQgcmVzdHJpY3Rpb24uICBTcGVjaWZpY2FsbHksIGlmIG90aGVyIGZpbGVzIGlu
 c3RhbnRpYXRlCi8vIHRlbXBsYXRlcyBvciB1c2UgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlv
 bnMgZnJvbSB0aGlzIGZpbGUsIG9yIHlvdSBjb21waWxlCi8vIHRoaXMgZmlsZSBhbmQgbGlu
 ayBpdCB3aXRoIG90aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgdGhpcwov
 LyBmaWxlIGRvZXMgbm90IGJ5IGl0c2VsZiBjYXVzZSB0aGUgcmVzdWx0aW5nIGV4ZWN1dGFi
 bGUgdG8gYmUgY292ZXJlZCBieQovLyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Uu
 ICBUaGlzIGV4Y2VwdGlvbiBkb2VzIG5vdCBob3dldmVyCi8vIGludmFsaWRhdGUgYW55IG90
 aGVyIHJlYXNvbnMgd2h5IHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBi
 eQovLyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgovLwovLyBJU08gQysrIDE0
 ODgyOiAyNi41ICBDIGxpYnJhcnkKLy8KCi8qKiBAZmlsZSBjbWF0aAogKiAgVGhpcyBpcyBh
 IFN0YW5kYXJkIEMrKyBMaWJyYXJ5IGZpbGUuICBZb3Ugc2hvdWxkIEBjICNpbmNsdWRlIHRo
 aXMgZmlsZQogKiAgaW4geW91ciBwcm9ncmFtcywgcmF0aGVyIHRoYW4gYW55IG9mIHRoZSAi
 Ki5oIiBpbXBsZW1lbnRhdGlvbiBmaWxlcy4KICoKICogIFRoaXMgaXMgdGhlIEMrKyB2ZXJz
 aW9uIG9mIHRoZSBTdGFuZGFyZCBDIExpYnJhcnkgaGVhZGVyIEBjIG1hdGguaCwKICogIGFu
 ZCBpdHMgY29udGVudHMgYXJlIChtb3N0bHkpIHRoZSBzYW1lIGFzIHRoYXQgaGVhZGVyLCBi
 dXQgYXJlIGFsbAogKiAgY29udGFpbmVkIGluIHRoZSBuYW1lc3BhY2UgQGMgc3RkLgogKi8K
 CiNpZm5kZWYgX0NQUF9DTUFUSAojZGVmaW5lIF9DUFBfQ01BVEggMQoKI3ByYWdtYSBHQ0Mg
 c3lzdGVtX2hlYWRlcgoKI2luY2x1ZGUgPGJpdHMvYysrY29uZmlnLmg+CgojaW5jbHVkZSA8
 bWF0aC5oPgoKLy8gR2V0IHJpZCBvZiB0aG9zZSBtYWNyb3MgZGVmaW5lZCBpbiA8bWF0aC5o
 PiBpbiBsaWV1IG9mIHJlYWwgZnVuY3Rpb25zLgojdW5kZWYgYWJzCiN1bmRlZiBkaXYKI3Vu
 ZGVmIGFjb3MKI3VuZGVmIGFzaW4KI3VuZGVmIGF0YW4KI3VuZGVmIGF0YW4yCiN1bmRlZiBj
 ZWlsCiN1bmRlZiBjb3MKI3VuZGVmIGNvc2gKI3VuZGVmIGV4cAojdW5kZWYgZmFicwojdW5k
 ZWYgZmxvb3IKI3VuZGVmIGZtb2QKI3VuZGVmIGZyZXhwCiN1bmRlZiBsZGV4cAojdW5kZWYg
 bG9nCiN1bmRlZiBsb2cxMAojdW5kZWYgbW9kZgojdW5kZWYgcG93CiN1bmRlZiBzaW4KI3Vu
 ZGVmIHNpbmgKI3VuZGVmIHNxcnQKI3VuZGVmIHRhbgojdW5kZWYgdGFuaAoKbmFtZXNwYWNl
 IHN0ZCAKewogIC8vIEZvcndhcmQgZGVjbGFyYXRpb24gb2YgYSBoZWxwZXIgZnVuY3Rpb24u
 ICBUaGlzIHJlYWxseSBzaG91bGQgYmUKICAvLyBhbiBgZXhwb3J0ZWQnIGZvcndhcmQgZGVj
 bGFyYXRpb24uCiAgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPiBfVHAgX19jbWF0aF9wb3dlcihf
 VHAsIHVuc2lnbmVkIGludCk7CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICBpbmxpbmUg
 X1RwCiAgICBfX2NtYXRoX2FicyhfVHAgX194KQogICAgewogICAgICByZXR1cm4gX194IDwg
 X1RwKCkgPyAtX194IDogX194OwogICAgfQoKICBpbmxpbmUgZG91YmxlCiAgYWJzKGRvdWJs
 ZSBfX3gpCiAgeyByZXR1cm4gX19idWlsdGluX2ZhYnMoX194KTsgfQoKICBpbmxpbmUgZmxv
 YXQKICBhYnMoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9mYWJzZihfX3gpOyB9
 CgogIGlubGluZSBsb25nIGRvdWJsZQogIGFicyhsb25nIGRvdWJsZSBfX3gpCiAgeyByZXR1
 cm4gX19idWlsdGluX2ZhYnNsKF9feCk7IH0KCiNpZiBfR0xJQkNQUF9IQVZFX0FDT1NGCiAg
 aW5saW5lIGZsb2F0IAogIGFjb3MoZmxvYXQgX194KSB7IHJldHVybiA6OmFjb3NmKF9feCk7
 IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgYWNvcyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6
 YWNvcyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmFj
 b3M7CiAgCiNpZiBfR0xJQkNQUF9IQVZFX0FDT1NMCiAgaW5saW5lIGxvbmcgZG91YmxlIAog
 IGFjb3MobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmFjb3NsKF9feCk7IH0KI2Vsc2UK
 ICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgYWNvcyhsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJu
 IDo6YWNvcyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6
 OmFzaW47CgojaWYgX0dMSUJDUFBfSEFWRV9BU0lORgogIGlubGluZSBmbG9hdCAKICBhc2lu
 KGZsb2F0IF9feCkgeyByZXR1cm4gOjphc2luZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZs
 b2F0IAogIGFzaW4oZmxvYXQgX194KSB7IHJldHVybiA6OmFzaW4oc3RhdGljX2Nhc3Q8ZG91
 YmxlPihfX3gpKTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZFX0FTSU5MCiAgaW5saW5l
 IGxvbmcgZG91YmxlIAogIGFzaW4obG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmFzaW5s
 KF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgYXNpbihsb25nIGRvdWJs
 ZSBfX3gpIHsgcmV0dXJuIDo6YXNpbihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNl
 bmRpZgoKICB1c2luZyA6OmF0YW47CgojaWYgX0dMSUJDUFBfSEFWRV9BVEFORgogIGlubGlu
 ZSBmbG9hdCAKICBhdGFuKGZsb2F0IF9feCkgeyByZXR1cm4gOjphdGFuZihfX3gpOyB9CiNl
 bHNlCiAgaW5saW5lIGZsb2F0IAogIGF0YW4oZmxvYXQgX194KSB7IHJldHVybiA6OmF0YW4o
 c3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZF
 X0FUQU5MCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGF0YW4obG9uZyBkb3VibGUgX194KSB7
 IHJldHVybiA6OmF0YW5sKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAg
 YXRhbihsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6YXRhbihzdGF0aWNfY2FzdDxkb3Vi
 bGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmF0YW4yOwoKI2lmIF9HTElCQ1BQX0hB
 VkVfQVRBTjJGCiAgaW5saW5lIGZsb2F0IAogIGF0YW4yKGZsb2F0IF9feSwgZmxvYXQgX194
 KSB7IHJldHVybiA6OmF0YW4yZihfX3ksIF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQg
 CiAgYXRhbjIoZmxvYXQgX195LCBmbG9hdCBfX3gpCiAgeyByZXR1cm4gOjphdGFuMihzdGF0
 aWNfY2FzdDxkb3VibGU+KF9feSksIHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2Vu
 ZGlmCgojaWYgX0dMSUJDUFBfSEFWRV9BVEFOMkwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAg
 YXRhbjIobG9uZyBkb3VibGUgX195LCBsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6YXRh
 bjJsKF9feSwgX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBhdGFuMihs
 b25nIGRvdWJsZSBfX3ksIGxvbmcgZG91YmxlIF9feCkgCiAgeyByZXR1cm4gOjphdGFuMihz
 dGF0aWNfY2FzdDxkb3VibGU+KF9feSksIHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0K
 I2VuZGlmCgogIHVzaW5nIDo6Y2VpbDsKCiNpZiBfR0xJQkNQUF9IQVZFX0NFSUxGCiAgaW5s
 aW5lIGZsb2F0IAogIGNlaWwoZmxvYXQgX194KSB7IHJldHVybiA6OmNlaWxmKF9feCk7IH0K
 I2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgY2VpbChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6Y2Vp
 bChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hB
 VkVfQ0VJTEwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgY2VpbChsb25nIGRvdWJsZSBfX3gp
 IHsgcmV0dXJuIDo6Y2VpbGwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAK
 ICBjZWlsKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpjZWlsKHN0YXRpY19jYXN0PGRv
 dWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6Y29zOwoKICBpbmxpbmUgZmxvYXQK
 ICBjb3MoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9jb3NmKF9feCk7IH0KCiAg
 aW5saW5lIGxvbmcgZG91YmxlCiAgY29zKGxvbmcgZG91YmxlIF9feCkKICB7IHJldHVybiBf
 X2J1aWx0aW5fY29zbChfX3gpOyB9CgogIHVzaW5nIDo6Y29zaDsKCiNpZiBfR0xJQkNQUF9I
 QVZFX0NPU0hGCiAgaW5saW5lIGZsb2F0IAogIGNvc2goZmxvYXQgX194KSB7IHJldHVybiA6
 OmNvc2hmKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgY29zaChmbG9hdCBfX3gp
 IHsgcmV0dXJuIDo6Y29zaChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoK
 I2lmIF9HTElCQ1BQX0hBVkVfQ09TSEwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgY29zaChs
 b25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6Y29zaGwoX194KTsgfQojZWxzZQogIGlubGlu
 ZSBsb25nIGRvdWJsZSAKICBjb3NoKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpjb3No
 KHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6ZXhwOwoK
 I2lmIF9HTElCQ1BQX0hBVkVfRVhQRgogIGlubGluZSBmbG9hdCAKICBleHAoZmxvYXQgX194
 KSB7IHJldHVybiA6OmV4cGYoX194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCAKICBleHAo
 ZmxvYXQgX194KSB7IHJldHVybiA6OmV4cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9
 CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfRVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAK
 ICBleHAobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OmV4cGwoX194KTsgfQojZWxzZQog
 IGlubGluZSBsb25nIGRvdWJsZSAKICBleHAobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6
 OmV4cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OmZh
 YnM7CgogIGlubGluZSBmbG9hdAogIGZhYnMoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVp
 bHRpbl9mYWJzZihfX3gpOyB9CgogIGlubGluZSBsb25nIGRvdWJsZQogIGZhYnMobG9uZyBk
 b3VibGUgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9mYWJzbChfX3gpOyB9CgogIHVzaW5n
 IDo6Zmxvb3I7CgojaWYgX0dMSUJDUFBfSEFWRV9GTE9PUkYKICBpbmxpbmUgZmxvYXQgCiAg
 Zmxvb3IoZmxvYXQgX194KSB7IHJldHVybiA6OmZsb29yZihfX3gpOyB9CiNlbHNlCiAgaW5s
 aW5lIGZsb2F0IAogIGZsb29yKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmbG9vcihzdGF0aWNf
 Y2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfRkxPT1JM
 CiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGZsb29yKGxvbmcgZG91YmxlIF9feCkgeyByZXR1
 cm4gOjpmbG9vcmwoX194KTsgfQojZWxzZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBmbG9v
 cihsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6Zmxvb3Ioc3RhdGljX2Nhc3Q8ZG91Ymxl
 PihfX3gpKTsgfQojZW5kaWYKCiAgdXNpbmcgOjpmbW9kOwoKI2lmIF9HTElCQ1BQX0hBVkVf
 Rk1PREYKICBpbmxpbmUgZmxvYXQgCiAgZm1vZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyBy
 ZXR1cm4gOjpmbW9kZihfX3gsIF9feSk7IH0KI2Vsc2UKICBpbmxpbmUgZmxvYXQgCiAgZm1v
 ZChmbG9hdCBfX3gsIGZsb2F0IF9feSkKICB7IHJldHVybiA6OmZtb2Qoc3RhdGljX2Nhc3Q8
 ZG91YmxlPihfX3gpLCBzdGF0aWNfY2FzdDxkb3VibGU+KF9feSkpOyB9CiNlbmRpZgoKI2lm
 IF9HTElCQ1BQX0hBVkVfRk1PREwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgZm1vZChsb25n
 IGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkgeyByZXR1cm4gOjpmbW9kbChfX3gsIF9f
 eSk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgZm1vZChsb25nIGRvdWJsZSBf
 X3gsIGxvbmcgZG91YmxlIF9feSkgCiAgeyByZXR1cm4gOjpmbW9kKHN0YXRpY19jYXN0PGRv
 dWJsZT4oX194KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3kpKTsgfQojZW5kaWYKCiAgdXNp
 bmcgOjpmcmV4cDsKCiNpZiBfR0xJQkNQUF9IQVZFX0ZSRVhQRgogIGlubGluZSBmbG9hdCAK
 ICBmcmV4cChmbG9hdCBfX3gsIGludCogX19leHApIHsgcmV0dXJuIDo6ZnJleHBmKF9feCwg
 X19leHApOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGZyZXhwKGZsb2F0IF9feCwgaW50
 KiBfX2V4cCkgeyByZXR1cm4gOjpmcmV4cChfX3gsIF9fZXhwKTsgfQojZW5kaWYKCiNpZiBf
 R0xJQkNQUF9IQVZFX0ZSRVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAKICBmcmV4cChsb25n
 IGRvdWJsZSBfX3gsIGludCogX19leHApIHsgcmV0dXJuIDo6ZnJleHBsKF9feCwgX19leHAp
 OyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGZyZXhwKGxvbmcgZG91YmxlIF9f
 eCwgaW50KiBfX2V4cCkgCiAgeyByZXR1cm4gOjpmcmV4cChzdGF0aWNfY2FzdDxkb3VibGU+
 KF9feCksIF9fZXhwKTsgfQojZW5kaWYKCiAgdXNpbmcgOjpsZGV4cDsKCiNpZiBfR0xJQkNQ
 UF9IQVZFX0xERVhQRgogIGlubGluZSBmbG9hdCAKICBsZGV4cChmbG9hdCBfX3gsIGludCBf
 X2V4cCkgeyByZXR1cm4gOjpsZGV4cGYoX194LCBfX2V4cCk7IH0KI2Vsc2UKICBpbmxpbmUg
 ZmxvYXQgCiAgbGRleHAoZmxvYXQgX194LCBpbnQgX19leHApCiAgeyByZXR1cm4gOjpsZGV4
 cChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksIF9fZXhwKTsgfQojZW5kaWYKCiNpZiBfR0xJ
 QkNQUF9IQVZFX0xERVhQTAogIGlubGluZSBsb25nIGRvdWJsZSAKICBsZGV4cChsb25nIGRv
 dWJsZSBfX3gsIGludCBfX2V4cCkgeyByZXR1cm4gOjpsZGV4cGwoX194LCBfX2V4cCk7IH0K
 I2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgbGRleHAobG9uZyBkb3VibGUgX194LCBp
 bnQgX19leHApIAogIHsgcmV0dXJuIDo6bGRleHAoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gp
 LCBfX2V4cCk7IH0KI2VuZGlmCgogIHVzaW5nIDo6bG9nOwoKI2lmIF9HTElCQ1BQX0hBVkVf
 TE9HRgogIGlubGluZSBmbG9hdCAKICBsb2coZmxvYXQgX194KSB7IHJldHVybiA6OmxvZ2Yo
 X194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCBsb2coZmxvYXQgX194KQogIHsgcmV0dXJu
 IDo6bG9nKHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSk7IH0KI2VuZGlmCgojaWYgX0dMSUJD
 UFBfSEFWRV9MT0dMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIGxvZyhsb25nIGRvdWJsZSBf
 X3gpIHsgcmV0dXJuIDo6bG9nbChfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91Ymxl
 IAogIGxvZyhsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6bG9nKHN0YXRpY19jYXN0PGRv
 dWJsZT4oX194KSk7IH0KI2VuZGlmCgogIHVzaW5nIDo6bG9nMTA7CgojaWYgX0dMSUJDUFBf
 SEFWRV9MT0cxMEYKICBpbmxpbmUgZmxvYXQgCiAgbG9nMTAoZmxvYXQgX194KSB7IHJldHVy
 biA6OmxvZzEwZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIGxvZzEwKGZsb2F0
 IF9feCkgeyByZXR1cm4gOjpsb2cxMChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNl
 bmRpZgoKI2lmIF9HTElCQ1BQX0hBVkVfTE9HMTBMCiAgaW5saW5lIGxvbmcgZG91YmxlIAog
 IGxvZzEwKGxvbmcgZG91YmxlIF9feCkgeyByZXR1cm4gOjpsb2cxMGwoX194KTsgfQojZWxz
 ZQogIGlubGluZSBsb25nIGRvdWJsZSAKICBsb2cxMChsb25nIGRvdWJsZSBfX3gpIHsgcmV0
 dXJuIDo6bG9nMTAoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5kaWYKCiAgdXNp
 bmcgOjptb2RmOwoKI2lmIF9HTElCQ1BQX0hBVkVfTU9ERkYKICBpbmxpbmUgZmxvYXQgCiAg
 bW9kZihmbG9hdCBfX3gsIGZsb2F0KiBfX2lwdHIpIHsgcmV0dXJuIDo6bW9kZmYoX194LCBf
 X2lwdHIpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIG1vZGYoZmxvYXQgX194LCBmbG9h
 dCogX19pcHRyKQogIHsKICAgIGRvdWJsZSBfX3RtcDsKICAgIGRvdWJsZSBfX3JlcyA9IDo6
 bW9kZihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksICZfX3RtcCk7CiAgICAqX19pcHRyID0g
 c3RhdGljX2Nhc3Q8ZmxvYXQ+KF9fdG1wKTsKICAgIHJldHVybiBfX3JlczsKICB9CiNlbmRp
 ZgoKI2lmIF9HTElCQ1BQX0hBVkVfTU9ERkwKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgbW9k
 Zihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlKiBfX2lwdHIpIHsgcmV0dXJuIDo6bW9k
 ZmwoX194LCBfX2lwdHIpOyB9CiNlbHNlCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIG1vZGYo
 bG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSogX19pcHRyKSAKICB7IAogICAgZG91Ymxl
 IF9fdG1wOwogICAgZG91YmxlIF9fcmVzID0gOjptb2RmKHN0YXRpY19jYXN0PGRvdWJsZT4o
 X194KSwgJl9fdG1wKTsKICAgICogX19pcHRyID0gc3RhdGljX2Nhc3Q8bG9uZyBkb3VibGU+
 KF9fdG1wKTsKICAgIHJldHVybiBfX3JlczsKICB9CiNlbmRpZgoKICB0ZW1wbGF0ZTx0eXBl
 bmFtZSBfVHA+CiAgICBpbmxpbmUgX1RwCiAgICBfX3Bvd19oZWxwZXIoX1RwIF9feCwgaW50
 IF9fbikKICAgIHsKICAgICAgcmV0dXJuIF9fbiA8IDAKICAgICAgICA/IF9UcCgxKS9fX2Nt
 YXRoX3Bvd2VyKF9feCwgLV9fbikKICAgICAgICA6IF9fY21hdGhfcG93ZXIoX194LCBfX24p
 OwogICAgfQoKICB1c2luZyA6OnBvdzsKCiNpZiBfR0xJQkNQUF9IQVZFX1BPV0YKICBpbmxp
 bmUgZmxvYXQgCiAgcG93KGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiA6OnBvd2Yo
 X194LCBfX3kpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIHBvdyhmbG9hdCBfX3gsIGZs
 b2F0IF9feSkKICB7IHJldHVybiA6OnBvdyhzdGF0aWNfY2FzdDxkb3VibGU+KF9feCksIHN0
 YXRpY19jYXN0PGRvdWJsZT4oX195KSk7IH0KI2VuZGlmCgojaWYgX0dMSUJDUFBfSEFWRV9Q
 T1dMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIHBvdyhsb25nIGRvdWJsZSBfX3gsIGxvbmcg
 ZG91YmxlIF9feSkgeyByZXR1cm4gOjpwb3dsKF9feCwgX195KTsgfQojZWxzZQogIGlubGlu
 ZSBsb25nIGRvdWJsZSAKICBwb3cobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kp
 IAogIHsgcmV0dXJuIDo6cG93KHN0YXRpY19jYXN0PGRvdWJsZT4oX194KSwgc3RhdGljX2Nh
 c3Q8ZG91YmxlPihfX3kpKTsgfQojZW5kaWYKCiAgaW5saW5lIGRvdWJsZSAKICBwb3coZG91
 YmxlIF9feCwgaW50IF9faSkKICB7IHJldHVybiBfX3Bvd19oZWxwZXIoX194LCBfX2kpOyB9
 CgogIGlubGluZSBmbG9hdCAKICBwb3coZmxvYXQgX194LCBpbnQgX19uKQogIHsgcmV0dXJu
 IF9fcG93X2hlbHBlcihfX3gsIF9fbik7IH0KCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIHBv
 dyhsb25nIGRvdWJsZSBfX3gsIGludCBfX24pCiAgeyByZXR1cm4gX19wb3dfaGVscGVyKF9f
 eCwgX19uKTsgfQoKICB1c2luZyA6OnNpbjsKCiAgaW5saW5lIGZsb2F0CiAgc2luKGZsb2F0
 IF9feCkKICB7IHJldHVybiBfX2J1aWx0aW5fc2luZihfX3gpOyB9CgogIGlubGluZSBsb25n
 IGRvdWJsZQogIHNpbihsb25nIGRvdWJsZSBfX3gpCiAgeyByZXR1cm4gX19idWlsdGluX3Np
 bmwoX194KTsgfQoKICB1c2luZyA6OnNpbmg7CgojaWYgX0dMSUJDUFBfSEFWRV9TSU5IRgog
 IGlubGluZSBmbG9hdCAKICBzaW5oKGZsb2F0IF9feCkgeyByZXR1cm4gOjpzaW5oZihfX3gp
 OyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIHNpbmgoZmxvYXQgX194KSB7IHJldHVybiA6
 OnNpbmgoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gpKTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQ
 UF9IQVZFX1NJTkhMCiAgaW5saW5lIGxvbmcgZG91YmxlIAogIHNpbmgobG9uZyBkb3VibGUg
 X194KSB7IHJldHVybiA6OnNpbmhsKF9feCk7IH0KI2Vsc2UKICBpbmxpbmUgbG9uZyBkb3Vi
 bGUgCiAgc2luaChsb25nIGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6c2luaChzdGF0aWNfY2Fz
 dDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OnNxcnQ7CgogIGlubGluZSBm
 bG9hdAogIHNxcnQoZmxvYXQgX194KQogIHsgcmV0dXJuIF9fYnVpbHRpbl9zcXJ0ZihfX3gp
 OyB9CgogIGlubGluZSBsb25nIGRvdWJsZQogIHNxcnQobG9uZyBkb3VibGUgX194KQogIHsg
 cmV0dXJuIF9fYnVpbHRpbl9zcXJ0bChfX3gpOyB9CgogIHVzaW5nIDo6dGFuOwoKI2lmIF9H
 TElCQ1BQX0hBVkVfVEFORgogIGlubGluZSBmbG9hdCAKICB0YW4oZmxvYXQgX194KSB7IHJl
 dHVybiA6OnRhbmYoX194KTsgfQojZWxzZQogIGlubGluZSBmbG9hdCAKICB0YW4oZmxvYXQg
 X194KSB7IHJldHVybiA6OnRhbihzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRp
 ZgoKI2lmIF9HTElCQ1BQX0hBVkVfVEFOTAogIGlubGluZSBsb25nIGRvdWJsZSAKICB0YW4o
 bG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OnRhbmwoX194KTsgfQojZWxzZQogIGlubGlu
 ZSBsb25nIGRvdWJsZSAKICB0YW4obG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OnRhbihz
 dGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgoKICB1c2luZyA6OnRhbmg7Cgoj
 aWYgX0dMSUJDUFBfSEFWRV9UQU5IRgogIGlubGluZSBmbG9hdCAKICB0YW5oKGZsb2F0IF9f
 eCkgeyByZXR1cm4gOjp0YW5oZihfX3gpOyB9CiNlbHNlCiAgaW5saW5lIGZsb2F0IAogIHRh
 bmgoZmxvYXQgX194KSB7IHJldHVybiA6OnRhbmgoc3RhdGljX2Nhc3Q8ZG91YmxlPihfX3gp
 KTsgfQojZW5kaWYKCiNpZiBfR0xJQkNQUF9IQVZFX1RBTkhMCiAgaW5saW5lIGxvbmcgZG91
 YmxlIAogIHRhbmgobG9uZyBkb3VibGUgX194KSB7IHJldHVybiA6OnRhbmhsKF9feCk7IH0K
 I2Vsc2UKICBpbmxpbmUgbG9uZyBkb3VibGUgCiAgdGFuaChsb25nIGRvdWJsZSBfX3gpIHsg
 cmV0dXJuIDo6dGFuaChzdGF0aWNfY2FzdDxkb3VibGU+KF9feCkpOyB9CiNlbmRpZgp9IAoK
 CiNpZiBfR0xJQkNQUF9VU0VfQzk5Ci8vIFRoZXNlIGFyZSBwb3NzaWJsZSBtYWNyb3MgaW1w
 b3J0ZWQgZnJvbSBDOTktbGFuZC4gRm9yIHN0cmljdAovLyBjb25mb3JtYW5jZSwgcmVtb3Zl
 IHBvc3NpYmxlIEM5OS1pbmplY3RlZCBuYW1lcyBmcm9tIHRoZSBnbG9iYWwKLy8gbmFtZXNw
 YWNlLCBhbmQgc2VxdWVzdGVyIHRoZW0gaW4gdGhlIF9fZ251X2N4eCBleHRlbnNpb24gbmFt
 ZXNwYWNlLiAKbmFtZXNwYWNlIF9fZ251X2N4eAp7CiAgdGVtcGxhdGU8dHlwZW5hbWUgX1Rw
 PgogICAgaW50IAogICAgX19jYXB0dXJlX2ZwY2xhc3NpZnkoX1RwIF9fZikgeyByZXR1cm4g
 ZnBjbGFzc2lmeShfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAK
 ICAgIF9fY2FwdHVyZV9pc2Zpbml0ZShfVHAgX19mKSB7IHJldHVybiBpc2Zpbml0ZShfX2Yp
 OyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIF9fY2FwdHVyZV9p
 c2luZihfVHAgX19mKSB7IHJldHVybiBpc2luZihfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVu
 YW1lIF9UcD4KICAgIGludCAKICAgIF9fY2FwdHVyZV9pc25hbihfVHAgX19mKSB7IHJldHVy
 biBpc25hbihfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAg
 IF9fY2FwdHVyZV9pc25vcm1hbChfVHAgX19mKSB7IHJldHVybiBpc25vcm1hbChfX2YpOyB9
 CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIF9fY2FwdHVyZV9zaWdu
 Yml0KF9UcCBfX2YpIHsgcmV0dXJuIHNpZ25iaXQoX19mKTsgfQoKICB0ZW1wbGF0ZTx0eXBl
 bmFtZSBfVHA+CiAgICBpbnQgCiAgICBfX2NhcHR1cmVfaXNncmVhdGVyKF9UcCBfX2YxLCBf
 VHAgX19mMikKICAgIHsgcmV0dXJuIGlzZ3JlYXRlcihfX2YxLCBfX2YyKTsgfQoKICB0ZW1w
 bGF0ZTx0eXBlbmFtZSBfVHA+CiAgICAgaW50IAogICAgIF9fY2FwdHVyZV9pc2dyZWF0ZXJl
 cXVhbChfVHAgX19mMSwgX1RwIF9fZjIpIAogICAgIHsgcmV0dXJuIGlzZ3JlYXRlcmVxdWFs
 KF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgICBpbnQgCiAg
 ICAgX19jYXB0dXJlX2lzbGVzcyhfVHAgX19mMSwgX1RwIF9fZjIpIHsgcmV0dXJuIGlzbGVz
 cyhfX2YxLCBfX2YyKTsgfQoKICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICAgaW50IAog
 ICAgIF9fY2FwdHVyZV9pc2xlc3NlcXVhbChfVHAgX19mMSwgX1RwIF9fZjIpIAogICAgIHsg
 cmV0dXJuIGlzbGVzc2VxdWFsKF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1l
 IF9UcD4KICAgICBpbnQgCiAgICAgX19jYXB0dXJlX2lzbGVzc2dyZWF0ZXIoX1RwIF9fZjEs
 IF9UcCBfX2YyKSAKICAgICB7IHJldHVybiBpc2xlc3NncmVhdGVyKF9fZjEsIF9fZjIpOyB9
 CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgICBpbnQgCiAgICAgX19jYXB0dXJlX2lz
 dW5vcmRlcmVkKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICAgeyByZXR1cm4gaXN1bm9yZGVy
 ZWQoX19mMSwgX19mMik7IH0KfSAKI2VuZGlmCgojdW5kZWYgZnBjbGFzc2lmeQojdW5kZWYg
 aXNmaW5pdGUKI3VuZGVmIGlzaW5mCiN1bmRlZiBpc25hbgojdW5kZWYgaXNub3JtYWwKI3Vu
 ZGVmIHNpZ25iaXQKI3VuZGVmIGlzZ3JlYXRlcgojdW5kZWYgaXNncmVhdGVyZXF1YWwKI3Vu
 ZGVmIGlzbGVzcwojdW5kZWYgaXNsZXNzZXF1YWwKI3VuZGVmIGlzbGVzc2dyZWF0ZXIKI3Vu
 ZGVmIGlzdW5vcmRlcmVkCgojaWYgX0dMSUJDUFBfVVNFX0M5OQpuYW1lc3BhY2UgX19nbnVf
 Y3h4CnsKICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICBpbnQKICAgIGZwY2xhc3NpZnko
 X1RwIF9fZikgeyByZXR1cm4gX19jYXB0dXJlX2ZwY2xhc3NpZnkoX19mKTsgfQoKICB0ZW1w
 bGF0ZTx0eXBlbmFtZSBfVHA+CiAgICBpbnQKICAgIGlzZmluaXRlKF9UcCBfX2YpIHsgcmV0
 dXJuIF9fY2FwdHVyZV9pc2Zpbml0ZShfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9U
 cD4KICAgIGludCAKICAgIGlzaW5mKF9UcCBfX2YpIHsgcmV0dXJuIF9fY2FwdHVyZV9pc2lu
 ZihfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlzbmFu
 KF9UcCBfX2YpIHsgcmV0dXJuIF9fY2FwdHVyZV9pc25hbihfX2YpOyB9CgogIHRlbXBsYXRl
 PHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlzbm9ybWFsKF9UcCBfX2YpIHsgcmV0dXJu
 IF9fY2FwdHVyZV9pc25vcm1hbChfX2YpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4K
 ICAgIGludCAKICAgIHNpZ25iaXQoX1RwIF9fZikgeyByZXR1cm4gX19jYXB0dXJlX3NpZ25i
 aXQoX19mKTsgfQoKICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+CiAgICBpbnQgCiAgICBpc2dy
 ZWF0ZXIoX1RwIF9fZjEsIF9UcCBfX2YyKSB7IHJldHVybiBfX2NhcHR1cmVfaXNncmVhdGVy
 KF9fZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAg
 IGlzZ3JlYXRlcmVxdWFsKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICB7IHJldHVybiBfX2Nh
 cHR1cmVfaXNncmVhdGVyZXF1YWwoX19mMSwgX19mMik7IH0KCiAgdGVtcGxhdGU8dHlwZW5h
 bWUgX1RwPgogICAgaW50IAogICAgaXNsZXNzKF9UcCBfX2YxLCBfVHAgX19mMikgeyByZXR1
 cm4gX19jYXB0dXJlX2lzbGVzcyhfX2YxLCBfX2YyKTsgfQoKICB0ZW1wbGF0ZTx0eXBlbmFt
 ZSBfVHA+CiAgICBpbnQgCiAgICBpc2xlc3NlcXVhbChfVHAgX19mMSwgX1RwIF9fZjIpIAog
 ICAgeyByZXR1cm4gX19jYXB0dXJlX2lzbGVzc2VxdWFsKF9fZjEsIF9fZjIpOyB9CgogIHRl
 bXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlzbGVzc2dyZWF0ZXIoX1RwIF9f
 ZjEsIF9UcCBfX2YyKSAKICAgIHsgcmV0dXJuIF9fY2FwdHVyZV9pc2xlc3NncmVhdGVyKF9f
 ZjEsIF9fZjIpOyB9CgogIHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4KICAgIGludCAKICAgIGlz
 dW5vcmRlcmVkKF9UcCBfX2YxLCBfVHAgX19mMikgCiAgICB7IHJldHVybiBfX2NhcHR1cmVf
 aXN1bm9yZGVyZWQoX19mMSwgX19mMik7IH0KfQoKbmFtZXNwYWNlIHN0ZAp7CiAgdXNpbmcg
 X19nbnVfY3h4OjpmcGNsYXNzaWZ5OwogIHVzaW5nIF9fZ251X2N4eDo6aXNmaW5pdGU7CiAg
 dXNpbmcgX19nbnVfY3h4Ojppc2luZjsKICB1c2luZyBfX2dudV9jeHg6OmlzbmFuOwogIHVz
 aW5nIF9fZ251X2N4eDo6aXNub3JtYWw7CiAgdXNpbmcgX19nbnVfY3h4OjpzaWduYml0Owog
 IHVzaW5nIF9fZ251X2N4eDo6aXNncmVhdGVyOwogIHVzaW5nIF9fZ251X2N4eDo6aXNncmVh
 dGVyZXF1YWw7CiAgdXNpbmcgX19nbnVfY3h4Ojppc2xlc3M7CiAgdXNpbmcgX19nbnVfY3h4
 Ojppc2xlc3NlcXVhbDsKICB1c2luZyBfX2dudV9jeHg6OmlzbGVzc2dyZWF0ZXI7CiAgdXNp
 bmcgX19nbnVfY3h4Ojppc3Vub3JkZXJlZDsKfQojZW5kaWYKICAKI2lmZGVmIF9HTElCQ1BQ
 X05PX1RFTVBMQVRFX0VYUE9SVAojICBkZWZpbmUgZXhwb3J0CiMgIGluY2x1ZGUgPGJpdHMv
 Y21hdGgudGNjPgojZW5kaWYKCiNlbmRpZgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL2luY2x1ZGUv
 ZysrLXYzL2k2ODYtcGMtbGludXgtZ251LwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDA0MDc3NQAwMDAzMzA1ADAw
 MTE2MzcAMDAwMDAwMDAwMDAAMDc1NjQ1MDA2MzIAMDE1NDM1ACA1AAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAC4vaW5jbHVkZS9nKystdjMvaTY4Ni1wYy1saW51eC1nbnUvYml0
 cy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAwMDQwNzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMDYz
 MgAwMTYzNzYAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9pbmNsdWRlL2cr
 Ky12My9pNjg2LXBjLWxpbnV4LWdudS9iaXRzL2MrK2NvbmZpZy5oAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDEx
 NjM3ADAwMDAwMTAxMDMwADA3NDczMDQyNjcwADAyMDI3NQAgMAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAvLyBQcmVkZWZpbmVkIHN5bWJvbHMgYW5kIG1hY3JvcyAtKi0gQysr
 IC0qLQoKLy8gQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgovLwovLyBUaGlzIGZpbGUgaXMgcGFydCBv
 ZiB0aGUgR05VIElTTyBDKysgTGlicmFyeS4gIFRoaXMgbGlicmFyeSBpcyBmcmVlCi8vIHNv
 ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVy
 IHRoZQovLyB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi
 bGlzaGVkIGJ5IHRoZQovLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz
 aW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLy8gYW55IGxhdGVyIHZlcnNpb24uCgovLyBU
 aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
 IHVzZWZ1bCwKLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
 IGltcGxpZWQgd2FycmFudHkgb2YKLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
 IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQovLyBHTlUgR2VuZXJhbCBQdWJsaWMg
 TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
 IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKLy8gd2l0
 aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSB0
 byB0aGUgRnJlZQovLyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1OSBUZW1wbGUgUGxhY2UgLSBT
 dWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywKLy8gVVNBLgoKLy8gQXMgYSBzcGVj
 aWFsIGV4Y2VwdGlvbiwgeW91IG1heSB1c2UgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBmcmVl
 IHNvZnR3YXJlCi8vIGxpYnJhcnkgd2l0aG91dCByZXN0cmljdGlvbi4gIFNwZWNpZmljYWxs
 eSwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUKLy8gdGVtcGxhdGVzIG9yIHVzZSBtYWNy
 b3Mgb3IgaW5saW5lIGZ1bmN0aW9ucyBmcm9tIHRoaXMgZmlsZSwgb3IgeW91IGNvbXBpbGUK
 Ly8gdGhpcyBmaWxlIGFuZCBsaW5rIGl0IHdpdGggb3RoZXIgZmlsZXMgdG8gcHJvZHVjZSBh
 biBleGVjdXRhYmxlLCB0aGlzCi8vIGZpbGUgZG9lcyBub3QgYnkgaXRzZWxmIGNhdXNlIHRo
 ZSByZXN1bHRpbmcgZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5Ci8vIHRoZSBHTlUgR2Vu
 ZXJhbCBQdWJsaWMgTGljZW5zZS4gIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IGhvd2V2ZXIK
 Ly8gaW52YWxpZGF0ZSBhbnkgb3RoZXIgcmVhc29ucyB3aHkgdGhlIGV4ZWN1dGFibGUgZmls
 ZSBtaWdodCBiZSBjb3ZlcmVkIGJ5Ci8vIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z
 ZS4KCiNpZm5kZWYgX0NQUF9DUFBDT05GSUcKI2RlZmluZSBfQ1BQX0NQUENPTkZJRyAxCgov
 LyBQaWNrIHVwIGFueSBPUy1zcGVjaWZpYyBkZWZpbml0aW9ucy4KI2luY2x1ZGUgPGJpdHMv
 b3NfZGVmaW5lcy5oPgoKLy8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgQysrIGxpYnJh
 cnkgaW4gY29tcHJlc3NlZCBJU08gZGF0ZSBmb3JtYXQuCiNkZWZpbmUgX19HTElCQ1BQX18g
 MjAwMjA1MTQKCi8vIFRoaXMgaXMgbmVjZXNzYXJ5IHVudGlsIEdDQyBzdXBwb3J0cyBzZXBh
 cmF0ZSB0ZW1wbGF0ZQovLyBjb21waWxhdGlvbi4gIAojZGVmaW5lIF9HTElCQ1BQX05PX1RF
 TVBMQVRFX0VYUE9SVCAxCgovLyBUaGlzIGlzIGEgaGFjayBhcm91bmQgbm90IGhhdmluZyBl
 aXRoZXIgcHJlLWNvbXBpbGVkIGhlYWRlcnMgb3IKLy8gZXhwb3J0IGNvbXBpbGF0aW9uLiBJ
 ZiBkZWZpbmVkLCB0aGUgaW8sIHN0cmluZywgYW5kIHZhbGFycmF5Ci8vIGhlYWRlcnMgd2ls
 bCBpbmNsdWRlIGFsbCB0aGUgbmVjZXNzYXJ5IGJpdHMuIElmIG5vdCBkZWZpbmVkLCB0aGUK
 Ly8gaW1wbGVtZW50YXRpb24gb3B0aW1pemVzIHRoZSBoZWFkZXJzIGZvciB0aGUgbW9zdCBj
 b21tb25seS11c2VkCi8vIHR5cGVzLiBGb3IgdGhlIGlvIGxpYnJhcnksIHRoaXMgbWVhbnMg
 dGhhdCBsYXJnZXIsIG91dC1vZi1saW5lCi8vIG1lbWJlciBmdW5jdGlvbnMgYXJlIG9ubHkg
 ZGVjbGFyZWQsIGFuZCBkZWZpbml0aW9ucyBhcmUgbm90IHBhcnNlZAovLyBieSB0aGUgY29t
 cGlsZXIsIGJ1dCBpbnN0ZWFkIGluc3RhbnRpYXRlZCBpbnRvIHRoZSBsaWJyYXJ5IGJpbmFy
 eS4KI2RlZmluZSBfR0xJQkNQUF9GVUxMWV9DT01QTElBTlRfSEVBREVSUyAxCgovLyBUbyBl
 bmFibGUgb2xkZXIsIEFSTS1zdHlsZSBpb3N0cmVhbXMgYW5kIG90aGVyIGFuYWNocm9uaXNt
 cyB1c2UgdGhpcy4KLy8jZGVmaW5lIF9HTElCQ1BQX0RFUFJFQ0FURUQgMQoKLy8gVXNlIGNv
 cnJlY3RlZCBjb2RlIGZyb20gdGhlIGNvbW1pdHRlZSBsaWJyYXJ5IGdyb3VwJ3MgaXNzdWVz
 IGxpc3QuCiNkZWZpbmUgX0dMSUJDUFBfUkVTT0xWRV9MSUJfREVGRUNUUyAxCgovLyBJbiB0
 aG9zZSBwYXJ0cyBvZiB0aGUgc3RhbmRhcmQgQysrIGxpYnJhcnkgdGhhdCB1c2UgYSBtdXRl
 eCBpbnN0ZWFkCi8vIG9mIGEgc3Bpbi1sb2NrLCB3ZSBub3cgdW5jb25kaXRpb25hbGx5IHVz
 ZSBHQ0MncyBndGhyLmggbXV0ZXgKLy8gYWJzdHJhY3Rpb24gbGF5ZXIuICBBbGwgc3VwcG9y
 dCB0byBkaXJlY3RseSBtYXAgdG8gdmFyaW91cwovLyB0aHJlYWRpbmcgbW9kZWxzIGhhcyBi
 ZWVuIHJlbW92ZWQuICBOb3RlOiBndGhyLmggbWF5IHdlbGwgbWFwIHRvCi8vIGd0aHItc2lu
 Z2xlLmggd2hpY2ggaXMgYSBjb3JyZWN0IHdheSB0byBleHByZXNzIG5vIHRocmVhZHMgc3Vw
 cG9ydAovLyBpbiBnY2MuICBTdXBwb3J0IGZvciB0aGUgdW5kb2N1bWVudGVkIF9OT1RIUkVB
 RFMgaGFzIGJlZW4gcmVtb3ZlZC4KCi8vIERlZmF1bHQgdG8gdGhlIHR5cGljYWxseSBoaWdo
 LXNwZWVkLCBwb29sLWJhc2VkIGFsbG9jYXRvciAoYXMKLy8gbGlic3RkYysrLXYyKSBpbnN0
 ZWFkIG9mIHRoZSBtYWxsb2MtYmFzZWQgYWxsb2NhdG9yIChsaWJzdGRjKystdjMKLy8gc25h
 cHNob3RzKS4gIFNlZSBsaWJzdGRjKystdjMvZG9jcy9odG1sLzE3X2ludHJvL2hvd3RvLmh0
 bWwgZm9yCi8vIGRldGFpbHMgb24gd2h5IHlvdSBkb24ndCB3YW50IHRvIG92ZXJyaWRlIHRo
 aXMgc2V0dGluZy4gIEVuc3VyZQovLyB0aGF0IHRocmVhZHMgYXJlIHByb3Blcmx5IGNvbmZp
 Z3VyZWQgb24geW91ciBwbGF0Zm9ybSBiZWZvcmUKLy8gYXNzaWduaW5nIGJsYW1lIHRvIHRo
 ZSBTVEwgY29udGFpbmVyLW1lbW9yeSBhbGxvY2F0b3IuICBBZnRlciBkb2luZwovLyBzbywg
 cGxlYXNlIHJlcG9ydCBhbnkgcG9zc2libGUgaXNzdWVzIHRvIGxpYnN0ZGMrK0BnY2MuZ251
 Lm9yZyAuCi8vIERvIG5vdCBibGluZGx5ICNkZWZpbmUgX19VU0VfTUFMTE9DIGhlcmUgb3Ig
 b24gdGhlIGNvbW1hbmQgbGluZS4KCi8vIFRoZSByZW1haW5kZXIgb2YgdGhlIHByZXdyaXR0
 ZW4gY29uZmlnIGlzIG1vc3RseSBhdXRvbWF0aWM7IGFsbCB0aGUKLy8gdXNlciBob29rcyBh
 cmUgbGlzdGVkIGFib3ZlLgoKLy8gRW5kIG9mIHByZXdyaXR0ZW4gY29uZmlnOyB0aGUgZGlz
 Y292ZXJlZCBzZXR0aW5ncyBmb2xsb3cuCi8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGF1dG9t
 YXRpY2FsbHkgYnkgY29uZmlndXJlLiAgKi8KLyogY29uZmlnLmguaW4uICBHZW5lcmF0ZWQg
 YXV0b21hdGljYWxseSBmcm9tIGNvbmZpZ3VyZS5pbiBieSBhdXRvaGVhZGVyLiAgKi8KCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSBhIHdvcmtpbmcgYG1tYXAnIHN5c3RlbSBjYWxsLiAgKi8K
 I2RlZmluZSBfR0xJQkNQUF9IQVZFX01NQVAgMQoKLy8gRGVmaW5lIGlmIEdDQyBzdXBwb3J0
 cyB3ZWFrIHN5bWJvbHMuCiNkZWZpbmUgX0dMSUJDUFBfU1VQUE9SVFNfV0VBSyBfX0dYWF9X
 RUFLX18KCi8vIERlZmluZSBpZiBndGhyLWRlZmF1bHQuaCBleGlzdHMgKG1lYW5pbmcgdGhh
 dCB0aHJlYWRpbmcgc3VwcG9ydCBpcyBlbmFibGVkKS4KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X0dUSFJfREVGQVVMVCAxCgovLyBJbmNsdWRlIEkvTyBzdXBwb3J0IGZvciAnbG9uZyBsb25n
 JyBhbmQgJ3Vuc2lnbmVkIGxvbmcgbG9uZycuCiNkZWZpbmUgX0dMSUJDUFBfVVNFX0xPTkdf
 TE9ORyAxCgovLyBEZWZpbmUgaWYgQzk5IGZlYXR1cmVzIHN1Y2ggYXMgbGxkaXZfdCwgbGxh
 YnMsIGxsZGl2IHNob3VsZCBiZSBleHBvc2VkLgojZGVmaW5lIF9HTElCQ1BQX1VTRV9DOTkg
 MQoKLy8gRGVmaW5lIGlmIGNvZGUgc3BlY2lhbGl6ZWQgZm9yIHdjaGFyX3Qgc2hvdWxkIGJl
 IHVzZWQuCi8qICN1bmRlZiBfR0xJQkNQUF9VU0VfV0NIQVJfVCAqLwoKLy8gRGVmaW5lIGlm
 IHVzaW5nIHNldHJsaW1pdCB0byBsaW1pdCBtZW1vcnkgdXNhZ2UgZHVyaW5nICdtYWtlIGNo
 ZWNrJy4KI2RlZmluZSBfR0xJQkNQUF9NRU1fTElNSVRTIDEKCi8vIERlZmluZSB0byB1c2Ug
 Y29uY2VwdCBjaGVja2luZyBjb2RlIGZyb20gdGhlIGJvb3N0IGxpYnJhcmllcy4KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0NPTkNFUFRfQ0hFQ0tTICovCgovLyBEZWZpbmUgaWYgbWJzdGF0ZV90
 IGV4aXN0cyBpbiB3Y2hhci5oLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTUJTVEFURV9UIDEK
 Ci8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbW9kZmYgZnVuY3Rpb24uCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9NT0RGRiAxCgovLyBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIG1vZGZsIGZ1
 bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTU9ERkwgMQoKLy8gRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBleHBmIGZ1bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfRVhQRiAx
 CgovLyBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGV4cGwgZnVuY3Rpb24uCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9FWFBMIDEKCi8vIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaHlwb3RmIGZ1
 bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfSFlQT1RGIDEKCi8vIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgaHlwb3RsIGZ1bmN0aW9uLgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfSFlQ
 T1RMIDEKCi8vIERlZmluZSBpZiB0aGUgY29tcGlsZXIvaG9zdCBjb21iaW5hdGlvbiBoYXMg
 X19idWlsdGluX2FicwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfX19CVUlMVElOX0FCUyAxCgov
 LyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24gaGFzIF9fYnVpbHRp
 bl9sYWJzCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fTEFCUyAxCgovLyBEZWZp
 bmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24gaGFzIF9fYnVpbHRpbl9jb3MK
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX19CVUlMVElOX0NPUyAqLwoKLy8gRGVmaW5lIGlm
 IHRoZSBjb21waWxlci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fY29zZgovKiAj
 dW5kZWYgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fQ09TRiAqLwoKLy8gRGVmaW5lIGlmIHRo
 ZSBjb21waWxlci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fY29zbAovKiAjdW5k
 ZWYgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fQ09TTCAqLwoKLy8gRGVmaW5lIGlmIHRoZSBj
 b21waWxlci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fZmFicwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfX19CVUlMVElOX0ZBQlMgMQoKLy8gRGVmaW5lIGlmIHRoZSBjb21waWxl
 ci9ob3N0IGNvbWJpbmF0aW9uIGhhcyBfX2J1aWx0aW5fZmFic2YKI2RlZmluZSBfR0xJQkNQ
 UF9IQVZFX19fQlVJTFRJTl9GQUJTRiAxCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hv
 c3QgY29tYmluYXRpb24gaGFzIF9fYnVpbHRpbl9mYWJzbAojZGVmaW5lIF9HTElCQ1BQX0hB
 VkVfX19CVUlMVElOX0ZBQlNMIDEKCi8vIERlZmluZSBpZiB0aGUgY29tcGlsZXIvaG9zdCBj
 b21iaW5hdGlvbiBoYXMgX19idWlsdGluX3NpbgovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9f
 X0JVSUxUSU5fU0lOICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmlu
 YXRpb24gaGFzIF9fYnVpbHRpbl9zaW5mCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJ
 TFRJTl9TSU5GICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRp
 b24gaGFzIF9fYnVpbHRpbl9zaW5sCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJTFRJ
 Tl9TSU5MICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24g
 aGFzIF9fYnVpbHRpbl9zcXJ0Ci8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJTFRJTl9T
 UVJUICovCgovLyBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyL2hvc3QgY29tYmluYXRpb24gaGFz
 IF9fYnVpbHRpbl9zcXJ0ZgovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fX0JVSUxUSU5fU1FS
 VEYgKi8KCi8vIERlZmluZSBpZiB0aGUgY29tcGlsZXIvaG9zdCBjb21iaW5hdGlvbiBoYXMg
 X19idWlsdGluX3NxcnRsCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19fQlVJTFRJTl9TUVJU
 TCAqLwoKLy8gRGVmaW5lIGlmIExDX01FU1NBR0VTIGlzIGF2YWlsYWJsZSBpbiA8bG9jYWxl
 Lmg+LgojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTENfTUVTU0FHRVMgMQoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSBfX3NpZ25iaXQgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfX19TSUdOQklUIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX19zaWduYml0
 ZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9fX1NJR05CSVRGIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX19zaWduYml0bCBmdW5jdGlvbi4gICovCiNkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9fX1NJR05CSVRMIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0
 aGUgX2Fjb3NmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0FDT1NG
 ICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9hY29zbCBmdW5jdGlvbi4gICovCi8q
 ICN1bmRlZiBfR0xJQkNQUF9IQVZFX19BQ09TTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfYXNpbmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQVNJ
 TkYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2FzaW5sIGZ1bmN0aW9uLiAgKi8K
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0FTSU5MICovCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIF9hdGFuMmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9f
 QVRBTjJGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9hdGFuMmwgZnVuY3Rpb24u
 ICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQVRBTjJMICovCgovKiBEZWZpbmUgaWYg
 eW91IGhhdmUgdGhlIF9hdGFuZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9I
 QVZFX19BVEFORiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfYXRhbmwgZnVuY3Rp
 b24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQVRBTkwgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX2NlaWxmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQ
 X0hBVkVfX0NFSUxGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9jZWlsbCBmdW5j
 dGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19DRUlMTCAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBfY29weXNpZ24gZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dM
 SUJDUFBfSEFWRV9fQ09QWVNJR04gKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Nv
 cHlzaWdubCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19DT1BZU0lH
 TkwgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Nvc2YgZnVuY3Rpb24uICAqLwov
 KiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQ09TRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfY29zaGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fQ09T
 SEYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Nvc2hsIGZ1bmN0aW9uLiAgKi8K
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0NPU0hMICovCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIF9jb3NsIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0NP
 U0wgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2V4cGYgZnVuY3Rpb24uICAqLwov
 KiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRVhQRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfZXhwbCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19FWFBM
 ICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9mYWJzZiBmdW5jdGlvbi4gICovCi8q
 ICN1bmRlZiBfR0xJQkNQUF9IQVZFX19GQUJTRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfZmFic2wgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRkFC
 U0wgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2Zpbml0ZSBmdW5jdGlvbi4gICov
 Ci8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19GSU5JVEUgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX2Zpbml0ZWYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFW
 RV9fRklOSVRFRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfZmluaXRlbCBmdW5j
 dGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19GSU5JVEVMICovCgovKiBEZWZp
 bmUgaWYgeW91IGhhdmUgdGhlIF9mbG9vcmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dM
 SUJDUFBfSEFWRV9fRkxPT1JGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9mbG9v
 cmwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRkxPT1JMICovCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9mbW9kZiBmdW5jdGlvbi4gICovCi8qICN1bmRl
 ZiBfR0xJQkNQUF9IQVZFX19GTU9ERiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBf
 Zm1vZGwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fRk1PREwgKi8K
 Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2ZwY2xhc3MgZnVuY3Rpb24uICAqLwovKiAj
 dW5kZWYgX0dMSUJDUFBfSEFWRV9fRlBDTEFTUyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfZnJleHBmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0ZS
 RVhQRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfZnJleHBsIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0ZSRVhQTCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBfaHlwb3QgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFW
 RV9fSFlQT1QgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2h5cG90ZiBmdW5jdGlv
 bi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19IWVBPVEYgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX2h5cG90bCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQ
 UF9IQVZFX19IWVBPVEwgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgX2lzaW5mIGZ1
 bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0lTSU5GICovCgovKiBEZWZp
 bmUgaWYgeW91IGhhdmUgdGhlIF9pc2luZmYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dM
 SUJDUFBfSEFWRV9fSVNJTkZGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9pc2lu
 ZmwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fSVNJTkZMICovCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9pc25hbiBmdW5jdGlvbi4gICovCi8qICN1bmRl
 ZiBfR0xJQkNQUF9IQVZFX19JU05BTiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBf
 aXNuYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0lTTkFORiAq
 LwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfaXNuYW5sIGZ1bmN0aW9uLiAgKi8KLyog
 I3VuZGVmIF9HTElCQ1BQX0hBVkVfX0lTTkFOTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSBfbGRleHBmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xE
 RVhQRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfbGRleHBsIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xERVhQTCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBfbG9nMTBmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hB
 VkVfX0xPRzEwRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfbG9nMTBsIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xPRzEwTCAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBfbG9nZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQ
 UF9IQVZFX19MT0dGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9sb2dsIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX0xPR0wgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX21vZGZmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQ
 X0hBVkVfX01PREZGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9tb2RmbCBmdW5j
 dGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19NT0RGTCAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBfcG93ZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQ
 UF9IQVZFX19QT1dGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9wb3dsIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX1BPV0wgKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgX3FmcGNsYXNzIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElC
 Q1BQX0hBVkVfX1FGUENMQVNTICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9zaW5j
 b3MgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU0lOQ09TICovCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9zaW5jb3NmIGZ1bmN0aW9uLiAgKi8KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0hBVkVfX1NJTkNPU0YgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0
 aGUgX3NpbmNvc2wgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU0lO
 Q09TTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfc2luZiBmdW5jdGlvbi4gICov
 Ci8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19TSU5GICovCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIF9zaW5oZiBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19T
 SU5IRiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfc2luaGwgZnVuY3Rpb24uICAq
 LwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU0lOSEwgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX3NpbmwgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9f
 U0lOTCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBfc3FydGYgZnVuY3Rpb24uICAq
 LwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9fU1FSVEYgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX3NxcnRsIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVf
 X1NRUlRMICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF90YW5mIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfX1RBTkYgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgX3RhbmhmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVf
 X1RBTkhGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF90YW5obCBmdW5jdGlvbi4g
 ICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX19UQU5ITCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBfdGFubCBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZF
 X19UQU5MICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGFjb3NmIGZ1bmN0aW9uLiAg
 Ki8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0FDT1NGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2
 ZSB0aGUgYWNvc2wgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQUNPU0wg
 MQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBhc2luZiBmdW5jdGlvbi4gICovCiNkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9BU0lORiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGFz
 aW5sIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0FTSU5MIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgYXRhbjJmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJ
 QkNQUF9IQVZFX0FUQU4yRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGF0YW4ybCBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9BVEFOMkwgMQoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBhdGFuZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBf
 SEFWRV9BVEFORiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGF0YW5sIGZ1bmN0aW9u
 LiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0FUQU5MIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgYnRvd2MgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQlRP
 V0MgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBjZWlsZiBmdW5jdGlvbi4gICovCiNk
 ZWZpbmUgX0dMSUJDUFBfSEFWRV9DRUlMRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhl
 IGNlaWxsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0NFSUxMIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY29weXNpZ24gZnVuY3Rpb24uICAqLwojZGVmaW5l
 IF9HTElCQ1BQX0hBVkVfQ09QWVNJR04gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBj
 b3B5c2lnbmYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09QWVNJR05G
 IDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY29weXNpZ25sIGZ1bmN0aW9uLiAgKi8K
 I2RlZmluZSBfR0xJQkNQUF9IQVZFX0NPUFlTSUdOTCAxCgovKiBEZWZpbmUgaWYgeW91IGhh
 dmUgdGhlIGNvc2YgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09TRiAx
 CgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGNvc2hmIGZ1bmN0aW9uLiAgKi8KI2RlZmlu
 ZSBfR0xJQkNQUF9IQVZFX0NPU0hGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgY29z
 aGwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09TSEwgMQoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSBjb3NsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQ
 UF9IQVZFX0NPU0wgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBkcmFuZDQ4IGZ1bmN0
 aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0RSQU5ENDggMQoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSBleHBmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X0VYUEYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBleHBsIGZ1bmN0aW9uLiAgKi8K
 I2RlZmluZSBfR0xJQkNQUF9IQVZFX0VYUEwgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo
 ZSBmYWJzZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GQUJTRiAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZhYnNsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBf
 R0xJQkNQUF9IQVZFX0ZBQlNMIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmdldHdj
 IGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRkdFVFdDICovCgovKiBE
 ZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZnZXR3cyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBf
 R0xJQkNQUF9IQVZFX0ZHRVRXUyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmaW5p
 dGUgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfRklOSVRFIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmluaXRlZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9GSU5JVEVGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmluaXRl
 bCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GSU5JVEVMIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgZmxvb3JmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJ
 QkNQUF9IQVZFX0ZMT09SRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZsb29ybCBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GTE9PUkwgMQoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBmbW9kZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBf
 SEFWRV9GTU9ERiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZtb2RsIGZ1bmN0aW9u
 LiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0ZNT0RMIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgZnBjbGFzcyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZF
 X0ZQQ0xBU1MgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZnB1dHdjIGZ1bmN0aW9u
 LiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRlBVVFdDICovCgovKiBEZWZpbmUgaWYg
 eW91IGhhdmUgdGhlIGZwdXR3cyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9I
 QVZFX0ZQVVRXUyAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmcmV4cGYgZnVuY3Rp
 b24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfRlJFWFBGIDEKCi8qIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgZnJleHBsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X0ZSRVhQTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZ3aWRlIGZ1bmN0aW9uLiAg
 Ki8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRldJREUgKi8KCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgZndwcmludGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFW
 RV9GV1BSSU5URiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBmd3NjYW5mIGZ1bmN0
 aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRldTQ0FORiAqLwoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBnZXRwYWdlc2l6ZSBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9HRVRQQUdFU0laRSAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdl
 dHdjIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfR0VUV0MgKi8KCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0d2NoYXIgZnVuY3Rpb24uICAqLwovKiAjdW5k
 ZWYgX0dMSUJDUFBfSEFWRV9HRVRXQ0hBUiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo
 ZSBoeXBvdCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9IWVBPVCAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGh5cG90ZiBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9IWVBPVEYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBoeXBv
 dGwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfSFlQT1RMIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgaWNvbnYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElC
 Q1BQX0hBVkVfSUNPTlYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBpY29udl9jbG9z
 ZSBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9JQ09OVl9DTE9TRSAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGljb252X29wZW4gZnVuY3Rpb24uICAqLwojZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfSUNPTlZfT1BFTiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIGlzaW5mIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0lTSU5GIDEK
 Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaXNpbmZmIGZ1bmN0aW9uLiAgKi8KI2RlZmlu
 ZSBfR0xJQkNQUF9IQVZFX0lTSU5GRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGlz
 aW5mbCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU0lORkwgMQoKLyog
 RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBpc25hbiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9JU05BTiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGlzbmFuZiBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU05BTkYgMQoKLyogRGVmaW5l
 IGlmIHlvdSBoYXZlIHRoZSBpc25hbmwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfSVNOQU5MIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbGRleHBmIGZ1bmN0
 aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0xERVhQRiAxCgovKiBEZWZpbmUgaWYg
 eW91IGhhdmUgdGhlIGxkZXhwbCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9MREVYUEwgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBsb2cxMGYgZnVuY3Rpb24u
 ICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HMTBGIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgbG9nMTBsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX0xP
 RzEwTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGxvZ2YgZnVuY3Rpb24uICAqLwoj
 ZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhl
 IGxvZ2wgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HTCAxCgovKiBE
 ZWZpbmUgaWYgeW91IGhhdmUgdGhlIG1icmxlbiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9NQlJMRU4gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtYnJ0b3dj
 IGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX01CUlRPV0MgMQoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSBtYnNpbml0IGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJ
 QkNQUF9IQVZFX01CU0lOSVQgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtYnNydG93
 Y3MgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTUJTUlRPV0NTIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbW9kZmYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfTU9ERkYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtb2RmbCBm
 dW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9NT0RGTCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIG5hbiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9OQU4gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBubF9sYW5naW5mbyBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9OTF9MQU5HSU5GTyAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHBvd2YgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hB
 VkVfUE9XRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHBvd2wgZnVuY3Rpb24uICAq
 LwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfUE9XTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIHB1dHdjIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfUFVUV0Mg
 Ki8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgcHV0d2NoYXIgZnVuY3Rpb24uICAqLwov
 KiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9QVVRXQ0hBUiAqLwoKLyogRGVmaW5lIGlmIHlvdSBo
 YXZlIHRoZSBxZnBjbGFzcyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZF
 X1FGUENMQVNTICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNldGVudiBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TRVRFTlYgMQoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSBzaW5jb3MgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 U0lOQ09TIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2luY29zZiBmdW5jdGlvbi4g
 ICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5DT1NGIDEKCi8qIERlZmluZSBpZiB5b3Ug
 aGF2ZSB0aGUgc2luY29zbCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9T
 SU5DT1NMIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc2luZiBmdW5jdGlvbi4gICov
 CiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5GIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0
 aGUgc2luaGYgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU0lOSEYgMQoK
 LyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzaW5obCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9TSU5ITCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNpbmwg
 ZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU0lOTCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHNxcnRmIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9I
 QVZFX1NRUlRGIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc3FydGwgZnVuY3Rpb24u
 ICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU1FSVEwgMQoKLyogRGVmaW5lIGlmIHlvdSBo
 YXZlIHRoZSBzdHJ0b2YgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfU1RS
 VE9GIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgc3RydG9sZCBmdW5jdGlvbi4gICov
 CiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TVFJUT0xEIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2
 ZSB0aGUgc3dwcmludGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9T
 V1BSSU5URiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzd3NjYW5mIGZ1bmN0aW9u
 LiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfU1dTQ0FORiAqLwoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSB0YW5mIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZF
 X1RBTkYgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB0YW5oZiBmdW5jdGlvbi4gICov
 CiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9UQU5IRiAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIHRhbmhsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkhMIDEK
 Ci8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdGFubCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9UQU5MIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdW5nZXR3
 YyBmdW5jdGlvbi4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1VOR0VUV0MgKi8KCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdmZ3cHJpbnRmIGZ1bmN0aW9uLiAgKi8KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0hBVkVfVkZXUFJJTlRGICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIHZmd3NjYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfVkZX
 U0NBTkYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdnN3cHJpbnRmIGZ1bmN0aW9u
 LiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfVlNXUFJJTlRGICovCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHZzd3NjYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElC
 Q1BQX0hBVkVfVlNXU0NBTkYgKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdndwcmlu
 dGYgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9WV1BSSU5URiAqLwoK
 LyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2d3NjYW5mIGZ1bmN0aW9uLiAgKi8KLyogI3Vu
 ZGVmIF9HTElCQ1BQX0hBVkVfVldTQ0FORiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRo
 ZSB3Y3J0b21iIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDUlRPTUIg
 MQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3NjYXQgZnVuY3Rpb24uICAqLwojZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfV0NTQ0FUIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUg
 d2NzY2hyIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU0NIUiAxCgov
 KiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc2NtcCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NDTVAgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3Nj
 b2xsIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU0NPTEwgMQoKLyog
 RGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3NjcHkgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfV0NTQ1BZIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzY3Nw
 biBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NDU1BOIDEKCi8qIERl
 ZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzZnRpbWUgZnVuY3Rpb24uICAqLwovKiAjdW5kZWYg
 X0dMSUJDUFBfSEFWRV9XQ1NGVElNRSAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3
 Y3NsZW4gZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NTTEVOIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzbmNhdCBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NOQ0FUIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2Nz
 bmNtcCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NOQ01QIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzbmNweSBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NOQ1BZIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2Nz
 cGJyayBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NQQlJLIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzcmNociBmdW5jdGlvbi4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9XQ1NSQ0hSIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2Nz
 cnRvbWJzIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU1JUT01CUyAx
 CgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc3NwbiBmdW5jdGlvbi4gICovCiNkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9XQ1NTUE4gMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3
 Y3NzdHIgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NTU1RSIDEKCi8q
 IERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzdG9kIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBf
 R0xJQkNQUF9IQVZFX1dDU1RPRCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc3Rv
 ZiBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XQ1NUT0YgMQoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3N0b2sgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElC
 Q1BQX0hBVkVfV0NTVE9LIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2NzdG9sIGZ1
 bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dDU1RPTCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHdjc3RvdWwgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfV0NTVE9VTCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHdjc3hmcm0gZnVu
 Y3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NTWEZSTSAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIHdjdG9iIGZ1bmN0aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9I
 QVZFX1dDVE9CIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd21lbWNociBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XTUVNQ0hSIDEKCi8qIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgd21lbWNtcCBmdW5jdGlvbi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9XTUVNQ01QIDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd21lbWNweSBmdW5jdGlv
 bi4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9XTUVNQ1BZIDEKCi8qIERlZmluZSBpZiB5
 b3UgaGF2ZSB0aGUgd21lbW1vdmUgZnVuY3Rpb24uICAqLwojZGVmaW5lIF9HTElCQ1BQX0hB
 VkVfV01FTU1PVkUgMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3bWVtc2V0IGZ1bmN0
 aW9uLiAgKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX1dNRU1TRVQgMQoKLyogRGVmaW5lIGlm
 IHlvdSBoYXZlIHRoZSB3cHJpbnRmIGZ1bmN0aW9uLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQ
 X0hBVkVfV1BSSU5URiAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3c2NhbmYgZnVu
 Y3Rpb24uICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9XU0NBTkYgKi8KCi8qIERlZmlu
 ZSBpZiB5b3UgaGF2ZSB0aGUgPGVuZGlhbi5oPiBoZWFkZXIgZmlsZS4gICovCiNkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9FTkRJQU5fSCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxm
 bG9hdC5oPiBoZWFkZXIgZmlsZS4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9GTE9BVF9I
 IDEKCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPGZwLmg+IGhlYWRlciBmaWxlLiAgKi8K
 LyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfRlBfSCAqLwoKLyogRGVmaW5lIGlmIHlvdSBoYXZl
 IHRoZSA8Z2NvbnYuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 R0NPTlZfSCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxpZWVlZnAuaD4gaGVhZGVy
 IGZpbGUuICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9JRUVFRlBfSCAqLwoKLyogRGVm
 aW5lIGlmIHlvdSBoYXZlIHRoZSA8aW50dHlwZXMuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfSU5UVFlQRVNfSCAxCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIDxsb2NhbGUuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 TE9DQUxFX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8bWFjaGluZS9lbmRpYW4u
 aD4gaGVhZGVyIGZpbGUuICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9NQUNISU5FX0VO
 RElBTl9IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxtYWNoaW5lL3BhcmFtLmg+
 IGhlYWRlciBmaWxlLiAgKi8KLyogI3VuZGVmIF9HTElCQ1BQX0hBVkVfTUFDSElORV9QQVJB
 TV9IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxuYW4uaD4gaGVhZGVyIGZpbGUu
 ICAqLwovKiAjdW5kZWYgX0dMSUJDUFBfSEFWRV9OQU5fSCAqLwoKLyogRGVmaW5lIGlmIHlv
 dSBoYXZlIHRoZSA8c3RkbGliLmg+IGhlYWRlciBmaWxlLiAgKi8KLyogI3VuZGVmIF9HTElC
 Q1BQX0hBVkVfU1RETElCX0ggKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9p
 c2FfZGVmcy5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1NZ
 U19JU0FfREVGU19IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvbWFjaGlu
 ZS5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1NZU19NQUNI
 SU5FX0ggKi8KCi8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9yZXNvdXJjZS5oPiBo
 ZWFkZXIgZmlsZS4gICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TWVNfUkVTT1VSQ0VfSCAx
 CgovKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4g
 ICovCi8qICN1bmRlZiBfR0xJQkNQUF9IQVZFX1NZU19TVEFUX0ggKi8KCi8qIERlZmluZSBp
 ZiB5b3UgaGF2ZSB0aGUgPHN5cy90eXBlcy5oPiBoZWFkZXIgZmlsZS4gICovCi8qICN1bmRl
 ZiBfR0xJQkNQUF9IQVZFX1NZU19UWVBFU19IICovCgovKiBEZWZpbmUgaWYgeW91IGhhdmUg
 dGhlIDx1bmlzdGQuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 VU5JU1REX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8d2NoYXIuaD4gaGVhZGVy
 IGZpbGUuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfV0NIQVJfSCAxCgovKiBEZWZpbmUg
 aWYgeW91IGhhdmUgdGhlIDx3Y3R5cGUuaD4gaGVhZGVyIGZpbGUuICAqLwojZGVmaW5lIF9H
 TElCQ1BQX0hBVkVfV0NUWVBFX0ggMQoKLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBtIGxp
 YnJhcnkgKC1sbSkuICAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTElCTSAxCgovKiBOYW1l
 IG9mIHBhY2thZ2UgKi8KI2RlZmluZSBfR0xJQkNQUF9QQUNLQUdFICJsaWJzdGRjKysiCgov
 KiBWZXJzaW9uIG51bWJlciBvZiBwYWNrYWdlICovCiNkZWZpbmUgX0dMSUJDUFBfVkVSU0lP
 TiAiMy4xLjAiCgovKiBEZWZpbmUgaWYgdGhlIGNvbXBpbGVyIGlzIGNvbmZpZ3VyZWQgZm9y
 IHNldGptcC9sb25nam1wIGV4Y2VwdGlvbnMuICovCi8qICN1bmRlZiBfR0xJQkNQUF9TSkxK
 X0VYQ0VQVElPTlMgKi8KCi8qIERlZmluZSBpZiBzaWdzZXRqbXAgaXMgYXZhaWxhYmxlLiAg
 ICovCiNkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSUdTRVRKTVAgMQoKLyogT25seSB1c2VkIGlu
 IGJ1aWxkIGRpcmVjdG9yeSB0ZXN0c3VpdGVfaG9va3MuaC4gKi8KI2RlZmluZSBfR0xJQkNQ
 UF9IQVZFX01FTUxJTUlUX0RBVEEgMQoKLyogT25seSB1c2VkIGluIGJ1aWxkIGRpcmVjdG9y
 eSB0ZXN0c3VpdGVfaG9va3MuaC4gKi8KI2RlZmluZSBfR0xJQkNQUF9IQVZFX01FTUxJTUlU
 X1JTUyAxCgovKiBPbmx5IHVzZWQgaW4gYnVpbGQgZGlyZWN0b3J5IHRlc3RzdWl0ZV9ob29r
 cy5oLiAqLwojZGVmaW5lIF9HTElCQ1BQX0hBVkVfTUVNTElNSVRfVk1FTSAwCgovKiBPbmx5
 IHVzZWQgaW4gYnVpbGQgZGlyZWN0b3J5IHRlc3RzdWl0ZV9ob29rcy5oLiAqLwojZGVmaW5l
 IF9HTElCQ1BQX0hBVkVfTUVNTElNSVRfQVMgMQoKLy8KLy8gU3lzdGVtcyB0aGF0IGhhdmUg
 Y2VydGFpbiBub24tc3RhbmRhcmQgZnVuY3Rpb25zIHByZWZpeGVkIHdpdGggYW4KLy8gdW5k
 ZXJzY29yZSwgd2UnbGwgaGFuZGxlIHRob3NlIGhlcmUuIE11c3QgY29tZSBhZnRlciBjb25m
 aWcuaC5pbi4KLy8KI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0lTTkFOKSAmJiAhIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfSVNOQU4pCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfSVNO
 QU4gMQojIGRlZmluZSBpc25hbiBfaXNuYW4KI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJD
 UFBfSEFWRV9fSVNOQU5GKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfSVNOQU5GKQoj
 IGRlZmluZSBfR0xJQkNQUF9IQVZFX0lTTkFORiAxCiMgZGVmaW5lIGlzbmFuZiBfaXNuYW5m
 CiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0lTTkFOTCkgJiYgISBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX0lTTkFOTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU05B
 TkwgMQojIGRlZmluZSBpc25hbmwgX2lzbmFubAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX19JU0lORikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0lTSU5GKQoj
 IGRlZmluZSBfR0xJQkNQUF9IQVZFX0lTSU5GIDEKIyBkZWZpbmUgaXNpbmYgX2lzaW5mCiNl
 bmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0lTSU5GRikgJiYgISBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX0lTSU5GRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9JU0lORkYg
 MQojIGRlZmluZSBpc2luZmYgX2lzaW5mZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX19JU0lORkwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9JU0lORkwpCiMg
 ZGVmaW5lIF9HTElCQ1BQX0hBVkVfSVNJTkZMIDEKIyBkZWZpbmUgaXNpbmZsIF9pc2luZmwK
 I2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fQ09QWVNJR04pICYmICEgZGVm
 aW5lZCAoX0dMSUJDUFBfSEFWRV9DT1BZU0lHTikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9D
 T1BZU0lHTiAxCiMgZGVmaW5lIGNvcHlzaWduIF9jb3B5c2lnbgojZW5kaWYKCiNpZiBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX19DT1BZU0lHTkwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBf
 SEFWRV9DT1BZU0lHTkwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09QWVNJR05MIDEKIyBk
 ZWZpbmUgY29weXNpZ25sIF9jb3B5c2lnbmwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJD
 UFBfSEFWRV9fQ09TRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0NPU0YpCiMgZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfQ09TRiAxCiMgZGVmaW5lIGNvc2YgX2Nvc2YKI2VuZGlmCgoj
 aWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fQUNPU0YpICYmICEgZGVmaW5lZCAoX0dMSUJD
 UFBfSEFWRV9BQ09TRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9BQ09TRiAxCiMgZGVmaW5l
 IGFjb3NmIF9hY29zZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19BQ09T
 TCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0FDT1NMKQojIGRlZmluZSBfR0xJQkNQ
 UF9IQVZFX0FDT1NMIDEKIyBkZWZpbmUgYWNvc2wgX2Fjb3NsCiNlbmRpZgoKI2lmIGRlZmlu
 ZWQgKF9HTElCQ1BQX0hBVkVfX0FTSU5GKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVf
 QVNJTkYpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQVNJTkYgMQojIGRlZmluZSBhc2luZiBf
 YXNpbmYKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fQVNJTkwpICYmICEg
 ZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9BU0lOTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9B
 U0lOTCAxCiMgZGVmaW5lIGFzaW5sIF9hc2lubAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX19BVEFORikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0FUQU5GKQoj
 IGRlZmluZSBfR0xJQkNQUF9IQVZFX0FUQU5GIDEKIyBkZWZpbmUgYXRhbmYgX2F0YW5mCiNl
 bmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0FUQU5MKSAmJiAhIGRlZmluZWQg
 KF9HTElCQ1BQX0hBVkVfQVRBTkwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQVRBTkwgMQoj
 IGRlZmluZSBhdGFubCBfYXRhbmwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFW
 RV9fQ0VJTEYpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9DRUlMRikKIyBkZWZpbmUg
 X0dMSUJDUFBfSEFWRV9DRUlMRiAxCiMgZGVmaW5lIGFjZWlsIF9jZWlsZgojZW5kaWYKCiNp
 ZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19DRUlMTCkgJiYgISBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX0NFSUxMKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX0NFSUxMIDEKIyBkZWZpbmUg
 YWNlaWwgX2NlaWxsCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0NPU0hG
 KSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfQ09TSEYpCiMgZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfQ09TSEYgMQojIGRlZmluZSBjb3NoZiBfY29zaGYKI2VuZGlmCgojaWYgZGVmaW5l
 ZCAoX0dMSUJDUFBfSEFWRV9fQ09TTCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0NP
 U0wpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfQ09TTCAxCiMgZGVmaW5lIGNvc2wgX2Nvc2wK
 I2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fTE9HRikgJiYgISBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX0xPR0YpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfTE9HRiAxCiMg
 ZGVmaW5lIGxvZ2YgX2xvZ2YKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9f
 Q09TSEwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9DT1NITCkKIyBkZWZpbmUgX0dM
 SUJDUFBfSEFWRV9DT1NITCAxCiMgZGVmaW5lIGNvc2hsIF9jb3NobAojZW5kaWYKCiNpZiBk
 ZWZpbmVkIChfR0xJQkNQUF9IQVZFX19FWFBGKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfRVhQRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9FWFBGIDEKIyBkZWZpbmUgZXhwZiBf
 ZXhwZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19FWFBMKSAmJiAhIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfRVhQTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9FWFBM
 IDEKIyBkZWZpbmUgZXhwbCBfZXhwbAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9I
 QVZFX19GQUJTRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZBQlNGKQojIGRlZmlu
 ZSBfR0xJQkNQUF9IQVZFX0ZBQlNGIDEKIyBkZWZpbmUgZmFic2YgX2ZhYnNmCiNlbmRpZgoK
 I2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0ZBQlNMKSAmJiAhIGRlZmluZWQgKF9HTElC
 Q1BQX0hBVkVfRkFCU0wpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRkFCU0wgMQojIGRlZmlu
 ZSBmYWJzbCBfZmFic2wKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRkxP
 T1JGKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfRkxPT1JGKQojIGRlZmluZSBfR0xJ
 QkNQUF9IQVZFX0ZMT09SRiAxCiMgZGVmaW5lIGZsb29yZiBfZmxvb3JmCiNlbmRpZgoKI2lm
 IGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0ZMT09STCkgJiYgISBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX0ZMT09STCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9GTE9PUkwgMQojIGRlZmlu
 ZSBmbG9vcmwgX2Zsb29ybAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19G
 TU9ERikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZNT0RGKQojIGRlZmluZSBfR0xJ
 QkNQUF9IQVZFX0ZNT0RGIDEKIyBkZWZpbmUgZm1vZGYgX2Ztb2RmCiNlbmRpZgoKI2lmIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfX0ZNT0RMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfRk1PREwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRk1PREwgMQojIGRlZmluZSBmbW9k
 bCBfZm1vZGwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRlJFWFBGKSAm
 JiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfRlJFWFBGKQojIGRlZmluZSBfR0xJQkNQUF9I
 QVZFX0ZSRVhQRiAxCiMgZGVmaW5lIGZyZXhwZiBfZnJleHBmCiNlbmRpZgoKI2lmIGRlZmlu
 ZWQgKF9HTElCQ1BQX0hBVkVfX0ZSRVhQTCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZF
 X0ZSRVhQTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9GUkVYUEwgMQojIGRlZmluZSBmcmV4
 cGwgX2ZyZXhwbAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19MREVYUEYp
 ICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9MREVYUEYpCiMgZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfTERFWFBGIDEKIyBkZWZpbmUgbGRleHBmIF9sZGV4cGYKI2VuZGlmCgojaWYgZGVm
 aW5lZCAoX0dMSUJDUFBfSEFWRV9fTERFWFBMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfTERFWFBMKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX0xERVhQTCAxCiMgZGVmaW5lIGxk
 ZXhwbCBfbGRleHBsCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX0xPRzEw
 RikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0xPRzEwRikKIyBkZWZpbmUgX0dMSUJD
 UFBfSEFWRV9MT0cxMEYgMQojIGRlZmluZSBsb2cxMGYgX2xvZzEwZgojZW5kaWYKCiNpZiBk
 ZWZpbmVkIChfR0xJQkNQUF9IQVZFX19MT0dMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfTE9HTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9MT0dMIDEKIyBkZWZpbmUgbG9nbCBf
 bG9nbAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19QT1dGKSAmJiAhIGRl
 ZmluZWQgKF9HTElCQ1BQX0hBVkVfUE9XRikKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9QT1dG
 IDEKIyBkZWZpbmUgcG93ZiBfcG93ZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9I
 QVZFX19MT0cxMEwpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9MT0cxMEwpCiMgZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfTE9HMTBMIDEKIyBkZWZpbmUgbG9nMTBsIF9sb2cxMGwKI2Vu
 ZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fTU9ERikgJiYgISBkZWZpbmVkIChf
 R0xJQkNQUF9IQVZFX01PREYpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfTU9ERiAxCiMgZGVm
 aW5lIG1vZGYgX21vZGYKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fTU9E
 TCkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX01PREwpCiMgZGVmaW5lIF9HTElCQ1BQ
 X0hBVkVfTU9ETCAxCiMgZGVmaW5lIG1vZGwgX21vZGwKI2VuZGlmCgojaWYgZGVmaW5lZCAo
 X0dMSUJDUFBfSEFWRV9fU0lORikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1NJTkYp
 CiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfU0lORiAxCiMgZGVmaW5lIHNpbmYgX3NpbmYKI2Vu
 ZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fUE9XTCkgJiYgISBkZWZpbmVkIChf
 R0xJQkNQUF9IQVZFX1BPV0wpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfUE9XTCAxCiMgZGVm
 aW5lIHBvd2wgX3Bvd2wKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fU0lO
 SEYpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9TSU5IRikKIyBkZWZpbmUgX0dMSUJD
 UFBfSEFWRV9TSU5IRiAxCiMgZGVmaW5lIHNpbmhmIF9zaW5oZgojZW5kaWYKCiNpZiBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX19TSU5MKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVf
 U0lOTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5MIDEKIyBkZWZpbmUgc2lubCBfc2lu
 bAojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19TUVJURikgJiYgISBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX1NRUlRGKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1NRUlRG
 IDEKIyBkZWZpbmUgc3FydGYgX3NxcnRmCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQ
 X0hBVkVfX1NJTkhMKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfU0lOSEwpCiMgZGVm
 aW5lIF9HTElCQ1BQX0hBVkVfU0lOSEwgMQojIGRlZmluZSBzaW5obCBfc2luaGwKI2VuZGlm
 CgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fVEFORikgJiYgISBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX1RBTkYpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfVEFORiAxCiMgZGVmaW5l
 IHRhbmYgX3RhbmYKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fU1FSVEwp
 ICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9TUVJUTCkKIyBkZWZpbmUgX0dMSUJDUFBf
 SEFWRV9TUVJUTCAxCiMgZGVmaW5lIHNxcnRsIF9zcXJ0bAojZW5kaWYKCiNpZiBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX19UQU5IRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1RB
 TkhGKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkhGIDEKIyBkZWZpbmUgdGFuaGYgX3Rh
 bmhmCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX1RBTkwpICYmICEgZGVm
 aW5lZCAoX0dMSUJDUFBfSEFWRV9UQU5MKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkYg
 MQojIGRlZmluZSB0YW5mIF90YW5mCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hB
 VkVfX1NUUlRPRikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1NUUlRPRikKIyBkZWZp
 bmUgX0dMSUJDUFBfSEFWRV9TVFJUT0YgMQojIGRlZmluZSBzdHJ0b2YgX3N0cnRvZgojZW5k
 aWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19UQU5ITCkgJiYgISBkZWZpbmVkIChf
 R0xJQkNQUF9IQVZFX1RBTkhMKQojIGRlZmluZSBfR0xJQkNQUF9IQVZFX1RBTkhMIDEKIyBk
 ZWZpbmUgdGFuaGwgX3RhbmhsCiNlbmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVf
 X1NUUlRPTEQpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9TVFJUT0xEKQojIGRlZmlu
 ZSBfR0xJQkNQUF9IQVZFX1NUUlRPTEQgMQojIGRlZmluZSBzdHJ0b2xkIF9zdHJ0b2xkCiNl
 bmRpZgoKI2lmIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfX1NJTkNPUykgJiYgISBkZWZpbmVk
 IChfR0xJQkNQUF9IQVZFX1NJTkNPUykKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5DT1Mg
 MQojIGRlZmluZSBzaW5jb3MgX3NpbmNvcwojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQ
 UF9IQVZFX19TSU5DT1NGKSAmJiAhIGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfU0lOQ09TRikK
 IyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9TSU5DT1NGIDEKIyBkZWZpbmUgc2luY29zZiBfc2lu
 Y29zZgojZW5kaWYKCiNpZiBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX19TSU5DT1NMKSAmJiAh
 IGRlZmluZWQgKF9HTElCQ1BQX0hBVkVfU0lOQ09TTCkKIyBkZWZpbmUgX0dMSUJDUFBfSEFW
 RV9TSU5DT1NMIDEKIyBkZWZpbmUgc2luY29zbCBfc2luY29zbAojZW5kaWYKCiNpZiBkZWZp
 bmVkIChfR0xJQkNQUF9IQVZFX19GSU5JVEUpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFW
 RV9GSU5JVEUpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRklOSVRFIDEKIyBkZWZpbmUgZmlu
 aXRlIF9maW5pdGUKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRklOSVRF
 RikgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZJTklURUYpCiMgZGVmaW5lIF9HTElC
 Q1BQX0hBVkVfRklOSVRFRiAxCiMgZGVmaW5lIGZpbml0ZWYgX2Zpbml0ZWYKI2VuZGlmCgoj
 aWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRklOSVRFTCkgJiYgISBkZWZpbmVkIChfR0xJ
 QkNQUF9IQVZFX0ZJTklURUwpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVfRklOSVRFTCAxCiMg
 ZGVmaW5lIGZpbml0ZWwgX2Zpbml0ZWwKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBf
 SEFWRV9fUUZJTklURSkgJiYgISBkZWZpbmVkIChfR0xJQkNQUF9IQVZFX1FGSU5JVEUpCiMg
 ZGVmaW5lIF9HTElCQ1BQX0hBVkVfUUZJTklURSAxCiMgZGVmaW5lIHFmaW5pdGUgX3FmaW5p
 dGUKI2VuZGlmCgojaWYgZGVmaW5lZCAoX0dMSUJDUFBfSEFWRV9fRlBDTEFTUykgJiYgISBk
 ZWZpbmVkIChfR0xJQkNQUF9IQVZFX0ZQQ0xBU1MpCiMgZGVmaW5lIF9HTElCQ1BQX0hBVkVf
 RlBDTEFTUyAxCiMgZGVmaW5lIGZwY2xhc3MgX2ZwY2xhc3MKI2VuZGlmCgojaWYgZGVmaW5l
 ZCAoX0dMSUJDUFBfSEFWRV9fUUZQQ0xBU1MpICYmICEgZGVmaW5lZCAoX0dMSUJDUFBfSEFW
 RV9RRlBDTEFTUykKIyBkZWZpbmUgX0dMSUJDUFBfSEFWRV9RRlBDTEFTUyAxCiMgZGVmaW5l
 IHFmcGNsYXNzIF9xZnBjbGFzcwojZW5kaWYKCiNlbmRpZiAvLyBfQ1BQX0NQUENPTkZJR18K
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAuL2luY2x1ZGUvZysrLXYzL2k2ODYtcGMtbGludXgtZ251L2JpdHMvb3NfZGVmaW5lcy5o
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0
 NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDU0MjUAMDc0NzMwNDI2NjcAMDIwNjc2ACAwAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVu
 Z2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8vIFNwZWNpZmljIGRlZmluaXRpb25zIGZv
 ciBHTlUvTGludXggIC0qLSBDKysgLSotCgovLyBDb3B5cmlnaHQgKEMpIDIwMDAsIDIwMDEg
 RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi8vCi8vIFRoaXMgZmlsZSBpcyBwYXJ0
 IG9mIHRoZSBHTlUgSVNPIEMrKyBMaWJyYXJ5LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKLy8g
 c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5k
 ZXIgdGhlCi8vIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw
 dWJsaXNoZWQgYnkgdGhlCi8vIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
 cnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQovLyBhbnkgbGF0ZXIgdmVyc2lvbi4KCi8v
 IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
 YmUgdXNlZnVsLAovLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
 aGUgaW1wbGllZCB3YXJyYW50eSBvZgovLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
 T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi8vIEdOVSBHZW5lcmFsIFB1Ymxp
 YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgovLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwovLyB3
 aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRl
 IHRvIHRoZSBGcmVlCi8vIFNvZnR3YXJlIEZvdW5kYXRpb24sIDU5IFRlbXBsZSBQbGFjZSAt
 IFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LAovLyBVU0EuCgovLyBBcyBhIHNw
 ZWNpYWwgZXhjZXB0aW9uLCB5b3UgbWF5IHVzZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIGZy
 ZWUgc29mdHdhcmUKLy8gbGlicmFyeSB3aXRob3V0IHJlc3RyaWN0aW9uLiAgU3BlY2lmaWNh
 bGx5LCBpZiBvdGhlciBmaWxlcyBpbnN0YW50aWF0ZQovLyB0ZW1wbGF0ZXMgb3IgdXNlIG1h
 Y3JvcyBvciBpbmxpbmUgZnVuY3Rpb25zIGZyb20gdGhpcyBmaWxlLCBvciB5b3UgY29tcGls
 ZQovLyB0aGlzIGZpbGUgYW5kIGxpbmsgaXQgd2l0aCBvdGhlciBmaWxlcyB0byBwcm9kdWNl
 IGFuIGV4ZWN1dGFibGUsIHRoaXMKLy8gZmlsZSBkb2VzIG5vdCBieSBpdHNlbGYgY2F1c2Ug
 dGhlIHJlc3VsdGluZyBleGVjdXRhYmxlIHRvIGJlIGNvdmVyZWQgYnkKLy8gdGhlIEdOVSBH
 ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZl
 cgovLyBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSB0aGUgZXhlY3V0YWJsZSBm
 aWxlIG1pZ2h0IGJlIGNvdmVyZWQgYnkKLy8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl
 bnNlLgoKI2lmbmRlZiBfR0xJQkNQUF9PU19ERUZJTkVTCiNkZWZpbmUgX0dMSUJDUFBfT1Nf
 REVGSU5FUyAxCgovLyBTeXN0ZW0tc3BlY2lmaWMgI2RlZmluZSwgdHlwZWRlZnMsIGNvcnJl
 Y3Rpb25zLCBldGMsIGdvIGhlcmUuICBUaGlzCi8vIGZpbGUgd2lsbCBjb21lIGJlZm9yZSBh
 bGwgb3RoZXJzLgoKLy8gVGhpcyBrZWVwcyBpc2FudW0sIGV0IGFsIGZyb20gYmVpbmcgcHJv
 cGFnYXRlZCBhcyBtYWNyb3MuCiNkZWZpbmUgX19OT19DVFlQRSAxCgojaW5jbHVkZSA8ZmVh
 dHVyZXMuaD4KCiNpZiAhZGVmaW5lZCAoX19HTElCQ19fKSB8fCAoX19HTElCQ19fID09IDIg
 JiYgX19HTElCQ19NSU5PUl9fKyAwID09IDApCgovLyBUaGUgdHlwZXMgX19vZmZfdCBhbmQg
 X19vZmY2NF90IGFyZSBub3QgZGVmaW5lZCB0aHJvdWdoIDxzeXMvdHlwZXMuaD4KLy8gYXMg
 X0dfY29uZmlnIGFzc3VtZXMuICBGb3IgbGliYzUgYW5kIGdsaWJjIDIuMCBpbnN0ZWFkIHVz
 ZQovLyA8Z251L3R5cGVzLmg+IGFuZCB0aGUgb2xkIG5hbWUgZm9yIF9fb2ZmNjRfdC4KI2lu
 Y2x1ZGUgPGdudS90eXBlcy5oPgp0eXBlZGVmIF9fbG9mZl90IF9fb2ZmNjRfdDsKCi8vIFRo
 ZXNlIHN5c3RlbXMgaGF2ZSBkZWNsYXJhdGlvbnMgbWlzbWF0Y2hpbmcgdGhvc2UgaW4gbGli
 aW8uaCBieQovLyBvbWl0dGluZyB0aHJvdyBxdWFsaWZpZXJzLiAgQ2xlYW5lc3Qgd2F5IG91
 dCBpcyB0byBub3QgcHJvdmlkZQovLyB0aHJvdy1xdWFsaWZpZXJzIGF0IGFsbC4gIERlZmlu
 aW5nIGl0IGFzIGVtcHR5IGhlcmUgd2lsbCBtYWtlIGxpYmlvLmgKLy8gbm90IGRlZmluZSBp
 dC4KI3VuZGVmIF9fVEhST1cKI2RlZmluZSBfX1RIUk9XCgovLyBUZWxsIEdsaWJjIG5vdCB0
 byB0cnkgdG8gcHJvdmlkZSBpdHMgb3duIGlubGluZSB2ZXJzaW9ucyBvZgovLyBzb21lIG1h
 dGggZnVuY3Rpb25zLiAgVGhvc2UgY2F1c2UgYXNzZW1ibHktdGltZSBjbGFzaGVzIHdpdGgK
 Ly8gb3VyIGRlZmluaXRpb25zLgojZGVmaW5lIF9fTk9fTUFUSF9JTkxJTkVTCgojZW5kaWYg
 CgojaWYgZGVmaW5lZCBfX0dMSUJDX18gJiYgX19HTElCQ19fID49IDIKLy8gV2UgbXVzdCBu
 b3Qgc2VlIHRoZSBvcHRpbWl6ZWQgc3RyaW5nIGZ1bmN0aW9ucyBHTlUgbGliYyBkZWZpbmVz
 LgojZGVmaW5lIF9fTk9fU1RSSU5HX0lOTElORVMKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Bv
 d2VycGM2NF9fKSB8fCBkZWZpbmVkKF9fczM5MHhfXykgfHwgKGRlZmluZWQoX19zcGFyY19f
 KSAmJiBkZWZpbmVkKF9fYXJjaDY0X18pKQojZGVmaW5lIF9fZ2xpYmNwcF9sb25nX2JpdHMg
 NjQKI2VuZGlmCgojaWYgZGVmaW5lZChfX3NwYXJjX18pICYmICFkZWZpbmVkKF9fYXJjaDY0
 X18pCiNkZWZpbmUgX19nbGliY3BwX2xvbmdfZG91YmxlX2JpdHMgNjQKI2VuZGlmCgojZW5k
 aWYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vaW5jbHVkZS9nKystdjMvYml0cy8AAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAwMDQwNzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2
 NDUwMDYzMgAwMTMzNTYAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi9pbmNs
 dWRlL2crKy12My9iaXRzL2NtYXRoLnRjYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMw
 NQAwMDExNjM3ADAwMDAwMDAzNDYwADA3NDczMDQyNjYxADAxNTE0NQAgMAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAvLyAtKi0gQysrIC0qLSBDIG1hdGggbGlicmFyeS4KCi8v
 IENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLy8K
 Ly8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnkuICBUaGlz
 IGxpYnJhcnkgaXMgZnJlZQovLyBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
 YW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKLy8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs
 IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKLy8gRnJlZSBTb2Z0d2FyZSBG
 b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi8vIGFu
 eSBsYXRlciB2ZXJzaW9uLgoKLy8gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
 ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
 QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi8vIE1FUkNIQU5U
 QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK
 Ly8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCi8vIFlv
 dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
 YyBMaWNlbnNlIGFsb25nCi8vIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLy8gU29mdHdhcmUgRm91bmRhdGlv
 biwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcs
 Ci8vIFVTQS4KCi8vIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHlvdSBtYXkgdXNlIHRoaXMg
 ZmlsZSBhcyBwYXJ0IG9mIGEgZnJlZSBzb2Z0d2FyZQovLyBsaWJyYXJ5IHdpdGhvdXQgcmVz
 dHJpY3Rpb24uICBTcGVjaWZpY2FsbHksIGlmIG90aGVyIGZpbGVzIGluc3RhbnRpYXRlCi8v
 IHRlbXBsYXRlcyBvciB1c2UgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlvbnMgZnJvbSB0aGlz
 IGZpbGUsIG9yIHlvdSBjb21waWxlCi8vIHRoaXMgZmlsZSBhbmQgbGluayBpdCB3aXRoIG90
 aGVyIGZpbGVzIHRvIHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgdGhpcwovLyBmaWxlIGRvZXMg
 bm90IGJ5IGl0c2VsZiBjYXVzZSB0aGUgcmVzdWx0aW5nIGV4ZWN1dGFibGUgdG8gYmUgY292
 ZXJlZCBieQovLyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGlzIGV4Y2Vw
 dGlvbiBkb2VzIG5vdCBob3dldmVyCi8vIGludmFsaWRhdGUgYW55IG90aGVyIHJlYXNvbnMg
 d2h5IHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBieQovLyB0aGUgR05V
 IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgovLyBUaGlzIGZpbGUgd2FzIHdyaXR0ZW4gYnkg
 R2FicmllbCBEb3MgUmVpcyA8Z2RyQGNvZGVzb3VyY2VyeS5jb20+CgojaWZuZGVmIF9DUFBf
 QklUU19DTUFUSF9UQ0MKI2RlZmluZSBfQ1BQX0JJVFNfQ01BVEhfVENDIDEKCm5hbWVzcGFj
 ZSBzdGQgCnsKICBleHBvcnQgdGVtcGxhdGU8dHlwZW5hbWUgX1RwPgogICAgX1RwCiAgICBf
 X2NtYXRoX3Bvd2VyKF9UcCBfX3gsIHVuc2lnbmVkIGludCBfX24pCiAgICB7CiAgICAgIF9U
 cCBfX3kgPSBfX24gJSAyID8gX194IDogMTsKCiAgICAgIHdoaWxlIChfX24gPj49IDEpCiAg
 ICAgICAgewogICAgICAgICAgX194ID0gX194ICogX194OwogICAgICAgICAgaWYgKF9fbiAl
 IDIpCiAgICAgICAgICAgIF9feSA9IF9feSAqIF9feDsKICAgICAgICB9CgogICAgICByZXR1
 cm4gX195OwogICAgfQp9CgojZW5kaWYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAC4vdXNyLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAwMDQwNzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMDYz
 MgAwMTA3MDEAIDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAdXN0YXIgIABtZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVk
 ZS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDEx
 NjM3ADAwMDAwMDAwMDAwADA3NTY0NTAwNjMyADAxMjMyNAAgNQAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAuL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMjI0NTAAMDc1Mzc3MTUzNDEA
 MDE0MzE2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIENvcHlyaWdodCAo
 QykgMTk5MSw5Miw5Myw5NSw5Niw5Nyw5OCw5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
 IEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCgogICBU
 aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
 ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
 YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGlj
 ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBH
 TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
 ZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
 ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
 UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJh
 bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZl
 IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
 TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBN
 QSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZglfRkVBVFVSRVNfSAojZGVmaW5lCV9G
 RUFUVVJFU19ICTEKCi8qIFRoZXNlIGFyZSBkZWZpbmVkIGJ5IHRoZSB1c2VyIChvciB0aGUg
 Y29tcGlsZXIpCiAgIHRvIHNwZWNpZnkgdGhlIGRlc2lyZWQgZW52aXJvbm1lbnQ6CgogICBf
 X1NUUklDVF9BTlNJX18JSVNPIFN0YW5kYXJkIEMuCiAgIF9JU09DOTlfU09VUkNFCUV4dGVu
 c2lvbnMgdG8gSVNPIEMgODkgZnJvbSBJU08gQyA5OS4KICAgX0lTT0M5WF9TT1VSQ0UJU2lt
 aWxhciwga2VwdCBmb3IgY29tcGF0aWJpbGl0eS4KICAgX1BPU0lYX1NPVVJDRQlJRUVFIFN0
 ZCAxMDAzLjEuCiAgIF9QT1NJWF9DX1NPVVJDRQlJZiA9PTEsIGxpa2UgX1BPU0lYX1NPVVJD
 RTsgaWYgPj0yIGFkZCBJRUVFIFN0ZCAxMDAzLjI7CgkJCWlmID49MTk5MzA5TCwgYWRkIElF
 RUUgU3RkIDEwMDMuMWItMTk5MzsKCQkJaWYgPj0xOTk1MDZMLCBhZGQgSUVFRSBTdGQgMTAw
 My4xYy0xOTk1CiAgIF9YT1BFTl9TT1VSQ0UJSW5jbHVkZXMgUE9TSVggYW5kIFhQRyB0aGlu
 Z3MuICBTZXQgdG8gNTAwIGlmCgkJCVNpbmdsZSBVbml4IGNvbmZvcm1hbmNlIGlzIHdhbnRl
 ZC4KICAgX1hPUEVOX1NPVVJDRV9FWFRFTkRFRCBYUEcgdGhpbmdzIGFuZCBYL09wZW4gVW5p
 eCBleHRlbnNpb25zLgogICBfTEFSR0VGSUxFX1NPVVJDRQlTb21lIG1vcmUgZnVuY3Rpb25z
 IGZvciBjb3JyZWN0IHN0YW5kYXJkIEkvTy4KICAgX0xBUkdFRklMRTY0X1NPVVJDRQlBZGRp
 dGlvbmFsIGZ1bmN0aW9uYWxpdHkgZnJvbSBMRlMgZm9yIGxhcmdlIGZpbGVzLgogICBfRklM
 RV9PRkZTRVRfQklUUz1OCVNlbGVjdCBkZWZhdWx0IGZpbGVzeXN0ZW0gaW50ZXJmYWNlLgog
 ICBfQlNEX1NPVVJDRQkJSVNPIEMsIFBPU0lYLCBhbmQgNC4zQlNEIHRoaW5ncy4KICAgX1NW
 SURfU09VUkNFCQlJU08gQywgUE9TSVgsIGFuZCBTVklEIHRoaW5ncy4KICAgX0dOVV9TT1VS
 Q0UJCUFsbCBvZiB0aGUgYWJvdmUsIHBsdXMgR05VIGV4dGVuc2lvbnMuCiAgIF9SRUVOVFJB
 TlQJCVNlbGVjdCBhZGRpdGlvbmFsbHkgcmVlbnRyYW50IG9iamVjdC4KICAgX1RIUkVBRF9T
 QUZFCQlTYW1lIGFzIF9SRUVOVFJBTlQsIG9mdGVuIHVzZWQgYnkgb3RoZXIgc3lzdGVtcy4K
 CiAgIFRoZSBgLWFuc2knIHN3aXRjaCB0byB0aGUgR05VIEMgY29tcGlsZXIgZGVmaW5lcyBf
 X1NUUklDVF9BTlNJX18uCiAgIElmIG5vbmUgb2YgdGhlc2UgYXJlIGRlZmluZWQsIHRoZSBk
 ZWZhdWx0IGlzIGFsbCBidXQgX0dOVV9TT1VSQ0UuCiAgIElmIG1vcmUgdGhhbiBvbmUgb2Yg
 dGhlc2UgYXJlIGRlZmluZWQsIHRoZXkgYWNjdW11bGF0ZS4KICAgRm9yIGV4YW1wbGUgX19T
 VFJJQ1RfQU5TSV9fLCBfUE9TSVhfU09VUkNFIGFuZCBfUE9TSVhfQ19TT1VSQ0UKICAgdG9n
 ZXRoZXIgZ2l2ZSB5b3UgSVNPIEMsIDEwMDMuMSwgYW5kIDEwMDMuMiwgYnV0IG5vdGhpbmcg
 ZWxzZS4KCiAgIFRoZXNlIGFyZSBkZWZpbmVkIGJ5IHRoaXMgZmlsZSBhbmQgYXJlIHVzZWQg
 YnkgdGhlCiAgIGhlYWRlciBmaWxlcyB0byBkZWNpZGUgd2hhdCB0byBkZWNsYXJlIG9yIGRl
 ZmluZToKCiAgIF9fVVNFX0lTT0M5WAkJRGVmaW5lIElTTyBDIDlYIHRoaW5ncy4KICAgX19V
 U0VfUE9TSVgJCURlZmluZSBJRUVFIFN0ZCAxMDAzLjEgdGhpbmdzLgogICBfX1VTRV9QT1NJ
 WDIJCURlZmluZSBJRUVFIFN0ZCAxMDAzLjIgdGhpbmdzLgogICBfX1VTRV9QT1NJWDE5OTMw
 OQlEZWZpbmUgSUVFRSBTdGQgMTAwMy4xLCBhbmQgLjFiIHRoaW5ncy4KICAgX19VU0VfUE9T
 SVgxOTk1MDYJRGVmaW5lIElFRUUgU3RkIDEwMDMuMSwgLjFiLCAuMWMgYW5kIC4xaSB0aGlu
 Z3MuCiAgIF9fVVNFX1hPUEVOCQlEZWZpbmUgWFBHIHRoaW5ncy4KICAgX19VU0VfWE9QRU5f
 RVhURU5ERUQJRGVmaW5lIFgvT3BlbiBVbml4IHRoaW5ncy4KICAgX19VU0VfVU5JWDk4CQlE
 ZWZpbmUgU2luZ2xlIFVuaXggVjIgdGhpbmdzLgogICBfX1VTRV9MQVJHRUZJTEU2NAlEZWZp
 bmUgTEZTIHRoaW5ncyB3aXRoIHNlcGFyYXRlIG5hbWVzLgogICBfX1VTRV9GSUxFX09GRlNF
 VDY0CURlZmluZSA2NGJpdCBpbnRlcmZhY2UgYXMgZGVmYXVsdC4KICAgX19VU0VfQlNECQlE
 ZWZpbmUgNC4zQlNEIHRoaW5ncy4KICAgX19VU0VfU1ZJRAkJRGVmaW5lIFNWSUQgdGhpbmdz
 LgogICBfX1VTRV9NSVNDCQlEZWZpbmUgdGhpbmdzIGNvbW1vbiB0byBCU0QgYW5kIFN5c3Rl
 bSBWIFVuaXguCiAgIF9fVVNFX0dOVQkJRGVmaW5lIEdOVSBleHRlbnNpb25zLgogICBfX1VT
 RV9SRUVOVFJBTlQJRGVmaW5lIHJlZW50cmFudC90aHJlYWQtc2FmZSAqX3IgZnVuY3Rpb25z
 LgogICBfX0ZBVk9SX0JTRAkJRmF2b3IgNC4zQlNEIHRoaW5ncyBpbiBjYXNlcyBvZiBjb25m
 bGljdC4KCiAgIFRoZSBtYWNyb3MgYF9fR05VX0xJQlJBUllfXycsIGBfX0dMSUJDX18nLCBh
 bmQgYF9fR0xJQkNfTUlOT1JfXycgYXJlCiAgIGRlZmluZWQgYnkgdGhpcyBmaWxlIHVuY29u
 ZGl0aW9uYWxseS4gIGBfX0dOVV9MSUJSQVJZX18nIGlzIHByb3ZpZGVkCiAgIG9ubHkgZm9y
 IGNvbXBhdGliaWxpdHkuICBBbGwgbmV3IGNvZGUgc2hvdWxkIHVzZSB0aGUgb3RoZXIgc3lt
 Ym9scwogICB0byB0ZXN0IGZvciBmZWF0dXJlcy4KCiAgIEFsbCBtYWNyb3MgbGlzdGVkIGFi
 b3ZlIGFzIHBvc3NpYmx5IGJlaW5nIGRlZmluZWQgYnkgdGhpcyBmaWxlIGFyZQogICBleHBs
 aWNpdGx5IHVuZGVmaW5lZCBpZiB0aGV5IGFyZSBub3QgZXhwbGljaXRseSBkZWZpbmVkLgog
 ICBGZWF0dXJlLXRlc3QgbWFjcm9zIHRoYXQgYXJlIG5vdCBkZWZpbmVkIGJ5IHRoZSB1c2Vy
 IG9yIGNvbXBpbGVyCiAgIGJ1dCBhcmUgaW1wbGllZCBieSB0aGUgb3RoZXIgZmVhdHVyZS10
 ZXN0IG1hY3JvcyBkZWZpbmVkIChvciBieSB0aGUKICAgbGFjayBvZiBhbnkgZGVmaW5pdGlv
 bnMpIGFyZSBkZWZpbmVkIGJ5IHRoZSBmaWxlLiAgKi8KCgovKiBVbmRlZmluZSBldmVyeXRo
 aW5nLCBzbyB3ZSBnZXQgYSBjbGVhbiBzbGF0ZS4gICovCiN1bmRlZglfX1VTRV9JU09DOVgK
 I3VuZGVmCV9fVVNFX1BPU0lYCiN1bmRlZglfX1VTRV9QT1NJWDIKI3VuZGVmCV9fVVNFX1BP
 U0lYMTk5MzA5CiN1bmRlZglfX1VTRV9QT1NJWDE5OTUwNgojdW5kZWYJX19VU0VfWE9QRU4K
 I3VuZGVmCV9fVVNFX1hPUEVOX0VYVEVOREVECiN1bmRlZglfX1VTRV9VTklYOTgKI3VuZGVm
 CV9fVVNFX0xBUkdFRklMRQojdW5kZWYJX19VU0VfTEFSR0VGSUxFNjQKI3VuZGVmCV9fVVNF
 X0ZJTEVfT0ZGU0VUNjQKI3VuZGVmCV9fVVNFX0JTRAojdW5kZWYJX19VU0VfU1ZJRAojdW5k
 ZWYJX19VU0VfTUlTQwojdW5kZWYJX19VU0VfR05VCiN1bmRlZglfX1VTRV9SRUVOVFJBTlQK
 I3VuZGVmCV9fRkFWT1JfQlNECiN1bmRlZglfX0tFUk5FTF9TVFJJQ1RfTkFNRVMKCi8qIFN1
 cHByZXNzIGtlcm5lbC1uYW1lIHNwYWNlIHBvbGx1dGlvbiB1bmxlc3MgdXNlciBleHByZXNz
 ZWRseSBhc2tzCiAgIGZvciBpdC4gICovCiNpZm5kZWYgX0xPT1NFX0tFUk5FTF9OQU1FUwoj
 IGRlZmluZSBfX0tFUk5FTF9TVFJJQ1RfTkFNRVMKI2VuZGlmCgovKiBBbHdheXMgdXNlIElT
 TyBDIHRoaW5ncy4gICovCiNkZWZpbmUJX19VU0VfQU5TSQkxCgoKLyogSWYgX0JTRF9TT1VS
 Q0Ugd2FzIGRlZmluZWQgYnkgdGhlIHVzZXIsIGZhdm9yIEJTRCBvdmVyIFBPU0lYLiAgKi8K
 I2lmIGRlZmluZWQgX0JTRF9TT1VSQ0UgJiYgXAogICAgIShkZWZpbmVkIF9QT1NJWF9TT1VS
 Q0UgfHwgZGVmaW5lZCBfUE9TSVhfQ19TT1VSQ0UgfHwgXAogICAgICBkZWZpbmVkIF9YT1BF
 Tl9TT1VSQ0UgfHwgZGVmaW5lZCBfWE9QRU5fU09VUkNFX0VYVEVOREVEIHx8IFwKICAgICAg
 ZGVmaW5lZCBfR05VX1NPVVJDRSB8fCBkZWZpbmVkIF9TVklEX1NPVVJDRSkKIyBkZWZpbmUg
 X19GQVZPUl9CU0QJMQojZW5kaWYKCi8qIElmIF9HTlVfU09VUkNFIHdhcyBkZWZpbmVkIGJ5
 IHRoZSB1c2VyLCB0dXJuIG9uIGFsbCB0aGUgb3RoZXIgZmVhdHVyZXMuICAqLwojaWZkZWYg
 X0dOVV9TT1VSQ0UKIyB1bmRlZiAgX0lTT0M5WF9TT1VSQ0UKIyBkZWZpbmUgX0lTT0M5WF9T
 T1VSQ0UJMQojIHVuZGVmICBfUE9TSVhfU09VUkNFCiMgZGVmaW5lIF9QT1NJWF9TT1VSQ0UJ
 MQojIHVuZGVmICBfUE9TSVhfQ19TT1VSQ0UKIyBkZWZpbmUgX1BPU0lYX0NfU09VUkNFCTE5
 OTUwNkwKIyB1bmRlZiAgX1hPUEVOX1NPVVJDRQojIGRlZmluZSBfWE9QRU5fU09VUkNFCTUw
 MAojIHVuZGVmICBfWE9QRU5fU09VUkNFX0VYVEVOREVECiMgZGVmaW5lIF9YT1BFTl9TT1VS
 Q0VfRVhURU5ERUQJMQojIHVuZGVmCSBfTEFSR0VGSUxFNjRfU09VUkNFCiMgZGVmaW5lIF9M
 QVJHRUZJTEU2NF9TT1VSQ0UJMQojIHVuZGVmICBfQlNEX1NPVVJDRQojIGRlZmluZSBfQlNE
 X1NPVVJDRQkxCiMgdW5kZWYgIF9TVklEX1NPVVJDRQojIGRlZmluZSBfU1ZJRF9TT1VSQ0UJ
 MQojZW5kaWYKCi8qIElmIG5vdGhpbmcgKG90aGVyIHRoYW4gX0dOVV9TT1VSQ0UpIGlzIGRl
 ZmluZWQsCiAgIGRlZmluZSBfQlNEX1NPVVJDRSBhbmQgX1NWSURfU09VUkNFLiAgKi8KI2lm
 ICghZGVmaW5lZCBfX1NUUklDVF9BTlNJX18gJiYgIWRlZmluZWQgX0lTT0M5WF9TT1VSQ0Ug
 JiYgXAogICAgICFkZWZpbmVkIF9QT1NJWF9TT1VSQ0UgJiYgIWRlZmluZWQgX1BPU0lYX0Nf
 U09VUkNFICYmIFwKICAgICAhZGVmaW5lZCBfWE9QRU5fU09VUkNFICYmICFkZWZpbmVkIF9Y
 T1BFTl9TT1VSQ0VfRVhURU5ERUQgJiYgXAogICAgICFkZWZpbmVkIF9CU0RfU09VUkNFICYm
 ICFkZWZpbmVkIF9TVklEX1NPVVJDRSkKIyBkZWZpbmUgX0JTRF9TT1VSQ0UJMQojIGRlZmlu
 ZSBfU1ZJRF9TT1VSQ0UJMQojZW5kaWYKCi8qIFRoaXMgaXMgdG8gZW5hYmxlIHRoZSBJU08g
 QyA5eCBleHRlbnNpb24uICBJdCB3aWxsIGdvIGF3YXkgYXMgc29vbgogICBhcyB0aGlzIHN0
 YW5kYXJkIGlzIG9mZmljaWFsbHkgcmVsZWFzZWQuICAqLwojaWYgZGVmaW5lZCBfSVNPQzlY
 X1NPVVJDRSB8fCBkZWZpbmVkIF9JU09DOTlfU09VUkNFCiMgZGVmaW5lIF9fVVNFX0lTT0M5
 WAkxCiNlbmRpZgoKLyogSWYgbm9uZSBvZiB0aGUgQU5TSS9QT1NJWCBtYWNyb3MgYXJlIGRl
 ZmluZWQsIHVzZSBQT1NJWC4xIGFuZCBQT1NJWC4yCiAgIChhbmQgSUVFRSBTdGQgMTAwMy4x
 Yi0xOTkzIHVubGVzcyBfWE9QRU5fU09VUkNFIGlzIGRlZmluZWQpLiAgKi8KI2lmICghZGVm
 aW5lZCBfX1NUUklDVF9BTlNJX18gJiYgIWRlZmluZWQgX1BPU0lYX1NPVVJDRSAmJiBcCiAg
 ICAgIWRlZmluZWQgX1BPU0lYX0NfU09VUkNFKQojIGRlZmluZSBfUE9TSVhfU09VUkNFCTEK
 IyBpZiBkZWZpbmVkIF9YT1BFTl9TT1VSQ0UgJiYgKF9YT1BFTl9TT1VSQ0UgLSAwKSAhPSA1
 MDAKIyAgZGVmaW5lIF9QT1NJWF9DX1NPVVJDRQkyCiMgZWxzZQojICBkZWZpbmUgX1BPU0lY
 X0NfU09VUkNFCTE5OTUwNkwKIyBlbmRpZgojZW5kaWYKCiNpZiBkZWZpbmVkIF9QT1NJWF9T
 T1VSQ0UgfHwgX1BPU0lYX0NfU09VUkNFID49IDEgfHwgZGVmaW5lZCBfWE9QRU5fU09VUkNF
 CiMgZGVmaW5lIF9fVVNFX1BPU0lYCTEKI2VuZGlmCgojaWYgZGVmaW5lZCBfUE9TSVhfQ19T
 T1VSQ0UgJiYgX1BPU0lYX0NfU09VUkNFID49IDIgfHwgZGVmaW5lZCBfWE9QRU5fU09VUkNF
 CiMgZGVmaW5lIF9fVVNFX1BPU0lYMgkxCiNlbmRpZgoKI2lmIChfUE9TSVhfQ19TT1VSQ0Ug
 LSAwKSA+PSAxOTkzMDlMCiMgZGVmaW5lIF9fVVNFX1BPU0lYMTk5MzA5CTEKI2VuZGlmCgoj
 aWYgKF9QT1NJWF9DX1NPVVJDRSAtIDApID49IDE5OTUwNkwKIyBkZWZpbmUgX19VU0VfUE9T
 SVgxOTk1MDYJMQojZW5kaWYKCiNpZmRlZglfWE9QRU5fU09VUkNFCiMgZGVmaW5lIF9fVVNF
 X1hPUEVOCTEKIyBpZiAoX1hPUEVOX1NPVVJDRSAtIDApID09IDUwMAojICBkZWZpbmUgX19V
 U0VfWE9QRU5fRVhURU5ERUQJMQojICBkZWZpbmUgX19VU0VfVU5JWDk4CTEKIyAgdW5kZWYg
 X0xBUkdFRklMRV9TT1VSQ0UKIyAgZGVmaW5lIF9MQVJHRUZJTEVfU09VUkNFCTEKIyBlbHNl
 CiMgIGlmZGVmIF9YT1BFTl9TT1VSQ0VfRVhURU5ERUQKIyAgIGRlZmluZSBfX1VTRV9YT1BF
 Tl9FWFRFTkRFRAkxCiMgIGVuZGlmCiMgZW5kaWYKI2VuZGlmCgojaWZkZWYgX0xBUkdFRklM
 RV9TT1VSQ0UKIyBkZWZpbmUgX19VU0VfTEFSR0VGSUxFCTEKI2VuZGlmCgojaWZkZWYgX0xB
 UkdFRklMRTY0X1NPVVJDRQojIGRlZmluZSBfX1VTRV9MQVJHRUZJTEU2NAkxCiNlbmRpZgoK
 I2lmIGRlZmluZWQgX0ZJTEVfT0ZGU0VUX0JJVFMgJiYgX0ZJTEVfT0ZGU0VUX0JJVFMgPT0g
 NjQKIyBkZWZpbmUgX19VU0VfRklMRV9PRkZTRVQ2NAkxCiNlbmRpZgoKI2lmIGRlZmluZWQg
 X0JTRF9TT1VSQ0UgfHwgZGVmaW5lZCBfU1ZJRF9TT1VSQ0UKIyBkZWZpbmUgX19VU0VfTUlT
 QwkxCiNlbmRpZgoKI2lmZGVmCV9CU0RfU09VUkNFCiMgZGVmaW5lIF9fVVNFX0JTRAkxCiNl
 bmRpZgoKI2lmZGVmCV9TVklEX1NPVVJDRQojIGRlZmluZSBfX1VTRV9TVklECTEKI2VuZGlm
 CgojaWZkZWYJX0dOVV9TT1VSQ0UKIyBkZWZpbmUgX19VU0VfR05VCTEKI2VuZGlmCgojaWYg
 ZGVmaW5lZCBfUkVFTlRSQU5UIHx8IGRlZmluZWQgX1RIUkVBRF9TQUZFCiMgZGVmaW5lIF9f
 VVNFX1JFRU5UUkFOVAkxCiNlbmRpZgoKLyogV2UgZG8gc3VwcG9ydCB0aGUgSUVDIDU1OSBt
 YXRoIGZ1bmN0aW9uYWxpdHksIHJlYWwgYW5kIGNvbXBsZXguICAqLwojZGVmaW5lIF9fU1RE
 Q19JRUNfNTU5X18JCTEKI2RlZmluZSBfX1NURENfSUVDXzU1OV9DT01QTEVYX18JMQoKLyog
 VGhpcyBtYWNybyBpbmRpY2F0ZXMgdGhhdCB0aGUgaW5zdGFsbGVkIGxpYnJhcnkgaXMgdGhl
 IEdOVSBDIExpYnJhcnkuCiAgIEZvciBoaXN0b3JpYyByZWFzb25zIHRoZSB2YWx1ZSBub3cg
 aXMgNiBhbmQgdGhpcyB3aWxsIHN0YXkgZnJvbSBub3cKICAgb24uICBUaGUgdXNlIG9mIHRo
 aXMgdmFyaWFibGUgaXMgZGVwcmVjYXRlZC4gIFVzZSBfX0dMSUJDX18gYW5kCiAgIF9fR0xJ
 QkNfTUlOT1JfXyBub3cgKHNlZSBiZWxvdykgd2hlbiB5b3Ugd2FudCB0byB0ZXN0IGZvciBh
 IHNwZWNpZmljCiAgIEdOVSBDIGxpYnJhcnkgdmVyc2lvbiBhbmQgdXNlIHRoZSB2YWx1ZXMg
 aW4gPGdudS9saWItbmFtZXMuaD4gdG8gZ2V0CiAgIHRoZSBzb25hbWVzIG9mIHRoZSBzaGFy
 ZWQgbGlicmFyaWVzLiAgKi8KI3VuZGVmICBfX0dOVV9MSUJSQVJZX18KI2RlZmluZSBfX0dO
 VV9MSUJSQVJZX18gNgoKLyogTWFqb3IgYW5kIG1pbm9yIHZlcnNpb24gbnVtYmVyIG9mIHRo
 ZSBHTlUgQyBsaWJyYXJ5IHBhY2thZ2UuICBVc2UKICAgdGhlc2UgbWFjcm9zIHRvIHRlc3Qg
 Zm9yIGZlYXR1cmVzIGluIHNwZWNpZmljIHJlbGVhc2VzLiAgKi8KI2RlZmluZQlfX0dMSUJD
 X18JMgojZGVmaW5lCV9fR0xJQkNfTUlOT1JfXwkxCgovKiBUaGlzIGlzIGhlcmUgb25seSBi
 ZWNhdXNlIGV2ZXJ5IGhlYWRlciBmaWxlIGFscmVhZHkgaW5jbHVkZXMgdGhpcyBvbmUuICAq
 LwojaWZuZGVmIF9fQVNTRU1CTEVSX18KIyBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KCi8qIElm
 IHdlIGRvbid0IGhhdmUgX19SRURJUkVDVCwgcHJvdG90eXBlcyB3aWxsIGJlIG1pc3Npbmcg
 aWYKICAgX19VU0VfRklMRV9PRkZTRVQ2NCBidXQgbm90IF9fVVNFX0xBUkdFRklMRVs2NF0u
 ICovCiMgaWYgZGVmaW5lZCBfX1VTRV9GSUxFX09GRlNFVDY0ICYmICFkZWZpbmVkIF9fUkVE
 SVJFQ1QKIyAgZGVmaW5lIF9fVVNFX0xBUkdFRklMRQojICBkZWZpbmUgX19VU0VfTEFSR0VG
 SUxFNjQKIyBlbmRpZgoKI2VuZGlmCS8qICFBU1NFTUJMRVIgKi8KCi8qIERlY2lkZSB3aGV0
 aGVyIHdlIGNhbiBkZWZpbmUgJ2V4dGVybiBpbmxpbmUnIGZ1bmN0aW9ucyBpbiBoZWFkZXJz
 LiAgKi8KI2lmIGRlZmluZWQgX19HTlVDX18gJiYgKF9fR05VQ19fID4gMiB8fCBfX0dOVUNf
 XyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID49IDcpXAogICAgJiYgZGVmaW5lZCBfX09QVElN
 SVpFX18gJiYgIWRlZmluZWQgX19PUFRJTUlaRV9TSVpFX18KIyBkZWZpbmUgX19VU0VfRVhU
 RVJOX0lOTElORVMJMQojZW5kaWYKCi8qIFRoaXMgaXMgaGVyZSBvbmx5IGJlY2F1c2UgZXZl
 cnkgaGVhZGVyIGZpbGUgYWxyZWFkeSBpbmNsdWRlcyB0aGlzIG9uZS4gICovCiNpZm5kZWYg
 X0xJQkMKLyogR2V0IHRoZSBkZWZpbml0aW9ucyBvZiBhbGwgdGhlIGFwcHJvcHJpYXRlIGBf
 X3N0dWJfRlVOQ1RJT04nIHN5bWJvbHMuCiAgIDxnbnUvc3R1YnMuaD4gY29udGFpbnMgYCNk
 ZWZpbmUgX19zdHViX0ZVTkNUSU9OJyB3aGVuIEZVTkNUSU9OIGlzIGEgc3R1YgogICB3aGlj
 aCB3aWxsIGFsd2F5cyByZXR1cm4gZmFpbHVyZSAoYW5kIHNldCBlcnJubyB0byBFTk9TWVMp
 LgoKICAgV2UgYXZvaWQgaW5jbHVkaW5nIDxnbnUvc3R1YnMuaD4gd2hlbiBjb21waWxpbmcg
 dGhlIEMgbGlicmFyeSBpdHNlbGYgdG8KICAgYXZvaWQgYSBkZXBlbmRlbmN5IGxvb3AuICBz
 dHVicy5oIGRlcGVuZHMgb24gZXZlcnkgb2JqZWN0IGZpbGUuICBJZgogICB0aGlzICNpbmNs
 dWRlIHdlcmUgZG9uZSBmb3IgdGhlIGxpYnJhcnkgc291cmNlIGNvZGUsIHRoZW4gZXZlcnkg
 b2JqZWN0CiAgIGZpbGUgd291bGQgZGVwZW5kIG9uIHN0dWJzLmguICAqLwoKIyBpbmNsdWRl
 IDxnbnUvc3R1YnMuaD4KI2VuZGlmCgojZW5kaWYJLyogZmVhdHVyZXMuaCAgKi8KAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3Iv
 aW5jbHVkZS9zeXMvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMw
 NQAwMDExNjM3ADAwMDAwMDAwMDAwADA3NTY0NTAwNjMyADAxMzE0MgAgNQAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAuL3Vzci9pbmNsdWRlL3N5cy9jZGVmcy5oAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMTE1MjcAMDc1Mzc3
 MTU0NTQAMDE0NDEyACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIENvcHly
 aWdodCAoQykgMTk5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnku
 CgogICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
 dHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
 R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkg
 dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUK
 ICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAg
 IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
 d2lsbCBiZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
 dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
 RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkg
 R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3Vs
 ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
 aWMKICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZp
 bGUgQ09QWUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
 IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9z
 dG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZglfU1lTX0NERUZTX0gKI2Rl
 ZmluZQlfU1lTX0NERUZTX0gJMQoKLyogV2UgYXJlIGFsbW9zdCBhbHdheXMgaW5jbHVkZWQg
 ZnJvbSBmZWF0dXJlcy5oLiAqLwojaWZuZGVmIF9GRUFUVVJFU19ICiNpbmNsdWRlIDxmZWF0
 dXJlcy5oPgojZW5kaWYKCi8qIFNvbWUgdXNlciBoZWFkZXIgZmlsZSBtaWdodCBoYXZlIGRl
 ZmluZWQgdGhpcyBiZWZvcmUuICAqLwojdW5kZWYJX19QCiN1bmRlZglfX1BNVAoKI2lmZGVm
 IF9fR05VQ19fCgovKiBHQ0MgY2FuIGFsd2F5cyBncm9rIHByb3RvdHlwZXMuICBGb3IgQysr
 IHByb2dyYW1zIHdlIGFkZCB0aHJvdygpCiAgIHRvIGhlbHAgaXQgb3B0aW1pemUgdGhlIGZ1
 bmN0aW9uIGNhbGxzLiAgQnV0IHRoaXMgd29ya3Mgb25seSB3aXRoCiAgIGdjYyAyLjgueCBh
 bmQgZWdjcy4gICovCiMgaWYgZGVmaW5lZCBfX2NwbHVzcGx1cyAmJiAoX19HTlVDX18gPj0g
 MyB8fCBfX0dOVUNfTUlOT1JfXyA+PSA4KQojICBkZWZpbmUgX19USFJPVwl0aHJvdyAoKQoj
 IGVsc2UKIyAgZGVmaW5lIF9fVEhST1cKIyBlbmRpZgojIGRlZmluZSBfX1AoYXJncykJYXJn
 cyBfX1RIUk9XCi8qIFRoaXMgbWFjcm8gd2lsbCBiZSB1c2VkIGZvciBmdW5jdGlvbnMgd2hp
 Y2ggbWlnaHQgdGFrZSBDKysgY2FsbGJhY2sKICAgZnVuY3Rpb25zLiAgKi8KIyBkZWZpbmUg
 X19QTVQoYXJncykJYXJncwojIGRlZmluZSBfX0RPVFMJCSwgLi4uCgojZWxzZQkvKiBOb3Qg
 R0NDLiAgKi8KCiMgZGVmaW5lIF9faW5saW5lCQkvKiBObyBpbmxpbmUgZnVuY3Rpb25zLiAg
 Ki8KCiMgaWYgKGRlZmluZWQgX19TVERDX18gJiYgX19TVERDX18pIHx8IGRlZmluZWQgX19j
 cGx1c3BsdXMKCiMgIGRlZmluZSBfX1AoYXJncykJYXJncwojICBkZWZpbmUgX19QTVQoYXJn
 cykJYXJncwojICBkZWZpbmUgX19jb25zdAljb25zdAojICBkZWZpbmUgX19zaWduZWQJc2ln
 bmVkCiMgIGRlZmluZSBfX3ZvbGF0aWxlCXZvbGF0aWxlCiMgIGRlZmluZSBfX0RPVFMJLCAu
 Li4KCiMgZWxzZQkvKiBOb3QgQU5TSSBDIG9yIEMrKy4gICovCgojICBkZWZpbmUgX19QKGFy
 Z3MpCSgpCS8qIE5vIHByb3RvdHlwZXMuICAqLwojICBkZWZpbmUgX19QTVQoYXJncykJKCkK
 IyAgZGVmaW5lIF9fY29uc3QJCS8qIE5vIEFOU0kgQyBrZXl3b3Jkcy4gICovCiMgIGRlZmlu
 ZSBfX3NpZ25lZAojICBkZWZpbmUgX192b2xhdGlsZQojICBkZWZpbmUgX19ET1RTCgojIGVu
 ZGlmCS8qIEFOU0kgQyBvciBDKysuICAqLwoKI2VuZGlmCS8qIEdDQy4gICovCgovKiBGb3Ig
 dGhlc2UgdGhpbmdzLCBHQ0MgYmVoYXZlcyB0aGUgQU5TSSB3YXkgbm9ybWFsbHksCiAgIGFu
 ZCB0aGUgbm9uLUFOU0kgd2F5IHVuZGVyIC10cmFkaXRpb25hbC4gICovCgojaWYgZGVmaW5l
 ZCBfX1NURENfXyAmJiBfX1NURENfXwoKIyBkZWZpbmUgX19DT05DQVQoeCx5KQl4ICMjIHkK
 IyBkZWZpbmUgX19TVFJJTkcoeCkJI3gKCi8qIFRoaXMgaXMgbm90IGEgdHlwZWRlZiBzbyBg
 Y29uc3QgX19wdHJfdCcgZG9lcyB0aGUgcmlnaHQgdGhpbmcuICAqLwojIGRlZmluZSBfX3B0
 cl90IHZvaWQgKgojIGRlZmluZSBfX2xvbmdfZG91YmxlX3QgIGxvbmcgZG91YmxlCgojZWxz
 ZQoKIyBkZWZpbmUgX19DT05DQVQoeCx5KQl4LyoqL3kKIyBkZWZpbmUgX19TVFJJTkcoeCkJ
 IngiCgojIGRlZmluZSBfX3B0cl90IGNoYXIgKgojIGRlZmluZSBfX2xvbmdfZG91YmxlX3Qg
 IGxvbmcgZG91YmxlCgovKiBUaGUgQlNEIGhlYWRlciBmaWxlcyB1c2UgdGhlIEFOU0kga2V5
 d29yZHMgdW5tb2RpZmllZCAodGhpcyBtZWFucyB0aGF0CiAgIG9sZCBwcm9ncmFtcyBtYXkg
 bG9zZSBpZiB0aGV5IHVzZSB0aGUgbmV3IGtleXdvcmRzIGFzIGlkZW50aWZpZXJzKSwgYnV0
 CiAgIHRob3NlIG5hbWVzIGFyZSBub3QgYXZhaWxhYmxlIHVuZGVyIC10cmFkaXRpb25hbC4g
 IFdlIGRlZmluZSB0aGVtIHRvCiAgIHRoZWlyIF9fIHZlcnNpb25zLCB3aGljaCBhcmUgdGFr
 ZW4gY2FyZSBvZiBhYm92ZS4gICovCiNpZmRlZglfX1VTRV9CU0QKIyBkZWZpbmUgY29uc3QJ
 CV9fY29uc3QKIyBkZWZpbmUgc2lnbmVkCQlfX3NpZ25lZAojIGRlZmluZSB2b2xhdGlsZQlf
 X3ZvbGF0aWxlCiNlbmRpZgoKI2VuZGlmCS8qIF9fU1REQ19fICovCgoKLyogQysrIG5lZWRz
 IHRvIGtub3cgdGhhdCB0eXBlcyBhbmQgZGVjbGFyYXRpb25zIGFyZSBDLCBub3QgQysrLiAg
 Ki8KI2lmZGVmCV9fY3BsdXNwbHVzCiMgZGVmaW5lIF9fQkVHSU5fREVDTFMJZXh0ZXJuICJD
 IiB7CiMgZGVmaW5lIF9fRU5EX0RFQ0xTCX0KI2Vsc2UKIyBkZWZpbmUgX19CRUdJTl9ERUNM
 UwojIGRlZmluZSBfX0VORF9ERUNMUwojZW5kaWYKCi8qIF9fYXNtX18gKCJ4eXoiKSBpcyB1
 c2VkIHRocm91Z2hvdXQgdGhlIGhlYWRlcnMgdG8gcmVuYW1lIGZ1bmN0aW9ucwogICBhdCB0
 aGUgYXNzZW1ibHkgbGFuZ3VhZ2UgbGV2ZWwuICBUaGlzIGlzIHdyYXBwZWQgYnkgdGhlIF9f
 UkVESVJFQ1QKICAgbWFjcm8sIGluIG9yZGVyIHRvIHN1cHBvcnQgY29tcGlsZXJzIHRoYXQg
 Y2FuIGRvIHRoaXMgc29tZSBvdGhlcgogICB3YXkuICBXaGVuIGNvbXBpbGVycyBkb24ndCBz
 dXBwb3J0IGFzbS1uYW1lcyBhdCBhbGwsIHdlIGhhdmUgdG8gZG8KICAgcHJlcHJvY2Vzc29y
 IHRyaWNrcyBpbnN0ZWFkICh3aGljaCBkb24ndCBoYXZlIGV4YWN0bHkgdGhlIHJpZ2h0CiAg
 IHNlbWFudGljcywgYnV0IGl0J3MgdGhlIGJlc3Qgd2UgY2FuIGRvKS4KCiAgIEV4YW1wbGU6
 CiAgIGludCBfX1JFRElSRUNUKHNldHBncnAsIF9fUCgoX19waWRfdCBwaWQsIF9fcGlkX3Qg
 cGdycCkpLCBzZXRwZ2lkKTsgKi8KCiNpZiBkZWZpbmVkIF9fR05VQ19fICYmIF9fR05VQ19f
 ID49IDIKCiMgZGVmaW5lIF9fUkVESVJFQ1QobmFtZSwgcHJvdG8sIGFsaWFzKSBuYW1lIHBy
 b3RvIF9fYXNtX18gKF9fQVNNTkFNRSAoI2FsaWFzKSkKIyBkZWZpbmUgX19BU01OQU1FKGNu
 YW1lKSAgX19BU01OQU1FMiAoX19VU0VSX0xBQkVMX1BSRUZJWF9fLCBjbmFtZSkKIyBkZWZp
 bmUgX19BU01OQU1FMihwcmVmaXgsIGNuYW1lKSBfX1NUUklORyAocHJlZml4KSBjbmFtZQoK
 LyoKI2VsaWYgX19TT01FX09USEVSX0NPTVBJTEVSX18KCiMgZGVmaW5lIF9fYXR0cmlidXRl
 X18oeHl6KQojIGRlZmluZSBfX1JFRElSRUNUKG5hbWUsIHByb3RvLCBhbGlhcykgbmFtZSBw
 cm90bzsgXAoJX1ByYWdtYSgibGV0ICIgI25hbWUgIiA9ICIgI2FsaWFzKQoqLwojZW5kaWYK
 Ci8qIEdDQyBoYXMgdmFyaW91cyB1c2VmdWwgZGVjbGFyYXRpb25zIHRoYXQgY2FuIGJlIG1h
 ZGUgd2l0aCB0aGUKICAgYF9fYXR0cmlidXRlX18nIHN5bnRheC4gIEFsbCBvZiB0aGUgd2F5
 cyB3ZSB1c2UgdGhpcyBkbyBmaW5lIGlmCiAgIHRoZXkgYXJlIG9taXR0ZWQgZm9yIGNvbXBp
 bGVycyB0aGF0IGRvbid0IHVuZGVyc3RhbmQgaXQuICovCiNpZiAhZGVmaW5lZCBfX0dOVUNf
 XyB8fCBfX0dOVUNfXyA8IDIKCiMgZGVmaW5lIF9fYXR0cmlidXRlX18oeHl6KQkvKiBJZ25v
 cmUuICovCgojZW5kaWYKCi8qIEl0IGlzIHBvc3NpYmxlIHRvIGNvbXBpbGUgY29udGFpbmlu
 ZyBHQ0MgZXh0ZW5zaW9ucyBldmVuIGlmIEdDQyBpcwogICBydW4gaW4gcGVkYW50aWMgbW9k
 ZSBpZiB0aGUgdXNlcyBhcmUgY2FyZWZ1bGx5IG1hcmtlZCB1c2luZyB0aGUKICAgYF9fZXh0
 ZW5zaW9uX18nIGtleXdvcmQuICBCdXQgdGhpcyBpcyBub3QgZ2VuZXJhbGx5IGF2YWlsYWJs
 ZSBiZWZvcmUKICAgdmVyc2lvbiAyLjguICAqLwojaWYgIWRlZmluZWQgX19HTlVDX18gfHwg
 X19HTlVDX18gPCAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fIDwgOCkK
 CiMgZGVmaW5lIF9fZXh0ZW5zaW9uX18JCS8qIElnbm9yZSAqLwoKI2VuZGlmCgovKiBfX3Jl
 c3RyaWN0IGlzIGtub3duIGluIEVHQ1MgMS4yIGFuZCBhYm92ZS4gKi8KI2lmICFkZWZpbmVk
 IF9fR05VQ19fIHx8IF9fR05VQ19fIDwgMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNf
 TUlOT1JfXyA8IDkyKQoKIyBkZWZpbmUgX19yZXN0cmljdAkvKiBJZ25vcmUgKi8KCiNlbmRp
 ZgoKI2VuZGlmCSAvKiBzeXMvY2RlZnMuaCAqLwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9nbnUv
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwNDA3NzUAMDAwMzMwNQAwMDExNjM3ADAw
 MDAwMDAwMDAwADA3NTY0NTAwNjMyADAxMzExNQAgNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAuL3Vzci9pbmNsdWRlL2dudS9zdHVicy5oAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 MDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMDE3NzUAMDc1Mzc3MTU2MzEAMDE0NDQy
 ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFy
 ICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIFRoaXMgZmlsZSBpcyBhdXRv
 bWF0aWNhbGx5IGdlbmVyYXRlZC4KICAgSXQgZGVmaW5lcyBhIHN5bWJvbCBgX19zdHViX0ZV
 TkNUSU9OJyBmb3IgZWFjaCBmdW5jdGlvbgogICBpbiB0aGUgQyBsaWJyYXJ5IHdoaWNoIGlz
 IGEgc3R1YiwgbWVhbmluZyBpdCB3aWxsIGZhaWwKICAgZXZlcnkgdGltZSBjYWxsZWQsIHVz
 dWFsbHkgc2V0dGluZyBlcnJubyB0byBFTk9TWVMuICAqLwojZGVmaW5lIF9fc3R1Yl9fX2tl
 cm5lbF9jb3NsCiNkZWZpbmUgX19zdHViX19fa2VybmVsX3NpbmwKI2RlZmluZSBfX3N0dWJf
 X19rZXJuZWxfdGFubAojZGVmaW5lIF9fc3R1Yl9jaGZsYWdzCiNkZWZpbmUgX19zdHViX2Vy
 ZmNsCiNkZWZpbmUgX19zdHViX2VyZmwKI2RlZmluZSBfX3N0dWJfZmF0dGFjaAojZGVmaW5l
 IF9fc3R1Yl9mY2hmbGFncwojZGVmaW5lIF9fc3R1Yl9mZGV0YWNoCiNkZWZpbmUgX19zdHVi
 X2ZleGVjdmUKI2RlZmluZSBfX3N0dWJfZ2V0Y29udGV4dAojZGVmaW5lIF9fc3R1Yl9nZXRt
 c2cKI2RlZmluZSBfX3N0dWJfZ2V0cG1zZwojZGVmaW5lIF9fc3R1Yl9ndHR5CiNkZWZpbmUg
 X19zdHViX2owbAojZGVmaW5lIF9fc3R1Yl9qMWwKI2RlZmluZSBfX3N0dWJfam5sCiNkZWZp
 bmUgX19zdHViX2xnYW1tYWwKI2RlZmluZSBfX3N0dWJfbGdhbW1hbAojZGVmaW5lIF9fc3R1
 Yl9sZ2FtbWFsX3IKI2RlZmluZSBfX3N0dWJfbGdhbW1hbF9yCiNkZWZpbmUgX19zdHViX21h
 ZHZpc2UKI2RlZmluZSBfX3N0dWJfbWFrZWNvbnRleHQKI2RlZmluZSBfX3N0dWJfcHV0bXNn
 CiNkZWZpbmUgX19zdHViX3B1dHBtc2cKI2RlZmluZSBfX3N0dWJfcmV2b2tlCiNkZWZpbmUg
 X19zdHViX3NldGNvbnRleHQKI2RlZmluZSBfX3N0dWJfc2V0bG9naW4KI2RlZmluZSBfX3N0
 dWJfc2lncmV0dXJuCiNkZWZpbmUgX19zdHViX3NzdGsKI2RlZmluZSBfX3N0dWJfc3R0eQoj
 ZGVmaW5lIF9fc3R1Yl9zd2FwY29udGV4dAojZGVmaW5lIF9fc3R1Yl95MGwKI2RlZmluZSBf
 X3N0dWJfeTFsCiNkZWZpbmUgX19zdHViX3lubAoAAAAuL3Vzci9pbmNsdWRlL21hdGguaAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAw
 MzIyNDMAMDc1Mzc3MTU0MDcAMDEzNDM1ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAC8qIERlY2xhcmF0aW9ucyBmb3IgbWF0aCBmdW5jdGlvbnMuCiAgIENvcHlyaWdodCAo
 QykgMTk5MSw5Miw5Myw5NSw5Niw5Nyw5OCw5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
 IEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCgogICBU
 aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
 ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
 YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGlj
 ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBH
 TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
 ZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
 ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
 UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJh
 bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZl
 IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
 TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBN
 QSAwMjExMS0xMzA3LCBVU0EuICAqLwoKLyoKICoJSVNPIEMgU3RhbmRhcmQ6IDQuNSBNQVRI
 RU1BVElDUwk8bWF0aC5oPgogKi8KCiNpZm5kZWYJX01BVEhfSAojZGVmaW5lCV9NQVRIX0gJ
 MQoKI2luY2x1ZGUgPGZlYXR1cmVzLmg+CgpfX0JFR0lOX0RFQ0xTCgovKiBHZXQgbWFjaGlu
 ZS1kZXBlbmRlbnQgSFVHRV9WQUwgdmFsdWUgKHJldHVybmVkIG9uIG92ZXJmbG93KS4KICAg
 T24gYWxsIElFRUU3NTQgbWFjaGluZXMsIHRoaXMgaXMgK0luZmluaXR5LiAgKi8KI2luY2x1
 ZGUgPGJpdHMvaHVnZV92YWwuaD4KCi8qIEdldCBtYWNoaW5lLWRlcGVuZGVudCBOQU4gdmFs
 dWUgKHJldHVybmVkIGZvciBzb21lIGRvbWFpbiBlcnJvcnMpLiAgKi8KI2lmZGVmCSBfX1VT
 RV9JU09DOVgKIyBpbmNsdWRlIDxiaXRzL25hbi5oPgojZW5kaWYKLyogR2V0IGdlbmVyYWwg
 YW5kIElTTyBDIDlYIHNwZWNpZmljIGluZm9ybWF0aW9uLiAgKi8KI2luY2x1ZGUgPGJpdHMv
 bWF0aGRlZi5oPgoKCi8qIFRoZSBmaWxlIDxiaXRzL21hdGhjYWxscy5oPiBjb250YWlucyB0
 aGUgcHJvdG90eXBlcyBmb3IgYWxsIHRoZQogICBhY3R1YWwgbWF0aCBmdW5jdGlvbnMuICBU
 aGVzZSBtYWNyb3MgYXJlIHVzZWQgZm9yIHRob3NlIHByb3RvdHlwZXMsCiAgIHNvIHdlIGNh
 biBlYXNpbHkgZGVjbGFyZSBlYWNoIGZ1bmN0aW9uIGFzIGJvdGggYG5hbWUnIGFuZCBgX19u
 YW1lJywKICAgYW5kIGNhbiBkZWNsYXJlIHRoZSBmbG9hdCB2ZXJzaW9ucyBgbmFtZWYnIGFu
 ZCBgX19uYW1lZicuICAqLwoKI2RlZmluZSBfX01BVEhDQUxMKGZ1bmN0aW9uLHN1ZmZpeCwg
 YXJncykJXAogIF9fTUFUSERFQ0wgKF9NZG91YmxlXyxmdW5jdGlvbixzdWZmaXgsIGFyZ3Mp
 CiNkZWZpbmUgX19NQVRIREVDTCh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MpIFwKICBf
 X01BVEhERUNMXzEodHlwZSwgZnVuY3Rpb24sc3VmZml4LCBhcmdzKTsgXAogIF9fTUFUSERF
 Q0xfMSh0eXBlLCBfX0NPTkNBVChfXyxmdW5jdGlvbiksc3VmZml4LCBhcmdzKQojZGVmaW5l
 IF9fTUFUSENBTExYKGZ1bmN0aW9uLHN1ZmZpeCwgYXJncywgYXR0cmliKQlcCiAgX19NQVRI
 REVDTFggKF9NZG91YmxlXyxmdW5jdGlvbixzdWZmaXgsIGFyZ3MsIGF0dHJpYikKI2RlZmlu
 ZSBfX01BVEhERUNMWCh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MsIGF0dHJpYikgXAog
 IF9fTUFUSERFQ0xfMSh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MpIF9fYXR0cmlidXRl
 X18gKGF0dHJpYik7IFwKICBfX01BVEhERUNMXzEodHlwZSwgX19DT05DQVQoX18sZnVuY3Rp
 b24pLHN1ZmZpeCwgYXJncykgX19hdHRyaWJ1dGVfXyAoYXR0cmliKQojZGVmaW5lIF9fTUFU
 SERFQ0xfMSh0eXBlLCBmdW5jdGlvbixzdWZmaXgsIGFyZ3MpIFwKICBleHRlcm4gdHlwZSBf
 X01BVEhfUFJFQ05BTUUoZnVuY3Rpb24sc3VmZml4KSBhcmdzCgojZGVmaW5lIF9NZG91Ymxl
 XyAJCWRvdWJsZQojZGVmaW5lIF9fTUFUSF9QUkVDTkFNRShuYW1lLHIpCV9fQ09OQ0FUKG5h
 bWUscikKI2luY2x1ZGUgPGJpdHMvbWF0aGNhbGxzLmg+CiN1bmRlZglfTWRvdWJsZV8KI3Vu
 ZGVmCV9fTUFUSF9QUkVDTkFNRQoKI2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVk
 IF9fVVNFX0lTT0M5WAoKCi8qIEluY2x1ZGUgdGhlIGZpbGUgb2YgZGVjbGFyYXRpb25zIGFn
 YWluLCB0aGlzIHRpbWUgdXNpbmcgYGZsb2F0JwogICBpbnN0ZWFkIG9mIGBkb3VibGUnIGFu
 ZCBhcHBlbmRpbmcgZiB0byBlYWNoIGZ1bmN0aW9uIG5hbWUuICAqLwoKIyBpZm5kZWYgX01m
 bG9hdF8KIyAgZGVmaW5lIF9NZmxvYXRfCQlmbG9hdAojIGVuZGlmCiMgZGVmaW5lIF9NZG91
 YmxlXyAJCV9NZmxvYXRfCiMgaWZkZWYgX19TVERDX18KIyAgZGVmaW5lIF9fTUFUSF9QUkVD
 TkFNRShuYW1lLHIpIG5hbWUjI2YjI3IKIyBlbHNlCiMgIGRlZmluZSBfX01BVEhfUFJFQ05B
 TUUobmFtZSxyKSBuYW1lLyoqL2YvKiovcgojIGVuZGlmCiMgaW5jbHVkZSA8Yml0cy9tYXRo
 Y2FsbHMuaD4KIyB1bmRlZglfTWRvdWJsZV8KIyB1bmRlZglfX01BVEhfUFJFQ05BTUUKCiMg
 aWYgKF9fU1REQ19fIC0gMCB8fCBfX0dOVUNfXyAtIDApICYmICFkZWZpbmVkIF9fTk9fTE9O
 R19ET1VCTEVfTUFUSAovKiBJbmNsdWRlIHRoZSBmaWxlIG9mIGRlY2xhcmF0aW9ucyBhZ2Fp
 biwgdGhpcyB0aW1lIHVzaW5nIGBsb25nIGRvdWJsZScKICAgaW5zdGVhZCBvZiBgZG91Ymxl
 JyBhbmQgYXBwZW5kaW5nIGwgdG8gZWFjaCBmdW5jdGlvbiBuYW1lLiAgKi8KCiMgIGlmbmRl
 ZiBfTWxvbmdfZG91YmxlXwojICAgZGVmaW5lIF9NbG9uZ19kb3VibGVfCWxvbmcgZG91Ymxl
 CiMgIGVuZGlmCiMgIGRlZmluZSBfTWRvdWJsZV8gCQlfTWxvbmdfZG91YmxlXwojICBpZmRl
 ZiBfX1NURENfXwojICAgZGVmaW5lIF9fTUFUSF9QUkVDTkFNRShuYW1lLHIpIG5hbWUjI2wj
 I3IKIyAgZWxzZQojICAgZGVmaW5lIF9fTUFUSF9QUkVDTkFNRShuYW1lLHIpIG5hbWUvKiov
 bC8qKi9yCiMgIGVuZGlmCiMgIGluY2x1ZGUgPGJpdHMvbWF0aGNhbGxzLmg+CiMgIHVuZGVm
 IF9NZG91YmxlXwojICB1bmRlZiBfX01BVEhfUFJFQ05BTUUKCiMgZW5kaWYgLyogX19TVERD
 X18gfHwgX19HTlVDX18gKi8KCiNlbmRpZgkvKiBVc2UgbWlzYyBvciBJU08gQyA5WC4gICov
 CiN1bmRlZglfX01BVEhERUNMXzEKI3VuZGVmCV9fTUFUSERFQ0wKI3VuZGVmCV9fTUFUSENB
 TEwKCgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmluZWQgX19VU0VfWE9QRU4gfHwg
 ZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogVGhpcyB2YXJpYWJsZSBpcyB1c2VkIGJ5IGBnYW1t
 YScgYW5kIGBsZ2FtbWEnLiAgKi8KZXh0ZXJuIGludCBzaWduZ2FtOwojZW5kaWYKCgovKiBJ
 U08gQyA5WCBkZWZpbmVzIHNvbWUgZ2VuZXJpYyBtYWNyb3Mgd2hpY2ggd29yayBvbiBhbnkg
 ZGF0YSB0eXBlLiAgKi8KI2lmIF9fVVNFX0lTT0M5WAoKLyogR2V0IHRoZSBhcmNoaXRlY3R1
 cmUgc3BlY2lmaWMgdmFsdWVzIGRlc2NyaWJpbmcgdGhlIGZsb2F0aW5nLXBvaW50CiAgIGV2
 YWx1YXRpb24uICBUaGUgZm9sbG93aW5nIHN5bWJvbHMgd2lsbCBnZXQgZGVmaW5lZDoKCiAg
 ICBmbG9hdF90CWZsb2F0aW5nLXBvaW50IHR5cGUgYXQgbGVhc3QgYXMgd2lkZSBhcyBgZmxv
 YXQnIHVzZWQKCQl0byBldmFsdWF0ZSBgZmxvYXQnIGV4cHJlc3Npb25zCiAgICBkb3VibGVf
 dAlmbG9hdGluZy1wb2ludCB0eXBlIGF0IGxlYXN0IGFzIHdpZGUgYXMgYGRvdWJsZScgdXNl
 ZAoJCXRvIGV2YWx1YXRlIGBkb3VibGUnIGV4cHJlc3Npb25zCgogICAgRkxUX0VWQUxfTUVU
 SE9ECgkJRGVmaW5lZCB0bwoJCSAgMAlpZiBgZmxvYXRfdCcgaXMgYGZsb2F0JyBhbmQgYGRv
 dWJsZV90JyBpcyBgZG91YmxlJwoJCSAgMQlpZiBgZmxvYXRfdCcgYW5kIGBkb3VibGVfdCcg
 YXJlIGBkb3VibGUnCgkJICAyCWlmIGBmbG9hdF90JyBhbmQgYGRvdWJsZV90JyBhcmUgYGxv
 bmcgZG91YmxlJwoJCSAgZWxzZQlgZmxvYXRfdCcgYW5kIGBkb3VibGVfdCcgYXJlIHVuc3Bl
 Y2lmaWVkCgogICAgSU5GSU5JVFkJcmVwcmVzZW50YXRpb24gb2YgdGhlIGluZmluaXR5IHZh
 bHVlIG9mIHR5cGUgYGZsb2F0JwoKICAgIEZQX0ZBU1RfRk1BCiAgICBGUF9GQVNUX0ZNQUYK
 ICAgIEZQX0ZBU1RfRk1BTAoJCUlmIGRlZmluZWQgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIGBm
 bWEnIGZ1bmN0aW9uCgkJZ2VuZXJhbGx5IGV4ZWN1dGVzIGFib3V0IGFzIGZhc3QgYXMgYSBt
 dWx0aXBseSBhbmQgYW4gYWRkLgoJCVRoaXMgbWFjcm8gaXMgZGVmaW5lZCBvbmx5IGlmZiB0
 aGUgYGZtYScgZnVuY3Rpb24gaXMKCQlpbXBsZW1lbnRlZCBkaXJlY3RseSB3aXRoIGEgaGFy
 ZHdhcmUgbXVsdGlwbHktYWRkIGluc3RydWN0aW9ucy4KCiAgICBGUF9JTE9HQjAJRXhwYW5k
 cyB0byBhIHZhbHVlIHJldHVybmVkIGJ5IGBpbG9nYiAoMC4wKScuCiAgICBGUF9JTE9HQk5B
 TglFeHBhbmRzIHRvIGEgdmFsdWUgcmV0dXJuZWQgYnkgYGlsb2diIChOQU4pJy4KCiAgICBE
 RUNJTUFMX0RJRwlOdW1iZXIgb2YgZGVjaW1hbCBkaWdpdHMgc3VwcG9ydGVkIGJ5IGNvbnZl
 cnNpb24gYmV0d2VlbgoJCWRlY2ltYWwgYW5kIGFsbCBpbnRlcm5hbCBmbG9hdGluZy1wb2lu
 dCBmb3JtYXRzLgoKKi8KCi8qIEFsbCBmbG9hdGluZy1wb2ludCBudW1iZXJzIGNhbiBiZSBw
 dXQgaW4gb25lIG9mIHRoZXNlIGNhdGVnb3JpZXMuICAqLwplbnVtCiAgewogICAgRlBfTkFO
 LAojIGRlZmluZSBGUF9OQU4gRlBfTkFOCiAgICBGUF9JTkZJTklURSwKIyBkZWZpbmUgRlBf
 SU5GSU5JVEUgRlBfSU5GSU5JVEUKICAgIEZQX1pFUk8sCiMgZGVmaW5lIEZQX1pFUk8gRlBf
 WkVSTwogICAgRlBfU1VCTk9STUFMLAojIGRlZmluZSBGUF9TVUJOT1JNQUwgRlBfU1VCTk9S
 TUFMCiAgICBGUF9OT1JNQUwKIyBkZWZpbmUgRlBfTk9STUFMIEZQX05PUk1BTAogIH07Cgov
 KiBSZXR1cm4gbnVtYmVyIG9mIGNsYXNzaWZpY2F0aW9uIGFwcHJvcHJpYXRlIGZvciBYLiAg
 Ki8KIyBpZmRlZiBfX05PX0xPTkdfRE9VQkxFX01BVEgKIyAgZGVmaW5lIGZwY2xhc3NpZnko
 eCkgXAogICAgIChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpID8gX19mcGNsYXNzaWZ5
 ZiAoeCkgOiBfX2ZwY2xhc3NpZnkgKHgpKQojIGVsc2UKIyAgZGVmaW5lIGZwY2xhc3NpZnko
 eCkgXAogICAgIChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpID8JCQkJCSAgICAgIFwK
 ICAgICAgICBfX2ZwY2xhc3NpZnlmICh4KQkJCQkJCSAgICAgIFwKICAgICAgOiBzaXplb2Yg
 KHgpID09IHNpemVvZiAoZG91YmxlKSA/CQkJCQkgICAgICBcCiAgICAgICAgX19mcGNsYXNz
 aWZ5ICh4KSA6IF9fZnBjbGFzc2lmeWwgKHgpKQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVy
 byB2YWx1ZSBpZiBzaWduIG9mIFggaXMgbmVnYXRpdmUuICAqLwojIGlmZGVmIF9fTk9fTE9O
 R19ET1VCTEVfTUFUSAojICBkZWZpbmUgc2lnbmJpdCh4KSBcCiAgICAgKHNpemVvZiAoeCkg
 PT0gc2l6ZW9mIChmbG9hdCkgPyBfX3NpZ25iaXRmICh4KSA6IF9fc2lnbmJpdCAoeCkpCiMg
 ZWxzZQojICBkZWZpbmUgc2lnbmJpdCh4KSBcCiAgICAgKHNpemVvZiAoeCkgPT0gc2l6ZW9m
 IChmbG9hdCkgPwkJCQkJICAgICAgXAogICAgICAgIF9fc2lnbmJpdGYgKHgpCQkJCQkJCSAg
 ICAgIFwKICAgICAgOiBzaXplb2YgKHgpID09IHNpemVvZiAoZG91YmxlKSA/CQkJCQkgICAg
 ICBcCiAgICAgICAgX19zaWduYml0ICh4KSA6IF9fc2lnbmJpdGwgKHgpKQojIGVuZGlmCgov
 KiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpZiBYIGlzIG5vdCArLUluZiBvciBOYU4uICAqLwoj
 IGlmZGVmIF9fTk9fTE9OR19ET1VCTEVfTUFUSAojICBkZWZpbmUgaXNmaW5pdGUoeCkgXAog
 ICAgIChzaXplb2YgKHgpID09IHNpemVvZiAoZmxvYXQpID8gX19maW5pdGVmICh4KSA6IF9f
 ZmluaXRlICh4KSkKIyBlbHNlCiMgIGRlZmluZSBpc2Zpbml0ZSh4KSBcCiAgICAgKHNpemVv
 ZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkgPwkJCQkJICAgICAgXAogICAgICAgIF9fZmluaXRl
 ZiAoeCkJCQkJCQkJICAgICAgXAogICAgICA6IHNpemVvZiAoeCkgPT0gc2l6ZW9mIChkb3Vi
 bGUpID8JCQkJCSAgICAgIFwKICAgICAgICBfX2Zpbml0ZSAoeCkgOiBfX2Zpbml0ZWwgKHgp
 KQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpZiBYIGlzIG5laXRoZXIgemVy
 bywgc3Vibm9ybWFsLCBJbmYsIG5vciBOYU4uICAqLwojIGRlZmluZSBpc25vcm1hbCh4KSAo
 ZnBjbGFzc2lmeSAoeCkgPT0gRlBfTk9STUFMKQoKLyogUmV0dXJuIG5vbnplcm8gdmFsdWUg
 aWYgWCBpcyBhIE5hTi4gIFdlIGNvdWxkIHVzZSBgZnBjbGFzc2lmeScgYnV0CiAgIHdlIGFs
 cmVhZHkgaGF2ZSB0aGlzIGZ1bmN0aW9ucyBgX19pc25hbicgYW5kIGl0IGlzIGZhc3Rlci4g
 ICovCiMgaWZkZWYgX19OT19MT05HX0RPVUJMRV9NQVRICiMgIGRlZmluZSBpc25hbih4KSBc
 CiAgICAgKHNpemVvZiAoeCkgPT0gc2l6ZW9mIChmbG9hdCkgPyBfX2lzbmFuZiAoeCkgOiBf
 X2lzbmFuICh4KSkKIyBlbHNlCiMgIGRlZmluZSBpc25hbih4KSBcCiAgICAgKHNpemVvZiAo
 eCkgPT0gc2l6ZW9mIChmbG9hdCkgPwkJCQkJICAgICAgXAogICAgICAgIF9faXNuYW5mICh4
 KQkJCQkJCQkgICAgICBcCiAgICAgIDogc2l6ZW9mICh4KSA9PSBzaXplb2YgKGRvdWJsZSkg
 PwkJCQkJICAgICAgXAogICAgICAgIF9faXNuYW4gKHgpIDogX19pc25hbmwgKHgpKQojIGVu
 ZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpcyBYIGlzIHBvc2l0aXZlIG9yIG5lZ2F0
 aXZlIGluZmluaXR5LiAgKi8KIyBpZmRlZiBfX05PX0xPTkdfRE9VQkxFX01BVEgKIyAgZGVm
 aW5lIGlzaW5mKHgpIFwKICAgICAoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSA/IF9f
 aXNpbmZmICh4KSA6IF9faXNpbmYgKHgpKQojIGVsc2UKIyAgZGVmaW5lIGlzaW5mKHgpIFwK
 ICAgICAoc2l6ZW9mICh4KSA9PSBzaXplb2YgKGZsb2F0KSA/CQkJCQkgICAgICBcCiAgICAg
 ICAgX19pc2luZmYgKHgpCQkJCQkJCSAgICAgIFwKICAgICAgOiBzaXplb2YgKHgpID09IHNp
 emVvZiAoZG91YmxlKSA/CQkJCQkgICAgICBcCiAgICAgICAgX19pc2luZiAoeCkgOiBfX2lz
 aW5mbCAoeCkpCiMgZW5kaWYKCiNlbmRpZiAvKiBVc2UgSVNPIEMgOVguICAqLwoKI2lmZGVm
 CV9fVVNFX01JU0MKLyogU3VwcG9ydCBmb3IgdmFyaW91cyBkaWZmZXJlbnQgc3RhbmRhcmQg
 ZXJyb3IgaGFuZGxpbmcgYmVoYXZpb3JzLiAgKi8KdHlwZWRlZiBlbnVtCnsKICBfSUVFRV8g
 PSAtMSwJLyogQWNjb3JkaW5nIHRvIElFRUUgNzU0L0lFRUUgODU0LiAgKi8KICBfU1ZJRF8s
 CS8qIEFjY29yZGluZyB0byBTeXN0ZW0gViwgcmVsZWFzZSA0LiAgKi8KICBfWE9QRU5fLAkv
 KiBOb3dhZGF5cyBhbHNvIFVuaXg5OC4gICovCiAgX1BPU0lYXywKICBfSVNPQ18JLyogQWN0
 dWFsbHkgdGhpcyBpcyBJU08gQyA5WC4gICovCn0gX0xJQl9WRVJTSU9OX1RZUEU7CgovKiBU
 aGlzIHZhcmlhYmxlIGNhbiBiZSBjaGFuZ2VkIGF0IHJ1bi10aW1lIHRvIGFueSBvZiB0aGUg
 dmFsdWVzIGFib3ZlIHRvCiAgIGFmZmVjdCBmbG9hdGluZyBwb2ludCBlcnJvciBoYW5kbGlu
 ZyBiZWhhdmlvciAoaXQgbWF5IGFsc28gYmUgbmVjZXNzYXJ5CiAgIHRvIGNoYW5nZSB0aGUg
 aGFyZHdhcmUgRlBVIGV4Y2VwdGlvbiBzZXR0aW5ncykuICAqLwpleHRlcm4gX0xJQl9WRVJT
 SU9OX1RZUEUgX0xJQl9WRVJTSU9OOwojZW5kaWYKCgojaWZkZWYgX19VU0VfU1ZJRAovKiBJ
 biBTVklEIGVycm9yIGhhbmRsaW5nLCBgbWF0aGVycicgaXMgY2FsbGVkIHdpdGggdGhpcyBk
 ZXNjcmlwdGlvbgogICBvZiB0aGUgZXhjZXB0aW9uYWwgY29uZGl0aW9uLgoKICAgV2UgaGF2
 ZSBhIHByb2JsZW0gd2hlbiB1c2luZyBDKysgc2luY2UgYGV4Y2VwdGlvbicgaXMgYSByZXNl
 cnZlZAogICBuYW1lIGluIEMrKy4gICovCiMgaWZkZWYgX19jcGx1c3BsdXMKc3RydWN0IF9f
 ZXhjZXB0aW9uCiMgZWxzZQpzdHJ1Y3QgZXhjZXB0aW9uCiMgZW5kaWYKICB7CiAgICBpbnQg
 dHlwZTsKICAgIGNoYXIgKm5hbWU7CiAgICBkb3VibGUgYXJnMTsKICAgIGRvdWJsZSBhcmcy
 OwogICAgZG91YmxlIHJldHZhbDsKICB9OwoKIyBpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4g
 aW50IG1hdGhlcnIgX19QICgoc3RydWN0IF9fZXhjZXB0aW9uICpfX2V4YykpOwojIGVsc2UK
 ZXh0ZXJuIGludCBtYXRoZXJyIF9fUCAoKHN0cnVjdCBleGNlcHRpb24gKl9fZXhjKSk7CiMg
 ZW5kaWYKCiMgZGVmaW5lIFhfVExPU1MJMS40MTQ4NDc1NTA0MDU2ODgwMDAwMGUrMTYKCi8q
 IFR5cGVzIG9mIGV4Y2VwdGlvbnMgaW4gdGhlIGB0eXBlJyBmaWVsZC4gICovCiMgZGVmaW5l
 IERPTUFJTgkJMQojIGRlZmluZSBTSU5HCQkyCiMgZGVmaW5lIE9WRVJGTE9XCTMKIyBkZWZp
 bmUgVU5ERVJGTE9XCTQKIyBkZWZpbmUgVExPU1MJCTUKIyBkZWZpbmUgUExPU1MJCTYKCi8q
 IFNWSUQgbW9kZSBzcGVjaWZpZXMgcmV0dXJuaW5nIHRoaXMgbGFyZ2UgdmFsdWUgaW5zdGVh
 ZCBvZiBpbmZpbml0eS4gICovCiMgZGVmaW5lIEhVR0UJCUZMVF9NQVgKIyBpbmNsdWRlIDxm
 bG9hdC5oPgkJLyogRGVmaW5lcyBGTFRfTUFYLiAgKi8KCiNlbHNlCS8qICFTVklEICovCgoj
 IGlmZGVmIF9fVVNFX1hPUEVOCi8qIFgvT3BlbiB3YW50cyBhbm90aGVyIHN0cmFuZ2UgY29u
 c3RhbnQuICAqLwojICBkZWZpbmUgTUFYRkxPQVQJRkxUX01BWAojICBpbmNsdWRlIDxmbG9h
 dC5oPgojIGVuZGlmCgojZW5kaWYJLyogU1ZJRCAqLwoKCi8qIFNvbWUgdXNlZnVsIGNvbnN0
 YW50cy4gICovCiNpZiBkZWZpbmVkIF9fVVNFX0JTRCB8fCBkZWZpbmVkIF9fVVNFX1hPUEVO
 CiMgZGVmaW5lIE1fRQkJMi43MTgyODE4Mjg0NTkwNDUyMzU0CS8qIGUgKi8KIyBkZWZpbmUg
 TV9MT0cyRQkxLjQ0MjY5NTA0MDg4ODk2MzQwNzQJLyogbG9nXzIgZSAqLwojIGRlZmluZSBN
 X0xPRzEwRQkwLjQzNDI5NDQ4MTkwMzI1MTgyNzY1CS8qIGxvZ18xMCBlICovCiMgZGVmaW5l
 IE1fTE4yCQkwLjY5MzE0NzE4MDU1OTk0NTMwOTQyCS8qIGxvZ19lIDIgKi8KIyBkZWZpbmUg
 TV9MTjEwCQkyLjMwMjU4NTA5Mjk5NDA0NTY4NDAyCS8qIGxvZ19lIDEwICovCiMgZGVmaW5l
 IE1fUEkJCTMuMTQxNTkyNjUzNTg5NzkzMjM4NDYJLyogcGkgKi8KIyBkZWZpbmUgTV9QSV8y
 CQkxLjU3MDc5NjMyNjc5NDg5NjYxOTIzCS8qIHBpLzIgKi8KIyBkZWZpbmUgTV9QSV80CQkw
 Ljc4NTM5ODE2MzM5NzQ0ODMwOTYyCS8qIHBpLzQgKi8KIyBkZWZpbmUgTV8xX1BJCQkwLjMx
 ODMwOTg4NjE4Mzc5MDY3MTU0CS8qIDEvcGkgKi8KIyBkZWZpbmUgTV8yX1BJCQkwLjYzNjYx
 OTc3MjM2NzU4MTM0MzA4CS8qIDIvcGkgKi8KIyBkZWZpbmUgTV8yX1NRUlRQSQkxLjEyODM3
 OTE2NzA5NTUxMjU3MzkwCS8qIDIvc3FydChwaSkgKi8KIyBkZWZpbmUgTV9TUVJUMgkxLjQx
 NDIxMzU2MjM3MzA5NTA0ODgwCS8qIHNxcnQoMikgKi8KIyBkZWZpbmUgTV9TUVJUMV8yCTAu
 NzA3MTA2NzgxMTg2NTQ3NTI0NDAJLyogMS9zcXJ0KDIpICovCiNlbmRpZgoKLyogVGhlIGFi
 b3ZlIGNvbnN0YW50cyBhcmUgbm90IGFkZXF1YXRlIGZvciBjb21wdXRhdGlvbiB1c2luZyBg
 bG9uZyBkb3VibGUncy4KICAgVGhlcmVmb3JlIHdlIHByb3ZpZGUgYXMgYW4gZXh0ZW5zaW9u
 IGNvbnN0YW50cyB3aXRoIHNpbWlsYXIgbmFtZXMgYXMgYQogICBHTlUgZXh0ZW5zaW9uLiAg
 UHJvdmlkZSBlbm91Z2ggZGlnaXRzIGZvciB0aGUgMTI4LWJpdCBJRUVFIHF1YWQuICAqLwoj
 aWZkZWYgX19VU0VfR05VCiMgZGVmaW5lIE1fRWwJCTIuNzE4MjgxODI4NDU5MDQ1MjM1MzYw
 Mjg3NDcxMzUyNjYyNUwgIC8qIGUgKi8KIyBkZWZpbmUgTV9MT0cyRWwJMS40NDI2OTUwNDA4
 ODg5NjM0MDczNTk5MjQ2ODEwMDE4OTIyTCAgLyogbG9nXzIgZSAqLwojIGRlZmluZSBNX0xP
 RzEwRWwJMC40MzQyOTQ0ODE5MDMyNTE4Mjc2NTExMjg5MTg5MTY2MDUxTCAgLyogbG9nXzEw
 IGUgKi8KIyBkZWZpbmUgTV9MTjJsCQkwLjY5MzE0NzE4MDU1OTk0NTMwOTQxNzIzMjEyMTQ1
 ODE3NjZMICAvKiBsb2dfZSAyICovCiMgZGVmaW5lIE1fTE4xMGwJMi4zMDI1ODUwOTI5OTQw
 NDU2ODQwMTc5OTE0NTQ2ODQzNjQyTCAgLyogbG9nX2UgMTAgKi8KIyBkZWZpbmUgTV9QSWwJ
 CTMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTAyOUwgIC8qIHBpICovCiMgZGVm
 aW5lIE1fUElfMmwJMS41NzA3OTYzMjY3OTQ4OTY2MTkyMzEzMjE2OTE2Mzk3NTE0TCAgLyog
 cGkvMiAqLwojIGRlZmluZSBNX1BJXzRsCTAuNzg1Mzk4MTYzMzk3NDQ4MzA5NjE1NjYwODQ1
 ODE5ODc1N0wgIC8qIHBpLzQgKi8KIyBkZWZpbmUgTV8xX1BJbAkwLjMxODMwOTg4NjE4Mzc5
 MDY3MTUzNzc2NzUyNjc0NTAyODdMICAvKiAxL3BpICovCiMgZGVmaW5lIE1fMl9QSWwJMC42
 MzY2MTk3NzIzNjc1ODEzNDMwNzU1MzUwNTM0OTAwNTc0TCAgLyogMi9waSAqLwojIGRlZmlu
 ZSBNXzJfU1FSVFBJbAkxLjEyODM3OTE2NzA5NTUxMjU3Mzg5NjE1ODkwMzEyMTU0NTJMICAv
 KiAyL3NxcnQocGkpICovCiMgZGVmaW5lIE1fU1FSVDJsCTEuNDE0MjEzNTYyMzczMDk1MDQ4
 ODAxNjg4NzI0MjA5Njk4MUwgIC8qIHNxcnQoMikgKi8KIyBkZWZpbmUgTV9TUVJUMV8ybAkw
 LjcwNzEwNjc4MTE4NjU0NzUyNDQwMDg0NDM2MjEwNDg0OTBMICAvKiAxL3NxcnQoMikgKi8K
 I2VuZGlmCgoKLyogV2hlbiBjb21waWxpbmcgaW4gc3RyaWN0IElTTyBDIGNvbXBhdGlibGUg
 bW9kZSB3ZSBtdXN0IG5vdCB1c2UgdGhlCiAgIGlubGluZSBmdW5jdGlvbnMgc2luY2UgdGhl
 eSwgYW1vbmcgb3RoZXIgdGhpbmdzLCBkbyBub3Qgc2V0IHRoZQogICBgZXJybm8nIHZhcmlh
 YmxlIGNvcnJlY3RseS4gICovCiNpZiBkZWZpbmVkIF9fU1RSSUNUX0FOU0lfXyAmJiAhZGVm
 aW5lZCBfX05PX01BVEhfSU5MSU5FUwojIGRlZmluZSBfX05PX01BVEhfSU5MSU5FUwkxCiNl
 bmRpZgoKLyogR2V0IG1hY2hpbmUtZGVwZW5kZW50IGlubGluZSB2ZXJzaW9ucyAoaWYgdGhl
 cmUgYXJlIGFueSkuICAqLwojaWZkZWYgX19VU0VfRVhURVJOX0lOTElORVMKIyBpbmNsdWRl
 IDxiaXRzL21hdGhpbmxpbmUuaD4KI2VuZGlmCgoKI2lmIF9fVVNFX0lTT0M5WAovKiBJU08g
 QyA5WCBkZWZpbmVzIHNvbWUgbWFjcm9zIHRvIGNvbXBhcmUgbnVtYmVyIHdoaWxlIHRha2lu
 ZyBjYXJlCiAgIGZvciB1bm9yZGVyZWQgbnVtYmVycy4gIFNpbmNlIG1hbnkgRlBVcyBwcm92
 aWRlIHNwZWNpYWwKICAgaW5zdHJ1Y3Rpb25zIHRvIHN1cHBvcnQgdGhlc2Ugb3BlcmF0aW9u
 cyBhbmQgdGhlc2UgdGVzdHMgYXJlCiAgIGRlZmluZWQgaW4gPGJpdHMvbWF0aGlubGluZS5o
 Piwgd2UgZGVmaW5lIHRoZSBnZW5lcmljIG1hY3JvcyBhdAogICB0aGlzIGxhdGUgcG9pbnQg
 YW5kIG9ubHkgaWYgdGhleSBhcmUgbm90IGRlZmluZWQgeWV0LiAgKi8KCi8qIFJldHVybiBu
 b256ZXJvIHZhbHVlIGlmIFggaXMgZ3JlYXRlciB0aGFuIFkuICAqLwojIGlmbmRlZiBpc2dy
 ZWF0ZXIKIyAgZGVmaW5lIGlzZ3JlYXRlcih4LCB5KSBcCiAgKF9fZXh0ZW5zaW9uX18JCQkJ
 CQkJICAgICAgXAogICAoeyBfX3R5cGVvZl9fKHgpIF9feCA9ICh4KTsgX190eXBlb2ZfXyh5
 KSBfX3kgPSAoeSk7CQkJICAgICAgXAogICAgICAhaXN1bm9yZGVyZWQgKF9feCwgX195KSAm
 JiBfX3ggPiBfX3k7IH0pKQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1ZSBpZiBY
 IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBZLiAgKi8KIyBpZm5kZWYgaXNncmVhdGVy
 ZXF1YWwKIyAgZGVmaW5lIGlzZ3JlYXRlcmVxdWFsKHgsIHkpIFwKICAoX19leHRlbnNpb25f
 XwkJCQkJCQkgICAgICBcCiAgICh7IF9fdHlwZW9mX18oeCkgX194ID0gKHgpOyBfX3R5cGVv
 Zl9fKHkpIF9feSA9ICh5KTsJCQkgICAgICBcCiAgICAgICFpc3Vub3JkZXJlZCAoX194LCBf
 X3kpICYmIF9feCA+PSBfX3k7IH0pKQojIGVuZGlmCgovKiBSZXR1cm4gbm9uemVybyB2YWx1
 ZSBpZiBYIGlzIGxlc3MgdGhhbiBZLiAgKi8KIyBpZm5kZWYgaXNsZXNzCiMgIGRlZmluZSBp
 c2xlc3MoeCwgeSkgXAogIChfX2V4dGVuc2lvbl9fCQkJCQkJCSAgICAgIFwKICAgKHsgX190
 eXBlb2ZfXyh4KSBfX3ggPSAoeCk7IF9fdHlwZW9mX18oeSkgX195ID0gKHkpOwkJCSAgICAg
 IFwKICAgICAgIWlzdW5vcmRlcmVkIChfX3gsIF9feSkgJiYgX194IDwgX195OyB9KSkKIyBl
 bmRpZgoKLyogUmV0dXJuIG5vbnplcm8gdmFsdWUgaWYgWCBpcyBsZXNzIHRoYW4gb3IgZXF1
 YWwgdG8gWS4gICovCiMgaWZuZGVmIGlzbGVzc2VxdWFsCiMgIGRlZmluZSBpc2xlc3NlcXVh
 bCh4LCB5KSBcCiAgKF9fZXh0ZW5zaW9uX18JCQkJCQkJICAgICAgXAogICAoeyBfX3R5cGVv
 Zl9fKHgpIF9feCA9ICh4KTsgX190eXBlb2ZfXyh5KSBfX3kgPSAoeSk7CQkJICAgICAgXAog
 ICAgICAhaXN1bm9yZGVyZWQgKF9feCwgX195KSAmJiBfX3ggPD0gX195OyB9KSkKIyBlbmRp
 ZgoKLyogUmV0dXJuIG5vbnplcm8gdmFsdWUgaWYgZWl0aGVyIFggaXMgbGVzcyB0aGFuIFkg
 b3IgWSBpcyBsZXNzIHRoYW4gWC4gICovCiMgaWZuZGVmIGlzbGVzc2dyZWF0ZXIKIyAgZGVm
 aW5lIGlzbGVzc2dyZWF0ZXIoeCwgeSkgXAogIChfX2V4dGVuc2lvbl9fCQkJCQkJCSAgICAg
 IFwKICAgKHsgX190eXBlb2ZfXyh4KSBfX3ggPSAoeCk7IF9fdHlwZW9mX18oeSkgX195ID0g
 KHkpOwkJCSAgICAgIFwKICAgICAgIWlzdW5vcmRlcmVkIChfX3gsIF9feSkgJiYgKF9feCA8
 IF9feSB8fCBfX3kgPCBfX3gpOyB9KSkKIyBlbmRpZgoKLyogUmV0dXJuIG5vbnplcm8gdmFs
 dWUgaWYgYXJndW1lbnRzIGFyZSB1bm9yZGVyZWQuICAqLwojIGlmbmRlZiBpc3Vub3JkZXJl
 ZAojICBkZWZpbmUgaXN1bm9yZGVyZWQodSwgdikgXAogIChfX2V4dGVuc2lvbl9fCQkJCQkJ
 CSAgICAgIFwKICAgKHsgX190eXBlb2ZfXyh1KSBfX3UgPSAodSk7IF9fdHlwZW9mX18odikg
 X192ID0gKHYpOwkJCSAgICAgIFwKICAgICAgZnBjbGFzc2lmeSAoX191KSA9PSBGUF9OQU4g
 fHwgZnBjbGFzc2lmeSAoX192KSA9PSBGUF9OQU47IH0pKQojIGVuZGlmCgojZW5kaWYKCl9f
 RU5EX0RFQ0xTCgoKI2VuZGlmIC8qIG1hdGguaCAgKi8KAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAC4vdXNyL2luY2x1ZGUvYml0cy8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDQw
 Nzc1ADAwMDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAwMAAwNzU2NDUwMTMyMQAwMTMyNjEAIDUA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABt
 ZW5nZWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9iaXRzL2h1Z2Vf
 dmFsLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDA0
 NjIyADA3NTM3NzE1NDA3ADAxNTIzNwAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAb3NzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAvKiBgSFVHRV9WQUwnIGNvbnN0YW50cyBmb3IgaXg4NiAod2hlcmUgaXQgaXMgaW5maW5p
 dHkpLgogICBVc2VkIGJ5IDxzdGRsaWIuaD4gYW5kIDxtYXRoLmg+IGZ1bmN0aW9ucyBmb3Ig
 b3ZlcmZsb3cuCiAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5NSwgMTk5NiwgMTk5NyBGcmVl
 IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
 IEdOVSBDIExpYnJhcnkuCgogICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
 OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRo
 ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwog
 ICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
 cnNpb24gMiBvZiB0aGUKICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
 ZXIgdmVyc2lvbi4KCiAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
 ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
 QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5U
 QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
 R05VCiAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
 LgoKICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
 cnkgR2VuZXJhbCBQdWJsaWMKICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJy
 YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRo
 ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
 aXRlIDMzMCwKICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZiBf
 TUFUSF9ICiMgZXJyb3IgIk5ldmVyIHVzZSA8Yml0cy9odWdlX3ZhbC5oPiBkaXJlY3RseTsg
 aW5jbHVkZSA8bWF0aC5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaW5jbHVkZSA8ZmVhdHVyZXMu
 aD4KCi8qIElFRUUgcG9zaXRpdmUgaW5maW5pdHkgKC1IVUdFX1ZBTCBpcyBuZWdhdGl2ZSBp
 bmZpbml0eSkuICAqLwoKI2RlZmluZQlfX0hVR0VfVkFMX2J5dGVzCXsgMCwgMCwgMCwgMCwg
 MCwgMCwgMHhmMCwgMHg3ZiB9CgojZGVmaW5lIF9faHVnZV92YWxfdAl1bmlvbiB7IHVuc2ln
 bmVkIGNoYXIgX19jWzhdOyBkb3VibGUgX19kOyB9CiNpZmRlZglfX0dOVUNfXwojIGRlZmlu
 ZSBIVUdFX1ZBTAkoX19leHRlbnNpb25fXyBcCgkJCSAoKF9faHVnZV92YWxfdCkgeyBfX2M6
 IF9fSFVHRV9WQUxfYnl0ZXMgfSkuX19kKQojZWxzZQkvKiBOb3QgR0NDLiAgKi8Kc3RhdGlj
 IF9faHVnZV92YWxfdCBfX2h1Z2VfdmFsID0geyBfX0hVR0VfVkFMX2J5dGVzIH07CiMgZGVm
 aW5lIEhVR0VfVkFMCShfX2h1Z2VfdmFsLl9fZCkKI2VuZGlmCS8qIEdDQy4gICovCgoKLyog
 SVNPIEMgOVggZXh0ZW5zaW9uczogKGZsb2F0KSBIVUdFX1ZBTEYgYW5kIChsb25nIGRvdWJs
 ZSkgSFVHRV9WQUxMLiAgKi8KCiNpZmRlZiBfX1VTRV9JU09DOVgKCiMgZGVmaW5lIF9fSFVH
 RV9WQUxGX2J5dGVzCXsgMCwgMCwgMHg4MCwgMHg3ZiB9CgojIGRlZmluZSBfX2h1Z2VfdmFs
 Zl90CXVuaW9uIHsgdW5zaWduZWQgY2hhciBfX2NbNF07IGZsb2F0IF9fZjsgfQojIGlmZGVm
 CV9fR05VQ19fCiMgIGRlZmluZSBIVUdFX1ZBTEYJKF9fZXh0ZW5zaW9uX18gXAoJCQkgKChf
 X2h1Z2VfdmFsZl90KSB7IF9fYzogX19IVUdFX1ZBTEZfYnl0ZXMgfSkuX19mKQojIGVsc2UJ
 LyogTm90IEdDQy4gICovCnN0YXRpYyBfX2h1Z2VfdmFsZl90IF9faHVnZV92YWxmID0geyBf
 X0hVR0VfVkFMRl9ieXRlcyB9OwojICBkZWZpbmUgSFVHRV9WQUxGCShfX2h1Z2VfdmFsZi5f
 X2YpCiMgZW5kaWYJLyogR0NDLiAgKi8KCgojIGRlZmluZSBfX0hVR0VfVkFMTF9ieXRlcwl7
 IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB4ODAsIDB4ZmYsIDB4N2YsIDAsIDAgfQoKIyBkZWZp
 bmUgX19odWdlX3ZhbGxfdAl1bmlvbiB7IHVuc2lnbmVkIGNoYXIgX19jWzEyXTsgbG9uZyBk
 b3VibGUgX19sZDsgfQojIGlmZGVmCV9fR05VQ19fCiMgIGRlZmluZSBIVUdFX1ZBTEwJKF9f
 ZXh0ZW5zaW9uX18gXAoJCQkgKChfX2h1Z2VfdmFsbF90KSB7IF9fYzogX19IVUdFX1ZBTExf
 Ynl0ZXMgfSkuX19sZCkKIyBlbHNlCS8qIE5vdCBHQ0MuICAqLwpzdGF0aWMgX19odWdlX3Zh
 bGxfdCBfX2h1Z2VfdmFsbCA9IHsgX19IVUdFX1ZBTExfYnl0ZXMgfTsKIyAgZGVmaW5lIEhV
 R0VfVkFMTAkoX19odWdlX3ZhbGwuX19sZCkKIyBlbmRpZgkvKiBHQ0MuICAqLwoKI2VuZGlm
 CS8qIF9fVVNFX0lTT0M5WC4gICovCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9iaXRzL25hbi5oAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDAzMTIzADA3
 NTM3NzE1NDA3ADAxNDIxNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3Nz
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKiBg
 TkFOJyBjb25zdGFudCBmb3IgSUVFRSA3NTQgbWFjaGluZXMuCiAgIENvcHlyaWdodCAoQykg
 MTk5MiwgMTk5NiwgMTk5NywgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K
 ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCgogICBUaGUgR05V
 IEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
 bmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
 R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
 dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGljZW5zZSwg
 b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBHTlUgQyBM
 aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
 dWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
 aWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
 UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
 aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
 dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAgTGljZW5z
 ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
 SUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
 IEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBNQSAwMjEx
 MS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZiBfTUFUSF9ICiMgZXJyb3IgIk5ldmVyIHVzZSA8
 Yml0cy9uYW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPG1hdGguaD4gaW5zdGVhZC4iCiNlbmRp
 ZgoKCi8qIElFRUUgTm90IEEgTnVtYmVyLiAgKi8KCiNpZmRlZglfX0dOVUNfXwoKIyBkZWZp
 bmUgTkFOIFwKICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgKCh1bmlvbiB7IHVuc2lnbmVk
 IF9fbCBfX2F0dHJpYnV0ZV9fKChfX21vZGVfXyhfX1NJX18pKSk7IGZsb2F0IF9fZDsgfSkg
 IFwKICAgIHsgX19sOiAweDdmYzAwMDAwVUwgfSkuX19kKQoKI2Vsc2UKCiMgaW5jbHVkZSA8
 ZW5kaWFuLmg+CgojIGlmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJQU4KIyAgZGVmaW5l
 IF9fbmFuX2J5dGVzCQl7IDB4N2YsIDB4YzAsIDAsIDAgfQojIGVuZGlmCiMgaWYgX19CWVRF
 X09SREVSID09IF9fTElUVExFX0VORElBTgojICBkZWZpbmUgX19uYW5fYnl0ZXMJCXsgMCwg
 MCwgMHhjMCwgMHg3ZiB9CiMgZW5kaWYKCnN0YXRpYyB1bmlvbiB7IHVuc2lnbmVkIGNoYXIg
 X19jWzRdOyBmbG9hdCBfX2Q7IH0gX19uYW5fdW5pb24gPSB7IF9fbmFuX2J5dGVzIH07CiMg
 ZGVmaW5lIE5BTgkoX19uYW5fdW5pb24uX19kKQoKI2VuZGlmCS8qIEdDQy4gICovCgAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4vdXNyL2lu
 Y2x1ZGUvYml0cy9tYXRoZGVmLmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjQ0ADAwMDMzMDUA
 MDAxMTYzNwAwMDAwMDAwMzUwNgAwNzUzNzcxNTQwNwAwMTUwNTUAIDAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAALyogQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk4LCAxOTk5IEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
 aGUgR05VIEMgTGlicmFyeS4KCiAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh
 cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICBtb2RpZnkgaXQgdW5kZXIg
 dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz
 CiAgIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg
 dmVyc2lvbiAyIG9mIHRoZQogICBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs
 YXRlciB2ZXJzaW9uLgoKICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
 dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgYnV0IFdJVEhPVVQgQU5ZIFdB
 UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgTUVSQ0hB
 TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
 ZSBHTlUKICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
 bHMuCgogICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
 cmFyeSBHZW5lcmFsIFB1YmxpYwogICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExp
 YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwKICAgd3JpdGUgdG8g
 dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g
 U3VpdGUgMzMwLAogICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4gICovCgojaWYgIWRl
 ZmluZWQgX01BVEhfSCAmJiAhZGVmaW5lZCBfQ09NUExFWF9ICiMgZXJyb3IgIk5ldmVyIHVz
 ZSA8Yml0cy9tYXRoZGVmLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxtYXRoLmg+IGluc3RlYWQi
 CiNlbmRpZgoKI2lmIGRlZmluZWQgX19VU0VfSVNPQzlYICYmIGRlZmluZWQgX01BVEhfSCAm
 JiAhZGVmaW5lZCBfTUFUSF9IX01BVEhERUYKIyBkZWZpbmUgX01BVEhfSF9NQVRIREVGCTEK
 Ci8qIFRoZSBpeDg3IEZQVXMgZXZhbHVhdGUgYWxsIHZhbHVlcyBpbiB0aGUgODAgYml0IGZs
 b2F0aW5nLXBvaW50IGZvcm1hdAogICB3aGljaCBpcyBhbHNvIGF2YWlsYWJsZSBmb3IgdGhl
 IHVzZXIgYXMgYGxvbmcgZG91YmxlJy4gIFRoZXJlZm9yZSB3ZQogICBkZWZpbmU6ICAqLwp0
 eXBlZGVmIGxvbmcgZG91YmxlIGZsb2F0X3Q7CS8qIGBmbG9hdCcgZXhwcmVzc2lvbnMgYXJl
 IGV2YWx1YXRlZCBhcwoJCQkJICAgYGxvbmcgZG91YmxlJy4gICovCnR5cGVkZWYgbG9uZyBk
 b3VibGUgZG91YmxlX3Q7CS8qIGBkb3VibGUnIGV4cHJlc3Npb25zIGFyZSBldmFsdWF0ZWQg
 YXMKCQkJCSAgIGBsb25nIGRvdWJsZScuICAqLwoKLyogU2lnbmFsIHRoYXQgYm90aCB0eXBl
 cyBhcmUgYGxvbmcgZG91YmxlJy4gICovCiMgZGVmaW5lIEZMVF9FVkFMX01FVEhPRAkyCgov
 KiBEZWZpbmUgYElORklOSVRZJyBhcyB2YWx1ZSBvZiB0eXBlIGBmbG9hdCcuICAqLwojIGRl
 ZmluZSBJTkZJTklUWQlIVUdFX1ZBTEYKCi8qIFRoZSB2YWx1ZXMgcmV0dXJuZWQgYnkgYGls
 b2diJyBmb3IgMCBhbmQgTmFOIHJlc3BlY3RpdmVseS4gICovCiMgZGVmaW5lIEZQX0lMT0dC
 MAkweDgwMDAwMDAwCiMgZGVmaW5lIEZQX0lMT0dCTkFOCTB4ODAwMDAwMDAKCi8qIE51bWJl
 ciBvZiBkZWNpbWFsIGRpZ2l0cyBmb3IgdGhlIGBsb25nIGRvdWJsZScgdHlwZS4gICovCiMg
 ZGVmaW5lIERFQ0lNQUxfRElHCTE4CgojZW5kaWYJLyogSVNPIEM5OSAqLwoAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAuL3Vzci9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmgAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAMDEwMDY0NAAwMDAzMzA1ADAwMTE2MzcAMDAwMDAwMjU0MzcAMDc1Mzc3MTU0MDcA
 MDE1NDI0ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AHVzdGFyICAAbWVuZ2VsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8qIFByb3RvdHlwZSBk
 ZWNsYXJhdGlvbnMgZm9yIG1hdGggZnVuY3Rpb25zOyBoZWxwZXIgZmlsZSBmb3IgPG1hdGgu
 aD4uCiAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSBGcmVlIFNvZnR3
 YXJlIEZvdW5kYXRpb24sIEluYy4KICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD
 IExpYnJhcnkuCgogICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
 Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
 cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJs
 aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g
 MiBvZiB0aGUKICAgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
 c2lvbi4KCiAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
 IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
 d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElU
 WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAg
 IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAg
 WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
 ZXJhbCBQdWJsaWMKICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBz
 ZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVl
 IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
 MCwKICAgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuICAqLwoKLyogTk9URTogQmVjYXVz
 ZSBvZiB0aGUgc3BlY2lhbCB3YXkgdGhpcyBmaWxlIGlzIHVzZWQgYnkgPG1hdGguaD4sIHRo
 aXMKICAgZmlsZSBtdXN0IE5PVCBiZSBwcm90ZWN0ZWQgZnJvbSBtdWx0aXBsZSBpbmNsdXNp
 b24gYXMgaGVhZGVyIGZpbGVzCiAgIHVzdWFsbHkgYXJlLgoKICAgVGhpcyBmaWxlIHByb3Zp
 ZGVzIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMgZm9yIHRoZSBtYXRoIGZ1bmN0aW9ucy4KICAg
 TW9zdCBmdW5jdGlvbnMgYXJlIGRlY2xhcmVkIHVzaW5nIHRoZSBtYWNybzoKCiAgIF9fTUFU
 SENBTEwgKE5BTUUsW19yXSwgKEFSR1MuLi4pKTsKCiAgIFRoaXMgbWVhbnMgdGhlcmUgaXMg
 YSBmdW5jdGlvbiBgTkFNRScgcmV0dXJuaW5nIGBkb3VibGUnIGFuZCBhIGZ1bmN0aW9uCiAg
 IGBOQU1FZicgcmV0dXJuaW5nIGBmbG9hdCcuICBFYWNoIHBsYWNlIGBfTWRvdWJsZV8nIGFw
 cGVhcnMgaW4gdGhlCiAgIHByb3RvdHlwZSwgdGhhdCBpcyBhY3R1YWxseSBgZG91YmxlJyBp
 biB0aGUgcHJvdG90eXBlIGZvciBgTkFNRScgYW5kCiAgIGBmbG9hdCcgaW4gdGhlIHByb3Rv
 dHlwZSBmb3IgYE5BTUVmJy4gIFJlZW50cmFudCB2YXJpYW50IGZ1bmN0aW9ucyBhcmUKICAg
 Y2FsbGVkIGBOQU1FX3InIGFuZCBgTkFNRWZfcicuCgogICBGdW5jdGlvbnMgcmV0dXJuaW5n
 IG90aGVyIHR5cGVzIGxpa2UgYGludCcgYXJlIGRlY2xhcmVkIHVzaW5nIHRoZSBtYWNybzoK
 CiAgIF9fTUFUSERFQ0wgKFRZUEUsIE5BTUUsW19yXSwgKEFSR1MuLi4pKTsKCiAgIFRoaXMg
 aXMganVzdCBsaWtlIF9fTUFUSENBTEwgYnV0IGZvciBhIGZ1bmN0aW9uIHJldHVybmluZyBg
 VFlQRScKICAgaW5zdGVhZCBvZiBgX01kb3VibGVfJy4gIEluIGFsbCBvZiB0aGVzZSBjYXNl
 cywgdGhlcmUgaXMgc3RpbGwKICAgYm90aCBhIGBOQU1FJyBhbmQgYSBgTkFNRWYnIHRoYXQg
 dGFrZXMgYGZsb2F0JyBhcmd1bWVudHMuCgogICBOb3RlIHRoYXQgdGhlcmUgbXVzdCBiZSBu
 byB3aGl0ZXNwYWNlIGJlZm9yZSB0aGUgYXJndW1lbnQgcGFzc2VkIGZvcgogICBOQU1FLCB0
 byBtYWtlIHRva2VuIHBhc3Rpbmcgd29yayB3aXRoIC10cmFkaXRpb25hbC4gICovCgojaWZu
 ZGVmIF9NQVRIX0gKICNlcnJvciAiTmV2ZXIgaW5jbHVkZSA8Yml0cy9tYXRoY2FsbHMuaD4g
 ZGlyZWN0bHk7IGluY2x1ZGUgPG1hdGguaD4gaW5zdGVhZC4iCiNlbmRpZgoKCi8qIFRyaWdv
 bm9tZXRyaWMgZnVuY3Rpb25zLiAgKi8KCi8qIEFyYyBjb3NpbmUgb2YgWC4gICovCl9fTUFU
 SENBTEwgKGFjb3MsLCAoX01kb3VibGVfIF9feCkpOwovKiBBcmMgc2luZSBvZiBYLiAgKi8K
 X19NQVRIQ0FMTCAoYXNpbiwsIChfTWRvdWJsZV8gX194KSk7Ci8qIEFyYyB0YW5nZW50IG9m
 IFguICAqLwpfX01BVEhDQUxMIChhdGFuLCwgKF9NZG91YmxlXyBfX3gpKTsKLyogQXJjIHRh
 bmdlbnQgb2YgWS9YLiAgKi8KX19NQVRIQ0FMTCAoYXRhbjIsLCAoX01kb3VibGVfIF9feSwg
 X01kb3VibGVfIF9feCkpOwoKLyogQ29zaW5lIG9mIFguICAqLwpfX01BVEhDQUxMIChjb3Ms
 LCAoX01kb3VibGVfIF9feCkpOwovKiBTaW5lIG9mIFguICAqLwpfX01BVEhDQUxMIChzaW4s
 LCAoX01kb3VibGVfIF9feCkpOwovKiBUYW5nZW50IG9mIFguICAqLwpfX01BVEhDQUxMICh0
 YW4sLCAoX01kb3VibGVfIF9feCkpOwoKI2lmZGVmIF9fVVNFX0dOVQovKiBDb3NpbmUgYW5k
 IHNpbmUgb2YgWC4gICovCl9fTUFUSERFQ0wgKHZvaWQsc2luY29zLCwKCSAgICAoX01kb3Vi
 bGVfIF9feCwgX01kb3VibGVfICpfX3NpbngsIF9NZG91YmxlXyAqX19jb3N4KSk7CiNlbmRp
 ZgoKLyogSHlwZXJib2xpYyBmdW5jdGlvbnMuICAqLwoKLyogSHlwZXJib2xpYyBjb3NpbmUg
 b2YgWC4gICovCl9fTUFUSENBTEwgKGNvc2gsLCAoX01kb3VibGVfIF9feCkpOwovKiBIeXBl
 cmJvbGljIHNpbmUgb2YgWC4gICovCl9fTUFUSENBTEwgKHNpbmgsLCAoX01kb3VibGVfIF9f
 eCkpOwovKiBIeXBlcmJvbGljIHRhbmdlbnQgb2YgWC4gICovCl9fTUFUSENBTEwgKHRhbmgs
 LCAoX01kb3VibGVfIF9feCkpOwoKI2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVk
 IF9fVVNFX1hPUEVOX0VYVEVOREVEIHx8IGRlZmluZWQgX19VU0VfSVNPQzlYCi8qIEh5cGVy
 Ym9saWMgYXJjIGNvc2luZSBvZiBYLiAgKi8KX19NQVRIQ0FMTCAoYWNvc2gsLCAoX01kb3Vi
 bGVfIF9feCkpOwovKiBIeXBlcmJvbGljIGFyYyBzaW5lIG9mIFguICAqLwpfX01BVEhDQUxM
 IChhc2luaCwsIChfTWRvdWJsZV8gX194KSk7Ci8qIEh5cGVyYm9saWMgYXJjIHRhbmdlbnQg
 b2YgWC4gICovCl9fTUFUSENBTEwgKGF0YW5oLCwgKF9NZG91YmxlXyBfX3gpKTsKI2VuZGlm
 CgovKiBFeHBvbmVudGlhbCBhbmQgbG9nYXJpdGhtaWMgZnVuY3Rpb25zLiAgKi8KCi8qIEV4
 cG9uZW50aWFsIGZ1bmN0aW9uIG9mIFguICAqLwpfX01BVEhDQUxMIChleHAsLCAoX01kb3Vi
 bGVfIF9feCkpOwoKI2lmZGVmIF9fVVNFX0dOVQovKiBBIGZ1bmN0aW9uIG1pc3NpbmcgaW4g
 YWxsIHN0YW5kYXJkczogY29tcHV0ZSBleHBvbmVudCB0byBiYXNlIHRlbi4gICovCl9fTUFU
 SENBTEwgKGV4cDEwLCwgKF9NZG91YmxlXyBfX3gpKTsKLyogQW5vdGhlciBuYW1lIG9jY2Fz
 aW9uYWxseSB1c2VkLiAgKi8KX19NQVRIQ0FMTCAocG93MTAsLCAoX01kb3VibGVfIF9feCkp
 OwojZW5kaWYKCi8qIEJyZWFrIFZBTFVFIGludG8gYSBub3JtYWxpemVkIGZyYWN0aW9uIGFu
 ZCBhbiBpbnRlZ3JhbCBwb3dlciBvZiAyLiAgKi8KX19NQVRIQ0FMTCAoZnJleHAsLCAoX01k
 b3VibGVfIF9feCwgaW50ICpfX2V4cG9uZW50KSk7CgovKiBYIHRpbWVzICh0d28gdG8gdGhl
 IEVYUCBwb3dlcikuICAqLwpfX01BVEhDQUxMIChsZGV4cCwsIChfTWRvdWJsZV8gX194LCBp
 bnQgX19leHBvbmVudCkpOwoKLyogTmF0dXJhbCBsb2dhcml0aG0gb2YgWC4gICovCl9fTUFU
 SENBTEwgKGxvZywsIChfTWRvdWJsZV8gX194KSk7CgovKiBCYXNlLXRlbiBsb2dhcml0aG0g
 b2YgWC4gICovCl9fTUFUSENBTEwgKGxvZzEwLCwgKF9NZG91YmxlXyBfX3gpKTsKCi8qIEJy
 ZWFrIFZBTFVFIGludG8gaW50ZWdyYWwgYW5kIGZyYWN0aW9uYWwgcGFydHMuICAqLwpfX01B
 VEhDQUxMIChtb2RmLCwgKF9NZG91YmxlXyBfX3gsIF9NZG91YmxlXyAqX19pcHRyKSk7Cgoj
 aWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmluZWQgX19VU0VfWE9QRU5fRVhURU5ERUQg
 fHwgZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogUmV0dXJuIGV4cChYKSAtIDEuICAqLwpfX01B
 VEhDQUxMIChleHBtMSwsIChfTWRvdWJsZV8gX194KSk7CgovKiBSZXR1cm4gbG9nKDEgKyBY
 KS4gICovCl9fTUFUSENBTEwgKGxvZzFwLCwgKF9NZG91YmxlXyBfX3gpKTsKCi8qIFJldHVy
 biB0aGUgYmFzZSAyIHNpZ25lZCBpbnRlZ3JhbCBleHBvbmVudCBvZiBYLiAgKi8KX19NQVRI
 Q0FMTCAobG9nYiwsIChfTWRvdWJsZV8gX194KSk7CiNlbmRpZgoKI2lmZGVmIF9fVVNFX0lT
 T0M5WAovKiBDb21wdXRlIGJhc2UtMiBleHBvbmVudGlhbCBvZiBYLiAgKi8KX19NQVRIQ0FM
 TCAoZXhwMiwsIChfTWRvdWJsZV8gX194KSk7CgovKiBDb21wdXRlIGJhc2UtMiBsb2dhcml0
 aG0gb2YgWC4gICovCl9fTUFUSENBTEwgKGxvZzIsLCAoX01kb3VibGVfIF9feCkpOwojZW5k
 aWYKCgovKiBQb3dlciBmdW5jdGlvbnMuICAqLwoKLyogUmV0dXJuIFggdG8gdGhlIFkgcG93
 ZXIuICAqLwpfX01BVEhDQUxMIChwb3csLCAoX01kb3VibGVfIF9feCwgX01kb3VibGVfIF9f
 eSkpOwoKLyogUmV0dXJuIHRoZSBzcXVhcmUgcm9vdCBvZiBYLiAgKi8KX19NQVRIQ0FMTCAo
 c3FydCwsIChfTWRvdWJsZV8gX194KSk7CgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRl
 ZmluZWQgX19VU0VfWE9QRU4gfHwgZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogUmV0dXJuIGBz
 cXJ0KFgqWCArIFkqWSknLiAgKi8KX19NQVRIQ0FMTCAoaHlwb3QsLCAoX01kb3VibGVfIF9f
 eCwgX01kb3VibGVfIF9feSkpOwojZW5kaWYKCiNpZiBkZWZpbmVkIF9fVVNFX01JU0MgfHwg
 ZGVmaW5lZCBfX1VTRV9YT1BFTl9FWFRFTkRFRCB8fCBkZWZpbmVkIF9fVVNFX0lTT0M5WAov
 KiBSZXR1cm4gdGhlIGN1YmUgcm9vdCBvZiBYLiAgKi8KX19NQVRIQ0FMTCAoY2JydCwsIChf
 TWRvdWJsZV8gX194KSk7CiNlbmRpZgoKCi8qIE5lYXJlc3QgaW50ZWdlciwgYWJzb2x1dGUg
 dmFsdWUsIGFuZCByZW1haW5kZXIgZnVuY3Rpb25zLiAgKi8KCi8qIFNtYWxsZXN0IGludGVn
 cmFsIHZhbHVlIG5vdCBsZXNzIHRoYW4gWC4gICovCl9fTUFUSENBTEwgKGNlaWwsLCAoX01k
 b3VibGVfIF9feCkpOwoKLyogQWJzb2x1dGUgdmFsdWUgb2YgWC4gICovCl9fTUFUSENBTExY
 IChmYWJzLCwgKF9NZG91YmxlXyBfX3gpLCAoX19jb25zdF9fKSk7CgovKiBMYXJnZXN0IGlu
 dGVnZXIgbm90IGdyZWF0ZXIgdGhhbiBYLiAgKi8KX19NQVRIQ0FMTCAoZmxvb3IsLCAoX01k
 b3VibGVfIF9feCkpOwoKLyogRmxvYXRpbmctcG9pbnQgbW9kdWxvIHJlbWFpbmRlciBvZiBY
 L1kuICAqLwpfX01BVEhDQUxMIChmbW9kLCwgKF9NZG91YmxlXyBfX3gsIF9NZG91YmxlXyBf
 X3kpKTsKCgovKiBSZXR1cm4gMCBpZiBWQUxVRSBpcyBmaW5pdGUgb3IgTmFOLCArMSBpZiBp
 dAogICBpcyArSW5maW5pdHksIC0xIGlmIGl0IGlzIC1JbmZpbml0eS4gICovCl9fTUFUSERF
 Q0xfMSAoaW50LF9faXNpbmYsLCAoX01kb3VibGVfIF9fdmFsdWUpKSBfX2F0dHJpYnV0ZV9f
 ICgoX19jb25zdF9fKSk7CgovKiBSZXR1cm4gbm9uemVybyBpZiBWQUxVRSBpcyBmaW5pdGUg
 YW5kIG5vdCBOYU4uICAqLwpfX01BVEhERUNMXzEgKGludCxfX2Zpbml0ZSwsIChfTWRvdWJs
 ZV8gX192YWx1ZSkpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCiNpZmRlZiBfX1VT
 RV9NSVNDCi8qIFJldHVybiAwIGlmIFZBTFVFIGlzIGZpbml0ZSBvciBOYU4sICsxIGlmIGl0
 CiAgIGlzICtJbmZpbml0eSwgLTEgaWYgaXQgaXMgLUluZmluaXR5LiAgKi8KX19NQVRIREVD
 TF8xIChpbnQsaXNpbmYsLCAoX01kb3VibGVfIF9fdmFsdWUpKSBfX2F0dHJpYnV0ZV9fICgo
 X19jb25zdF9fKSk7CgovKiBSZXR1cm4gbm9uemVybyBpZiBWQUxVRSBpcyBmaW5pdGUgYW5k
 IG5vdCBOYU4uICAqLwpfX01BVEhERUNMXzEgKGludCxmaW5pdGUsLCAoX01kb3VibGVfIF9f
 dmFsdWUpKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgovKiBEZWFsIHdpdGggYW4g
 aW5maW5pdGUgb3IgTmFOIHJlc3VsdC4KICAgSWYgRVJST1IgaXMgRVJBTkdFLCByZXN1bHQg
 aXMgK0luZjsKICAgaWYgRVJST1IgaXMgLSBFUkFOR0UsIHJlc3VsdCBpcyAtSW5mOwogICBv
 dGhlcndpc2UgcmVzdWx0IGlzIE5hTi4KICAgVGhpcyB3aWxsIHNldCBgZXJybm8nIHRvIGVp
 dGhlciBFUkFOR0Ugb3IgRURPTSwKICAgYW5kIG1heSByZXR1cm4gYW4gaW5maW5pdHkgb3Ig
 TmFOLCBvciBtYXkgZG8gc29tZXRoaW5nIGVsc2UuICAqLwpfX01BVEhDQUxMWCAoaW5mbmFu
 LCwgKGludCBfX2Vycm9yKSwgKF9fY29uc3RfXykpOwoKLyogUmV0dXJuIHRoZSByZW1haW5k
 ZXIgb2YgWC9ZLiAgKi8KX19NQVRIQ0FMTCAoZHJlbSwsIChfTWRvdWJsZV8gX194LCBfTWRv
 dWJsZV8gX195KSk7CgoKLyogUmV0dXJuIHRoZSBmcmFjdGlvbmFsIHBhcnQgb2YgWCBhZnRl
 ciBkaXZpZGluZyBvdXQgYGlsb2diIChYKScuICAqLwpfX01BVEhDQUxMIChzaWduaWZpY2Fu
 ZCwsIChfTWRvdWJsZV8gX194KSk7CiNlbmRpZiAvKiBVc2UgbWlzYy4gICovCgojaWYgZGVm
 aW5lZCBfX1VTRV9NSVNDIHx8IGRlZmluZWQgX19VU0VfSVNPQzlYCi8qIFJldHVybiBYIHdp
 dGggaXRzIHNpZ25lZCBjaGFuZ2VkIHRvIFkncy4gICovCl9fTUFUSENBTExYIChjb3B5c2ln
 biwsIChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSwgKF9fY29uc3RfXykpOwojZW5k
 aWYKCiNpZmRlZiBfX1VTRV9JU09DOVgKLyogUmV0dXJuIHJlcHJlc2VudGF0aW9uIG9mIE5h
 TiBmb3IgZG91YmxlIHR5cGUuICAqLwpfX01BVEhDQUxMWCAobmFuLCwgKF9fY29uc3QgY2hh
 ciAqX190YWdiKSwgKF9fY29uc3RfXykpOwojZW5kaWYKCgovKiBSZXR1cm4gbm9uemVybyBp
 ZiBWQUxVRSBpcyBub3QgYSBudW1iZXIuICAqLwpfX01BVEhERUNMXzEgKGludCxfX2lzbmFu
 LCwgKF9NZG91YmxlXyBfX3ZhbHVlKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoK
 I2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOCi8qIFJldHVy
 biBub256ZXJvIGlmIFZBTFVFIGlzIG5vdCBhIG51bWJlci4gICovCl9fTUFUSERFQ0xfMSAo
 aW50LGlzbmFuLCwgKF9NZG91YmxlXyBfX3ZhbHVlKSkgX19hdHRyaWJ1dGVfXyAoKF9fY29u
 c3RfXykpOwoKLyogQmVzc2VsIGZ1bmN0aW9ucy4gICovCl9fTUFUSENBTEwgKGowLCwgKF9N
 ZG91YmxlXykpOwpfX01BVEhDQUxMIChqMSwsIChfTWRvdWJsZV8pKTsKX19NQVRIQ0FMTCAo
 am4sLCAoaW50LCBfTWRvdWJsZV8pKTsKX19NQVRIQ0FMTCAoeTAsLCAoX01kb3VibGVfKSk7
 Cl9fTUFUSENBTEwgKHkxLCwgKF9NZG91YmxlXykpOwpfX01BVEhDQUxMICh5biwsIChpbnQs
 IF9NZG91YmxlXykpOwojZW5kaWYKCgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmlu
 ZWQgX19VU0VfWE9QRU4gfHwgZGVmaW5lZCBfX1VTRV9JU09DOVgKLyogRXJyb3IgYW5kIGdh
 bW1hIGZ1bmN0aW9ucy4gICovCl9fTUFUSENBTEwgKGVyZiwsIChfTWRvdWJsZV8pKTsKX19N
 QVRIQ0FMTCAoZXJmYywsIChfTWRvdWJsZV8pKTsKX19NQVRIQ0FMTCAobGdhbW1hLCwgKF9N
 ZG91YmxlXykpOwpfX01BVEhDQUxMICh0Z2FtbWEsLCAoX01kb3VibGVfKSk7CiNlbmRpZgoK
 I2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOCi8qIE9ic29s
 ZXRlIGFsaWFzIGZvciBgbGdhbW1hJy4gICovCl9fTUFUSENBTEwgKGdhbW1hLCwgKF9NZG91
 YmxlXykpOwojZW5kaWYKCiNpZmRlZiBfX1VTRV9NSVNDCi8qIFJlZW50cmFudCB2ZXJzaW9u
 IG9mIGxnYW1tYS4gIFRoaXMgZnVuY3Rpb24gdXNlcyB0aGUgZ2xvYmFsIHZhcmlhYmxlCiAg
 IGBzaWduZ2FtJy4gIFRoZSByZWVudHJhbnQgdmVyc2lvbiBpbnN0ZWFkIHRha2VzIGEgcG9p
 bnRlciBhbmQgc3RvcmVzCiAgIHRoZSB2YWx1ZSB0aHJvdWdoIGl0LiAgKi8KX19NQVRIQ0FM
 TCAobGdhbW1hLF9yLCAoX01kb3VibGVfLCBpbnQgKl9fc2lnbmdhbXApKTsKI2VuZGlmCgoK
 I2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOX0VYVEVOREVE
 IHx8IGRlZmluZWQgX19VU0VfSVNPQzlYCi8qIFJldHVybiB0aGUgaW50ZWdlciBuZWFyZXN0
 IFggaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUKICAgcHJldmFpbGluZyByb3VuZGluZyBtb2Rl
 LiAgKi8KX19NQVRIQ0FMTCAocmludCwsIChfTWRvdWJsZV8gX194KSk7CgovKiBSZXR1cm4g
 WCArIGVwc2lsb24gaWYgWCA8IFksIFggLSBlcHNpbG9uIGlmIFggPiBZLiAgKi8KX19NQVRI
 Q0FMTFggKG5leHRhZnRlciwsIChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSwgKF9f
 Y29uc3RfXykpOwojIGlmZGVmIF9fVVNFX0lTT0M5WApfX01BVEhDQUxMWCAobmV4dHRvd2Fy
 ZCwsIChfTWRvdWJsZV8gX194LCBsb25nIGRvdWJsZSBfX3kpLCAoX19jb25zdF9fKSk7CiMg
 ZW5kaWYKCi8qIFJldHVybiB0aGUgcmVtYWluZGVyIG9mIGludGVnZXIgZGl2aXNvbiBYIC8g
 WSB3aXRoIGluZmluaXRlIHByZWNpc2lvbi4gICovCl9fTUFUSENBTEwgKHJlbWFpbmRlciws
 IChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSk7CgojIGlmIGRlZmluZWQgX19VU0Vf
 TUlTQyB8fCBkZWZpbmVkIF9fVVNFX1hPUEVOX0VYVEVOREVECi8qIFJldHVybiBYIHRpbWVz
 ICgyIHRvIHRoZSBOdGggcG93ZXIpLiAgKi8KX19NQVRIQ0FMTCAoc2NhbGIsLCAoX01kb3Vi
 bGVfIF9feCwgX01kb3VibGVfIF9fbikpOwojIGVuZGlmCgovKiBSZXR1cm4gWCB0aW1lcyAo
 MiB0byB0aGUgTnRoIHBvd2VyKS4gICovCl9fTUFUSENBTEwgKHNjYWxibiwsIChfTWRvdWJs
 ZV8gX194LCBpbnQgX19uKSk7CgovKiBSZXR1cm4gdGhlIGJpbmFyeSBleHBvbmVudCBvZiBY
 LCB3aGljaCBtdXN0IGJlIG5vbnplcm8uICAqLwpfX01BVEhERUNMIChpbnQsaWxvZ2IsLCAo
 X01kb3VibGVfIF9feCkpOwojZW5kaWYKCiNpZmRlZiBfX1VTRV9JU09DOVgKLyogUmV0dXJu
 IFggdGltZXMgKDIgdG8gdGhlIE50aCBwb3dlcikuICAqLwpfX01BVEhDQUxMIChzY2FsYmxu
 LCwgKF9NZG91YmxlXyBfX3gsIGxvbmcgaW50IF9fbikpOwoKLyogUm91bmQgWCB0byBpbnRl
 Z3JhbCB2YWx1ZSBpbiBmbG9hdGluZy1wb2ludCBmb3JtYXQgdXNpbmcgY3VycmVudAogICBy
 b3VuZGluZyBkaXJlY3Rpb24sIGJ1dCBkbyBub3QgcmFpc2UgaW5leGFjdCBleGNlcHRpb24u
 ICAqLwpfX01BVEhDQUxMIChuZWFyYnlpbnQsLCAoX01kb3VibGVfIF9feCkpOwoKLyogUm91
 bmQgWCB0byBuZWFyZXN0IGludGVncmFsIHZhbHVlLCByb3VuZGluZyBoYWxmd2F5IGNhc2Vz
 IGF3YXkgZnJvbQogICB6ZXJvLiAgKi8KX19NQVRIQ0FMTCAocm91bmQsLCAoX01kb3VibGVf
 IF9feCkpOwoKLyogUm91bmQgWCB0byB0aGUgaW50ZWdyYWwgdmFsdWUgaW4gZmxvYXRpbmct
 cG9pbnQgZm9ybWF0IG5lYXJlc3QgYnV0CiAgIG5vdCBsYXJnZXIgaW4gbWFnbml0dWRlLiAg
 Ki8KX19NQVRIQ0FMTFggKHRydW5jLCwgKF9NZG91YmxlXyBfX3gpLCAoX19jb25zdF9fKSk7
 CgovKiBDb21wdXRlIHJlbWFpbmRlciBvZiBYIGFuZCBZIGFuZCBwdXQgaW4gKlFVTyBhIHZh
 bHVlIHdpdGggc2lnbiBvZiB4L3kKICAgYW5kIG1hZ25pdHVkZSBjb25ncnVlbnQgYG1vZCAy
 Xm4nIHRvIHRoZSBtYWduaXR1ZGUgb2YgdGhlIGludGVncmFsCiAgIHF1b3RpZW50IHgveSwg
 d2l0aCBuID49IDMuICAqLwpfX01BVEhDQUxMIChyZW1xdW8sLCAoX01kb3VibGVfIF9feCwg
 X01kb3VibGVfIF9feSwgaW50ICpfX3F1bykpOwoKCi8qIENvbnZlcnNpb24gZnVuY3Rpb25z
 LiAgKi8KCi8qIFJvdW5kIFggdG8gbmVhcmVzdCBpbnRlZ3JhbCB2YWx1ZSBhY2NvcmRpbmcg
 dG8gY3VycmVudCByb3VuZGluZwogICBkaXJlY3Rpb24uICAqLwpfX01BVEhERUNMIChsb25n
 IGludCxscmludCwsIChfTWRvdWJsZV8gX194KSk7Cl9fTUFUSERFQ0wgKGxvbmcgbG9uZyBp
 bnQsbGxyaW50LCwgKF9NZG91YmxlXyBfX3gpKTsKCi8qIFJvdW5kIFggdG8gbmVhcmVzdCBp
 bnRlZ3JhbCB2YWx1ZSwgcm91bmRpbmcgaGFsZndheSBjYXNlcyBhd2F5IGZyb20KICAgemVy
 by4gICovCl9fTUFUSERFQ0wgKGxvbmcgaW50LGxyb3VuZCwsIChfTWRvdWJsZV8gX194KSk7
 Cl9fTUFUSERFQ0wgKGxvbmcgbG9uZyBpbnQsbGxyb3VuZCwsIChfTWRvdWJsZV8gX194KSk7
 CgoKLyogUmV0dXJuIHBvc2l0aXZlIGRpZmZlcmVuY2UgYmV0d2VlbiBYIGFuZCBZLiAgKi8K
 X19NQVRIQ0FMTCAoZmRpbSwsIChfTWRvdWJsZV8gX194LCBfTWRvdWJsZV8gX195KSk7Cgov
 KiBSZXR1cm4gbWF4aW11bSBudW1lcmljIHZhbHVlIGZyb20gWCBhbmQgWS4gICovCl9fTUFU
 SENBTEwgKGZtYXgsLCAoX01kb3VibGVfIF9feCwgX01kb3VibGVfIF9feSkpOwoKLyogUmV0
 dXJuIG1pbmltdW0gbnVtZXJpYyB2YWx1ZSBmcm9tIFggYW5kIFkuICAqLwpfX01BVEhDQUxM
 IChmbWluLCwgKF9NZG91YmxlXyBfX3gsIF9NZG91YmxlXyBfX3kpKTsKCgovKiBDbGFzc2lm
 eSBnaXZlbiBudW1iZXIuICAqLwpfX01BVEhERUNMXzEgKGludCwgX19mcGNsYXNzaWZ5LCwg
 KF9NZG91YmxlXyBfX3ZhbHVlKSkKICAgICBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7
 CgovKiBUZXN0IGZvciBuZWdhdGl2ZSBudW1iZXIuICAqLwpfX01BVEhERUNMXzEgKGludCwg
 X19zaWduYml0LCwgKF9NZG91YmxlXyBfX3ZhbHVlKSkKICAgICBfX2F0dHJpYnV0ZV9fICgo
 X19jb25zdF9fKSk7CgoKLyogTXVsdGlwbHktYWRkIGZ1bmN0aW9uIGNvbXB1dGVkIGFzIGEg
 dGVybmFyeSBvcGVyYXRpb24uICAqLwpfX01BVEhDQUxMIChmbWEsLCAoX01kb3VibGVfIF9f
 eCwgX01kb3VibGVfIF9feSwgX01kb3VibGVfIF9feikpOwojZW5kaWYgLyogVXNlIElTTyBD
 IDlYLiAgKi8KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAALi91c3IvaW5jbHVkZS9iaXRzL21hdGhpbmxpbmUuaAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAADAxMDA2NDQAMDAwMzMwNQAwMDExNjM3ADAwMDAwMDU1MTU3ADA3NTY0NTAx
 MzIxADAxNTU3MgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAB1c3RhciAgAG1lbmdlbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb3NzAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvKiBJbmxpbmUg
 bWF0aCBmdW5jdGlvbnMgZm9yIGkzODcuCiAgIENvcHlyaWdodCAoQykgMTk5NSwgMTk5Niwg
 MTk5NywgMTk5OCwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgVGhp
 cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCiAgIENvbnRyaWJ1dGVkIGJ5
 IEpvaG4gQy4gQm93bWFuIDxib3dtYW5AbWF0aC51YWxiZXJ0YS5jYT4sIDE5OTUuCgogICBU
 aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
 ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
 YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwogICBwdWJsaXNoZWQgYnkgdGhlIEZy
 ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUKICAgTGlj
 ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgIFRoZSBH
 TlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
 ZSB1c2VmdWwsCiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
 ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
 UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAgIExpYnJhcnkgR2VuZXJh
 bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZl
 IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKICAg
 TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
 WUlORy5MSUIuICBJZiBub3QsCiAgIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
 YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICAgQm9zdG9uLCBN
 QSAwMjExMS0xMzA3LCBVU0EuICAqLwoKI2lmbmRlZiBfTUFUSF9ICiMgZXJyb3IgIk5ldmVy
 IHVzZSA8Yml0cy9tYXRoaW5saW5lLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxtYXRoLmg+IGlu
 c3RlYWQuIgojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwojIGRlZmluZSBfX01BVEhfSU5M
 SU5FIF9faW5saW5lCiNlbHNlCiMgZGVmaW5lIF9fTUFUSF9JTkxJTkUgZXh0ZXJuIF9faW5s
 aW5lCiNlbmRpZgoKCiNpZiBkZWZpbmVkIF9fVVNFX0lTT0M5WCAmJiBkZWZpbmVkIF9fR05V
 Q19fICYmIF9fR05VQ19fID49IDIKLyogSVNPIEMgOVggZGVmaW5lcyBzb21lIG1hY3JvcyB0
 byBwZXJmb3JtIHVub3JkZXJlZCBjb21wYXJpc29ucy4gIFRoZQogICBpeDg3IEZQVSBzdXBw
 b3J0cyB0aGlzIHdpdGggc3BlY2lhbCBvcGNvZGVzIGFuZCB3ZSBzaG91bGQgdXNlIHRoZW0u
 CiAgIFRoZXNlIG11c3Qgbm90IGJlIGlubGluZSBmdW5jdGlvbnMgc2luY2Ugd2UgaGF2ZSB0
 byBiZSBhYmxlIHRvIGhhbmRsZQogICBhbGwgZmxvYXRpbmctcG9pbnQgdHlwZXMuICAqLwoj
 IGlmZGVmIF9faTY4Nl9fCi8qIEZvciB0aGUgUGVudGl1bVBybyBhbmQgbW9yZSByZWNlbnQg
 cHJvY2Vzc29ycyB3ZSBjYW4gcHJvdmlkZQogICBiZXR0ZXIgY29kZS4gICovCiMgIGRlZmlu
 ZSBpc2dyZWF0ZXIoeCwgeSkgXAogICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJ
 CQkJICAgICAgXAoJX19hc21fXyAoImZ1Y29taXAgJSVzdCgxKSwgJSVzdDsgc2V0YSAlJWFs
 IgkJCSAgICAgIFwKCQkgOiAiPWEiIChfX3Jlc3VsdCkgOiAidSIgKHkpLCAidCIgKHgpIDog
 ImNjIiwgInN0Iik7CSAgICAgIFwKCV9fcmVzdWx0OyB9KQojICBkZWZpbmUgaXNncmVhdGVy
 ZXF1YWwoeCwgeSkgXAogICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAg
 ICAgXAoJX19hc21fXyAoImZ1Y29taXAgJSVzdCgxKSwgJSVzdDsgc2V0YWUgJSVhbCIJCQkg
 ICAgICBcCgkJIDogIj1hIiAoX19yZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJjYyIs
 ICJzdCIpOwkgICAgICBcCglfX3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc2xlc3MoeCwgeSkg
 XAogICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAgICAgXAoJX19hc21f
 XyAoImZ1Y29taXAgJSVzdCgxKSwgJSVzdDsgc2V0YSAlJWFsIgkJCSAgICAgIFwKCQkgOiAi
 PWEiIChfX3Jlc3VsdCkgOiAidSIgKHgpLCAidCIgKHkpIDogImNjIiwgInN0Iik7CSAgICAg
 IFwKCV9fcmVzdWx0OyB9KQoKIyAgZGVmaW5lIGlzbGVzc2VxdWFsKHgsIHkpIFwKICAgICAo
 eyByZWdpc3RlciBjaGFyIF9fcmVzdWx0OwkJCQkJCSAgICAgIFwKCV9fYXNtX18gKCJmdWNv
 bWlwICUlc3QoMSksICUlc3Q7IHNldGFlICUlYWwiCQkJICAgICAgXAoJCSA6ICI9YSIgKF9f
 cmVzdWx0KSA6ICJ1IiAoeCksICJ0IiAoeSkgOiAiY2MiLCAic3QiKTsJICAgICAgXAoJX19y
 ZXN1bHQ7IH0pCgojICBkZWZpbmUgaXNsZXNzZ3JlYXRlcih4LCB5KSBcCiAgICAgKHsgcmVn
 aXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglfX2FzbV9fICgiZnVjb21pcCAl
 JXN0KDEpLCAlJXN0OyBzZXRuZSAlJWFsIgkJCSAgICAgIFwKCQkgOiAiPWEiIChfX3Jlc3Vs
 dCkgOiAidSIgKHkpLCAidCIgKHgpIDogImNjIiwgInN0Iik7CSAgICAgIFwKCV9fcmVzdWx0
 OyB9KQoKIyAgZGVmaW5lIGlzdW5vcmRlcmVkKHgsIHkpIFwKICAgICAoeyByZWdpc3RlciBj
 aGFyIF9fcmVzdWx0OwkJCQkJCSAgICAgIFwKCV9fYXNtX18gKCJmdWNvbWlwICUlc3QoMSks
 ICUlc3Q7IHNldHAgJSVhbCIJCQkgICAgICBcCgkJIDogIj1hIiAoX19yZXN1bHQpIDogInUi
 ICh5KSwgInQiICh4KSA6ICJjYyIsICJzdCIpOwkgICAgICBcCglfX3Jlc3VsdDsgfSkKIyBl
 bHNlCi8qIFRoaXMgaXMgdGhlIGR1bWIsIHBvcnRhYmxlIGNvZGUgZm9yIGkzODYgYW5kIGFi
 b3ZlLiAgKi8KIyAgZGVmaW5lIGlzZ3JlYXRlcih4LCB5KSBcCiAgICAgKHsgcmVnaXN0ZXIg
 Y2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglfX2FzbV9fICgiZnVjb21wcDsgZm5zdHN3
 OyB0ZXN0YiAkMHg0NSwgJSVhaDsgc2V0eiAlJWFsIgkgICAgICBcCgkJIDogIj1hIiAoX19y
 ZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJjYyIsICJzdCIsICJzdCgxKSIpOyBcCglf
 X3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc2dyZWF0ZXJlcXVhbCh4LCB5KSBcCiAgICAgKHsg
 cmVnaXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglfX2FzbV9fICgiZnVjb21w
 cDsgZm5zdHN3OyB0ZXN0YiAkMHgwNSwgJSVhaDsgc2V0eiAlJWFsIgkgICAgICBcCgkJIDog
 Ij1hIiAoX19yZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJjYyIsICJzdCIsICJzdCgx
 KSIpOyBcCglfX3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc2xlc3MoeCwgeSkgXAogICAgICh7
 IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAgICAgXAoJX19hc21fXyAoImZ1Y29t
 cHA7IGZuc3RzdzsgdGVzdGIgJDB4NDUsICUlYWg7IHNldHogJSVhbCIJICAgICAgXAoJCSA6
 ICI9YSIgKF9fcmVzdWx0KSA6ICJ1IiAoeCksICJ0IiAoeSkgOiAiY2MiLCAic3QiLCAic3Qo
 MSkiKTsgXAoJX19yZXN1bHQ7IH0pCgojICBkZWZpbmUgaXNsZXNzZXF1YWwoeCwgeSkgXAog
 ICAgICh7IHJlZ2lzdGVyIGNoYXIgX19yZXN1bHQ7CQkJCQkJICAgICAgXAoJX19hc21fXyAo
 ImZ1Y29tcHA7IGZuc3RzdzsgdGVzdGIgJDB4MDUsICUlYWg7IHNldHogJSVhbCIJICAgICAg
 XAoJCSA6ICI9YSIgKF9fcmVzdWx0KSA6ICJ1IiAoeCksICJ0IiAoeSkgOiAiY2MiLCAic3Qi
 LCAic3QoMSkiKTsgXAoJX19yZXN1bHQ7IH0pCgojICBkZWZpbmUgaXNsZXNzZ3JlYXRlcih4
 LCB5KSBcCiAgICAgKHsgcmVnaXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAgICBcCglf
 X2FzbV9fICgiZnVjb21wcDsgZm5zdHN3OyB0ZXN0YiAkMHg0NCwgJSVhaDsgc2V0eiAlJWFs
 IgkgICAgICBcCgkJIDogIj1hIiAoX19yZXN1bHQpIDogInUiICh5KSwgInQiICh4KSA6ICJj
 YyIsICJzdCIsICJzdCgxKSIpOyBcCglfX3Jlc3VsdDsgfSkKCiMgIGRlZmluZSBpc3Vub3Jk
 ZXJlZCh4LCB5KSBcCiAgICAgKHsgcmVnaXN0ZXIgY2hhciBfX3Jlc3VsdDsJCQkJCQkgICAg
 ICBcCglfX2FzbV9fICgiZnVjb21wcDsgZm5zdHN3OyBzYWhmOyBzZXRwICUlYWwiCQkJICAg
 ICAgXAoJCSA6ICI9YSIgKF9fcmVzdWx0KSA6ICJ1IiAoeSksICJ0IiAoeCkgOiAiY2MiLCAi
 c3QiLCAic3QoMSkiKTsgXAoJX19yZXN1bHQ7IH0pCiMgZW5kaWYJLyogX19pNjg2X18gKi8K
 Ci8qIFRoZSBnY2MsIHZlcnNpb24gMi43IG9yIGJlbG93LCBoYXMgcHJvYmxlbXMgd2l0aCBh
 bGwgdGhpcyBpbmxpbmluZwogICBjb2RlLiAgU28gZGlzYWJsZSBpdCBmb3IgdGhpcyB2ZXJz
 aW9uIG9mIHRoZSBjb21waWxlci4gICovCiMgaWYgKF9fR05VQ19fID4gMiB8fCAoX19HTlVD
 X18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA+IDcpKQovKiBUZXN0IGZvciBuZWdhdGl2ZSBu
 dW1iZXIuICBVc2VkIGluIHRoZSBzaWduYml0KCkgbWFjcm8uICAqLwpfX01BVEhfSU5MSU5F
 IGludApfX3NpZ25iaXRmIChmbG9hdCBfX3gpCnsKICBfX2V4dGVuc2lvbl9fIHVuaW9uIHsg
 ZmxvYXQgX19mOyBpbnQgX19pOyB9IF9fdSA9IHsgX19mOiBfX3ggfTsKICByZXR1cm4gX191
 Ll9faSA8IDA7Cn0KX19NQVRIX0lOTElORSBpbnQKX19zaWduYml0IChkb3VibGUgX194KQp7
 CiAgX19leHRlbnNpb25fXyB1bmlvbiB7IGRvdWJsZSBfX2Q7IGludCBfX2lbMl07IH0gX191
 ID0geyBfX2Q6IF9feCB9OwogIHJldHVybiBfX3UuX19pWzFdIDwgMDsKfQpfX01BVEhfSU5M
 SU5FIGludApfX3NpZ25iaXRsIChsb25nIGRvdWJsZSBfX3gpCnsKICBfX2V4dGVuc2lvbl9f
 IHVuaW9uIHsgbG9uZyBkb3VibGUgX19sOyBpbnQgX19pWzNdOyB9IF9fdSA9IHsgX19sOiBf
 X3ggfTsKICByZXR1cm4gKF9fdS5fX2lbMl0gJiAweDgwMDApICE9IDA7Cn0KIyBlbmRpZgoj
 ZW5kaWYKCgovKiBUaGUgZ2NjLCB2ZXJzaW9uIDIuNyBvciBiZWxvdywgaGFzIHByb2JsZW1z
 IHdpdGggYWxsIHRoaXMgaW5saW5pbmcKICAgY29kZS4gIFNvIGRpc2FibGUgaXQgZm9yIHRo
 aXMgdmVyc2lvbiBvZiB0aGUgY29tcGlsZXIuICAqLwojaWYgZGVmaW5lZCBfX0dOVUNfXyAm
 JiAoX19HTlVDX18gPiAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fID4g
 NykpCgojaWYgKCghZGVmaW5lZCBfX05PX01BVEhfSU5MSU5FUyB8fCBkZWZpbmVkIF9fTElC
 Q19JTlRFUk5BTF9NQVRIX0lOTElORVMpIFwKICAgICAmJiBkZWZpbmVkIF9fT1BUSU1JWkVf
 XykKCi8qIEEgbWFjcm8gdG8gZGVmaW5lIGZsb2F0LCBkb3VibGUsIGFuZCBsb25nIGRvdWJs
 ZSB2ZXJzaW9ucyBvZiB2YXJpb3VzCiAgIG1hdGggZnVuY3Rpb25zIGZvciB0aGUgaXg4NyBG
 UFUuICBGVU5DIGlzIHRoZSBmdW5jdGlvbiBuYW1lICh3aGljaCB3aWxsCiAgIGJlIHN1ZmZp
 eGVkIHdpdGggZiBhbmQgbCBmb3IgdGhlIGZsb2F0IGFuZCBsb25nIGRvdWJsZSB2ZXJzaW9u
 LAogICByZXNwZWN0aXZlbHkpLiAgT1AgaXMgdGhlIG5hbWUgb2YgdGhlIEZQVSBvcGVyYXRp
 b24uICAqLwoKI2lmIGRlZmluZWQgX19VU0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX0lTT0M5
 WAojIGRlZmluZSBfX2lubGluZV9tYXRob3AoZnVuYywgb3ApIFwKICBfX2lubGluZV9tYXRo
 b3BfIChkb3VibGUsIGZ1bmMsIG9wKQkJCQkJICAgICAgXAogIF9faW5saW5lX21hdGhvcF8g
 KGZsb2F0LCBfX0NPTkNBVChmdW5jLGYpLCBvcCkJCQkgICAgICBcCiAgX19pbmxpbmVfbWF0
 aG9wXyAobG9uZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIG9wKQojZWxzZQojIGRlZmlu
 ZSBfX2lubGluZV9tYXRob3AoZnVuYywgb3ApIFwKICBfX2lubGluZV9tYXRob3BfIChkb3Vi
 bGUsIGZ1bmMsIG9wKQojZW5kaWYKCiNkZWZpbmUgX19pbmxpbmVfbWF0aG9wXyhmbG9hdF90
 eXBlLCBmdW5jLCBvcCkgXAogIF9faW5saW5lX21hdGhvcF9kZWNsXyAoZmxvYXRfdHlwZSwg
 ZnVuYywgb3AsICIwIiAoX194KSkKCgojaWYgZGVmaW5lZCBfX1VTRV9NSVNDIHx8IGRlZmlu
 ZWQgX19VU0VfSVNPQzlYCiMgZGVmaW5lIF9faW5saW5lX21hdGhvcF9kZWNsKGZ1bmMsIG9w
 LCBwYXJhbXMuLi4pIFwKICBfX2lubGluZV9tYXRob3BfZGVjbF8gKGRvdWJsZSwgZnVuYywg
 b3AsIHBhcmFtcykJCQkgICAgICBcCiAgX19pbmxpbmVfbWF0aG9wX2RlY2xfIChmbG9hdCwg
 X19DT05DQVQoZnVuYyxmKSwgb3AsIHBhcmFtcykJCSAgICAgIFwKICBfX2lubGluZV9tYXRo
 b3BfZGVjbF8gKGxvbmcgZG91YmxlLCBfX0NPTkNBVChmdW5jLGwpLCBvcCwgcGFyYW1zKQoj
 ZWxzZQojIGRlZmluZSBfX2lubGluZV9tYXRob3BfZGVjbChmdW5jLCBvcCwgcGFyYW1zLi4u
 KSBcCiAgX19pbmxpbmVfbWF0aG9wX2RlY2xfIChkb3VibGUsIGZ1bmMsIG9wLCBwYXJhbXMp
 CiNlbmRpZgoKI2RlZmluZSBfX2lubGluZV9tYXRob3BfZGVjbF8oZmxvYXRfdHlwZSwgZnVu
 Yywgb3AsIHBhcmFtcy4uLikgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRfdHlwZSBmdW5jIChm
 bG9hdF90eXBlKTsJCQkJICAgICAgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRfdHlwZSBmdW5j
 IChmbG9hdF90eXBlIF9feCkJCQkgICAgICBcCiAgewkJCQkJCQkJCSAgICAgIFwKICAgIHJl
 Z2lzdGVyIGZsb2F0X3R5cGUgX19yZXN1bHQ7CQkJCQkgICAgICBcCiAgICBfX2FzbSBfX3Zv
 bGF0aWxlX18gKG9wIDogIj10IiAoX19yZXN1bHQpIDogcGFyYW1zKTsJCQkgICAgICBcCiAg
 ICByZXR1cm4gX19yZXN1bHQ7CQkJCQkJCSAgICAgIFwKICB9CgoKI2lmIGRlZmluZWQgX19V
 U0VfTUlTQyB8fCBkZWZpbmVkIF9fVVNFX0lTT0M5WAojIGRlZmluZSBfX2lubGluZV9tYXRo
 Y29kZShmdW5jLCBhcmcsIGNvZGUpIFwKICBfX2lubGluZV9tYXRoY29kZV8gKGRvdWJsZSwg
 ZnVuYywgYXJnLCBjb2RlKQkJCQkgICAgICBcCiAgX19pbmxpbmVfbWF0aGNvZGVfIChmbG9h
 dCwgX19DT05DQVQoZnVuYyxmKSwgYXJnLCBjb2RlKQkJICAgICAgXAogIF9faW5saW5lX21h
 dGhjb2RlXyAobG9uZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIGFyZywgY29kZSkKIyBk
 ZWZpbmUgX19pbmxpbmVfbWF0aGNvZGUyKGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUpIFwKICBf
 X2lubGluZV9tYXRoY29kZTJfIChkb3VibGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUpCQkJ
 ICAgICAgXAogIF9faW5saW5lX21hdGhjb2RlMl8gKGZsb2F0LCBfX0NPTkNBVChmdW5jLGYp
 LCBhcmcxLCBhcmcyLCBjb2RlKQkgICAgICBcCiAgX19pbmxpbmVfbWF0aGNvZGUyXyAobG9u
 ZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIGFyZzEsIGFyZzIsIGNvZGUpCiMgZGVmaW5l
 IF9faW5saW5lX21hdGhjb2RlMyhmdW5jLCBhcmcxLCBhcmcyLCBhcmczLCBjb2RlKSBcCiAg
 X19pbmxpbmVfbWF0aGNvZGUzXyAoZG91YmxlLCBmdW5jLCBhcmcxLCBhcmcyLCBhcmczLCBj
 b2RlKQkJICAgICAgXAogIF9faW5saW5lX21hdGhjb2RlM18gKGZsb2F0LCBfX0NPTkNBVChm
 dW5jLGYpLCBhcmcxLCBhcmcyLCBhcmczLCBjb2RlKQkgICAgICBcCiAgX19pbmxpbmVfbWF0
 aGNvZGUzXyAobG9uZyBkb3VibGUsIF9fQ09OQ0FUKGZ1bmMsbCksIGFyZzEsIGFyZzIsIGFy
 ZzMsIGNvZGUpCiNlbHNlCiMgZGVmaW5lIF9faW5saW5lX21hdGhjb2RlKGZ1bmMsIGFyZywg
 Y29kZSkgXAogIF9faW5saW5lX21hdGhjb2RlXyAoZG91YmxlLCBmdW5jLCAoYXJnKSwgY29k
 ZSkKIyBkZWZpbmUgX19pbmxpbmVfbWF0aGNvZGUyKGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUp
 IFwKICBfX2lubGluZV9tYXRoY29kZTJfIChkb3VibGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGNv
 ZGUpCiMgZGVmaW5lIF9faW5saW5lX21hdGhjb2RlMyhmdW5jLCBhcmcxLCBhcmcyLCBhcmcz
 LCBjb2RlKSBcCiAgX19pbmxpbmVfbWF0aGNvZGUzXyAoZG91YmxlLCBmdW5jLCBhcmcxLCBh
 cmcyLCBhcmczLCBjb2RlKQojZW5kaWYKCiNkZWZpbmUgX19pbmxpbmVfbWF0aGNvZGVfKGZs
 b2F0X3R5cGUsIGZ1bmMsIGFyZywgY29kZSkgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRfdHlw
 ZSBmdW5jIChmbG9hdF90eXBlKTsJCQkJICAgICAgXAogIF9fTUFUSF9JTkxJTkUgZmxvYXRf
 dHlwZSBmdW5jIChmbG9hdF90eXBlIGFyZykJCQkgICAgICBcCiAgewkJCQkJCQkJCSAgICAg
 IFwKICAgIGNvZGU7CQkJCQkJCQkgICAgICBcCiAgfQoKI2RlZmluZSBfX2lubGluZV9tYXRo
 Y29kZTJfKGZsb2F0X3R5cGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGNvZGUpIFwKICBfX01BVEhf
 SU5MSU5FIGZsb2F0X3R5cGUgZnVuYyAoZmxvYXRfdHlwZSwgZmxvYXRfdHlwZSk7CQkgICAg
 ICBcCiAgX19NQVRIX0lOTElORSBmbG9hdF90eXBlIGZ1bmMgKGZsb2F0X3R5cGUgYXJnMSwg
 ZmxvYXRfdHlwZSBhcmcyKQkgICAgICBcCiAgewkJCQkJCQkJCSAgICAgIFwKICAgIGNvZGU7
 CQkJCQkJCQkgICAgICBcCiAgfQoKI2RlZmluZSBfX2lubGluZV9tYXRoY29kZTNfKGZsb2F0
 X3R5cGUsIGZ1bmMsIGFyZzEsIGFyZzIsIGFyZzMsIGNvZGUpIFwKICBfX01BVEhfSU5MSU5F
 IGZsb2F0X3R5cGUgZnVuYyAoZmxvYXRfdHlwZSwgZmxvYXRfdHlwZSwgZmxvYXRfdHlwZSk7
 CSAgICAgIFwKICBfX01BVEhfSU5MSU5FIGZsb2F0X3R5cGUgZnVuYyAoZmxvYXRfdHlwZSBh
 cmcxLCBmbG9hdF90eXBlIGFyZzIsCSAgICAgIFwKCQkJCSBmbG9hdF90eXBlIGFyZzMpCQkJ
 ICAgICAgXAogIHsJCQkJCQkJCQkgICAgICBcCiAgICBjb2RlOwkJCQkJCQkJICAgICAgXAog
 IH0KI2VuZGlmCgoKI2lmICFkZWZpbmVkIF9fTk9fTUFUSF9JTkxJTkVTICYmIGRlZmluZWQg
 X19PUFRJTUlaRV9fCi8qIE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zICovCgpfX2lubGluZV9t
 YXRoY29kZSAoX19zZ24sIF9feCwgXAogIHJldHVybiBfX3ggPT0gMC4wID8gMC4wIDogKF9f
 eCA+IDAuMCA/IDEuMCA6IC0xLjApKQoKX19pbmxpbmVfbWF0aGNvZGUgKF9fcG93MiwgX194
 LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192YWx1ZTsJCQkJCQkgICAgICBcCiAgcmVn
 aXN0ZXIgbG9uZyBkb3VibGUgX19leHBvbmVudDsJCQkJCSAgICAgIFwKICBfX2V4dGVuc2lv
 bl9fIGxvbmcgbG9uZyBpbnQgX19wID0gKGxvbmcgbG9uZyBpbnQpIF9feDsJCSAgICAgIFwK
 ICBpZiAoX194ID09IChsb25nIGRvdWJsZSkgX19wKQkJCQkJCSAgICAgIFwKICAgIHsJCQkJ
 CQkJCQkgICAgICBcCiAgICAgIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCSAgICAgIFwKCSgi
 ZnNjYWxlIgkJCQkJCQkgICAgICBcCgkgOiAiPXQiIChfX3ZhbHVlKSA6ICIwIiAoMS4wKSwg
 InUiIChfX3gpKTsJCQkgICAgICBcCiAgICAgIHJldHVybiBfX3ZhbHVlOwkJCQkJCQkgICAg
 ICBcCiAgICB9CQkJCQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkg
 ICAgICBcCiAgICAoImZsZAklJXN0KDApXG5cdCIJCQkJCQkgICAgICBcCiAgICAgImZybmRp
 bnQJCQkjIGludCh4KVxuXHQiCQkJCSAgICAgIFwKICAgICAiZnhjaFxuXHQiCQkJCQkJCQkg
 ICAgICBcCiAgICAgImZzdWIJJSVzdCgxKQkJIyBmcmFjdCh4KVxuXHQiCQkJCSAgICAgIFwK
 ICAgICAiZjJ4bTEJCQkjIDJeKGZyYWN0KHgpKSAtIDFcblx0IgkJCSAgICAgIFwKICAgICA6
 ICI9dCIgKF9fdmFsdWUpLCAiPXUiIChfX2V4cG9uZW50KSA6ICIwIiAoX194KSk7CQkJICAg
 ICAgXAogIF9fdmFsdWUgKz0gMS4wOwkJCQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGls
 ZV9fCQkJCQkJCSAgICAgIFwKICAgICgiZnNjYWxlIgkJCQkJCQkJICAgICAgXAogICAgIDog
 Ij10IiAoX192YWx1ZSkgOiAiMCIgKF9fdmFsdWUpLCAidSIgKF9fZXhwb25lbnQpKTsJCSAg
 ICAgIFwKICByZXR1cm4gX192YWx1ZSkKCiNkZWZpbmUgX19zaW5jb3NfY29kZSBcCiAgcmVn
 aXN0ZXIgbG9uZyBkb3VibGUgX19jb3NyOwkJCQkJCSAgICAgIFwKICByZWdpc3RlciBsb25n
 IGRvdWJsZSBfX3NpbnI7CQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJ
 CQkgICAgICBcCiAgICAoImZzaW5jb3Ncblx0IgkJCQkJCQkgICAgICBcCiAgICAgImZuc3Rz
 dwklJWF4XG5cdCIJCQkJCQkgICAgICBcCiAgICAgInRlc3RsCSQweDQwMCwgJSVlYXhcblx0
 IgkJCQkJICAgICAgXAogICAgICJqegkxZlxuXHQiCQkJCQkJCSAgICAgIFwKICAgICAiZmxk
 cGlcblx0IgkJCQkJCQkgICAgICBcCiAgICAgImZhZGQJJSVzdCgwKVxuXHQiCQkJCQkJICAg
 ICAgXAogICAgICJmeGNoCSUlc3QoMSlcblx0IgkJCQkJCSAgICAgIFwKICAgICAiMjogZnBy
 ZW0xXG5cdCIJCQkJCQkJICAgICAgXAogICAgICJmbnN0c3cJJSVheFxuXHQiCQkJCQkJICAg
 ICAgXAogICAgICJ0ZXN0bAkkMHg0MDAsICUlZWF4XG5cdCIJCQkJCSAgICAgIFwKICAgICAi
 am56CTJiXG5cdCIJCQkJCQkJICAgICAgXAogICAgICJmc3RwCSUlc3QoMSlcblx0IgkJCQkJ
 CSAgICAgIFwKICAgICAiZnNpbmNvc1xuXHQiCQkJCQkJCSAgICAgIFwKICAgICAiMToiCQkJ
 CQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX2Nvc3IpLCAiPXUiIChfX3NpbnIpIDogIjAi
 IChfX3gpKTsJCQkgICAgICBcCiAgKl9fc2lueCA9IF9fc2lucjsJCQkJCQkJICAgICAgXAog
 ICpfX2Nvc3ggPSBfX2Nvc3IKCl9fTUFUSF9JTkxJTkUgdm9pZCBfX3NpbmNvcyAoZG91Ymxl
 IF9feCwgZG91YmxlICpfX3NpbngsIGRvdWJsZSAqX19jb3N4KTsKX19NQVRIX0lOTElORSB2
 b2lkCl9fc2luY29zIChkb3VibGUgX194LCBkb3VibGUgKl9fc2lueCwgZG91YmxlICpfX2Nv
 c3gpCnsKICBfX3NpbmNvc19jb2RlOwp9CgpfX01BVEhfSU5MSU5FIHZvaWQgX19zaW5jb3Nm
 IChmbG9hdCBfX3gsIGZsb2F0ICpfX3NpbngsIGZsb2F0ICpfX2Nvc3gpOwpfX01BVEhfSU5M
 SU5FIHZvaWQKX19zaW5jb3NmIChmbG9hdCBfX3gsIGZsb2F0ICpfX3NpbngsIGZsb2F0ICpf
 X2Nvc3gpCnsKICBfX3NpbmNvc19jb2RlOwp9CgpfX01BVEhfSU5MSU5FIHZvaWQgX19zaW5j
 b3NsIChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlICpfX3NpbngsCgkJCSAgICAgIGxv
 bmcgZG91YmxlICpfX2Nvc3gpOwpfX01BVEhfSU5MSU5FIHZvaWQKX19zaW5jb3NsIChsb25n
 IGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlICpfX3NpbngsIGxvbmcgZG91YmxlICpfX2Nvc3gp
 CnsKICBfX3NpbmNvc19jb2RlOwp9CgoKLyogT3B0aW1pemVkIGlubGluZSBpbXBsZW1lbnRh
 dGlvbiwgc29tZXRpbWVzIHdpdGggcmVkdWNlZCBwcmVjaXNpb24KICAgYW5kL29yIGFyZ3Vt
 ZW50IHJhbmdlLiAgKi8KCiNkZWZpbmUgX19leHBtMV9jb2RlIFwKICByZWdpc3RlciBsb25n
 IGRvdWJsZSBfX3ZhbHVlOwkJCQkJCSAgICAgIFwKICByZWdpc3RlciBsb25nIGRvdWJsZSBf
 X2V4cG9uZW50OwkJCQkJICAgICAgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdGVtcDsJ
 CQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAgICAgIFwKICAgICgi
 ZmxkbDJlCQkJIyBlXnggLSAxID0gMl4oeCAqIGxvZzIoZSkpIC0gMVxuXHQiCSAgICAgIFwK
 ICAgICAiZm11bAklJXN0KDEpCQkjIHggKiBsb2cyKGUpXG5cdCIJCQkgICAgICBcCiAgICAg
 ImZzdAklJXN0KDEpXG5cdCIJCQkJCQkgICAgICBcCiAgICAgImZybmRpbnQJCQkjIGludCh4
 ICogbG9nMihlKSlcblx0IgkJCSAgICAgIFwKICAgICAiZnhjaFxuXHQiCQkJCQkJCQkgICAg
 ICBcCiAgICAgImZzdWIJJSVzdCgxKQkJIyBmcmFjdCh4ICogbG9nMihlKSlcblx0IgkJICAg
 ICAgXAogICAgICJmMnhtMQkJCSMgMl4oZnJhY3QoeCAqIGxvZzIoZSkpKSAtIDFcblx0Igkg
 ICAgICBcCiAgICAgImZzY2FsZQkJCSMgMl4oeCAqIGxvZzIoZSkpIC0gMl4oaW50KHggKiBs
 b2cyKGUpKSlcblx0IiBcCiAgICAgOiAiPXQiIChfX3ZhbHVlKSwgIj11IiAoX19leHBvbmVu
 dCkgOiAiMCIgKF9feCkpOwkJCSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0aWxlX18JCQkJCQkJ
 ICAgICAgXAogICAgKCJmc2NhbGUJCQkjIDJeaW50KHggKiBsb2cyKGUpKVxuXHQiCQkgICAg
 ICBcCiAgICAgOiAiPXQiIChfX3RlbXApIDogIjAiICgxLjApLCAidSIgKF9fZXhwb25lbnQp
 KTsJCQkgICAgICBcCiAgX190ZW1wIC09IDEuMDsJCQkJCQkJICAgICAgXAogIHJldHVybiBf
 X3RlbXAgKyBfX3ZhbHVlCl9faW5saW5lX21hdGhjb2RlXyAobG9uZyBkb3VibGUsIF9fZXhw
 bTFsLCBfX3gsIF9fZXhwbTFfY29kZSkKCgojZGVmaW5lIF9fZXhwX2NvZGUgXAogIHJlZ2lz
 dGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIHJlZ2lzdGVyIGxvbmcg
 ZG91YmxlIF9fZXhwb25lbnQ7CQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJ
 CQkJCSAgICAgIFwKICAgICgiZmxkbDJlCQkJIyBlXnggPSAyXih4ICogbG9nMihlKSlcblx0
 IgkJICAgICAgXAogICAgICJmbXVsCSUlc3QoMSkJCSMgeCAqIGxvZzIoZSlcblx0IgkJCSAg
 ICAgIFwKICAgICAiZnN0CSUlc3QoMSlcblx0IgkJCQkJCSAgICAgIFwKICAgICAiZnJuZGlu
 dAkJCSMgaW50KHggKiBsb2cyKGUpKVxuXHQiCQkJICAgICAgXAogICAgICJmeGNoXG5cdCIJ
 CQkJCQkJCSAgICAgIFwKICAgICAiZnN1YgklJXN0KDEpCQkjIGZyYWN0KHggKiBsb2cyKGUp
 KVxuXHQiCQkgICAgICBcCiAgICAgImYyeG0xCQkJIyAyXihmcmFjdCh4ICogbG9nMihlKSkp
 IC0gMVxuXHQiCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUpLCAiPXUiIChfX2V4cG9u
 ZW50KSA6ICIwIiAoX194KSk7CQkJICAgICAgXAogIF9fdmFsdWUgKz0gMS4wOwkJCQkJCQkg
 ICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAgICAgIFwKICAgICgiZnNjYWxl
 IgkJCQkJCQkJICAgICAgXAogICAgIDogIj10IiAoX192YWx1ZSkgOiAiMCIgKF9fdmFsdWUp
 LCAidSIgKF9fZXhwb25lbnQpKTsJCSAgICAgIFwKICByZXR1cm4gX192YWx1ZQpfX2lubGlu
 ZV9tYXRoY29kZSAoZXhwLCBfX3gsIF9fZXhwX2NvZGUpCl9faW5saW5lX21hdGhjb2RlXyAo
 bG9uZyBkb3VibGUsIF9fZXhwbCwgX194LCBfX2V4cF9jb2RlKQoKCl9faW5saW5lX21hdGhj
 b2RlICh0YW4sIF9feCwgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJ
 ICAgICAgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWUyIF9fYXR0cmlidXRlX18g
 KChfX3VudXNlZF9fKSk7CQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAg
 ICAgIFwKICAgICgiZnB0YW4iCQkJCQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX3ZhbHVl
 MiksICI9dSIgKF9fdmFsdWUpIDogIjAiIChfX3gpKTsJCQkgICAgICBcCiAgcmV0dXJuIF9f
 dmFsdWUpCgoKI2RlZmluZSBfX2F0YW4yX2NvZGUgXAogIHJlZ2lzdGVyIGxvbmcgZG91Ymxl
 IF9fdmFsdWU7CQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAg
 ICBcCiAgICAoImZwYXRhbiIJCQkJCQkJCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUp
 IDogIjAiIChfX3gpLCAidSIgKF9feSkgOiAic3QoMSkiKTsJCSAgICAgIFwKICByZXR1cm4g
 X192YWx1ZQpfX2lubGluZV9tYXRoY29kZTIgKGF0YW4yLCBfX3ksIF9feCwgX19hdGFuMl9j
 b2RlKQpfX2lubGluZV9tYXRoY29kZTJfIChsb25nIGRvdWJsZSwgX19hdGFuMmwsIF9feSwg
 X194LCBfX2F0YW4yX2NvZGUpCgoKX19pbmxpbmVfbWF0aGNvZGUyIChmbW9kLCBfX3gsIF9f
 eSwgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIF9f
 YXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcCiAgICAoIjE6CWZwcmVtXG5cdCIJCQkJ
 CQkgICAgICBcCiAgICAgImZuc3RzdwklJWF4XG5cdCIJCQkJCQkgICAgICBcCiAgICAgInNh
 aGZcblx0IgkJCQkJCQkJICAgICAgXAogICAgICJqcAkxYiIJCQkJCQkJICAgICAgXAogICAg
 IDogIj10IiAoX192YWx1ZSkgOiAiMCIgKF9feCksICJ1IiAoX195KSA6ICJheCIsICJjYyIp
 OwkJICAgICAgXAogIHJldHVybiBfX3ZhbHVlKQoKCl9faW5saW5lX21hdGhjb2RlMiAocG93
 LCBfX3gsIF9feSwgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAg
 ICAgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fZXhwb25lbnQ7CQkJCQkgICAgICBcCiAg
 X19leHRlbnNpb25fXyBsb25nIGxvbmcgaW50IF9fcCA9IChsb25nIGxvbmcgaW50KSBfX3k7
 CQkgICAgICBcCiAgaWYgKF9feCA9PSAwLjAgJiYgX195ID4gMC4wKQkJCQkJCSAgICAgIFwK
 ICAgIHJldHVybiAwLjA7CQkJCQkJCQkgICAgICBcCiAgaWYgKF9feSA9PSAoZG91YmxlKSBf
 X3ApCQkJCQkJICAgICAgXAogICAgewkJCQkJCQkJCSAgICAgIFwKICAgICAgbG9uZyBkb3Vi
 bGUgX19yID0gMS4wOwkJCQkJCSAgICAgIFwKICAgICAgaWYgKF9fcCA9PSAwKQkJCQkJCQkg
 ICAgICBcCglyZXR1cm4gMS4wOwkJCQkJCQkgICAgICBcCiAgICAgIGlmIChfX3AgPCAwKQkJ
 CQkJCQkgICAgICBcCgl7CQkJCQkJCQkgICAgICBcCgkgIF9fcCA9IC1fX3A7CQkJCQkJCSAg
 ICAgIFwKCSAgX194ID0gMS4wIC8gX194OwkJCQkJCSAgICAgIFwKCX0JCQkJCQkJCSAgICAg
 IFwKICAgICAgd2hpbGUgKDEpCQkJCQkJCQkgICAgICBcCgl7CQkJCQkJCQkgICAgICBcCgkg
 IGlmIChfX3AgJiAxKQkJCQkJCQkgICAgICBcCgkgICAgX19yICo9IF9feDsJCQkJCQkJICAg
 ICAgXAoJICBfX3AgPj49IDE7CQkJCQkJCSAgICAgIFwKCSAgaWYgKF9fcCA9PSAwKQkJCQkJ
 CQkgICAgICBcCgkgICAgcmV0dXJuIF9fcjsJCQkJCQkJICAgICAgXAoJICBfX3ggKj0gX194
 OwkJCQkJCQkgICAgICBcCgl9CQkJCQkJCQkgICAgICBcCiAgICAgIC8qIE5PVFJFQUNIRUQg
 Ki8JCQkJCQkJICAgICAgXAogICAgfQkJCQkJCQkJCSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0
 aWxlX18JCQkJCQkJICAgICAgXAogICAgKCJmeWwyeCIgOiAiPXQiIChfX3ZhbHVlKSA6ICIw
 IiAoX194KSwgInUiICgxLjApIDogInN0KDEpIik7CSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0
 aWxlX18JCQkJCQkJICAgICAgXAogICAgKCJmbXVsCSUlc3QoMSkJCSMgeSAqIGxvZzIoeClc
 blx0IgkJCSAgICAgIFwKICAgICAiZnN0CSUlc3QoMSlcblx0IgkJCQkJCSAgICAgIFwKICAg
 ICAiZnJuZGludAkJCSMgaW50KHkgKiBsb2cyKHgpKVxuXHQiCQkJICAgICAgXAogICAgICJm
 eGNoXG5cdCIJCQkJCQkJCSAgICAgIFwKICAgICAiZnN1YgklJXN0KDEpCQkjIGZyYWN0KHkg
 KiBsb2cyKHgpKVxuXHQiCQkgICAgICBcCiAgICAgImYyeG0xCQkJIyAyXihmcmFjdCh5ICog
 bG9nMih4KSkpIC0gMVxuXHQiCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUpLCAiPXUi
 IChfX2V4cG9uZW50KSA6ICIwIiAoX195KSwgIjEiIChfX3ZhbHVlKSk7CSAgICAgIFwKICBf
 X3ZhbHVlICs9IDEuMDsJCQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJ
 CQkgICAgICBcCiAgICAoImZzY2FsZSIJCQkJCQkJCSAgICAgIFwKICAgICA6ICI9dCIgKF9f
 dmFsdWUpIDogIjAiIChfX3ZhbHVlKSwgInUiIChfX2V4cG9uZW50KSk7CQkgICAgICBcCiAg
 cmV0dXJuIF9fdmFsdWUpCgoKX19pbmxpbmVfbWF0aG9wIChzcXJ0LCAiZnNxcnQiKQpfX2lu
 bGluZV9tYXRob3BfIChsb25nIGRvdWJsZSwgX19zcXJ0bCwgImZzcXJ0IikKCiNpZiBkZWZp
 bmVkIF9fR05VQ19fICYmIChfX0dOVUNfXyA+IDIgfHwgX19HTlVDX18gPT0gMiAmJiBfX0dO
 VUNfTUlOT1JfXyA+PSA4KQpfX2lubGluZV9tYXRoY29kZV8gKGRvdWJsZSwgZmFicywgX194
 LCByZXR1cm4gX19idWlsdGluX2ZhYnMgKF9feCkpCl9faW5saW5lX21hdGhjb2RlXyAoZmxv
 YXQsIGZhYnNmLCBfX3gsIHJldHVybiBfX2J1aWx0aW5fZmFic2YgKF9feCkpCl9faW5saW5l
 X21hdGhjb2RlXyAobG9uZyBkb3VibGUsIGZhYnNsLCBfX3gsIHJldHVybiBfX2J1aWx0aW5f
 ZmFic2wgKF9feCkpCl9faW5saW5lX21hdGhjb2RlXyAobG9uZyBkb3VibGUsIF9fZmFic2ws
 IF9feCwgcmV0dXJuIF9fYnVpbHRpbl9mYWJzbCAoX194KSkKI2Vsc2UKX19pbmxpbmVfbWF0
 aG9wIChmYWJzLCAiZmFicyIpCl9faW5saW5lX21hdGhvcF8gKGxvbmcgZG91YmxlLCBfX2Zh
 YnNsLCAiZmFicyIpCiNlbmRpZgoKLyogVGhlIGFyZ3VtZW50IHJhbmdlIG9mIHRoaXMgaW5s
 aW5lIHZlcnNpb24gaXMgcmVkdWNlZC4gICovCl9faW5saW5lX21hdGhvcCAoc2luLCAiZnNp
 biIpCi8qIFRoZSBhcmd1bWVudCByYW5nZSBvZiB0aGlzIGlubGluZSB2ZXJzaW9uIGlzIHJl
 ZHVjZWQuICAqLwpfX2lubGluZV9tYXRob3AgKGNvcywgImZjb3MiKQoKX19pbmxpbmVfbWF0
 aG9wX2RlY2wgKGF0YW4sICJmbGQxOyBmcGF0YW4iLCAiMCIgKF9feCkgOiAic3QoMSkiKQpf
 X2lubGluZV9tYXRob3BfZGVjbCAobG9nLCAiZmxkbG4yOyBmeGNoOyBmeWwyeCIsICIwIiAo
 X194KSA6ICJzdCgxKSIpCl9faW5saW5lX21hdGhvcF9kZWNsIChsb2cxMCwgImZsZGxnMjsg
 ZnhjaDsgZnlsMngiLCAiMCIgKF9feCkgOiAic3QoMSkiKQoKX19pbmxpbmVfbWF0aGNvZGUg
 KGFzaW4sIF9feCwgcmV0dXJuIF9fYXRhbjJsIChfX3gsIF9fc3FydGwgKDEuMCAtIF9feCAq
 IF9feCkpKQpfX2lubGluZV9tYXRoY29kZSAoYWNvcywgX194LCByZXR1cm4gX19hdGFuMmwg
 KF9fc3FydGwgKDEuMCAtIF9feCAqIF9feCksIF9feCkpCgpfX2lubGluZV9tYXRoY29kZV8g
 KGxvbmcgZG91YmxlLCBfX3NnbjFsLCBfX3gsIHJldHVybiBfX3ggPj0gMC4wID8gMS4wIDog
 LTEuMCkKCgovKiBUaGUgYXJndW1lbnQgcmFuZ2Ugb2YgdGhlIGlubGluZSB2ZXJzaW9uIG9m
 IHNpbmhsIGlzIHNsaWdodGx5IHJlZHVjZWQuICAqLwpfX2lubGluZV9tYXRoY29kZSAoc2lu
 aCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX19leG0xID0gX19leHBtMWwgKF9f
 ZmFic2wgKF9feCkpOwkJICAgICAgXAogIHJldHVybiAwLjUgKiAoX19leG0xIC8gKF9fZXht
 MSArIDEuMCkgKyBfX2V4bTEpICogX19zZ24xbCAoX194KSkKCl9faW5saW5lX21hdGhjb2Rl
 IChjb3NoLCBfX3gsIFwKICByZWdpc3RlciBsb25nIGRvdWJsZSBfX2V4ID0gX19leHBsIChf
 X3gpOwkJCQkgICAgICBcCiAgcmV0dXJuIDAuNSAqIChfX2V4ICsgMS4wIC8gX19leCkpCgpf
 X2lubGluZV9tYXRoY29kZSAodGFuaCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUg
 X19leG0xID0gX19leHBtMWwgKC1fX2ZhYnNsIChfX3ggKyBfX3gpKTsJICAgICAgXAogIHJl
 dHVybiBfX2V4bTEgLyAoX19leG0xICsgMi4wKSAqIF9fc2duMWwgKC1fX3gpKQoKCl9faW5s
 aW5lX21hdGhjb2RlIChmbG9vciwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192
 YWx1ZTsJCQkJCQkgICAgICBcCiAgX192b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCBpbnQgX19j
 dzsJCQkJCSAgICAgIFwKICBfX3ZvbGF0aWxlIHVuc2lnbmVkIHNob3J0IGludCBfX2N3dG1w
 OwkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZSAoImZuc3RjdyAlMCIgOiAiPW0iIChf
 X2N3KSk7CQkJCSAgICAgIFwKICBfX2N3dG1wID0gKF9fY3cgJiAweGYzZmYpIHwgMHgwNDAw
 OyAvKiByb3VuZGluZyBkb3duICovCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZSAoImZs
 ZGN3ICUwIiA6IDogIm0iIChfX2N3dG1wKSk7CQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRp
 bGUgKCJmcm5kaW50IiA6ICI9dCIgKF9fdmFsdWUpIDogIjAiIChfX3gpKTsJCSAgICAgIFwK
 ICBfX2FzbSBfX3ZvbGF0aWxlICgiZmxkY3cgJTAiIDogOiAibSIgKF9fY3cpKTsJCQkJICAg
 ICAgXAogIHJldHVybiBfX3ZhbHVlKQoKX19pbmxpbmVfbWF0aGNvZGUgKGNlaWwsIF9feCwg
 XAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIF9fdm9s
 YXRpbGUgdW5zaWduZWQgc2hvcnQgaW50IF9fY3c7CQkJCQkgICAgICBcCiAgX192b2xhdGls
 ZSB1bnNpZ25lZCBzaG9ydCBpbnQgX19jd3RtcDsJCQkJICAgICAgXAogIF9fYXNtIF9fdm9s
 YXRpbGUgKCJmbnN0Y3cgJTAiIDogIj1tIiAoX19jdykpOwkJCQkgICAgICBcCiAgX19jd3Rt
 cCA9IChfX2N3ICYgMHhmM2ZmKSB8IDB4MDgwMDsgLyogcm91bmRpbmcgdXAgKi8JCQkgICAg
 ICBcCiAgX19hc20gX192b2xhdGlsZSAoImZsZGN3ICUwIiA6IDogIm0iIChfX2N3dG1wKSk7
 CQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGUgKCJmcm5kaW50IiA6ICI9dCIgKF9fdmFs
 dWUpIDogIjAiIChfX3gpKTsJCSAgICAgIFwKICBfX2FzbSBfX3ZvbGF0aWxlICgiZmxkY3cg
 JTAiIDogOiAibSIgKF9fY3cpKTsJCQkJICAgICAgXAogIHJldHVybiBfX3ZhbHVlKQoKI2Rl
 ZmluZSBfX2xkZXhwX2NvZGUgXAogIHJlZ2lzdGVyIGxvbmcgZG91YmxlIF9fdmFsdWU7CQkJ
 CQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcCiAgICAoImZz
 Y2FsZSIJCQkJCQkJCSAgICAgIFwKICAgICA6ICI9dCIgKF9fdmFsdWUpIDogIjAiIChfX3gp
 LCAidSIgKChsb25nIGRvdWJsZSkgX195KSk7CQkgICAgICBcCiAgcmV0dXJuIF9fdmFsdWUK
 Cl9fTUFUSF9JTkxJTkUgZG91YmxlIGxkZXhwIChkb3VibGUgX194LCBpbnQgX195KTsKX19N
 QVRIX0lOTElORSBkb3VibGUKbGRleHAgKGRvdWJsZSBfX3gsIGludCBfX3kpCnsKICBfX2xk
 ZXhwX2NvZGU7Cn0KCgovKiBPcHRpbWl6ZWQgdmVyc2lvbnMgZm9yIHNvbWUgbm9uLXN0YW5k
 YXJkaXplZCBmdW5jdGlvbnMuICAqLwojaWYgZGVmaW5lZCBfX1VTRV9JU09DOVggfHwgZGVm
 aW5lZCBfX1VTRV9NSVNDCgpfX2lubGluZV9tYXRoY29kZSAoZXhwbTEsIF9feCwgX19leHBt
 MV9jb2RlKQoKLyogV2UgY2Fubm90IHJlbHkgb24gTV9TUVJUIGJlaW5nIGRlZmluZWQuICBT
 byB3ZSBkbyBpdCBmb3Igb3Vyc2VsZgogICBoZXJlLiAgKi8KIyBkZWZpbmUgX19NX1NRUlQy
 CTEuNDE0MjEzNTYyMzczMDk1MDQ4ODBMCS8qIHNxcnQoMikgKi8KCl9faW5saW5lX21hdGhj
 b2RlIChsb2cxcCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192YWx1ZTsJCQkJ
 CQkgICAgICBcCiAgaWYgKF9fZmFic2wgKF9feCkgPj0gMS4wIC0gMC41ICogX19NX1NRUlQy
 KQkJCQkgICAgICBcCiAgICBfX3ZhbHVlID0gbG9nbCAoMS4wICsgX194KTsJCQkJCQkgICAg
 ICBcCiAgZWxzZQkJCQkJCQkJCSAgICAgIFwKICAgIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJ
 CQkgICAgICBcCiAgICAgICgiZmxkbG4yXG5cdCIJCQkJCQkJICAgICAgXAogICAgICAgImZ4
 Y2hcblx0IgkJCQkJCQkgICAgICBcCiAgICAgICAiZnlsMnhwMSIJCQkJCQkJICAgICAgXAog
 ICAgICAgOiAiPXQiIChfX3ZhbHVlKSA6ICIwIiAoX194KSA6ICJzdCgxKSIpOwkJCQkgICAg
 ICBcCiAgcmV0dXJuIF9fdmFsdWUpCgoKLyogVGhlIGFyZ3VtZW50IHJhbmdlIG9mIHRoZSBp
 bmxpbmUgdmVyc2lvbiBvZiBhc2luaGwgaXMgc2xpZ2h0bHkgcmVkdWNlZC4gICovCl9faW5s
 aW5lX21hdGhjb2RlIChhc2luaCwgX194LCBcCiAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgIF9f
 eSA9IF9fZmFic2wgKF9feCk7CQkJCSAgICAgIFwKICByZXR1cm4gKGxvZzFwbCAoX195ICog
 X195IC8gKF9fc3FydGwgKF9feSAqIF9feSArIDEuMCkgKyAxLjApICsgX195KQkgICAgICBc
 CgkgICogX19zZ24xbCAoX194KSkpCgpfX2lubGluZV9tYXRoY29kZSAoYWNvc2gsIF9feCwg
 XAogIHJldHVybiBsb2dsIChfX3ggKyBfX3NxcnRsIChfX3ggLSAxLjApICogX19zcXJ0bCAo
 X194ICsgMS4wKSkpCgpfX2lubGluZV9tYXRoY29kZSAoYXRhbmgsIF9feCwgXAogIHJlZ2lz
 dGVyIGxvbmcgZG91YmxlIF9feSA9IF9fZmFic2wgKF9feCk7CQkJCSAgICAgIFwKICByZXR1
 cm4gLTAuNSAqIGxvZzFwbCAoLShfX3kgKyBfX3kpIC8gKDEuMCArIF9feSkpICogX19zZ24x
 bCAoX194KSkKCi8qIFRoZSBhcmd1bWVudCByYW5nZSBvZiB0aGUgaW5saW5lIHZlcnNpb24g
 b2YgaHlwb3RsIGlzIHNsaWdodGx5IHJlZHVjZWQuICAqLwpfX2lubGluZV9tYXRoY29kZTIg
 KGh5cG90LCBfX3gsIF9feSwgcmV0dXJuIF9fc3FydGwgKF9feCAqIF9feCArIF9feSAqIF9f
 eSkpCgpfX2lubGluZV9tYXRoY29kZShsb2diLCBfX3gsIFwKICByZWdpc3RlciBsb25nIGRv
 dWJsZSBfX3ZhbHVlOwkJCQkJCSAgICAgIFwKICByZWdpc3RlciBsb25nIGRvdWJsZSBfX2p1
 bms7CQkJCQkJICAgICAgXAogIF9fYXNtIF9fdm9sYXRpbGVfXwkJCQkJCQkgICAgICBcCiAg
 ICAoImZ4dHJhY3Rcblx0IgkJCQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX2p1bmspLCAi
 PXUiIChfX3ZhbHVlKSA6ICIwIiAoX194KSk7CQkJICAgICAgXAogIHJldHVybiBfX3ZhbHVl
 KQoKI2VuZGlmCgojaWZkZWYgX19VU0VfSVNPQzlYCl9faW5saW5lX21hdGhvcF9kZWNsIChs
 b2cyLCAiZmxkMTsgZnhjaDsgZnlsMngiLCAiMCIgKF9feCkgOiAic3QoMSkiKQoKX19NQVRI
 X0lOTElORSBmbG9hdCBsZGV4cGYgKGZsb2F0IF9feCwgaW50IF9feSk7Cl9fTUFUSF9JTkxJ
 TkUgZmxvYXQKbGRleHBmIChmbG9hdCBfX3gsIGludCBfX3kpCnsKICBfX2xkZXhwX2NvZGU7
 Cn0KCl9fTUFUSF9JTkxJTkUgbG9uZyBkb3VibGUgbGRleHBsIChsb25nIGRvdWJsZSBfX3gs
 IGludCBfX3kpOwpfX01BVEhfSU5MSU5FIGxvbmcgZG91YmxlCmxkZXhwbCAobG9uZyBkb3Vi
 bGUgX194LCBpbnQgX195KQp7CiAgX19sZGV4cF9jb2RlOwp9CgpfX2lubGluZV9tYXRoY29k
 ZTMgKGZtYSwgX194LCBfX3ksIF9feiwgcmV0dXJuIChfX3ggKiBfX3kpICsgX196KQoKX19p
 bmxpbmVfbWF0aG9wKHJpbnQsICJmcm5kaW50IikKCiNkZWZpbmUgX19scmludF9jb2RlIFwK
 ICBsb25nIGludCBfX2xyaW50cmVzOwkJCQkJCQkgICAgICBcCiAgX19hc21fXyBfX3ZvbGF0
 aWxlX18JCQkJCQkJICAgICAgXAogICAgKCJmaXN0cGwgJTAiCQkJCQkJCSAgICAgIFwKICAg
 ICA6ICI9bSIgKF9fbHJpbnRyZXMpIDogInQiIChfX3gpIDogInN0Iik7CQkJCSAgICAgIFwK
 ICByZXR1cm4gX19scmludHJlcwpfX01BVEhfSU5MSU5FIGxvbmcgaW50CmxyaW50ZiAoZmxv
 YXQgX194KQp7CiAgX19scmludF9jb2RlOwp9Cl9fTUFUSF9JTkxJTkUgbG9uZyBpbnQKbHJp
 bnQgKGRvdWJsZSBfX3gpCnsKICBfX2xyaW50X2NvZGU7Cn0KX19NQVRIX0lOTElORSBsb25n
 IGludApscmludGwgKGxvbmcgZG91YmxlIF9feCkKewogIF9fbHJpbnRfY29kZTsKfQojdW5k
 ZWYgX19scmludF9jb2RlCgojZGVmaW5lIF9fbGxyaW50X2NvZGUgXAogIGxvbmcgbG9uZyBp
 bnQgX19sbHJpbnRyZXM7CQkJCQkJICAgICAgXAogIF9fYXNtX18gX192b2xhdGlsZV9fCQkJ
 CQkJCSAgICAgIFwKICAgICgiZmlzdHBsbCAlMCIJCQkJCQkJICAgICAgXAogICAgIDogIj1t
 IiAoX19sbHJpbnRyZXMpIDogInQiIChfX3gpIDogInN0Iik7CQkJCSAgICAgIFwKICByZXR1
 cm4gX19sbHJpbnRyZXMKX19NQVRIX0lOTElORSBsb25nIGxvbmcgaW50CmxscmludGYgKGZs
 b2F0IF9feCkKewogIF9fbGxyaW50X2NvZGU7Cn0KX19NQVRIX0lOTElORSBsb25nIGxvbmcg
 aW50CmxscmludCAoZG91YmxlIF9feCkKewogIF9fbGxyaW50X2NvZGU7Cn0KX19NQVRIX0lO
 TElORSBsb25nIGxvbmcgaW50CmxscmludGwgKGxvbmcgZG91YmxlIF9feCkKewogIF9fbGxy
 aW50X2NvZGU7Cn0KI3VuZGVmIF9fbGxyaW50X2NvZGUKCiNlbmRpZgoKCiNpZmRlZiBfX1VT
 RV9NSVNDCgpfX2lubGluZV9tYXRoY29kZTIgKGRyZW0sIF9feCwgX195LCBcCiAgcmVnaXN0
 ZXIgZG91YmxlIF9fdmFsdWU7CQkJCQkJICAgICAgXAogIHJlZ2lzdGVyIGludCBfX2Nsb2Ji
 ZXJlZDsJCQkJCQkgICAgICBcCiAgX19hc20gX192b2xhdGlsZV9fCQkJCQkJCSAgICAgIFwK
 ICAgICgiMToJZnByZW0xXG5cdCIJCQkJCQkgICAgICBcCiAgICAgImZzdHN3CSUlYXhcblx0
 IgkJCQkJCSAgICAgIFwKICAgICAic2FoZlxuXHQiCQkJCQkJCQkgICAgICBcCiAgICAgImpw
 CTFiIgkJCQkJCQkgICAgICBcCiAgICAgOiAiPXQiIChfX3ZhbHVlKSwgIj0mYSIgKF9fY2xv
 YmJlcmVkKSA6ICIwIiAoX194KSwgInUiIChfX3kpIDogImNjIik7ICAgIFwKICByZXR1cm4g
 X192YWx1ZSkKCgovKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgaW4gdGhlIGBpc2Zpbml0ZScg
 bWFjcm8uICAqLwpfX01BVEhfSU5MSU5FIGludCBfX2Zpbml0ZSAoZG91YmxlIF9feCkgX19h
 dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwpfX01BVEhfSU5MSU5FIGludApfX2Zpbml0ZSAo
 ZG91YmxlIF9feCkKewogIHJldHVybiAoX19leHRlbnNpb25fXwoJICAoKCgoKHVuaW9uIHsg
 ZG91YmxlIF9fZDsgaW50IF9faVsyXTsgfSkge19fZDogX194fSkuX19pWzFdCgkgICAgIHwg
 MHg4MDBmZmZmZnUpICsgMSkgPj4gMzEpKTsKfQoKLyogTWlzY2VsbGFuZW91cyBmdW5jdGlv
 bnMgKi8KCl9faW5saW5lX21hdGhjb2RlIChfX2Nvc2htMSwgX194LCBcCiAgcmVnaXN0ZXIg
 bG9uZyBkb3VibGUgX19leG0xID0gX19leHBtMWwgKF9fZmFic2wgKF9feCkpOwkJICAgICAg
 XAogIHJldHVybiAwLjUgKiAoX19leG0xIC8gKF9fZXhtMSArIDEuMCkpICogX19leG0xKQoK
 X19pbmxpbmVfbWF0aGNvZGUgKF9fYWNvc2gxcCwgX194LCBcCiAgcmV0dXJuIGxvZzFwbCAo
 X194ICsgX19zcXJ0bCAoX194KSAqIF9fc3FydGwgKF9feCArIDIuMCkpKQoKI2VuZGlmIC8q
 IF9fVVNFX01JU0MgICovCgovKiBVbmRlZmluZSBzb21lIG9mIHRoZSBsYXJnZSBtYWNyb3Mg
 d2hpY2ggYXJlIG5vdCB1c2VkIGFueW1vcmUuICAqLwojdW5kZWYgX19leHBtMV9jb2RlCiN1
 bmRlZiBfX2V4cF9jb2RlCiN1bmRlZiBfX2F0YW4yX2NvZGUKI3VuZGVmIF9fc2luY29zX2Nv
 ZGUKCiNlbmRpZiAvKiBfX05PX01BVEhfSU5MSU5FUyAgKi8KCgovKiBUaGlzIGNvZGUgaXMg
 dXNlZCBpbnRlcm5hbGx5IGluIHRoZSBHTlUgbGliYy4gICovCiNpZmRlZiBfX0xJQkNfSU5U
 RVJOQUxfTUFUSF9JTkxJTkVTCl9faW5saW5lX21hdGhvcCAoX19pZWVlNzU0X3NxcnQsICJm
 c3FydCIpCl9faW5saW5lX21hdGhjb2RlMiAoX19pZWVlNzU0X2F0YW4yLCBfX3ksIF9feCwK
 CQkgICAgcmVnaXN0ZXIgbG9uZyBkb3VibGUgX192YWx1ZTsKCQkgICAgX19hc20gX192b2xh
 dGlsZV9fICgiZnBhdGFuXG5cdCIKCQkJCQk6ICI9dCIgKF9fdmFsdWUpCgkJCQkJOiAiMCIg
 KF9feCksICJ1IiAoX195KSA6ICJzdCgxKSIpOwoJCSAgICByZXR1cm4gX192YWx1ZTspCiNl
 bmRpZgoKI2VuZGlmIC8qIF9fR05VQ19fICAqLwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4v
 Zm9vLmNjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMTAwNjY0ADAw
 MDMzMDUAMDAxMTYzNwAwMDAwMDAwMDAyMQAwNzU2NDIzMzYxNAAwMTExNTMAIDAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIgIABtZW5nZWwA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9zcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI2luY2x1ZGUgPGNtYXRoPgoAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuL3Jl
 cHJvZHVjZV9pdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDEwMDc3NQAwMDAz
 MzA1ADAwMTE2MzcAMDAwMDAwMDA1NjMAMDc1NjQ1MDE1NTIAMDEyNTA1ACAwAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAAbWVuZ2VsAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABvc3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAACMhL2Jpbi9zaAoKSU5DTFVERVM9IiAtbm9zdGRpbmMg
 LUkuL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMSAtSS4vbGliL2djYy1saWIv
 aTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUgLUkuL2luY2x1ZGUvZysrLXYzL2k2ODYt
 cGMtbGludXgtZ251IC1JLi9pbmNsdWRlL2crKy12MyAtSS4vdXNyL2luY2x1ZGUiCgplY2hv
 IHBsYWluCmcrKyAke0lOQ0xVREVTfSAtYyBmb28uY2MKCmVjaG8gd2l0aCAtTyAtLXBlZGFu
 dGljCmcrKyAke0lOQ0xVREVTfSAtYyAtTyAtLXBlZGFudGljIGZvby5jYwoKZWNobyB3aXRo
 IC1PIC0tcGVkYW50aWMtZXJyb3JzCmcrKyAke0lOQ0xVREVTfSAtYyAtTyAtLXBlZGFudGlj
 LWVycm9ycyBmb28uY2MKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 AAAAAA==
 --------------000801000200090106090205--
 


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

* Re: c++/8549: --pedantic-errors problems on RedHat 6.1
@ 2002-11-19 18:02 bangerth
  0 siblings, 0 replies; 6+ messages in thread
From: bangerth @ 2002-11-19 18:02 UTC (permalink / raw)
  To: gcc-bugs, gcc-prs, mengel, nobody

Synopsis: --pedantic-errors problems on RedHat 6.1

State-Changed-From-To: open->feedback
State-Changed-By: bangerth
State-Changed-When: Tue Nov 12 10:21:26 2002
State-Changed-Why:
    You have a very old system... I cannot reproduce this
    problem with a more recent distribtion, neither with
    3.0, 3.1, or 3.2.
    
    Nevertheless, if you want us
    to look at the problem, please tell us what happens exactly
    at the lines indicated in std_cmath. Probably, there are
    initializers used that come from system headers. Please also 
    provide preprocessed files as described on the gcc homepage.
    (However, in this case we would need both information I
    mentioned above.)
    
    Could you please also test 3.2.1 once it will be released in
    a few days?

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


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

* c++/8549: --pedantic-errors problems on RedHat 6.1
@ 2002-11-19 16:10 mengel
  0 siblings, 0 replies; 6+ messages in thread
From: mengel @ 2002-11-19 16:10 UTC (permalink / raw)
  To: gcc-gnats


>Number:         8549
>Category:       c++
>Synopsis:       --pedantic-errors problems on RedHat 6.1
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Nov 12 09:26:06 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Marc Mengel
>Release:        3.1
>Organization:
>Environment:
i686-pc-linux-gnu, Red Hat 6.1
>Description:
--pedantic-error causes compilation failures when
--pedantic is silent.  This happens only on RedHat 6.1,
not sure why.   This fails similarly in 3.0.1 and 3.1.
>How-To-Repeat:
echo "#include <cmath>" > foo.cc
g++ -c -O --pedantic foo.cc
g++ -c -O --pedantic-errors foo.cc

For me, the first yeilds no warnings or errors, while
the second yeilds:
In file included from /afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/cmath:31,
                 from foo.cc:1:
/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h: In 
   function `int __gnu_cxx::__capture_isgreater(_Tp, _Tp)':
/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h:534: ISO    C++ forbids braced-groups within expressions
/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h: In 
   function `int __gnu_cxx::__capture_isgreaterequal(_Tp, _Tp)':
/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h:539: ISO    C++ forbids braced-groups within expressions
/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h: In 
   function `int __gnu_cxx::__capture_isless(_Tp, _Tp)':
/afs/fnal.gov/ups/gcc/v3_0_1/Linux+2.2/include/g++-v3/bits/std_cmath.h:543: ISO    C++ forbids braced-groups within expressions
...
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


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

end of thread, other threads:[~2002-11-13 23:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-20  6:59 c++/8549: --pedantic-errors problems on RedHat 6.1 Marc Mengel
  -- strict thread matches above, loose matches on Subject: below --
2002-11-20  6:56 Zack Weinberg
2002-11-19 18:37 bangerth
2002-11-19 18:36 Marc Mengel
2002-11-19 18:02 bangerth
2002-11-19 16:10 mengel

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).