<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>44766</bug_id>
          
          <creation_ts>2004-03-15 13:17 0000</creation_ts>
          <short_desc>emacs-18.59.ebuild</short_desc>
          <delta_ts>2007-02-14 14:54:35 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <keywords>EBUILD</keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>ulm@gentoo.org</reporter>
          <assigned_to>emacs@gentoo.org</assigned_to>
          <cc>distler@kph.uni-mainz.de</cc>

      

      
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2004-03-15 13:17:27 0000</bug_when>
            <thetext>Hello,

Please find attached emacs-18.59.ebuild, based on Emacs 18.59 with
Noah Friedman&apos;s Linux/ELF modifications. I habe included two more
patches:
- recent unexec code (emacs-18.59-unexelf.patch)
- minor changes, compiler and terminal related (emacs-18.59-gentoo.patch)

The program was compiled and tested for x86 under the following systems:

   Linux       Gentoo     gcc      glibc               ncurses   xfree
   2.6.3-mm3   1.4.3.13   3.3.3    2.3.3_pre20040207   5.3       4.3.0
   2.2.26      1.4.3.13   2.95.3   2.2.5               5.4       (none)

Before you tell me how utterly useless such an old Emacs version is,
here is some motivation:

We use embedded systems for physics data acquisition and slow control,
the smallest of them are diskless and have only 16 MB of memory. Recent
Emacs versions use too much of the systems&apos; resources and start up
slowly. In comparison, Emacs 18 is rather lean, as you can see from
the &quot;ps v&quot; output (the last line is from a different system):
  PID TTY      STAT   TIME  MAJFL   TRS   DRS  RSS %MEM COMMAND
 1269 ttyp0    T      0:00    112   127  1456  528  3.6 vi
 1270 ttyp0    T      0:00    175    94  1597  760  5.3 nano
 1271 ttyp0    T      0:00    318   258  2093 1300  9.0 emacs      # 18.59
27607 pts/151  T      0:00      0  1294 11921 5496  1.0 emacs -nw  # 21.3

In addition, it provides the same user interface and uses the same
extension language as newer Emacs versions (except for missing features,
of course). At least for us it is the ideal solution for occasional
editing on our DAQ systems.

Uli

Reproducible: Always
Steps to Reproduce:
1.
2.
3.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2004-03-15 13:27:58 0000</bug_when>
            <thetext>Created an attachment (id=27414)
emacs-18.59.ebuild
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2004-03-15 13:28:54 0000</bug_when>
            <thetext>Created an attachment (id=27415)
files/emacs-18.59-unexelf.patch
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2004-03-15 13:29:54 0000</bug_when>
            <thetext>Created an attachment (id=27416)
files/emacs-18.59-gentoo.patch
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2004-03-16 04:55:09 0000</bug_when>
            <thetext>Created an attachment (id=27464)
emacs-18.59.ebuild

Oops. Had submitted wrong version of the file.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mkennedy@gentoo.org</who>
            <bug_when>2004-05-13 08:32:38 0000</bug_when>
            <thetext>Thanks for the port, Uli.  I hope you dont mind: I appended -18.59 to the produced binaries and man page so that emacs-21.3 and emacs-18.59 could be installed simultaneously (eg. /usr/bin/emacs-18.59).  I also added  another patch to fix various things GCC 3.4 doesn&apos;t like.

*emacs-21.3-r3 (13 May 2004)
                                                                                                                 
  13 May 2004; &lt;mkennedy@gentoo.org&gt; +files/emacs-18.59-gcc-gentoo.patch,
  +files/emacs-18.59-gentoo.patch, +files/emacs-18.59-unexelf.patch,
  +emacs-18.59.ebuild, +emacs-21.3-r3.ebuild:
  Added retro emacs-18.59 w/ SLOT=1 (ebuild contributed by Ulrich Mueller
  &lt;ulm@kph.uni-mainz.de&gt;), resolves Bug #44766; Added new emacs-21.3-r3
  with support for using LessTif instead of OpenMotif (OpenMotif has
  problems which causes Emacs to be unstable); Marked emacs-21.3-r3 as
  ~arch.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2004-05-13 15:58:14 0000</bug_when>
            <thetext>Matthew,
thank you for accepting the ebuild.

Unfortunately, emacs-18.59-gcc-gentoo.patch breaks compilation with gcc 2.95
(options -falign-* are not known in that gcc version).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mkennedy@gentoo.org</who>
            <bug_when>2004-05-16 23:03:10 0000</bug_when>
            <thetext>thanks for the note. they have been removed from patch</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2007-02-11 09:51:09 0000</bug_when>
            <thetext>Hello again,
version 18.59 was removed some time ago, which was of course justified since it could not be compiled with GCC 4.

Please find attached an updated version of the ebuild (based on the last versio n in portage), together with emacs-18.59-gcc4.patch.

The package compiles and runs with gcc-4.1.1, glibc-2.5, kernel 2.6.20, and modular X (xorg-x11-7.2).

Reopening. See also bug #122215 comment #5 on why this should be added to the tree again. ;-)
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2007-02-11 09:52:24 0000</bug_when>
            <thetext>Created an attachment (id=109828)
emacs-18.59-r1.ebuild

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2007-02-11 09:53:24 0000</bug_when>
            <thetext>Created an attachment (id=109829)
files/emacs-18.59-gcc4.patch

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>fauli@gentoo.org</who>
            <bug_when>2007-02-11 10:11:14 0000</bug_when>
            <thetext>So you really want it...:)  Let me have a look and in the next days I will probably commit it.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>ulm@gentoo.org</who>
            <bug_when>2007-02-13 11:23:18 0000</bug_when>
            <thetext>One additional note (forgot to mention this): emacs-18.59.ebuild had SLOT=1 (see comment #5); however, the updated ebuild has SLOT=18. I don&apos;t know if it is necessary if an ebuild was removed from the tree, but I think a &quot;slotmove =app-editors/emacs-18.* 1 18&quot; in profiles/updates should not harm.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>fauli@gentoo.org</who>
            <bug_when>2007-02-14 14:54:35 0000</bug_when>
            <thetext>I reworked here and there, it works great, so I commited it back. 
See bug 166839 for the ongoing keywording.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27414</attachid>
            <date>2004-03-15 13:27 0000</date>
            <desc>emacs-18.59.ebuild</desc>
            <filename>emacs-18.59.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA0IEdlbnRvbyBUZWNobm9sb2dpZXMsIEluYy4KIyBEaXN0cmli
dXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYy
CiMgJEhlYWRlcjogJAoKREVTQ1JJUFRJT049IlRoZSBleHRlbnNpYmxlIHNlbGYtZG9jdW1lbnRp
bmcgdGV4dCBlZGl0b3IiClNSQ19VUkk9ImZ0cDovL2Z0cC5nbnUub3JnL29sZC1nbnUvZW1hY3Mv
JHtQfS50YXIuZ3oKCWZ0cDovL2Z0cC5zcGxvZGUuY29tL3B1Yi91c2Vycy9mcmllZG1hbi9wYXRj
aGVzLyR7UH0tbGludXgyMngtZWxmLWdsaWJjMi5kaWZmLmd6IgpIT01FUEFHRT0iaHR0cDovL3d3
dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKClNMT1Q9IjAiCktFWVdPUkRTPSJ+eDg2IgpMSUNF
TlNFPSJHUEwtMSIKSVVTRT0iWCIKREVQRU5EPSJzeXMtbGlicy9uY3Vyc2VzCglYPyAoIHZpcnR1
YWwveDExICkiClBST1ZJREU9InZpcnR1YWwvZW1hY3MgdmlydHVhbC9lZGl0b3IiCgpNWV9CQVNF
RElSPSIvdXNyL3NoYXJlL2VtYWNzLyR7UFZ9IgpNWV9MT0NLRElSPSIvdmFyL2xpYi9lbWFjcy9s
b2NrIgoKc3JjX3VucGFjaygpIHsKCXVucGFjayAke0F9CgllcGF0Y2ggJHtQfS1saW51eDIyeC1l
bGYtZ2xpYmMyLmRpZmYKCWVwYXRjaCAke0ZJTEVTRElSfS8ke1B9LXVuZXhlbGYucGF0Y2gKCWVw
YXRjaCAke0ZJTEVTRElSfS8ke1B9LWdlbnRvby5wYXRjaAp9CgpzcmNfY29tcGlsZSgpIHsKCSMg
YXV0b2NvbmY/IFdoYXQncyBhdXRvY29uZj8gV2UgYXJlIGxpdmluZyBpbiAxOTkyLiA7LSkKCWxv
Y2FsIGFyY2gKCWNhc2UgJHtBUkNIfSBpbgoJCXg4NikgICBhcmNoPWludGVsMzg2IDs7CgkJKikg
ICAgIGRpZSAiQXJjaGl0ZWN0dXJlICR7QVJDSH0gbm90IHN1cHBvcnRlZCIgOzsKCWVzYWMKCWxv
Y2FsIGNtZD0icy9cInMtLipcLmhcIi9cInMtbGludXguaFwiLztzL1wibS0uKlwuaFwiL1wibS0k
e2FyY2h9LmhcIi8iCgl1c2UgWCAmJiBjbWQ9IiR7Y21kfTtzLy4qXCgjZGVmaW5lIEhBVkVfWF9X
SU5ET1dTXCkuKi9cMS8iCglzZWQgLWUgIiR7Y21kfSIgc3JjL2NvbmZpZy5oLWRpc3QgPnNyYy9j
b25maWcuaAoKCWNhdCA8PC1FTkQgPnNyYy9wYXRocy5oCgkJI2RlZmluZSBQQVRIX0xPQURTRUFS
Q0ggIiR7TVlfQkFTRURJUn0vbGlzcCIKCQkjZGVmaW5lIFBBVEhfRVhFQyAiJHtNWV9CQVNFRElS
fS9ldGMiCgkJI2RlZmluZSBQQVRIX0xPQ0sgIiR7TVlfTE9DS0RJUn0vIgoJCSNkZWZpbmUgUEFU
SF9TVVBFUkxPQ0sgIiR7TVlfTE9DS0RJUn0vISEhU3VwZXJMb2NrISEhIgoJRU5ECgoJYWRkd3Jp
dGUgJHtNWV9MT0NLRElSfQoJZW1ha2UgLWoxIHx8IGRpZQp9CgpzcmNfaW5zdGFsbCgpIHsKCWRv
ZGlyICR7TVlfQkFTRURJUn0KCWRvZGlyIC91c3Ivc2hhcmUvbWFuL21hbjEKCW1ha2UgaW5zdGFs
bCBMSUJESVI9JHtEfSR7TVlfQkFTRURJUn0gQklORElSPSR7RH0vdXNyL2JpbiBcCgkJTUFORElS
PSR7RH0vdXNyL3NoYXJlL21hbi9tYW4xIHx8IGRpZQoJY2htb2QgLVIgZ28tdyAke0R9JHtNWV9C
QVNFRElSfQoJcm1kaXIgJHtEfSR7TVlfQkFTRURJUn0vbG9jawoKCWRvZGlyICR7TVlfTE9DS0RJ
UiUvKn0KCWRpcm9wdHMgLW0wNzc3Cglkb2RpciAke01ZX0xPQ0tESVJ9CglrZWVwZGlyICR7TVlf
TE9DS0RJUn0KfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27415</attachid>
            <date>2004-03-15 13:28 0000</date>
            <desc>files/emacs-18.59-unexelf.patch</desc>
            <filename>emacs-18.59-unexelf.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">UHJlcmVxOiAxOTk5LTExLTA1CmRpZmYgLU51ciBlbWFjcy0xOC41OS1vcmlnL3NyYy9DaGFuZ2VM
b2cgZW1hY3MtMTguNTkvc3JjL0NoYW5nZUxvZwotLS0gZW1hY3MtMTguNTktb3JpZy9zcmMvQ2hh
bmdlTG9nCTE5OTktMTEtMDUgMDk6MTk6NTYuMDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0xOC41
OS9zcmMvQ2hhbmdlTG9nCTIwMDQtMDMtMDggMDk6Mzg6NTAuMDAwMDAwMDAwICswMTAwCkBAIC0x
LDMgKzEsNyBAQAorMjAwNC0wMy0wOCAgVWxyaWNoIE11ZWxsZXIgIDx1bG1Aa3BoLnVuaS1tYWlu
ei5kZT4KKworCSogdW5leGVsZi5jOiBSZXBsYWNlZCB3aXRoIHZlcnNpb24gZnJvbSBFbWFjcyAy
MS4zLgorCiAxOTk5LTExLTA1ICBOb2FoIEZyaWVkbWFuICA8ZnJpZWRtYW5Ac3Bsb2RlLmNvbT4K
IAogCSogeW1ha2VmaWxlIFtMSUJTX1RFUk1DQVBdOiBVc2UgLWxuY3Vyc2VzLCBub3QgLWxjdXJz
ZXMuCmRpZmYgLU51ciBlbWFjcy0xOC41OS1vcmlnL3NyYy91bmV4ZWxmLmMgZW1hY3MtMTguNTkv
c3JjL3VuZXhlbGYuYwotLS0gZW1hY3MtMTguNTktb3JpZy9zcmMvdW5leGVsZi5jCTE5OTgtMDUt
MzEgMDQ6MzU6NTQuMDAwMDAwMDAwICswMjAwCisrKyBlbWFjcy0xOC41OS9zcmMvdW5leGVsZi5j
CTIwMDQtMDMtMDggMDE6MTg6NTQuMDAwMDAwMDAwICswMTAwCkBAIC0xLDQgKzEsNCBAQAotLyog
Q29weXJpZ2h0IChDKSAxOTg1LCAxOTg2LCAxOTg3LCAxOTg4LCAxOTkwLCAxOTkyCisvKiBDb3B5
cmlnaHQgKEMpIDE5ODUsIDE5ODYsIDE5ODcsIDE5ODgsIDE5OTAsIDE5OTIsIDE5OTksIDIwMDAs
IDAxLCAwMgogICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIEdOVSBFbWFjcy4KQEAgLTMzLDE0ICszMywxNCBAQAogICogTW9kaWZpZWQgaGVh
dmlseSBzaW5jZSB0aGVuLgogICoKICAqIFN5bm9wc2lzOgotICoJdW5leGVjIChuZXdfbmFtZSwg
YV9uYW1lLCBkYXRhX3N0YXJ0LCBic3Nfc3RhcnQsIGVudHJ5X2FkZHJlc3MpCi0gKgljaGFyICpu
ZXdfbmFtZSwgKmFfbmFtZTsKKyAqCXVuZXhlYyAobmV3X25hbWUsIG9sZF9uYW1lLCBkYXRhX3N0
YXJ0LCBic3Nfc3RhcnQsIGVudHJ5X2FkZHJlc3MpCisgKgljaGFyICpuZXdfbmFtZSwgKm9sZF9u
YW1lOwogICoJdW5zaWduZWQgZGF0YV9zdGFydCwgYnNzX3N0YXJ0LCBlbnRyeV9hZGRyZXNzOwog
ICoKICAqIFRha2VzIGEgc25hcHNob3Qgb2YgdGhlIHByb2dyYW0gYW5kIG1ha2VzIGFuIGEub3V0
IGZvcm1hdCBmaWxlIGluIHRoZQogICogZmlsZSBuYW1lZCBieSB0aGUgc3RyaW5nIGFyZ3VtZW50
IG5ld19uYW1lLgotICogSWYgYV9uYW1lIGlzIG5vbi1OVUxMLCB0aGUgc3ltYm9sIHRhYmxlIHdp
bGwgYmUgdGFrZW4gZnJvbSB0aGUgZ2l2ZW4gZmlsZS4KLSAqIE9uIHNvbWUgbWFjaGluZXMsIGFu
IGV4aXN0aW5nIGFfbmFtZSBmaWxlIGlzIHJlcXVpcmVkLgorICogSWYgb2xkX25hbWUgaXMgbm9u
LU5VTEwsIHRoZSBzeW1ib2wgdGFibGUgd2lsbCBiZSB0YWtlbiBmcm9tIHRoZSBnaXZlbiBmaWxl
LgorICogT24gc29tZSBtYWNoaW5lcywgYW4gZXhpc3Rpbmcgb2xkX25hbWUgZmlsZSBpcyByZXF1
aXJlZC4KICAqCiAgKiBUaGUgYm91bmRhcmllcyB3aXRoaW4gdGhlIGEub3V0IGZpbGUgbWF5IGJl
IGFkanVzdGVkIHdpdGggdGhlIGRhdGFfc3RhcnQKICAqIGFuZCBic3Nfc3RhcnQgYXJndW1lbnRz
LiAgRWl0aGVyIG9yIGJvdGggbWF5IGJlIGdpdmVuIGFzIDAgZm9yIGRlZmF1bHRzLgpAQCAtNTIs
MTEgKzUyLDYgQEAKICAqIFRoZSB2YWx1ZSB5b3Ugc3BlY2lmeSBtYXkgYmUgcm91bmRlZCBkb3du
IHRvIGEgc3VpdGFibGUgYm91bmRhcnkKICAqIGFzIHJlcXVpcmVkIGJ5IHRoZSBtYWNoaW5lIHlv
dSBhcmUgdXNpbmcuCiAgKgotICogU3BlY2lmeWluZyB6ZXJvIGZvciBkYXRhX3N0YXJ0IG1lYW5z
IHRoZSBib3VuZGFyeSBiZXR3ZWVuIHRleHQgYW5kIGRhdGEKLSAqIHNob3VsZCBub3QgYmUgdGhl
IHNhbWUgYXMgd2hlbiB0aGUgcHJvZ3JhbSB3YXMgbG9hZGVkLgotICogSWYgTk9fUkVNQVAgaXMg
ZGVmaW5lZCwgdGhlIGFyZ3VtZW50IGRhdGFfc3RhcnQgaXMgaWdub3JlZCBhbmQgdGhlCi0gKiBz
ZWdtZW50IGJvdW5kYXJpZXMgYXJlIG5ldmVyIGNoYW5nZWQuCi0gKgogICogQnNzX3N0YXJ0IGlu
ZGljYXRlcyBob3cgbXVjaCBvZiB0aGUgZGF0YSBzZWdtZW50IGlzIHRvIGJlIHNhdmVkIGluIHRo
ZQogICogYS5vdXQgZmlsZSBhbmQgcmVzdG9yZWQgd2hlbiB0aGUgcHJvZ3JhbSBpcyBleGVjdXRl
ZC4gIEl0IGdpdmVzIHRoZSBsb3dlc3QKICAqIHVuc2F2ZWQgYWRkcmVzcywgYW5kIGlzIHJvdW5k
ZWQgdXAgdG8gYSBwYWdlIGJvdW5kYXJ5LiAgVGhlIGRlZmF1bHQgd2hlbiAwCkBAIC02Niw5ICs2
MSw2IEBACiAgKgogICogVGhlIG5ldyBmaWxlIGlzIHNldCB1cCB0byBzdGFydCBhdCBlbnRyeV9h
ZGRyZXNzLgogICoKLSAqIElmIHlvdSBtYWtlIGltcHJvdmVtZW50cyBJJ2QgbGlrZSB0byBnZXQg
dGhlbSB0b28uCi0gKiBoYXJwbyF1dGFoLWNzIXRob21hcywgdGhvbWFzQFV0YWgtMjAKLSAqCiAg
Ki8KIAogLyogRXZlbiBtb3JlIGhlYXZpbHkgbW9kaWZpZWQgYnkgamFtZXNAYmlndGV4LmNhY3R1
cy5vcmcgb2YgRGVsbCBDb21wdXRlciBDby4KQEAgLTQxMiwyMiArNDA0LDE1OSBAQAogCiAgKi8K
IAwKKy8qCisgKiBNb2RpZmllZCBieSByZGhAeW90dGF5b3R0YS5jb20gb2YgWW90dGEgWW90dGEg
SW5jb3Jwb3JhdGVkLgorICogCisgKiBUaGUgY29kZSBvcmlnaW5hbGx5IHVzZWQgbW1hcCgpIHRv
IGNyZWF0ZSBhIG1lbW9yeSBpbWFnZSBvZiB0aGUgbmV3CisgKiBhbmQgb2xkIG9iamVjdCBmaWxl
cy4gIFRoaXMgaGFkIGEgZmV3IGhhbmR5IGZlYXR1cmVzOiAoMSkgeW91IGdldAorICogdG8gdXNl
IGEgY29vbCBzeXN0ZW0gY2FsbCBsaWtlIG1tYXAsICgyKSBubyBuZWVkIHRvIGV4cGxpY2l0bHkK
KyAqIHdyaXRlIG91dCB0aGUgbmV3IGZpbGUgYmVmb3JlIHRoZSBjbG9zZSwgYW5kICgzKSBubyBz
d2FwIHNwYWNlCisgKiByZXF1aXJlbWVudHMuICBVbmZvcnR1bmF0ZWx5LCBtbWFwKCkgb2Z0ZW4g
ZmFpbHMgdG8gd29yayB3aXRoCisgKiBuZnMtbW91bnRlZCBmaWxlIHN5c3RlbXMuCisgKgorICog
U28sIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgdm0gc3Vic3lzdGVtIHRvIGRvIHRoZSBmaWxl
IGkvbyBmb3IKKyAqIHVzLCBpdCdzIG5vdyBkb25lIGV4cGxpY2l0bHkuICBBIGJ1ZmZlciBvZiB0
aGUgcmlnaHQgc2l6ZSBmb3IgdGhlCisgKiBmaWxlIGlzIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCwg
YW5kIGVpdGhlciB0aGUgb2xkX25hbWUgaXMgcmVhZCBpbnRvCisgKiBpdCwgb3IgaXQgaXMgaW5p
dGlhbGl6ZWQgd2l0aCB0aGUgY29ycmVjdCBuZXcgZXhlY3V0YWJsZSBjb250ZW50cywKKyAqIGFu
ZCB0aGVuIHdyaXR0ZW4gdG8gbmV3X25hbWUuCisgKi8KKwwKKyNpZm5kZWYgZW1hY3MKKyNkZWZp
bmUgZmF0YWwoYSwgYiwgYykgZnByaW50ZiAoc3RkZXJyLCBhLCBiLCBjKSwgZXhpdCAoMSkKKyNp
bmNsdWRlIDxzdHJpbmcuaD4KKyNlbHNlCisjaW5jbHVkZSAiY29uZmlnLmgiCitleHRlcm4gdm9p
ZCBmYXRhbCAoY2hhciAqLCAuLi4pOworI2VuZGlmCisKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K
ICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8bWVt
b3J5Lmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRl
IDx1bmlzdGQuaD4KICNpbmNsdWRlIDxmY250bC5oPgorI2lmICFkZWZpbmVkIChfX05ldEJTRF9f
KSAmJiAhZGVmaW5lZCAoX19PcGVuQlNEX18pCiAjaW5jbHVkZSA8ZWxmLmg+CisjZW5kaWYKICNp
bmNsdWRlIDxzeXMvbW1hbi5oPgotCi0jaWZuZGVmIGVtYWNzCi0jZGVmaW5lIGZhdGFsKGEsIGIs
IGMpIGZwcmludGYgKHN0ZGVyciwgYSwgYiwgYyksIGV4aXQgKDEpCisjaWYgZGVmaW5lZCAoX19z
b255X25ld3MpICYmIGRlZmluZWQgKF9TWVNUWVBFX1NZU1YpCisjaW5jbHVkZSA8c3lzL2VsZl9t
aXBzLmg+CisjaW5jbHVkZSA8c3ltLmg+CisjZW5kaWYgLyogX19zb255X25ld3MgJiYgX1NZU1RZ
UEVfU1lTViAqLworI2lmIF9fc2dpCisjaW5jbHVkZSA8c3ltcy5oPiAvKiBmb3IgSERSUiBkZWNs
YXJhdGlvbiAqLworI2VuZGlmIC8qIF9fc2dpICovCisKKyNpZm5kZWYgTUFQX0FOT04KKyNpZmRl
ZiBNQVBfQU5PTllNT1VTCisjZGVmaW5lIE1BUF9BTk9OIE1BUF9BTk9OWU1PVVMKICNlbHNlCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi1leHRlcm4gdm9pZCBmYXRhbCAoY2hhciAqLCAuLi4pOworI2Rl
ZmluZSBNQVBfQU5PTiAwCisjZW5kaWYKKyNlbmRpZgorCisjaWZuZGVmIE1BUF9GQUlMRUQKKyNk
ZWZpbmUgTUFQX0ZBSUxFRCAoKHZvaWQgKikgLTEpCisjZW5kaWYKKworI2lmIGRlZmluZWQgKF9f
YWxwaGFfXykgJiYgIWRlZmluZWQgKF9fTmV0QlNEX18pICYmICFkZWZpbmVkIChfX09wZW5CU0Rf
XykKKy8qIERlY2xhcmUgQ09GRiBkZWJ1Z2dpbmcgc3ltYm9sIHRhYmxlLiAgVGhpcyB1c2VkIHRv
IGJlIGluCisgICAvdXNyL2luY2x1ZGUvc3ltLmgsIGJ1dCB0aGlzIGZpbGUgaXMgbm8gbG9uZ2Vy
IGluY2x1ZGVkIGluIFJlZCBIYXQKKyAgIDUuMCBhbmQgcHJlc3VtYWJseSBpbiBhbnkgb3RoZXIg
Z2xpYmMgMi54IGJhc2VkIGRpc3RyaWJ1dGlvbi4gICovCit0eXBlZGVmIHN0cnVjdCB7CisJc2hv
cnQgbWFnaWM7CisJc2hvcnQgdnN0YW1wOworCWludCBpbGluZU1heDsKKwlpbnQgaWRuTWF4Owor
CWludCBpcGRNYXg7CisJaW50IGlzeW1NYXg7CisJaW50IGlvcHRNYXg7CisJaW50IGlhdXhNYXg7
CisJaW50IGlzc01heDsKKwlpbnQgaXNzRXh0TWF4OworCWludCBpZmRNYXg7CisJaW50IGNyZmQ7
CisJaW50IGlleHRNYXg7CisJbG9uZyBjYkxpbmU7CisJbG9uZyBjYkxpbmVPZmZzZXQ7CisJbG9u
ZyBjYkRuT2Zmc2V0OworCWxvbmcgY2JQZE9mZnNldDsKKwlsb25nIGNiU3ltT2Zmc2V0OworCWxv
bmcgY2JPcHRPZmZzZXQ7CisJbG9uZyBjYkF1eE9mZnNldDsKKwlsb25nIGNiU3NPZmZzZXQ7CisJ
bG9uZyBjYlNzRXh0T2Zmc2V0OworCWxvbmcgY2JGZE9mZnNldDsKKwlsb25nIGNiUmZkT2Zmc2V0
OworCWxvbmcgY2JFeHRPZmZzZXQ7Cit9IEhEUlIsICpwSERSUjsgCisjZGVmaW5lIGNiSERSUiBz
aXplb2YoSERSUikKKyNkZWZpbmUgaGRyTmlsICgocEhEUlIpMCkKKyNlbmRpZgorCisjaWZkZWYg
X19OZXRCU0RfXworLyoKKyAqIE5ldEJTRCBkb2VzIG5vdCBoYXZlIG5vcm1hbC1sb29raW5nIHVz
ZXItbGFuZCBFTEYgc3VwcG9ydC4KKyAqLworIyBpZiBkZWZpbmVkIF9fYWxwaGFfXyB8fCBkZWZp
bmVkIF9fc3BhcmNfdjlfXworIyAgZGVmaW5lIEVMRlNJWkUJNjQKKyMgZWxzZQorIyAgZGVmaW5l
IEVMRlNJWkUJMzIKKyMgZW5kaWYKKyMgaW5jbHVkZSA8c3lzL2V4ZWNfZWxmLmg+CisKKyMgaWZu
ZGVmIFBUX0xPQUQKKyMgIGRlZmluZSBQVF9MT0FECUVsZl9wdF9sb2FkCisjICBpZiAwCQkJCQkJ
Lyogd2FzIGluIHBrZ3NyYyBwYXRjaGVzIGZvciAyMC43ICovCisjICAgZGVmaW5lIFNIVF9QUk9H
QklUUyBFbGZfc2h0X3Byb2diaXRzCisjICBlbmRpZgorIyAgZGVmaW5lIFNIVF9TWU1UQUIJRWxm
X3NodF9zeW10YWIKKyMgIGRlZmluZSBTSFRfRFlOU1lNCUVsZl9zaHRfZHluc3ltCisjICBkZWZp
bmUgU0hUX05VTEwJRWxmX3NodF9udWxsCisjICBkZWZpbmUgU0hUX05PQklUUwlFbGZfc2h0X25v
Yml0cworIyAgZGVmaW5lIFNIVF9SRUwJRWxmX3NodF9yZWwKKyMgIGRlZmluZSBTSFRfUkVMQQlF
bGZfc2h0X3JlbGEKKworIyAgZGVmaW5lIFNITl9VTkRFRglFbGZfZXNobl91bmRlZmluZWQKKyMg
IGRlZmluZSBTSE5fQUJTCUVsZl9lc2huX2Fic29sdXRlCisjICBkZWZpbmUgU0hOX0NPTU1PTglF
bGZfZXNobl9jb21tb24KKyMgZW5kaWYgLyogIVBUX0xPQUQgKi8KKworIyBpZmRlZiBfX2FscGhh
X18KKyMgIGluY2x1ZGUgPHN5cy9leGVjX2Vjb2ZmLmg+CisjICBkZWZpbmUgSERSUgkJc3RydWN0
IGVjb2ZmX3N5bWhkcgorIyAgZGVmaW5lIHBIRFJSCQlIRFJSICoKKyMgZW5kaWYgLyogX19hbHBo
YV9fICovCisKKyNpZmRlZiBfX21pcHNfXwkJCS8qIHdhcyBpbiBwa2dzcmMgcGF0Y2hlcyBmb3Ig
MjAuNyAqLworIyBkZWZpbmUgU0hUX01JUFNfREVCVUcJRFRfTUlQU19GTEFHUworIyBkZWZpbmUg
SERSUgkJc3RydWN0IEVsZl9TaGRyCisjZW5kaWYgLyogX19taXBzX18gKi8KKyNlbmRpZiAvKiBf
X05ldEJTRF9fICovCisKKyNpZmRlZiBfX09wZW5CU0RfXworIyBpbmNsdWRlIDxzeXMvZXhlY19l
bGYuaD4KKyNlbmRpZgorCisjaWYgX19HTlVfTElCUkFSWV9fIC0gMCA+PSA2CisjIGluY2x1ZGUg
PGxpbmsuaD4JLyogZ2V0IEVsZlcgZXRjICovCisjZW5kaWYKKworI2lmbmRlZiBFbGZXCisjIGlm
ZGVmIF9fU1REQ19fCisjICBkZWZpbmUgRWxmQml0c1coYml0cywgdHlwZSkgRWxmIyNiaXRzIyNf
IyN0eXBlCisjIGVsc2UKKyMgIGRlZmluZSBFbGZCaXRzVyhiaXRzLCB0eXBlKSBFbGYvKiovYml0
cy8qKi9fLyoqL3R5cGUKKyMgZW5kaWYKKyMgaWZkZWYgX0xQNjQKKyMgIGRlZmluZSBFTEZTSVpF
IDY0CisjIGVsc2UKKyMgIGRlZmluZSBFTEZTSVpFIDMyCisjIGVuZGlmCisgIC8qIFRoaXMgbWFj
cm8gZXhwYW5kcyBgYml0cycgYmVmb3JlIGludm9raW5nIEVsZkJpdHNXLiAgKi8KKyMgZGVmaW5l
IEVsZkV4cGFuZEJpdHNXKGJpdHMsIHR5cGUpIEVsZkJpdHNXIChiaXRzLCB0eXBlKQorIyBkZWZp
bmUgRWxmVyh0eXBlKSBFbGZFeHBhbmRCaXRzVyAoRUxGU0laRSwgdHlwZSkKICNlbmRpZgogCiAj
aWZuZGVmIEVMRl9CU1NfU0VDVElPTl9OQU1FCkBAIC00NjIsMTMgKzU5MSwxMyBAQAogICAgKi8K
IAogI2RlZmluZSBPTERfU0VDVElPTl9IKG4pIFwKLSAgICAgKCooRWxmMzJfU2hkciAqKSAoKGJ5
dGUgKikgb2xkX3NlY3Rpb25faCArIG9sZF9maWxlX2gtPmVfc2hlbnRzaXplICogKG4pKSkKKyAg
ICAgKCooRWxmVyhTaGRyKSAqKSAoKGJ5dGUgKikgb2xkX3NlY3Rpb25faCArIG9sZF9maWxlX2gt
PmVfc2hlbnRzaXplICogKG4pKSkKICNkZWZpbmUgTkVXX1NFQ1RJT05fSChuKSBcCi0gICAgICgq
KEVsZjMyX1NoZHIgKikgKChieXRlICopIG5ld19zZWN0aW9uX2ggKyBuZXdfZmlsZV9oLT5lX3No
ZW50c2l6ZSAqIChuKSkpCisgICAgICgqKEVsZlcoU2hkcikgKikgKChieXRlICopIG5ld19zZWN0
aW9uX2ggKyBuZXdfZmlsZV9oLT5lX3NoZW50c2l6ZSAqIChuKSkpCiAjZGVmaW5lIE9MRF9QUk9H
UkFNX0gobikgXAotICAgICAoKihFbGYzMl9QaGRyICopICgoYnl0ZSAqKSBvbGRfcHJvZ3JhbV9o
ICsgb2xkX2ZpbGVfaC0+ZV9waGVudHNpemUgKiAobikpKQorICAgICAoKihFbGZXKFBoZHIpICop
ICgoYnl0ZSAqKSBvbGRfcHJvZ3JhbV9oICsgb2xkX2ZpbGVfaC0+ZV9waGVudHNpemUgKiAobikp
KQogI2RlZmluZSBORVdfUFJPR1JBTV9IKG4pIFwKLSAgICAgKCooRWxmMzJfUGhkciAqKSAoKGJ5
dGUgKikgbmV3X3Byb2dyYW1faCArIG5ld19maWxlX2gtPmVfcGhlbnRzaXplICogKG4pKSkKKyAg
ICAgKCooRWxmVyhQaGRyKSAqKSAoKGJ5dGUgKikgbmV3X3Byb2dyYW1faCArIG5ld19maWxlX2gt
PmVfcGhlbnRzaXplICogKG4pKSkKIAogI2RlZmluZSBQQVRDSF9JTkRFWChuKSBcCiAgIGRvIHsg
XApAQCAtNDc4LDkgKzYwNyw5IEBACiAKIC8qIFJvdW5kIFggdXAgdG8gYSBtdWx0aXBsZSBvZiBZ
LiAgKi8KIAotaW50CitzdGF0aWMgRWxmVyhBZGRyKQogcm91bmRfdXAgKHgsIHkpCi0gICAgIGlu
dCB4LCB5OworICAgICBFbGZXKEFkZHIpIHgsIHk7CiB7CiAgIGludCByZW0gPSB4ICUgeTsKICAg
aWYgKHJlbSA9PSAwKQpAQCAtNDg4LDYgKzYxNyw0NSBAQAogICByZXR1cm4geCAtIHJlbSArIHk7
CiB9CiAKKy8qIFJldHVybiB0aGUgaW5kZXggb2YgdGhlIHNlY3Rpb24gbmFtZWQgTkFNRS4KKyAg
IFNFQ1RJT05fTkFNRVMsIEZJTEVfTkFNRSBhbmQgRklMRV9IIGdpdmUgaW5mb3JtYXRpb24KKyAg
IGFib3V0IHRoZSBmaWxlIHdlIGFyZSBsb29raW5nIGluLgorCisgICBJZiB3ZSBkb24ndCBmaW5k
IHRoZSBzZWN0aW9uIE5BTUUsIHRoYXQgaXMgYSBmYXRhbCBlcnJvcgorICAgaWYgTk9FUlJPUiBp
cyAwOyB3ZSByZXR1cm4gLTEgaWYgTk9FUlJPUiBpcyBub256ZXJvLiAgKi8KKworc3RhdGljIGlu
dAorZmluZF9zZWN0aW9uIChuYW1lLCBzZWN0aW9uX25hbWVzLCBmaWxlX25hbWUsIG9sZF9maWxl
X2gsIG9sZF9zZWN0aW9uX2gsIG5vZXJyb3IpCisgICAgIGNoYXIgKm5hbWU7CisgICAgIGNoYXIg
KnNlY3Rpb25fbmFtZXM7CisgICAgIGNoYXIgKmZpbGVfbmFtZTsKKyAgICAgRWxmVyhFaGRyKSAq
b2xkX2ZpbGVfaDsKKyAgICAgRWxmVyhTaGRyKSAqb2xkX3NlY3Rpb25faDsKKyAgICAgaW50IG5v
ZXJyb3I7Cit7CisgIGludCBpZHg7CisKKyAgZm9yIChpZHggPSAxOyBpZHggPCBvbGRfZmlsZV9o
LT5lX3NobnVtOyBpZHgrKykKKyAgICB7CisjaWZkZWYgREVCVUcKKyAgICAgIGZwcmludGYgKHN0
ZGVyciwgIkxvb2tpbmcgZm9yICVzIC0gZm91bmQgJXNcbiIsIG5hbWUsCisJICAgICAgIHNlY3Rp
b25fbmFtZXMgKyBPTERfU0VDVElPTl9IIChpZHgpLnNoX25hbWUpOworI2VuZGlmCisgICAgICBp
ZiAoIXN0cmNtcCAoc2VjdGlvbl9uYW1lcyArIE9MRF9TRUNUSU9OX0ggKGlkeCkuc2hfbmFtZSwK
KwkJICAgbmFtZSkpCisJYnJlYWs7CisgICAgfQorICBpZiAoaWR4ID09IG9sZF9maWxlX2gtPmVf
c2hudW0pCisgICAgeworICAgICAgaWYgKG5vZXJyb3IpCisJcmV0dXJuIC0xOworICAgICAgZWxz
ZQorCWZhdGFsICgiQ2FuJ3QgZmluZCAlcyBpbiAlcy5cbiIsIG5hbWUsIGZpbGVfbmFtZSk7Cisg
ICAgfQorCisgIHJldHVybiBpZHg7Cit9CisKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIHVuZXhlYwogICoKQEAg
LTUwNywyNSArNjc1LDM2IEBACiAgIC8qIFBvaW50ZXJzIHRvIHRoZSBiYXNlIG9mIHRoZSBpbWFn
ZSBvZiB0aGUgdHdvIGZpbGVzLiAqLwogICBjYWRkcl90IG9sZF9iYXNlLCBuZXdfYmFzZTsKIAor
I2lmIE1BUF9BTk9OID09IDAKKyAgaW50IG1tYXBfZmQ7CisjZWxzZQorIyBkZWZpbmUgbW1hcF9m
ZCAtMQorI2VuZGlmCisKICAgLyogUG9pbnRlcnMgdG8gdGhlIGZpbGUsIHByb2dyYW0gYW5kIHNl
Y3Rpb24gaGVhZGVycyBmb3IgdGhlIG9sZCBhbmQgbmV3CiAgICAqIGZpbGVzLgogICAgKi8KLSAg
RWxmMzJfRWhkciAqb2xkX2ZpbGVfaCwgKm5ld19maWxlX2g7Ci0gIEVsZjMyX1BoZHIgKm9sZF9w
cm9ncmFtX2gsICpuZXdfcHJvZ3JhbV9oOwotICBFbGYzMl9TaGRyICpvbGRfc2VjdGlvbl9oLCAq
bmV3X3NlY3Rpb25faDsKKyAgRWxmVyhFaGRyKSAqb2xkX2ZpbGVfaCwgKm5ld19maWxlX2g7Cisg
IEVsZlcoUGhkcikgKm9sZF9wcm9ncmFtX2gsICpuZXdfcHJvZ3JhbV9oOworICBFbGZXKFNoZHIp
ICpvbGRfc2VjdGlvbl9oLCAqbmV3X3NlY3Rpb25faDsKIAogICAvKiBQb2ludCB0byB0aGUgc2Vj
dGlvbiBuYW1lIHRhYmxlIGluIHRoZSBvbGQgZmlsZSAqLwogICBjaGFyICpvbGRfc2VjdGlvbl9u
YW1lczsKIAotICBFbGYzMl9BZGRyIG9sZF9ic3NfYWRkciwgbmV3X2Jzc19hZGRyOwotICBFbGYz
Ml9Xb3JkIG9sZF9ic3Nfc2l6ZSwgbmV3X2RhdGEyX3NpemU7Ci0gIEVsZjMyX09mZiAgbmV3X2Rh
dGEyX29mZnNldDsKLSAgRWxmMzJfQWRkciBuZXdfZGF0YTJfYWRkcjsKLQotICBpbnQgbiwgbm4s
IG9sZF9ic3NfaW5kZXgsIG9sZF9kYXRhX2luZGV4LCBuZXdfZGF0YTJfaW5kZXg7CisgIEVsZlco
QWRkcikgb2xkX2Jzc19hZGRyLCBuZXdfYnNzX2FkZHI7CisgIEVsZlcoV29yZCkgb2xkX2Jzc19z
aXplLCBuZXdfZGF0YTJfc2l6ZTsKKyAgRWxmVyhPZmYpICBuZXdfZGF0YTJfb2Zmc2V0OworICBF
bGZXKEFkZHIpIG5ld19kYXRhMl9hZGRyOworCisgIGludCBuLCBubjsKKyAgaW50IG9sZF9ic3Nf
aW5kZXgsIG9sZF9zYnNzX2luZGV4OworICBpbnQgb2xkX2RhdGFfaW5kZXgsIG5ld19kYXRhMl9p
bmRleDsKKyAgaW50IG9sZF9tZGVidWdfaW5kZXg7CiAgIHN0cnVjdCBzdGF0IHN0YXRfYnVmOwor
ICBpbnQgb2xkX2ZpbGVfc2l6ZTsKIAotICAvKiBPcGVuIHRoZSBvbGQgZmlsZSAmIG1hcCBpdCBp
bnRvIHRoZSBhZGRyZXNzIHNwYWNlLiAqLworICAvKiBPcGVuIHRoZSBvbGQgZmlsZSwgYWxsb2Nh
dGUgYSBidWZmZXIgb2YgdGhlIHJpZ2h0IHNpemUsIGFuZCByZWFkCisgICAqIGluIHRoZSBmaWxl
IGNvbnRlbnRzLiAqLwogCiAgIG9sZF9maWxlID0gb3BlbiAob2xkX25hbWUsIE9fUkRPTkxZKTsK
IApAQCAtNTM1LDUyICs3MTQsODAgQEAKICAgaWYgKGZzdGF0IChvbGRfZmlsZSwgJnN0YXRfYnVm
KSA9PSAtMSkKICAgICBmYXRhbCAoIkNhbid0IGZzdGF0ICglcyk6IGVycm5vICVkXG4iLCBvbGRf
bmFtZSwgZXJybm8pOwogCi0gIG9sZF9iYXNlID0gbW1hcCAoMCwgc3RhdF9idWYuc3Rfc2l6ZSwg
UFJPVF9SRUFELCBNQVBfU0hBUkVELCBvbGRfZmlsZSwgMCk7CisjaWYgTUFQX0FOT04gPT0gMAor
ICBtbWFwX2ZkID0gb3BlbiAoIi9kZXYvemVybyIsIE9fUkRPTkxZKTsKKyAgaWYgKG1tYXBfZmQg
PCAwKQorICAgIGZhdGFsICgiQ2FuJ3Qgb3BlbiAvZGV2L3plcm8gZm9yIHJlYWRpbmc6IGVycm5v
ICVkXG4iLCBlcnJubyk7CisjZW5kaWYKIAotICBpZiAob2xkX2Jhc2UgPT0gKGNhZGRyX3QpIC0x
KQotICAgIGZhdGFsICgiQ2FuJ3QgbW1hcCAoJXMpOiBlcnJubyAlZFxuIiwgb2xkX25hbWUsIGVy
cm5vKTsKKyAgLyogV2UgY2Fubm90IHVzZSBtYWxsb2MgaGVyZSBiZWNhdXNlIHRoYXQgbWF5IHVz
ZSBzYnJrLiAgSWYgaXQgZG9lcywKKyAgICAgd2UnZCBkdW1wIG91ciB0ZW1wb3JhcnkgYnVmZmVy
cyB3aXRoIEVtYWNzLCBhbmQgd2UnZCBoYXZlIHRvIGJlCisgICAgIGV4dHJhIGNhcmVmdWwgdG8g
dXNlIHRoZSBjb3JyZWN0IHZhbHVlIG9mIHNicmsoMCkgYWZ0ZXIKKyAgICAgYWxsb2NhdGluZyBh
bGwgYnVmZmVycyBpbiB0aGUgY29kZSBiZWxvdywgd2hpY2ggd2UgYXJlbid0LiAgKi8KKyAgb2xk
X2ZpbGVfc2l6ZSA9IHN0YXRfYnVmLnN0X3NpemU7CisgIG9sZF9iYXNlID0gbW1hcCAoTlVMTCwg
b2xkX2ZpbGVfc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwKKwkJICAgTUFQX0FOT04gfCBN
QVBfUFJJVkFURSwgbW1hcF9mZCwgMCk7CisgIGlmIChvbGRfYmFzZSA9PSBNQVBfRkFJTEVEKQor
ICAgIGZhdGFsICgiQ2FuJ3QgYWxsb2NhdGUgYnVmZmVyIGZvciAlc1xuIiwgb2xkX25hbWUpOwog
Ci0jaWZkZWYgREVCVUcKLSAgZnByaW50ZiAoc3RkZXJyLCAibW1hcCAoJXMsICV4KSAtPiAleFxu
Iiwgb2xkX25hbWUsIHN0YXRfYnVmLnN0X3NpemUsCi0JICAgb2xkX2Jhc2UpOwotI2VuZGlmCisg
IGlmIChyZWFkIChvbGRfZmlsZSwgb2xkX2Jhc2UsIHN0YXRfYnVmLnN0X3NpemUpICE9IHN0YXRf
YnVmLnN0X3NpemUpCisgICAgZmF0YWwgKCJEaWRuJ3QgcmVhZCBhbGwgb2YgJXM6IGVycm5vICVk
XG4iLCBvbGRfbmFtZSwgZXJybm8pOwogCiAgIC8qIEdldCBwb2ludGVycyB0byBoZWFkZXJzICYg
c2VjdGlvbiBuYW1lcyAqLwogCi0gIG9sZF9maWxlX2ggPSAoRWxmMzJfRWhkciAqKSBvbGRfYmFz
ZTsKLSAgb2xkX3Byb2dyYW1faCA9IChFbGYzMl9QaGRyICopICgoYnl0ZSAqKSBvbGRfYmFzZSAr
IG9sZF9maWxlX2gtPmVfcGhvZmYpOwotICBvbGRfc2VjdGlvbl9oID0gKEVsZjMyX1NoZHIgKikg
KChieXRlICopIG9sZF9iYXNlICsgb2xkX2ZpbGVfaC0+ZV9zaG9mZik7CisgIG9sZF9maWxlX2gg
PSAoRWxmVyhFaGRyKSAqKSBvbGRfYmFzZTsKKyAgb2xkX3Byb2dyYW1faCA9IChFbGZXKFBoZHIp
ICopICgoYnl0ZSAqKSBvbGRfYmFzZSArIG9sZF9maWxlX2gtPmVfcGhvZmYpOworICBvbGRfc2Vj
dGlvbl9oID0gKEVsZlcoU2hkcikgKikgKChieXRlICopIG9sZF9iYXNlICsgb2xkX2ZpbGVfaC0+
ZV9zaG9mZik7CiAgIG9sZF9zZWN0aW9uX25hbWVzID0gKGNoYXIgKikgb2xkX2Jhc2UKICAgICAr
IE9MRF9TRUNUSU9OX0ggKG9sZF9maWxlX2gtPmVfc2hzdHJuZHgpLnNoX29mZnNldDsKIAorICAv
KiBGaW5kIHRoZSBtZGVidWcgc2VjdGlvbiwgaWYgYW55LiAgKi8KKworICBvbGRfbWRlYnVnX2lu
ZGV4ID0gZmluZF9zZWN0aW9uICgiLm1kZWJ1ZyIsIG9sZF9zZWN0aW9uX25hbWVzLAorCQkJCSAg
IG9sZF9uYW1lLCBvbGRfZmlsZV9oLCBvbGRfc2VjdGlvbl9oLCAxKTsKKwogICAvKiBGaW5kIHRo
ZSBvbGQgLmJzcyBzZWN0aW9uLiAgRmlndXJlIG91dCBwYXJhbWV0ZXJzIG9mIHRoZSBuZXcKICAg
ICogZGF0YTIgYW5kIGJzcyBzZWN0aW9ucy4KICAgICovCiAKLSAgZm9yIChvbGRfYnNzX2luZGV4
ID0gMTsgb2xkX2Jzc19pbmRleCA8IChpbnQpIG9sZF9maWxlX2gtPmVfc2hudW07Ci0gICAgICAg
b2xkX2Jzc19pbmRleCsrKQorICBvbGRfYnNzX2luZGV4ID0gZmluZF9zZWN0aW9uICgiLmJzcyIs
IG9sZF9zZWN0aW9uX25hbWVzLAorCQkJCW9sZF9uYW1lLCBvbGRfZmlsZV9oLCBvbGRfc2VjdGlv
bl9oLCAwKTsKKworICBvbGRfc2Jzc19pbmRleCA9IGZpbmRfc2VjdGlvbiAoIi5zYnNzIiwgb2xk
X3NlY3Rpb25fbmFtZXMsCisJCQkJIG9sZF9uYW1lLCBvbGRfZmlsZV9oLCBvbGRfc2VjdGlvbl9o
LCAxKTsKKyAgaWYgKG9sZF9zYnNzX2luZGV4ICE9IC0xKQorICAgIGlmIChPTERfU0VDVElPTl9I
IChvbGRfc2Jzc19pbmRleCkuc2hfdHlwZSA9PSBTSFRfUFJPR0JJVFMpCisgICAgICBvbGRfc2Jz
c19pbmRleCA9IC0xOworCisgIGlmIChvbGRfc2Jzc19pbmRleCA9PSAtMSkKICAgICB7Ci0jaWZk
ZWYgREVCVUcKLSAgICAgIGZwcmludGYgKHN0ZGVyciwgIkxvb2tpbmcgZm9yIC5ic3MgLSBmb3Vu
ZCAlc1xuIiwKLQkgICAgICAgb2xkX3NlY3Rpb25fbmFtZXMgKyBPTERfU0VDVElPTl9IIChvbGRf
YnNzX2luZGV4KS5zaF9uYW1lKTsKLSNlbmRpZgotICAgICAgaWYgKCFzdHJjbXAgKG9sZF9zZWN0
aW9uX25hbWVzICsgT0xEX1NFQ1RJT05fSCAob2xkX2Jzc19pbmRleCkuc2hfbmFtZSwKLQkJICAg
RUxGX0JTU19TRUNUSU9OX05BTUUpKQotCWJyZWFrOworICAgICAgb2xkX2Jzc19hZGRyID0gT0xE
X1NFQ1RJT05fSCAob2xkX2Jzc19pbmRleCkuc2hfYWRkcjsKKyAgICAgIG9sZF9ic3Nfc2l6ZSA9
IE9MRF9TRUNUSU9OX0ggKG9sZF9ic3NfaW5kZXgpLnNoX3NpemU7CisgICAgICBuZXdfZGF0YTJf
aW5kZXggPSBvbGRfYnNzX2luZGV4OworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIG9sZF9i
c3NfYWRkciA9IE9MRF9TRUNUSU9OX0ggKG9sZF9zYnNzX2luZGV4KS5zaF9hZGRyOworICAgICAg
b2xkX2Jzc19zaXplID0gT0xEX1NFQ1RJT05fSCAob2xkX2Jzc19pbmRleCkuc2hfc2l6ZQorCSsg
T0xEX1NFQ1RJT05fSCAob2xkX3Nic3NfaW5kZXgpLnNoX3NpemU7CisgICAgICBuZXdfZGF0YTJf
aW5kZXggPSBvbGRfc2Jzc19pbmRleDsKICAgICB9Ci0gIGlmIChvbGRfYnNzX2luZGV4ID09IG9s
ZF9maWxlX2gtPmVfc2hudW0pCi0gICAgZmF0YWwgKCJDYW4ndCBmaW5kIC5ic3MgaW4gJXMuXG4i
LCBvbGRfbmFtZSwgMCk7CiAKLSAgb2xkX2Jzc19hZGRyID0gT0xEX1NFQ1RJT05fSCAob2xkX2Jz
c19pbmRleCkuc2hfYWRkcjsKLSAgb2xkX2Jzc19zaXplID0gT0xEX1NFQ1RJT05fSCAob2xkX2Jz
c19pbmRleCkuc2hfc2l6ZTsKLSNpZiBkZWZpbmVkKGVtYWNzKSB8fCAhZGVmaW5lZChERUJVRykK
LSAgbmV3X2Jzc19hZGRyID0gKEVsZjMyX0FkZHIpIHNicmsgKDApOworICAvKiBGaW5kIHRoZSBv
bGQgLmRhdGEgc2VjdGlvbi4gIEZpZ3VyZSBvdXQgcGFyYW1ldGVycyBvZgorICAgICB0aGUgbmV3
IGRhdGEyIGFuZCBic3Mgc2VjdGlvbnMuICAqLworCisgIG9sZF9kYXRhX2luZGV4ID0gZmluZF9z
ZWN0aW9uICgiLmRhdGEiLCBvbGRfc2VjdGlvbl9uYW1lcywKKwkJCQkgb2xkX25hbWUsIG9sZF9m
aWxlX2gsIG9sZF9zZWN0aW9uX2gsIDApOworCisjaWYgZGVmaW5lZCAoZW1hY3MpIHx8ICFkZWZp
bmVkIChERUJVRykKKyAgbmV3X2Jzc19hZGRyID0gKEVsZlcoQWRkcikpIHNicmsgKDApOwogI2Vs
c2UKICAgbmV3X2Jzc19hZGRyID0gb2xkX2Jzc19hZGRyICsgb2xkX2Jzc19zaXplICsgMHgxMjM0
OwogI2VuZGlmCiAgIG5ld19kYXRhMl9hZGRyID0gb2xkX2Jzc19hZGRyOwogICBuZXdfZGF0YTJf
c2l6ZSA9IG5ld19ic3NfYWRkciAtIG9sZF9ic3NfYWRkcjsKLSAgbmV3X2RhdGEyX29mZnNldCA9
IE9MRF9TRUNUSU9OX0ggKG9sZF9ic3NfaW5kZXgpLnNoX29mZnNldDsKKyAgbmV3X2RhdGEyX29m
ZnNldCAgPSBPTERfU0VDVElPTl9IIChvbGRfZGF0YV9pbmRleCkuc2hfb2Zmc2V0ICsKKyAgICAo
bmV3X2RhdGEyX2FkZHIgLSBPTERfU0VDVElPTl9IIChvbGRfZGF0YV9pbmRleCkuc2hfYWRkcik7
CiAKICNpZmRlZiBERUJVRwogICBmcHJpbnRmIChzdGRlcnIsICJvbGRfYnNzX2luZGV4ICVkXG4i
LCBvbGRfYnNzX2luZGV4KTsKQEAgLTU5NSw5ICs4MDIsOSBAQAogICBpZiAoKHVuc2lnbmVkKSBu
ZXdfYnNzX2FkZHIgPCAodW5zaWduZWQpIG9sZF9ic3NfYWRkciArIG9sZF9ic3Nfc2l6ZSkKICAg
ICBmYXRhbCAoIi5ic3Mgc2hyYW5rIHdoZW4gdW5kdW1waW5nPz8/XG4iLCAwLCAwKTsKIAotICAv
KiBTZXQgdGhlIG91dHB1dCBmaWxlIHRvIHRoZSByaWdodCBzaXplIGFuZCBtbWFwIGl0LiAgU2V0
Ci0gICAqIHBvaW50ZXJzIHRvIHZhcmlvdXMgaW50ZXJlc3Rpbmcgb2JqZWN0cy4gIHN0YXRfYnVm
IHN0aWxsIGhhcwotICAgKiBvbGRfZmlsZSBkYXRhLgorICAvKiBTZXQgdGhlIG91dHB1dCBmaWxl
IHRvIHRoZSByaWdodCBzaXplLiAgQWxsb2NhdGUgYSBidWZmZXIgdG8gaG9sZAorICAgKiB0aGUg
aW1hZ2Ugb2YgdGhlIG5ldyBmaWxlLiAgU2V0IHBvaW50ZXJzIHRvIHZhcmlvdXMgaW50ZXJlc3Rp
bmcKKyAgICogb2JqZWN0cy4gIHN0YXRfYnVmIHN0aWxsIGhhcyBvbGRfZmlsZSBkYXRhLgogICAg
Ki8KIAogICBuZXdfZmlsZSA9IG9wZW4gKG5ld19uYW1lLCBPX1JEV1IgfCBPX0NSRUFULCAwNjY2
KTsKQEAgLTYwOSwyMCArODE2LDE0IEBACiAgIGlmIChmdHJ1bmNhdGUgKG5ld19maWxlLCBuZXdf
ZmlsZV9zaXplKSkKICAgICBmYXRhbCAoIkNhbid0IGZ0cnVuY2F0ZSAoJXMpOiBlcnJubyAlZFxu
IiwgbmV3X25hbWUsIGVycm5vKTsKIAotI2lmZGVmIFVORVhFQ19VU0VfTUFQX1BSSVZBVEUKLSAg
bmV3X2Jhc2UgPSBtbWFwICgwLCBuZXdfZmlsZV9zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRF
LCBNQVBfUFJJVkFURSwKLQkJICAgbmV3X2ZpbGUsIDApOwotI2Vsc2UKLSAgbmV3X2Jhc2UgPSBt
bWFwICgwLCBuZXdfZmlsZV9zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVE
LAotCQkgICBuZXdfZmlsZSwgMCk7Ci0jZW5kaWYKLQotICBpZiAobmV3X2Jhc2UgPT0gKGNhZGRy
X3QpIC0xKQotICAgIGZhdGFsICgiQ2FuJ3QgbW1hcCAoJXMpOiBlcnJubyAlZFxuIiwgbmV3X25h
bWUsIGVycm5vKTsKLQotICBuZXdfZmlsZV9oID0gKEVsZjMyX0VoZHIgKikgbmV3X2Jhc2U7Ci0g
IG5ld19wcm9ncmFtX2ggPSAoRWxmMzJfUGhkciAqKSAoKGJ5dGUgKikgbmV3X2Jhc2UgKyBvbGRf
ZmlsZV9oLT5lX3Bob2ZmKTsKLSAgbmV3X3NlY3Rpb25faCA9IChFbGYzMl9TaGRyICopCisgIG5l
d19iYXNlID0gbW1hcCAoTlVMTCwgbmV3X2ZpbGVfc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklU
RSwKKwkJICAgTUFQX0FOT04gfCBNQVBfUFJJVkFURSwgbW1hcF9mZCwgMCk7CisgIGlmIChuZXdf
YmFzZSA9PSBNQVBfRkFJTEVEKQorICAgIGZhdGFsICgiQ2FuJ3QgYWxsb2NhdGUgYnVmZmVyIGZv
ciAlc1xuIiwgb2xkX25hbWUpOworCisgIG5ld19maWxlX2ggPSAoRWxmVyhFaGRyKSAqKSBuZXdf
YmFzZTsKKyAgbmV3X3Byb2dyYW1faCA9IChFbGZXKFBoZHIpICopICgoYnl0ZSAqKSBuZXdfYmFz
ZSArIG9sZF9maWxlX2gtPmVfcGhvZmYpOworICBuZXdfc2VjdGlvbl9oID0gKEVsZlcoU2hkcikg
KikKICAgICAoKGJ5dGUgKikgbmV3X2Jhc2UgKyBvbGRfZmlsZV9oLT5lX3Nob2ZmICsgbmV3X2Rh
dGEyX3NpemUpOwogCiAgIC8qIE1ha2Ugb3VyIG5ldyBmaWxlLCBwcm9ncmFtIGFuZCBzZWN0aW9u
IGhlYWRlcnMgYXMgY29waWVzIG9mIHRoZQpAQCAtNjYxLDEyICs4NjIsMjIgQEAKICAgZm9yIChu
ID0gbmV3X2ZpbGVfaC0+ZV9waG51bSAtIDE7IG4gPj0gMDsgbi0tKQogICAgIHsKICAgICAgIC8q
IENvbXB1dGUgbWF4aW11bSBvZiBhbGwgcmVxdWlyZW1lbnRzIGZvciBhbGlnbm1lbnQgb2Ygc2Vj
dGlvbi4gICovCi0gICAgICBpbnQgYWxpZ25tZW50ID0gKE5FV19QUk9HUkFNX0ggKG4pKS5wX2Fs
aWduOworICAgICAgRWxmVyhXb3JkKSBhbGlnbm1lbnQgPSAoTkVXX1BST0dSQU1fSCAobikpLnBf
YWxpZ247CiAgICAgICBpZiAoKE9MRF9TRUNUSU9OX0ggKG9sZF9ic3NfaW5kZXgpKS5zaF9hZGRy
YWxpZ24gPiBhbGlnbm1lbnQpCiAJYWxpZ25tZW50ID0gT0xEX1NFQ1RJT05fSCAob2xkX2Jzc19p
bmRleCkuc2hfYWRkcmFsaWduOwogCi0gICAgICBpZiAoTkVXX1BST0dSQU1fSCAobikucF92YWRk
ciArIE5FV19QUk9HUkFNX0ggKG4pLnBfZmlsZXN6ID4gb2xkX2Jzc19hZGRyKQotCWZhdGFsICgi
UHJvZ3JhbSBzZWdtZW50IGFib3ZlIC5ic3MgaW4gJXNcbiIsIG9sZF9uYW1lLCAwKTsKKyNpZmRl
ZiBfX3NnaQorCSAgLyogQWNjb3JkaW5nIHRvIHIwMmthckB4NHUyLmRlc3kuZGUgKEthcnN0ZW4g
S3Vlbm5lKQorCSAgICAgYW5kIG9saXZhQGdudS5vcmcgKEFsZXhhbmRyZSBPbGl2YSksIG9uIElS
SVggNS4yLCB3ZQorCSAgICAgYWx3YXlzIGdldCAiUHJvZ3JhbSBzZWdtZW50IGFib3ZlIC5ic3Mi
IHdoZW4gZHVtcGluZworCSAgICAgd2hlbiB0aGUgZXhlY3V0YWJsZSBkb2Vzbid0IGhhdmUgYW4g
c2JzcyBzZWN0aW9uLiAgKi8KKyAgICAgIGlmIChvbGRfc2Jzc19pbmRleCAhPSAtMSkKKyNlbmRp
ZiAvKiBfX3NnaSAqLworICAgICAgaWYgKE5FV19QUk9HUkFNX0ggKG4pLnBfdmFkZHIgKyBORVdf
UFJPR1JBTV9IIChuKS5wX2ZpbGVzegorCSAgPiAob2xkX3Nic3NfaW5kZXggPT0gLTEKKwkgICAg
ID8gb2xkX2Jzc19hZGRyCisJICAgICA6IHJvdW5kX3VwIChvbGRfYnNzX2FkZHIsIGFsaWdubWVu
dCkpKQorCSAgZmF0YWwgKCJQcm9ncmFtIHNlZ21lbnQgYWJvdmUgLmJzcyBpbiAlc1xuIiwgb2xk
X25hbWUsIDApOwogCiAgICAgICBpZiAoTkVXX1BST0dSQU1fSCAobikucF90eXBlID09IFBUX0xP
QUQKIAkgICYmIChyb3VuZF91cCAoKE5FV19QUk9HUkFNX0ggKG4pKS5wX3ZhZGRyCkBAIC02Nzgs
NyArODg5LDkgQEAKICAgaWYgKG4gPCAwKQogICAgIGZhdGFsICgiQ291bGRuJ3QgZmluZCBzZWdt
ZW50IG5leHQgdG8gLmJzcyBpbiAlc1xuIiwgb2xkX25hbWUsIDApOwogCi0gIE5FV19QUk9HUkFN
X0ggKG4pLnBfZmlsZXN6ICs9IG5ld19kYXRhMl9zaXplOworICAvKiBNYWtlIHN1cmUgdGhhdCB0
aGUgc2l6ZSBpbmNsdWRlcyBhbnkgcGFkZGluZyBiZWZvcmUgdGhlIG9sZCAuYnNzCisgICAgIHNl
Y3Rpb24uICAqLworICBORVdfUFJPR1JBTV9IIChuKS5wX2ZpbGVzeiA9IG5ld19ic3NfYWRkciAt
IE5FV19QUk9HUkFNX0ggKG4pLnBfdmFkZHI7CiAgIE5FV19QUk9HUkFNX0ggKG4pLnBfbWVtc3og
PSBORVdfUFJPR1JBTV9IIChuKS5wX2ZpbGVzejsKIAogI2lmIDAgLyogTWF5YmUgYWxsb3cgc2Vj
dGlvbiBhZnRlciBkYXRhMiAtIGRvZXMgdGhpcyBldmVyIGhhcHBlbj8gKi8KQEAgLTcxMiwxMiAr
OTI1LDE0IEBACiAgIGZvciAobiA9IDEsIG5uID0gMTsgbiA8IChpbnQpIG9sZF9maWxlX2gtPmVf
c2hudW07IG4rKywgbm4rKykKICAgICB7CiAgICAgICBjYWRkcl90IHNyYzsKLSAgICAgIC8qIElm
IGl0IGlzIGJzcyBzZWN0aW9uLCBpbnNlcnQgdGhlIG5ldyBkYXRhMiBzZWN0aW9uIGJlZm9yZSBp
dC4gKi8KLSAgICAgIGlmIChuID09IG9sZF9ic3NfaW5kZXgpCisgICAgICAvKiBJZiBpdCBpcyAo
cylic3Mgc2VjdGlvbiwgaW5zZXJ0IHRoZSBuZXcgZGF0YTIgc2VjdGlvbiBiZWZvcmUgaXQuICAq
LworICAgICAgLyogbmV3X2RhdGEyX2luZGV4IGlzIHRoZSBpbmRleCBvZiBlaXRoZXIgb2xkX3Ni
c3Mgb3Igb2xkX2JzcywgdGhhdCB3YXMKKwkgY2hvc2VuIGFzIGEgc2VjdGlvbiBmb3IgbmV3X2Rh
dGEyLiAgICovCisgICAgICBpZiAobiA9PSBuZXdfZGF0YTJfaW5kZXgpCiAJewogCSAgLyogU3Rl
YWwgdGhlIGRhdGEgc2VjdGlvbiBoZWFkZXIgZm9yIHRoaXMgZGF0YTIgc2VjdGlvbi4gKi8KIAkg
IG1lbWNweSAoJk5FV19TRUNUSU9OX0ggKG5uKSwgJk9MRF9TRUNUSU9OX0ggKG9sZF9kYXRhX2lu
ZGV4KSwKLQkgIG5ld19maWxlX2gtPmVfc2hlbnRzaXplKTsKKwkJICBuZXdfZmlsZV9oLT5lX3No
ZW50c2l6ZSk7CiAKIAkgIE5FV19TRUNUSU9OX0ggKG5uKS5zaF9hZGRyID0gbmV3X2RhdGEyX2Fk
ZHI7CiAJICBORVdfU0VDVElPTl9IIChubikuc2hfb2Zmc2V0ID0gbmV3X2RhdGEyX29mZnNldDsK
QEAgLTczNywxMyArOTUyLDE3IEBACiAgICAgICBtZW1jcHkgKCZORVdfU0VDVElPTl9IIChubiks
ICZPTERfU0VDVElPTl9IIChuKSwKIAkgICAgICBvbGRfZmlsZV9oLT5lX3NoZW50c2l6ZSk7CiAK
LSAgICAgIC8qIFRoZSBuZXcgYnNzIHNlY3Rpb24ncyBzaXplIGlzIHplcm8sIGFuZCBpdHMgZmls
ZSBvZmZzZXQgYW5kIHZpcnR1YWwKLQkgYWRkcmVzcyBzaG91bGQgYmUgb2ZmIGJ5IE5FV19EQVRB
Ml9TSVpFLiAqLwotICAgICAgaWYgKG4gPT0gb2xkX2Jzc19pbmRleCkKKyAgICAgIGlmIChuID09
IG9sZF9ic3NfaW5kZXgKKwkgIC8qIFRoZSBuZXcgYnNzIGFuZCBzYnNzIHNlY3Rpb24ncyBzaXpl
IGlzIHplcm8sIGFuZCBpdHMgZmlsZSBvZmZzZXQKKwkgICAgIGFuZCB2aXJ0dWFsIGFkZHJlc3Mg
c2hvdWxkIGJlIG9mZiBieSBORVdfREFUQTJfU0laRS4gICovCisJICB8fCBuID09IG9sZF9zYnNz
X2luZGV4CisJICApCiAJewotCSAgLyogTk4gc2hvdWxkIGJlIGBvbGRfYnNzX2luZGV4ICsgMScg
YXQgdGhpcyBwb2ludC4gKi8KLQkgIE5FV19TRUNUSU9OX0ggKG5uKS5zaF9vZmZzZXQgKz0gbmV3
X2RhdGEyX3NpemU7Ci0JICBORVdfU0VDVElPTl9IIChubikuc2hfYWRkciArPSBuZXdfZGF0YTJf
c2l6ZTsKKwkgIC8qIE5OIHNob3VsZCBiZSBgb2xkX3M/YnNzX2luZGV4ICsgMScgYXQgdGhpcyBw
b2ludC4gKi8KKwkgIE5FV19TRUNUSU9OX0ggKG5uKS5zaF9vZmZzZXQgPQorCSAgICBORVdfU0VD
VElPTl9IIChuZXdfZGF0YTJfaW5kZXgpLnNoX29mZnNldCArIG5ld19kYXRhMl9zaXplOworCSAg
TkVXX1NFQ1RJT05fSCAobm4pLnNoX2FkZHIgPQorCSAgICBORVdfU0VDVElPTl9IIChuZXdfZGF0
YTJfaW5kZXgpLnNoX2FkZHIgKyBuZXdfZGF0YTJfc2l6ZTsKIAkgIC8qIExldCB0aGUgbmV3IGJz
cyBzZWN0aW9uIGFkZHJlc3MgYWxpZ25tZW50IGJlIHRoZSBzYW1lIGFzIHRoZQogCSAgICAgc2Vj
dGlvbiBhZGRyZXNzIGFsaWdubWVudCBmb2xsb3dlZCB0aGUgb2xkIGJzcyBzZWN0aW9uLCBzbwog
CSAgICAgdGhpcyBzZWN0aW9uIHdpbGwgYmUgcGxhY2VkIGluIGV4YWN0bHkgdGhlIHNhbWUgcGxh
Y2UuICovCkBAIC03NjcsNyArOTg2LDkgQEAKIAkgICAgICA+PSBPTERfU0VDVElPTl9IIChvbGRf
YnNzX2luZGV4LTEpLnNoX29mZnNldCkKIAkgICAgTkVXX1NFQ1RJT05fSCAobm4pLnNoX29mZnNl
dCArPSBuZXdfZGF0YTJfc2l6ZTsKICNlbHNlCi0JICBpZiAoTkVXX1NFQ1RJT05fSCAobm4pLnNo
X29mZnNldCA+PSBuZXdfZGF0YTJfb2Zmc2V0KQorCSAgaWYgKHJvdW5kX3VwIChORVdfU0VDVElP
Tl9IIChubikuc2hfb2Zmc2V0LAorCQkJT0xEX1NFQ1RJT05fSCAob2xkX2Jzc19pbmRleCkuc2hf
YWRkcmFsaWduKQorCSAgICAgID49IG5ld19kYXRhMl9vZmZzZXQpCiAJICAgIE5FV19TRUNUSU9O
X0ggKG5uKS5zaF9vZmZzZXQgKz0gbmV3X2RhdGEyX3NpemU7CiAjZW5kaWYKIAkgIC8qIEFueSBz
ZWN0aW9uIHRoYXQgd2FzIG9yaWdpbmFsbHkgcGxhY2VkIGFmdGVyIHRoZSBzZWN0aW9uCkBAIC03
ODcsMTggKzEwMDgsNTQgQEAKICAgICAgIGlmIChORVdfU0VDVElPTl9IIChubikuc2hfdHlwZSAh
PSBTSFRfU1lNVEFCCiAJICAmJiBORVdfU0VDVElPTl9IIChubikuc2hfdHlwZSAhPSBTSFRfRFlO
U1lNKQogCVBBVENIX0lOREVYIChORVdfU0VDVElPTl9IIChubikuc2hfaW5mbyk7CisgICAgICAK
KyAgICAgIGlmIChvbGRfc2Jzc19pbmRleCAhPSAtMSkKKwlpZiAoIXN0cmNtcCAob2xkX3NlY3Rp
b25fbmFtZXMgKyBORVdfU0VDVElPTl9IIChubikuc2hfbmFtZSwgIi5zYnNzIikpCisJICB7CisJ
ICAgIE5FV19TRUNUSU9OX0ggKG5uKS5zaF9vZmZzZXQgPSAKKwkgICAgICByb3VuZF91cCAoTkVX
X1NFQ1RJT05fSCAobm4pLnNoX29mZnNldCwKKwkJCU5FV19TRUNUSU9OX0ggKG5uKS5zaF9hZGRy
YWxpZ24pOworCSAgICBORVdfU0VDVElPTl9IIChubikuc2hfdHlwZSA9IFNIVF9QUk9HQklUUzsK
KwkgIH0KIAogICAgICAgLyogTm93LCBzdGFydCB0byBjb3B5IHRoZSBjb250ZW50IG9mIHNlY3Rp
b25zLiAgKi8KICAgICAgIGlmIChORVdfU0VDVElPTl9IIChubikuc2hfdHlwZSA9PSBTSFRfTlVM
TAogCSAgfHwgTkVXX1NFQ1RJT05fSCAobm4pLnNoX3R5cGUgPT0gU0hUX05PQklUUykKIAljb250
aW51ZTsKIAotICAvKiBXcml0ZSBvdXQgdGhlIHNlY3Rpb25zLiAuZGF0YSBhbmQgLmRhdGExIChh
bmQgZGF0YTIsIGNhbGxlZAorICAgICAgLyogV3JpdGUgb3V0IHRoZSBzZWN0aW9ucy4gLmRhdGEg
YW5kIC5kYXRhMSAoYW5kIGRhdGEyLCBjYWxsZWQKIAkgIi5kYXRhIiBpbiB0aGUgc3RyaW5ncyB0
YWJsZSkgZ2V0IGNvcGllZCBmcm9tIHRoZSBjdXJyZW50IHByb2Nlc3MKIAkgaW5zdGVhZCBvZiB0
aGUgb2xkIGZpbGUuICAqLwogICAgICAgaWYgKCFzdHJjbXAgKG9sZF9zZWN0aW9uX25hbWVzICsg
TkVXX1NFQ1RJT05fSCAobikuc2hfbmFtZSwgIi5kYXRhIikKIAkgIHx8ICFzdHJjbXAgKChvbGRf
c2VjdGlvbl9uYW1lcyArIE5FV19TRUNUSU9OX0ggKG4pLnNoX25hbWUpLAotCQkgICAgICAiLmRh
dGExIikpCisJCSAgICAgICIuc2RhdGEiKQorCSAgfHwgIXN0cmNtcCAoKG9sZF9zZWN0aW9uX25h
bWVzICsgTkVXX1NFQ1RJT05fSCAobikuc2hfbmFtZSksCisJCSAgICAgICIubGl0NCIpCisJICB8
fCAhc3RyY21wICgob2xkX3NlY3Rpb25fbmFtZXMgKyBORVdfU0VDVElPTl9IIChuKS5zaF9uYW1l
KSwKKwkJICAgICAgIi5saXQ4IikKKwkgIC8qIFRoZSBjb25kaXRpb25hbCBiaXQgYmVsb3cgd2Fz
IGluIE9saXZhJ3Mgb3JpZ2luYWwgY29kZQorCSAgICAgKDE5OTktMDgtMjUpIGFuZCBzZWVtcyB0
byBoYXZlIGJlZW4gZHJvcHBlZCBieSBtaXN0YWtlCisJICAgICBzdWJzZXF1ZW50bHkuICBJdCBw
cmV2ZW50cyBhIGNyYXNoIGF0IHN0YXJ0dXAgdW5kZXIgWCBpbgorCSAgICAgYElSSVg2NCA2LjUg
Ni41LjE3bScgd2l0aCBjX2RldiA3LjMuMS4zbS4gIEl0IGNhdXNlcyBubworCSAgICAgdHJvdWJs
ZSBvbiB0aGUgb3RoZXIgRUxGIHBsYXRmb3JtcyBJIGNvdWxkIHRlc3QgKElyaXgKKwkgICAgIDYu
NS4xNW0sIFNvbGFyaXMgOCwgRGViaWFuIFBvdGF0byB4ODYsIERlYmlhbiBXb29keQorCSAgICAg
U1BBUkMpOyBob3dldmVyLCBpdCdzIHJlcG9ydGVkIHRvIGNhdXNlIGNyYXNoZXMgdW5kZXIKKwkg
ICAgIHNvbWUgdmVyc2lvbiBvZiBHTlUvTGludXguICBJdCdzIG5vdCB5ZXQgY2xlYXIgd2hhdCdz
CisJICAgICBjaGFuZ2VkIGluIHRoYXQgSXJpeCB2ZXJzaW9uIHRvIGNhdXNlIHRoZSBwcm9ibGVt
LCBvciB3aHkKKwkgICAgIHRoZSBmaXggc29tZXRpbWVzIGZhaWxzIHVuZGVyIEdOVS9MaW51eC4g
IFRoZXJlJ3MKKwkgICAgIHByb2JhYmx5IG5vIGdvb2QgcmVhc29uIHRvIGhhdmUgc29tZXRoaW5n
IElyaXgtc3BlY2lmaWMKKwkgICAgIGhlcmUsIGJ1dCB0aGlzIHdpbGwgaGF2ZSB0byBkbyBmb3Ig
bm93LiAgSVJJWDZfNSBpcyB0aGUKKwkgICAgIG1vc3Qgc3BlY2lmaWMgbWFjcm8gd2UgaGF2ZSB0
byB0ZXN0LiAgLS0gZnggMjAwMi0xMC0wMSAgKi8KKyNpZmRlZiBJUklYNl81CisJICB8fCAhc3Ry
Y21wICgob2xkX3NlY3Rpb25fbmFtZXMgKyBORVdfU0VDVElPTl9IIChuKS5zaF9uYW1lKSwKKwkJ
ICAgICAgIi5nb3QiKQorI2VuZGlmCisJICB8fCAhc3RyY21wICgob2xkX3NlY3Rpb25fbmFtZXMg
KyBORVdfU0VDVElPTl9IIChuKS5zaF9uYW1lKSwKKwkJICAgICAgIi5zZGF0YTEiKQorCSAgfHwg
IXN0cmNtcCAoKG9sZF9zZWN0aW9uX25hbWVzICsgTkVXX1NFQ1RJT05fSCAobikuc2hfbmFtZSks
CisJCSAgICAgICIuZGF0YTEiKQorCSAgfHwgIXN0cmNtcCAoKG9sZF9zZWN0aW9uX25hbWVzICsg
TkVXX1NFQ1RJT05fSCAobikuc2hfbmFtZSksCisJCSAgICAgICIuc2JzcyIpKQogCXNyYyA9IChj
YWRkcl90KSBPTERfU0VDVElPTl9IIChuKS5zaF9hZGRyOwogICAgICAgZWxzZQogCXNyYyA9IG9s
ZF9iYXNlICsgT0xEX1NFQ1RJT05fSCAobikuc2hfb2Zmc2V0OwpAQCAtODA2LDEzICsxMDYzLDEx
NCBAQAogICAgICAgbWVtY3B5IChORVdfU0VDVElPTl9IIChubikuc2hfb2Zmc2V0ICsgbmV3X2Jh
c2UsIHNyYywKIAkgICAgICBORVdfU0VDVElPTl9IIChubikuc2hfc2l6ZSk7CiAKKyNpZmRlZiBf
X2FscGhhX18KKyAgICAgIC8qIFVwZGF0ZSBBbHBoYSBDT0ZGIHN5bWJvbCB0YWJsZTogKi8KKyAg
ICAgIGlmIChzdHJjbXAgKG9sZF9zZWN0aW9uX25hbWVzICsgT0xEX1NFQ1RJT05fSCAobikuc2hf
bmFtZSwgIi5tZGVidWciKQorCSAgPT0gMCkKKwl7CisJICBwSERSUiBzeW1oZHIgPSAocEhEUlIp
IChORVdfU0VDVElPTl9IIChubikuc2hfb2Zmc2V0ICsgbmV3X2Jhc2UpOworCisJICBzeW1oZHIt
PmNiTGluZU9mZnNldCArPSBuZXdfZGF0YTJfc2l6ZTsKKwkgIHN5bWhkci0+Y2JEbk9mZnNldCAr
PSBuZXdfZGF0YTJfc2l6ZTsKKwkgIHN5bWhkci0+Y2JQZE9mZnNldCArPSBuZXdfZGF0YTJfc2l6
ZTsKKwkgIHN5bWhkci0+Y2JTeW1PZmZzZXQgKz0gbmV3X2RhdGEyX3NpemU7CisJICBzeW1oZHIt
PmNiT3B0T2Zmc2V0ICs9IG5ld19kYXRhMl9zaXplOworCSAgc3ltaGRyLT5jYkF1eE9mZnNldCAr
PSBuZXdfZGF0YTJfc2l6ZTsKKwkgIHN5bWhkci0+Y2JTc09mZnNldCArPSBuZXdfZGF0YTJfc2l6
ZTsKKwkgIHN5bWhkci0+Y2JTc0V4dE9mZnNldCArPSBuZXdfZGF0YTJfc2l6ZTsKKwkgIHN5bWhk
ci0+Y2JGZE9mZnNldCArPSBuZXdfZGF0YTJfc2l6ZTsKKwkgIHN5bWhkci0+Y2JSZmRPZmZzZXQg
Kz0gbmV3X2RhdGEyX3NpemU7CisJICBzeW1oZHItPmNiRXh0T2Zmc2V0ICs9IG5ld19kYXRhMl9z
aXplOworCX0KKyNlbmRpZiAvKiBfX2FscGhhX18gKi8KKworI2lmIGRlZmluZWQgKF9fc29ueV9u
ZXdzKSAmJiBkZWZpbmVkIChfU1lTVFlQRV9TWVNWKQorICAgICAgaWYgKE5FV19TRUNUSU9OX0gg
KG5uKS5zaF90eXBlID09IFNIVF9NSVBTX0RFQlVHCisJICAmJiBvbGRfbWRlYnVnX2luZGV4ICE9
IC0xKSAKKyAgICAgICAgeworCSAgaW50IGRpZmYgPSBORVdfU0VDVElPTl9IKG5uKS5zaF9vZmZz
ZXQgCisJIAktIE9MRF9TRUNUSU9OX0gob2xkX21kZWJ1Z19pbmRleCkuc2hfb2Zmc2V0OworCSAg
SERSUiAqcGhkciA9IChIRFJSICopKE5FV19TRUNUSU9OX0ggKG5uKS5zaF9vZmZzZXQgKyBuZXdf
YmFzZSk7CisKKwkgIGlmIChkaWZmKQorCSAgICB7CisJICAgICAgcGhkci0+Y2JMaW5lT2Zmc2V0
ICs9IGRpZmY7CisJICAgICAgcGhkci0+Y2JEbk9mZnNldCAgICs9IGRpZmY7CisJICAgICAgcGhk
ci0+Y2JQZE9mZnNldCAgICs9IGRpZmY7CisJICAgICAgcGhkci0+Y2JTeW1PZmZzZXQgICs9IGRp
ZmY7CisJICAgICAgcGhkci0+Y2JPcHRPZmZzZXQgICs9IGRpZmY7CisJICAgICAgcGhkci0+Y2JB
dXhPZmZzZXQgICs9IGRpZmY7CisJICAgICAgcGhkci0+Y2JTc09mZnNldCAgICs9IGRpZmY7CisJ
ICAgICAgcGhkci0+Y2JTc0V4dE9mZnNldCArPSBkaWZmOworCSAgICAgIHBoZHItPmNiRmRPZmZz
ZXQgICArPSBkaWZmOworCSAgICAgIHBoZHItPmNiUmZkT2Zmc2V0ICArPSBkaWZmOworCSAgICAg
IHBoZHItPmNiRXh0T2Zmc2V0ICArPSBkaWZmOworCSAgICB9CisJfQorI2VuZGlmIC8qIF9fc29u
eV9uZXdzICYmIF9TWVNUWVBFX1NZU1YgKi8KKworI2lmIF9fc2dpCisgICAgICAvKiBBZGp1c3Qg
IHRoZSBIRFJSIG9mZnNldHMgaW4gLm1kZWJ1ZyBhbmQgY29weSB0aGUgCisJIGxpbmUgZGF0YSBp
ZiBpdCdzIGluIGl0cyB1c3VhbCAnaG9sZScgaW4gdGhlIG9iamVjdC4KKwkgTWFrZXMgdGhlIG5l
dyBmaWxlIGRlYnVnZ2FibGUgd2l0aCBkYnguCisJIHBhdGNoZXMgdXAgdHdvIHByb2JsZW1zOiB0
aGUgYWJzb2x1dGUgZmlsZSBvZmZzZXRzCisJIGluIHRoZSBIRFJSIHJlY29yZCBvZiAubWRlYnVn
IChzZWUgL3Vzci9pbmNsdWRlL3N5bXMuaCksIGFuZAorCSB0aGUgbGQgYnVnIHRoYXQgZ2V0cyB0
aGUgbGluZSB0YWJsZSBpbiBhIGhvbGUgaW4gdGhlCisJIGVsZiBmaWxlIHJhdGhlciB0aGFuIGlu
IHRoZSAubWRlYnVnIHNlY3Rpb24gcHJvcGVyLgorCSBEYXZpZCBBbmRlcnNvbi4gZGF2ZWFAc2dp
LmNvbSAgSmFuIDE2LDE5OTQuICAqLworICAgICAgaWYgKG4gPT0gb2xkX21kZWJ1Z19pbmRleCkK
Kwl7CisjZGVmaW5lIE1ERUJVR0FESlVTVChfX2N0LF9fZmlsZWFkZHIpCQlcCisgIGlmIChuX3Bo
ZHJyLT5fX2N0ID4gMCkJCQlcCisgICAgewkJCQkJCVwKKyAgICAgIG5fcGhkcnItPl9fZmlsZWFk
ZHIgKz0gbW92ZW1lbnQ7CQlcCisgICAgfQorCisJICBIRFJSICogb19waGRyciA9IChIRFJSICop
KChieXRlICopb2xkX2Jhc2UgKyBPTERfU0VDVElPTl9IIChuKS5zaF9vZmZzZXQpOworCSAgSERS
UiAqIG5fcGhkcnIgPSAoSERSUiAqKSgoYnl0ZSAqKW5ld19iYXNlICsgTkVXX1NFQ1RJT05fSCAo
bm4pLnNoX29mZnNldCk7CisJICB1bnNpZ25lZCBtb3ZlbWVudCA9IG5ld19kYXRhMl9zaXplOwor
CisJICBNREVCVUdBREpVU1QgKGlkbk1heCwgY2JEbk9mZnNldCk7CisJICBNREVCVUdBREpVU1Qg
KGlwZE1heCwgY2JQZE9mZnNldCk7CisJICBNREVCVUdBREpVU1QgKGlzeW1NYXgsIGNiU3ltT2Zm
c2V0KTsKKwkgIE1ERUJVR0FESlVTVCAoaW9wdE1heCwgY2JPcHRPZmZzZXQpOworCSAgTURFQlVH
QURKVVNUIChpYXV4TWF4LCBjYkF1eE9mZnNldCk7CisJICBNREVCVUdBREpVU1QgKGlzc01heCwg
Y2JTc09mZnNldCk7CisJICBNREVCVUdBREpVU1QgKGlzc0V4dE1heCwgY2JTc0V4dE9mZnNldCk7
CisJICBNREVCVUdBREpVU1QgKGlmZE1heCwgY2JGZE9mZnNldCk7CisJICBNREVCVUdBREpVU1Qg
KGNyZmQsIGNiUmZkT2Zmc2V0KTsKKwkgIE1ERUJVR0FESlVTVCAoaWV4dE1heCwgY2JFeHRPZmZz
ZXQpOworCSAgLyogVGhlIExpbmUgU2VjdGlvbiwgYmVpbmcgcG9zc2libGUgb2ZmIGluIGEgaG9s
ZSBvZiB0aGUgb2JqZWN0LAorCSAgICAgcmVxdWlyZXMgc3BlY2lhbCBoYW5kbGluZy4gICovCisJ
ICBpZiAobl9waGRyci0+Y2JMaW5lID4gMCkKKwkgICAgeworCSAgICAgIGlmIChvX3BoZHJyLT5j
YkxpbmVPZmZzZXQgPiAoT0xEX1NFQ1RJT05fSCAobikuc2hfb2Zmc2V0CisJCQkJCSAgICsgT0xE
X1NFQ1RJT05fSCAobikuc2hfc2l6ZSkpCisJCXsKKwkJICAvKiBsaW5lIGRhdGEgaXMgaW4gYSBo
b2xlIGluIGVsZi4gZG8gc3BlY2lhbCBjb3B5IGFuZCBhZGp1c3QKKwkJICAgICBmb3IgdGhpcyBs
ZCBtaXN0YWtlLgorCQkgICAgICovCisJCSAgbl9waGRyci0+Y2JMaW5lT2Zmc2V0ICs9IG1vdmVt
ZW50OworCisJCSAgbWVtY3B5IChuX3BoZHJyLT5jYkxpbmVPZmZzZXQgKyBuZXdfYmFzZSwKKwkJ
CSAgb19waGRyci0+Y2JMaW5lT2Zmc2V0ICsgb2xkX2Jhc2UsIG5fcGhkcnItPmNiTGluZSk7CisJ
CX0KKwkgICAgICBlbHNlCisJCXsKKwkJICAvKiBzb21laG93IGxpbmUgZGF0YSBpcyBpbiAubWRl
YnVnIGFzIGl0IGlzIHN1cHBvc2VkIHRvIGJlLiAgKi8KKwkJICBNREVCVUdBREpVU1QgKGNiTGlu
ZSwgY2JMaW5lT2Zmc2V0KTsKKwkJfQorCSAgICB9CisJfQorI2VuZGlmIC8qIF9fc2dpICovCisK
ICAgICAgIC8qIElmIGl0IGlzIHRoZSBzeW1ib2wgdGFibGUsIGl0cyBzdF9zaG5keCBmaWVsZCBu
ZWVkcyB0byBiZSBwYXRjaGVkLiAgKi8KICAgICAgIGlmIChORVdfU0VDVElPTl9IIChubikuc2hf
dHlwZSA9PSBTSFRfU1lNVEFCCiAJICB8fCBORVdfU0VDVElPTl9IIChubikuc2hfdHlwZSA9PSBT
SFRfRFlOU1lNKQogCXsKLQkgIEVsZjMyX1NoZHIgKnNwdCA9ICZORVdfU0VDVElPTl9IIChubik7
CisJICBFbGZXKFNoZHIpICpzcHQgPSAmTkVXX1NFQ1RJT05fSCAobm4pOwogCSAgdW5zaWduZWQg
aW50IG51bSA9IHNwdC0+c2hfc2l6ZSAvIHNwdC0+c2hfZW50c2l6ZTsKLQkgIEVsZjMyX1N5bSAq
IHN5bSA9IChFbGYzMl9TeW0gKikgKE5FV19TRUNUSU9OX0ggKG5uKS5zaF9vZmZzZXQgKworCSAg
RWxmVyhTeW0pICogc3ltID0gKEVsZlcoU3ltKSAqKSAoTkVXX1NFQ1RJT05fSCAobm4pLnNoX29m
ZnNldCArCiAJCQkJCSAgIG5ld19iYXNlKTsKIAkgIGZvciAoOyBudW0tLTsgc3ltKyspCiAJICAg
IHsKQEAgLTgzMCw3ICsxMTg4LDcgQEAKICAgZm9yIChuID0gbmV3X2ZpbGVfaC0+ZV9zaG51bSAt
IDE7IG47IG4tLSkKICAgICB7CiAgICAgICBieXRlICpzeW1uYW1lczsKLSAgICAgIEVsZjMyX1N5
bSAqc3ltcCwgKnN5bWVuZHA7CisgICAgICBFbGZXKFN5bSkgKnN5bXAsICpzeW1lbmRwOwogCiAg
ICAgICBpZiAoTkVXX1NFQ1RJT05fSCAobikuc2hfdHlwZSAhPSBTSFRfRFlOU1lNCiAJICAmJiBO
RVdfU0VDVElPTl9IIChuKS5zaF90eXBlICE9IFNIVF9TWU1UQUIpCkBAIC04MzgsMTIgKzExOTYs
MTQgQEAKIAogICAgICAgc3ltbmFtZXMgPSAoKGJ5dGUgKikgbmV3X2Jhc2UKIAkJICArIE5FV19T
RUNUSU9OX0ggKE5FV19TRUNUSU9OX0ggKG4pLnNoX2xpbmspLnNoX29mZnNldCk7Ci0gICAgICBz
eW1wID0gKEVsZjMyX1N5bSAqKSAoTkVXX1NFQ1RJT05fSCAobikuc2hfb2Zmc2V0ICsgbmV3X2Jh
c2UpOwotICAgICAgc3ltZW5kcCA9IChFbGYzMl9TeW0gKikgKChieXRlICopc3ltcCArIE5FV19T
RUNUSU9OX0ggKG4pLnNoX3NpemUpOworICAgICAgc3ltcCA9IChFbGZXKFN5bSkgKikgKE5FV19T
RUNUSU9OX0ggKG4pLnNoX29mZnNldCArIG5ld19iYXNlKTsKKyAgICAgIHN5bWVuZHAgPSAoRWxm
VyhTeW0pICopICgoYnl0ZSAqKXN5bXAgKyBORVdfU0VDVElPTl9IIChuKS5zaF9zaXplKTsKIAog
ICAgICAgZm9yICg7IHN5bXAgPCBzeW1lbmRwOyBzeW1wICsrKQogCWlmIChzdHJjbXAgKChjaGFy
ICopIChzeW1uYW1lcyArIHN5bXAtPnN0X25hbWUpLCAiX2VuZCIpID09IDAKLQkgICAgfHwgc3Ry
Y21wICgoY2hhciAqKSAoc3ltbmFtZXMgKyBzeW1wLT5zdF9uYW1lKSwgIl9lZGF0YSIpID09IDAp
CisJICAgIHx8IHN0cmNtcCAoKGNoYXIgKikgKHN5bW5hbWVzICsgc3ltcC0+c3RfbmFtZSksICJl
bmQiKSA9PSAwCisJICAgIHx8IHN0cmNtcCAoKGNoYXIgKikgKHN5bW5hbWVzICsgc3ltcC0+c3Rf
bmFtZSksICJfZWRhdGEiKSA9PSAwCisJICAgIHx8IHN0cmNtcCAoKGNoYXIgKikgKHN5bW5hbWVz
ICsgc3ltcC0+c3RfbmFtZSksICJlZGF0YSIpID09IDApCiAJICBtZW1jcHkgKCZzeW1wLT5zdF92
YWx1ZSwgJm5ld19ic3NfYWRkciwgc2l6ZW9mIChuZXdfYnNzX2FkZHIpKTsKICAgICB9CiAKQEAg
LTg1MSw3ICsxMjExLDcgQEAKICAgICAgdGhhdCBpdCBjYW4gdW5kbyByZWxvY2F0aW9ucyBwZXJm
b3JtZWQgYnkgdGhlIHJ1bnRpbWUgbGlua2VyLiAgKi8KICAgZm9yIChuID0gbmV3X2ZpbGVfaC0+
ZV9zaG51bSAtIDE7IG47IG4tLSkKICAgICB7Ci0gICAgICBFbGYzMl9TaGRyIHNlY3Rpb24gPSBO
RVdfU0VDVElPTl9IIChuKTsKKyAgICAgIEVsZlcoU2hkcikgc2VjdGlvbiA9IE5FV19TRUNUSU9O
X0ggKG4pOwogICAgICAgc3dpdGNoIChzZWN0aW9uLnNoX3R5cGUpIHsKICAgICAgIGRlZmF1bHQ6
CiAJYnJlYWs7CkBAIC04NjMsMzcgKzEyMjMsNjUgQEAKIAlubiA9IHNlY3Rpb24uc2hfaW5mbzsK
IAlpZiAoIXN0cmNtcCAob2xkX3NlY3Rpb25fbmFtZXMgKyBORVdfU0VDVElPTl9IIChubikuc2hf
bmFtZSwgIi5kYXRhIikKIAkgICAgfHwgIXN0cmNtcCAoKG9sZF9zZWN0aW9uX25hbWVzICsgTkVX
X1NFQ1RJT05fSCAobm4pLnNoX25hbWUpLAorCQkJIi5zZGF0YSIpCisJICAgIHx8ICFzdHJjbXAg
KChvbGRfc2VjdGlvbl9uYW1lcyArIE5FV19TRUNUSU9OX0ggKG5uKS5zaF9uYW1lKSwKKwkJCSIu
bGl0NCIpCisJICAgIHx8ICFzdHJjbXAgKChvbGRfc2VjdGlvbl9uYW1lcyArIE5FV19TRUNUSU9O
X0ggKG5uKS5zaF9uYW1lKSwKKwkJCSIubGl0OCIpCisjaWZkZWYgSVJJWDZfNQkJCS8qIHNlZSBh
Ym92ZSAqLworCSAgICB8fCAhc3RyY21wICgob2xkX3NlY3Rpb25fbmFtZXMgKyBORVdfU0VDVElP
Tl9IIChubikuc2hfbmFtZSksCisJCQkiLmdvdCIpCisjZW5kaWYKKwkgICAgfHwgIXN0cmNtcCAo
KG9sZF9zZWN0aW9uX25hbWVzICsgTkVXX1NFQ1RJT05fSCAobm4pLnNoX25hbWUpLAorCQkJIi5z
ZGF0YTEiKQorCSAgICB8fCAhc3RyY21wICgob2xkX3NlY3Rpb25fbmFtZXMgKyBORVdfU0VDVElP
Tl9IIChubikuc2hfbmFtZSksCiAJCQkiLmRhdGExIikpCiAJICB7Ci0JICAgIEVsZjMyX0FkZHIg
b2Zmc2V0ID0gTkVXX1NFQ1RJT05fSCAobm4pLnNoX2FkZHIgLQorCSAgICBFbGZXKEFkZHIpIG9m
ZnNldCA9IE5FV19TRUNUSU9OX0ggKG5uKS5zaF9hZGRyIC0KIAkgICAgICBORVdfU0VDVElPTl9I
IChubikuc2hfb2Zmc2V0OwogCSAgICBjYWRkcl90IHJlbG9jID0gb2xkX2Jhc2UgKyBzZWN0aW9u
LnNoX29mZnNldCwgZW5kOwogCSAgICBmb3IgKGVuZCA9IHJlbG9jICsgc2VjdGlvbi5zaF9zaXpl
OyByZWxvYyA8IGVuZDsKIAkJIHJlbG9jICs9IHNlY3Rpb24uc2hfZW50c2l6ZSkKIAkgICAgICB7
Ci0JCUVsZjMyX0FkZHIgYWRkciA9ICgoRWxmMzJfUmVsICopIHJlbG9jKS0+cl9vZmZzZXQgLSBv
ZmZzZXQ7Ci0JCW1lbWNweSAobmV3X2Jhc2UgKyBhZGRyLCBvbGRfYmFzZSArIGFkZHIsIDQpOwot
ICAgIH0KKwkJRWxmVyhBZGRyKSBhZGRyID0gKChFbGZXKFJlbCkgKikgcmVsb2MpLT5yX29mZnNl
dCAtIG9mZnNldDsKKyNpZmRlZiBfX2FscGhhX18KKwkJLyogVGhlIEFscGhhIEVMRiBiaW51dGls
cyBjdXJyZW50bHkgaGF2ZSBhIGJ1ZyB0aGF0CisJCSAgIHNvbWV0aW1lcyByZXN1bHRzIGluIHJl
bG9jcyB0aGF0IGNvbnRhaW4gYWxsCisJCSAgIHplcm9lcy4gIFdvcmsgYXJvdW5kIHRoaXMgZm9y
IG5vdy4uLiAgKi8KKwkJaWYgKCgoRWxmVyhSZWwpICopIHJlbG9jKS0+cl9vZmZzZXQgPT0gMCkK
KwkJICAgIGNvbnRpbnVlOworI2VuZGlmCisJCW1lbWNweSAobmV3X2Jhc2UgKyBhZGRyLCBvbGRf
YmFzZSArIGFkZHIsIHNpemVvZihFbGZXKEFkZHIpKSk7CisJICAgICAgfQogCSAgfQogCWJyZWFr
OwogICAgICAgfQogICAgIH0KIAotI2lmZGVmIFVORVhFQ19VU0VfTUFQX1BSSVZBVEUKLSAgaWYg
KGxzZWVrIChuZXdfZmlsZSwgMCwgU0VFS19TRVQpID09IC0xKQotICAgIGZhdGFsICgiQ2FuJ3Qg
cmV3aW5kICglcyk6IGVycm5vICVkXG4iLCBuZXdfbmFtZSwgZXJybm8pOworICAvKiBXcml0ZSBv
dXQgbmV3X2ZpbGUsIGNsb3NlIGl0LCBhbmQgZnJlZSB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgaXRz
CisgICAqIGNvbnRlbnRzICovCiAKICAgaWYgKHdyaXRlIChuZXdfZmlsZSwgbmV3X2Jhc2UsIG5l
d19maWxlX3NpemUpICE9IG5ld19maWxlX3NpemUpCi0gICAgZmF0YWwgKCJDYW4ndCB3cml0ZSAo
JXMpOiBlcnJubyAlZFxuIiwgbmV3X25hbWUsIGVycm5vKTsKLSNlbmRpZgorICAgIGZhdGFsICgi
RGlkbid0IHdyaXRlICVkIGJ5dGVzIHRvICVzOiBlcnJubyAlZFxuIiwgCisJICAgbmV3X2ZpbGVf
c2l6ZSwgbmV3X2Jhc2UsIGVycm5vKTsKKworICBpZiAoY2xvc2UgKG5ld19maWxlKSkKKyAgICBm
YXRhbCAoIkNhbid0IGNsb3NlICglcyk6IGVycm5vICVkXG4iLCBuZXdfbmFtZSwgZXJybm8pOwor
CisgIG11bm1hcCAobmV3X2Jhc2UsIG5ld19maWxlX3NpemUpOwogCi0gIC8qIENsb3NlIHRoZSBm
aWxlcyBhbmQgbWFrZSB0aGUgbmV3IGZpbGUgZXhlY3V0YWJsZS4gICovCisgIC8qIENsb3NlIG9s
ZF9maWxlLCBhbmQgZnJlZSB0aGUgY29ycmVzcG9uZGluZyBidWZmZXIgKi8KKworI2lmIE1BUF9B
Tk9OID09IDAKKyAgY2xvc2UgKG1tYXBfZmQpOworI2VuZGlmCiAKICAgaWYgKGNsb3NlIChvbGRf
ZmlsZSkpCiAgICAgZmF0YWwgKCJDYW4ndCBjbG9zZSAoJXMpOiBlcnJubyAlZFxuIiwgb2xkX25h
bWUsIGVycm5vKTsKIAotICBpZiAoY2xvc2UgKG5ld19maWxlKSkKLSAgICBmYXRhbCAoIkNhbid0
IGNsb3NlICglcyk6IGVycm5vICVkXG4iLCBuZXdfbmFtZSwgZXJybm8pOworICBtdW5tYXAgKG9s
ZF9iYXNlLCBvbGRfZmlsZV9zaXplKTsKKworICAvKiBNYWtlIHRoZSBuZXcgZmlsZSBleGVjdXRh
YmxlICovCiAKICAgaWYgKHN0YXQgKG5ld19uYW1lLCAmc3RhdF9idWYpID09IC0xKQogICAgIGZh
dGFsICgiQ2FuJ3Qgc3RhdCAoJXMpOiBlcnJubyAlZFxuIiwgbmV3X25hbWUsIGVycm5vKTsK
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27416</attachid>
            <date>2004-03-15 13:29 0000</date>
            <desc>files/emacs-18.59-gentoo.patch</desc>
            <filename>emacs-18.59-gentoo.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">UHJlcmVxOiAyMDA0LTAzLTA4CmRpZmYgLU51ciBlbWFjcy0xOC41OS1vcmlnL3NyYy9DaGFuZ2VM
b2cgZW1hY3MtMTguNTkvc3JjL0NoYW5nZUxvZwotLS0gZW1hY3MtMTguNTktb3JpZy9zcmMvQ2hh
bmdlTG9nCTIwMDQtMDMtMDggMDk6Mzg6NTAuMDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0xOC41
OS9zcmMvQ2hhbmdlTG9nCTIwMDQtMDMtMDkgMDg6MzY6NDkuMDAwMDAwMDAwICswMTAwCkBAIC0x
LDMgKzEsOSBAQAorMjAwNC0wMy0wOSAgVWxyaWNoIE11ZWxsZXIgIDx1bG1Aa3BoLnVuaS1tYWlu
ei5kZT4KKworCSogbWFsbG9jLmMgKERPTlRfREVGSU5FX1NJR05BTCk6IERlZmluZWQuCisKKwkq
IHMtbGludXguaCAoVEVSTUlORk8pOiBNb3ZlZCBoZXJlIGZyb20geW1ha2VmaWxlLgorCiAyMDA0
LTAzLTA4ICBVbHJpY2ggTXVlbGxlciAgPHVsbUBrcGgudW5pLW1haW56LmRlPgogCiAJKiB1bmV4
ZWxmLmM6IFJlcGxhY2VkIHdpdGggdmVyc2lvbiBmcm9tIEVtYWNzIDIxLjMuCmRpZmYgLU51ciBl
bWFjcy0xOC41OS1vcmlnL3NyYy9tYWxsb2MuYyBlbWFjcy0xOC41OS9zcmMvbWFsbG9jLmMKLS0t
IGVtYWNzLTE4LjU5LW9yaWcvc3JjL21hbGxvYy5jCTE5OTItMDMtMjMgMDU6MDk6MDcuMDAwMDAw
MDAwICswMTAwCisrKyBlbWFjcy0xOC41OS9zcmMvbWFsbG9jLmMJMjAwNC0wMy0wOSAwODozMzox
Mi4wMDAwMDAwMDAgKzAxMDAKQEAgLTU5LDYgKzU5LDkgQEAKICAqLwogCiAjaWZkZWYgZW1hY3MK
Ky8qIEluaGliaXQgbWFjcm8gZGVmaW5pdGlvbiBvZiAic2lnbmFsIiBpbiBtLSouaCAqLworI2Rl
ZmluZSBET05UX0RFRklORV9TSUdOQUwKKwogLyogY29uZmlnLmggc3BlY2lmaWVzIHdoaWNoIGtp
bmQgb2Ygc3lzdGVtIHRoaXMgaXMuICAqLwogI2luY2x1ZGUgImNvbmZpZy5oIgogCmRpZmYgLU51
ciBlbWFjcy0xOC41OS1vcmlnL3NyYy9zLWxpbnV4LmggZW1hY3MtMTguNTkvc3JjL3MtbGludXgu
aAotLS0gZW1hY3MtMTguNTktb3JpZy9zcmMvcy1saW51eC5oCTE5OTktMTEtMDUgMDk6MTc6MjMu
MDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0xOC41OS9zcmMvcy1saW51eC5oCTIwMDQtMDMtMDkg
MDg6MzQ6MDUuMDAwMDAwMDAwICswMTAwCkBAIC0xNjQsNiArMTY0LDkgQEAKICNkZWZpbmUgUE9T
SVgJCQkvKiBhZmZlY3RzIG9ubHkgZ2V0cGFnZXNpemUuaCAqLwogI2RlZmluZSBQT1NJWF9TSUdO
QUxTCQkvKiB1c2VzIHNpZ2FjdGlvbiBmcm9tIHN5c19zaWduYWwgKi8KIAorLyogVXNlIHRlcm1p
bmZvIGluc3RlYWQgb2YgdGVybWNhcC4gKi8KKyNkZWZpbmUgVEVSTUlORk8KKwogI2lmZGVmIEhB
VkVfUFRNWAogCiAvKiBUaGlzIGNoYW5nZSBtZWFucyB0aGF0IHdlIGRvbid0IGxvb3AgdGhyb3Vn
aCBhbGxvY2F0ZV9wdHkgdG9vIG1hbnkKQEAgLTI1MCw3ICsyNTMsNyBAQAogCiAjZGVmaW5lIENf
Q09NUElMRVIgZ2NjCiAjZGVmaW5lIENfREVCVUdfU1dJVENIIC1nCi0jZGVmaW5lIENfT1BUSU1J
WkVfU1dJVENIIC1PMyAtbWFsaWduLWxvb3BzPTIgLW1hbGlnbi1qdW1wcz0yIC1tYWxpZ24tZnVu
Y3Rpb25zPTIKKyNkZWZpbmUgQ19PUFRJTUlaRV9TV0lUQ0ggLU8yIC1tYWxpZ24tbG9vcHM9MiAt
bWFsaWduLWp1bXBzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MgogI2RlZmluZSBPTERYTUVOVV9PUFRJ
T05TIENGTEFHUz0tTzIgRVhUUkE9aW5zcXVlLm8KICNkZWZpbmUgU1RBUlRfRklMRVMgcHJlLWNy
dDAubyAvdXNyL2xpYi9jcnQxLm8gL3Vzci9saWIvY3J0aS5vCiAjZGVmaW5lIExJQlNfREVCVUcJ
CS8qIG92ZXJyaWRlIGluIGNvbmZpZy5oIHRvIGluY2x1ZGUgLWxnICovCmRpZmYgLU51ciBlbWFj
cy0xOC41OS1vcmlnL3NyYy95bWFrZWZpbGUgZW1hY3MtMTguNTkvc3JjL3ltYWtlZmlsZQotLS0g
ZW1hY3MtMTguNTktb3JpZy9zcmMveW1ha2VmaWxlCTE5OTktMTEtMDUgMDk6MTk6NDcuMDAwMDAw
MDAwICswMTAwCisrKyBlbWFjcy0xOC41OS9zcmMveW1ha2VmaWxlCTIwMDMtMTEtMTMgMDg6MzU6
MzguMDAwMDAwMDAwICswMTAwCkBAIC0xOTEsNyArMTkxLDcgQEAKIFNIT1JUPSBzaG9ydG5hbWVz
CiAjZW5kaWYgLyogU0hPUlROQU1FUyAqLwogCi1DRkxBR1M9IENfREVCVUdfU1dJVENIIENfT1BU
SU1JWkVfU1dJVENIIC1EZW1hY3MgJChNWUNQUEZMQUcpIENfU1dJVENIX01BQ0hJTkUgQ19TV0lU
Q0hfU1lTVEVNIENfU1dJVENIX1hfTUFDSElORSBDX1NXSVRDSF9YX1NZU1RFTQorQ0ZMQUdTPSBD
X09QVElNSVpFX1NXSVRDSCAtRGVtYWNzICQoTVlDUFBGTEFHKSBDX1NXSVRDSF9NQUNISU5FIENf
U1dJVENIX1NZU1RFTSBDX1NXSVRDSF9YX01BQ0hJTkUgQ19TV0lUQ0hfWF9TWVNURU0KIC8qIERP
IE5PVCB1c2UgLVIuICBUaGVyZSBpcyBhIHNwZWNpYWwgaGFjayBkZXNjcmliZWQgaW4gbGFzdGZp
bGUuYwogICAgd2hpY2ggaXMgdXNlZCBpbnN0ZWFkLiAgU29tZSBpbml0aWFsaXplZCBkYXRhIGFy
ZWFzIGFyZSBtb2RpZmllZAogICAgYXQgaW5pdGlhbCBzdGFydHVwLCB0aGVuIGxhYmVsZWQgYXMg
cGFydCBvZiB0aGUgdGV4dCBhcmVhIHdoZW4KQEAgLTI4NCw3ICsyODQsNiBAQAogCXByb2Nlc3Mu
byBjYWxscHJvYy5vICQoZW52aXJvbm9iaikgXAogCWRvcHJudC5vCiAKLSNkZWZpbmUgVEVSTUlO
Rk8KICNpZmRlZiBURVJNSU5GTwogLyogVXNlZCB0byBiZSAtbHRlcm1jYXAgaGVyZS4gIElmIHlv
dXIgbWFjaGluZSBuZWVkcyB0aGF0LAogICAgZGVmaW5lIExJQlNfVEVSTUNBUCBpbiB0aGUgbS0g
ZmlsZS4gICovCmRpZmYgLU51ciBlbWFjcy0xOC41OS1vcmlnL2xpc3AvQ2hhbmdlTG9nIGVtYWNz
LTE4LjU5L2xpc3AvQ2hhbmdlTG9nCi0tLSBlbWFjcy0xOC41OS1vcmlnL2xpc3AvQ2hhbmdlTG9n
CTE5OTItMTAtMzEgMDE6MzI6MDAuMDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0xOC41OS9saXNw
L0NoYW5nZUxvZwkyMDA0LTAzLTA4IDA5OjM3OjIxLjAwMDAwMDAwMCArMDEwMApAQCAtMSwzICsx
LDkgQEAKKzIwMDQtMDMtMDggIFVscmljaCBNdWVsbGVyICA8dWxtQGtwaC51bmktbWFpbnouZGU+
CisKKwkqIHRlcm0vbGludXguZWw6IE5ldyBmaWxlLgorCisJKiB0ZXJtL3h0ZXJtLmVsOiBMb2Fk
IHZ0MjAwLmVsLgorCiBGcmkgT2N0IDMwIDE5OjM2OjM4IDE5OTIgIFJpY2hhcmQgU3RhbGxtYW4g
IChybXNAbW9sZS5nbnUuYWkubWl0LmVkdSkKIAogCSogVmVyc2lvbiAxOC41OSByZWxlYXNlZC4K
ZGlmZiAtTnVyIGVtYWNzLTE4LjU5LW9yaWcvbGlzcC90ZXJtL2xpbnV4LmVsIGVtYWNzLTE4LjU5
L2xpc3AvdGVybS9saW51eC5lbAotLS0gZW1hY3MtMTguNTktb3JpZy9saXNwL3Rlcm0vbGludXgu
ZWwJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTE4LjU5L2xp
c3AvdGVybS9saW51eC5lbAkyMDAzLTExLTI5IDIxOjM3OjE1LjAwMDAwMDAwMCArMDEwMApAQCAt
MCwwICsxLDIgQEAKKyhsb2FkIChjb25jYXQgdGVybS1maWxlLXByZWZpeCAidnQyMDAiKSBuaWwg
dCkKKyhlbmFibGUtYXJyb3cta2V5cykKZGlmZiAtTnVyIGVtYWNzLTE4LjU5LW9yaWcvbGlzcC90
ZXJtL3h0ZXJtLmVsIGVtYWNzLTE4LjU5L2xpc3AvdGVybS94dGVybS5lbAotLS0gZW1hY3MtMTgu
NTktb3JpZy9saXNwL3Rlcm0veHRlcm0uZWwJMTk4OS0wNC0yNyAwMzo1MjozOS4wMDAwMDAwMDAg
KzAyMDAKKysrIGVtYWNzLTE4LjU5L2xpc3AvdGVybS94dGVybS5lbAkyMDAzLTExLTI5IDIxOjM3
OjE1LjAwMDAwMDAwMCArMDEwMApAQCAtMSwyICsxLDIgQEAKLTs7IERvbid0IHNlbmQgdGhlIGB0
aScgc3RyaW5nIHdoZW4gc2NyZWVuIGlzIGNsZWFyZWQuCi0oc2V0cSByZXNldC10ZXJtaW5hbC1v
bi1jbGVhciBuaWwpCisobG9hZCAoY29uY2F0IHRlcm0tZmlsZS1wcmVmaXggInZ0MjAwIikgbmls
IHQpCisoZW5hYmxlLWFycm93LWtleXMpCg==
</data>        

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>27464</attachid>
            <date>2004-03-16 04:55 0000</date>
            <desc>emacs-18.59.ebuild</desc>
            <filename>emacs-18.59.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA0IEdlbnRvbyBUZWNobm9sb2dpZXMsIEluYy4KIyBEaXN0cmli
dXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYy
CiMgJEhlYWRlcjogJAoKREVTQ1JJUFRJT049IlRoZSBleHRlbnNpYmxlIHNlbGYtZG9jdW1lbnRp
bmcgdGV4dCBlZGl0b3IiClNSQ19VUkk9ImZ0cDovL2Z0cC5nbnUub3JnL29sZC1nbnUvZW1hY3Mv
JHtQfS50YXIuZ3oKCWZ0cDovL2Z0cC5zcGxvZGUuY29tL3B1Yi91c2Vycy9mcmllZG1hbi9wYXRj
aGVzLyR7UH0tbGludXgyMngtZWxmLWdsaWJjMi5kaWZmLmd6IgpIT01FUEFHRT0iaHR0cDovL3d3
dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKClNMT1Q9IjAiCktFWVdPUkRTPSJ+eDg2IgpMSUNF
TlNFPSJHUEwtMSIKSVVTRT0iWCIKREVQRU5EPSJzeXMtbGlicy9uY3Vyc2VzCglYPyAoIHZpcnR1
YWwveDExICkiClBST1ZJREU9InZpcnR1YWwvZW1hY3MgdmlydHVhbC9lZGl0b3IiCgpNWV9CQVNF
RElSPSIvdXNyL3NoYXJlL2VtYWNzLyR7UFZ9IgpNWV9MT0NLRElSPSIvdmFyL2xpYi9lbWFjcy9s
b2NrIgoKIyBEbyBub3QgdXNlIHRoZSBzYW5kYm94LCBvciB0aGUgZHVtcGVkIEVtYWNzIHdpbGwg
YmUgdHdpY2UgYXMgbGFyZ2UKU0FOREJPWF9ESVNBQkxFRD0iMSIKCnNyY191bnBhY2soKSB7Cgl1
bnBhY2sgJHtBfQoJZXBhdGNoICR7UH0tbGludXgyMngtZWxmLWdsaWJjMi5kaWZmCgllcGF0Y2gg
JHtGSUxFU0RJUn0vJHtQfS11bmV4ZWxmLnBhdGNoCgllcGF0Y2ggJHtGSUxFU0RJUn0vJHtQfS1n
ZW50b28ucGF0Y2gKfQoKc3JjX2NvbXBpbGUoKSB7CgkjIGF1dG9jb25mPyBXaGF0J3MgYXV0b2Nv
bmY/IFdlIGFyZSBsaXZpbmcgaW4gMTk5Mi4gOy0pCglsb2NhbCBhcmNoCgljYXNlICR7QVJDSH0g
aW4KCQl4ODYpICAgYXJjaD1pbnRlbDM4NiA7OwoJCSopICAgICBkaWUgIkFyY2hpdGVjdHVyZSAk
e0FSQ0h9IG5vdCBzdXBwb3J0ZWQiIDs7Cgllc2FjCglsb2NhbCBjbWQ9InMvXCJzLS4qXC5oXCIv
XCJzLWxpbnV4LmhcIi87cy9cIm0tLipcLmhcIi9cIm0tJHthcmNofS5oXCIvIgoJdXNlIFggJiYg
Y21kPSIke2NtZH07cy8uKlwoI2RlZmluZSBIQVZFX1hfV0lORE9XU1wpLiovXDEvIgoJc2VkIC1l
ICIke2NtZH0iIHNyYy9jb25maWcuaC1kaXN0ID5zcmMvY29uZmlnLmgKCgljYXQgPDwtRU5EID5z
cmMvcGF0aHMuaAoJCSNkZWZpbmUgUEFUSF9MT0FEU0VBUkNIICIke01ZX0JBU0VESVJ9L2xpc3Ai
CgkJI2RlZmluZSBQQVRIX0VYRUMgIiR7TVlfQkFTRURJUn0vZXRjIgoJCSNkZWZpbmUgUEFUSF9M
T0NLICIke01ZX0xPQ0tESVJ9LyIKCQkjZGVmaW5lIFBBVEhfU1VQRVJMT0NLICIke01ZX0xPQ0tE
SVJ9LyEhIVN1cGVyTG9jayEhISIKCUVORAoKCWVtYWtlIC1qMSB8fCBkaWUKfQoKc3JjX2luc3Rh
bGwoKSB7Cglkb2RpciAke01ZX0JBU0VESVJ9Cglkb2RpciAvdXNyL3NoYXJlL21hbi9tYW4xCglt
YWtlIGluc3RhbGwgTElCRElSPSR7RH0ke01ZX0JBU0VESVJ9IEJJTkRJUj0ke0R9L3Vzci9iaW4g
XAoJCU1BTkRJUj0ke0R9L3Vzci9zaGFyZS9tYW4vbWFuMSB8fCBkaWUKCWNobW9kIC1SIGdvLXcg
JHtEfSR7TVlfQkFTRURJUn0KCXJtZGlyICR7RH0ke01ZX0JBU0VESVJ9L2xvY2sKCglkb2RpciAk
e01ZX0xPQ0tESVIlLyp9CglkaXJvcHRzIC1tMDc3NwoJZG9kaXIgJHtNWV9MT0NLRElSfQoJa2Vl
cGRpciAke01ZX0xPQ0tESVJ9Cn0K
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>109828</attachid>
            <date>2007-02-11 09:52 0000</date>
            <desc>emacs-18.59-r1.ebuild</desc>
            <filename>emacs-18.59-r1.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA3IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L2FwcC1lZGl0b3JzL2VtYWNzL2VtYWNzLTE4LjU5
LmVidWlsZCx2IDEuNyAyMDA2LzAyLzI3IDE5OjM3OjA2IG1rZW5uZWR5IEV4cCAkCgppbmhlcml0
IGV1dGlscyB0b29sY2hhaW4tZnVuY3MgZmxhZy1vLW1hdGljIGFsdGVybmF0aXZlcwoKREVTQ1JJ
UFRJT049IlRoZSBleHRlbnNpYmxlIHNlbGYtZG9jdW1lbnRpbmcgdGV4dCBlZGl0b3IiCkhPTUVQ
QUdFPSJodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgpTUkNfVVJJPSJmdHA6Ly9m
dHAuZ251Lm9yZy9vbGQtZ251L2VtYWNzLyR7UH0udGFyLmd6CglmdHA6Ly9mdHAuc3Bsb2RlLmNv
bS9wdWIvdXNlcnMvZnJpZWRtYW4vZW1hY3MvJHtQfS1saW51eDIyeC1lbGYtZ2xpYmMyMS5kaWZm
Lmd6IgoKTElDRU5TRT0iR1BMLTEiClNMT1Q9IjE4IgpLRVlXT1JEUz0ifng4NiIKSVVTRT0iWCIK
CkRFUEVORD0ic3lzLWxpYnMvbmN1cnNlcwoJWD8gKCB8fCAoIHgxMS1saWJzL2xpYlgxMSB2aXJ0
dWFsL3gxMSApICkiClBST1ZJREU9InZpcnR1YWwvZW1hY3MgdmlydHVhbC9lZGl0b3IiCgpNWV9C
QVNFRElSPSIvdXNyL3NoYXJlL2VtYWNzLyR7UFZ9IgpNWV9MT0NLRElSPSIvdmFyL2xpYi9lbWFj
cy9sb2NrIgoKc3JjX3VucGFjaygpIHsKCXVucGFjayAke0F9CgllcGF0Y2ggJHtQfS1saW51eDIy
eC1lbGYtZ2xpYmMyMS5kaWZmCgllcGF0Y2ggJHtGSUxFU0RJUn0vJHtQfS11bmV4ZWxmLnBhdGNo
CgllcGF0Y2ggJHtGSUxFU0RJUn0vJHtQfS1nZW50b28ucGF0Y2gKCWVwYXRjaCAke0ZJTEVTRElS
fS8ke1B9LWdjYzQucGF0Y2gKfQoKc3JjX2NvbXBpbGUoKSB7CglTQU5EQk9YX09OPTAKCgkjIGF1
dG9jb25mPyBXaGF0J3MgYXV0b2NvbmY/IFdlIGFyZSBsaXZpbmcgaW4gMTk5Mi4gOy0pCglsb2Nh
bCBhcmNoCgljYXNlICR7QVJDSH0gaW4KCQl4ODYpICAgYXJjaD1pbnRlbDM4NiA7OwoJCSopICAg
ICBkaWUgIkFyY2hpdGVjdHVyZSAke0FSQ0h9IG5vdCBzdXBwb3J0ZWQiIDs7Cgllc2FjCglsb2Nh
bCBjbWQ9InMvXCJzLS4qXC5oXCIvXCJzLWxpbnV4LmhcIi87cy9cIm0tLipcLmhcIi9cIm0tJHth
cmNofS5oXCIvIgoJdXNlIFggJiYgY21kPSIke2NtZH07cy8uKlwoI2RlZmluZSBIQVZFX1hfV0lO
RE9XU1wpLiovXDEvIgoJc2VkIC1lICIke2NtZH0iIHNyYy9jb25maWcuaC1kaXN0ID5zcmMvY29u
ZmlnLmgKCgljYXQgPDwtRU5EID5zcmMvcGF0aHMuaAoJCSNkZWZpbmUgUEFUSF9MT0FEU0VBUkNI
ICIke01ZX0JBU0VESVJ9L2xpc3AiCgkJI2RlZmluZSBQQVRIX0VYRUMgIiR7TVlfQkFTRURJUn0v
ZXRjIgoJCSNkZWZpbmUgUEFUSF9MT0NLICIke01ZX0xPQ0tESVJ9LyIKCQkjZGVmaW5lIFBBVEhf
U1VQRVJMT0NLICIke01ZX0xPQ0tESVJ9LyEhIVN1cGVyTG9jayEhISIKCUVORAoKCSMgLU8zIGFu
ZCAtZmlubGluZS1mdW5jdGlvbnMgY2F1c2Ugc2VnbWVudGF0aW9uIGZhdWx0cyBhdCBydW4gdGlt
ZS4KCWZpbHRlci1mbGFncyAtZmlubGluZS1mdW5jdGlvbnMKCXJlcGxhY2UtZmxhZ3MgLU9bMy05
XSAtTzIKCXN0cmlwLWZsYWdzCgoJZW1ha2UgLWoxIENDPSIkKHRjLWdldENDKSIgQ0ZMQUdTPSIk
e0NGTEFHU30gLURlbWFjcyIgfHwgZGllCn0KCnNyY19pbnN0YWxsKCkgewoJZG9kaXIgJHtNWV9C
QVNFRElSfQoJZG9kaXIgL3Vzci9zaGFyZS9tYW4vbWFuMQoJbWFrZSBpbnN0YWxsIExJQkRJUj0k
e0R9JHtNWV9CQVNFRElSfSBCSU5ESVI9JHtEfS91c3IvYmluIFwKCQlNQU5ESVI9JHtEfS91c3Iv
c2hhcmUvbWFuL21hbjEgfHwgZGllCgljaG1vZCAtUiBnby13ICR7RH0ke01ZX0JBU0VESVJ9Cgly
bWRpciAke0R9JHtNWV9CQVNFRElSfS9sb2NrCgoJZG9kaXIgJHtNWV9MT0NLRElSJS8qfQoJZGly
b3B0cyAtbTA3NzcKCWRvZGlyICR7TVlfTE9DS0RJUn0KCWtlZXBkaXIgJHtNWV9MT0NLRElSfQoK
CWZvciBpIGluICR7RH0vdXNyL2Jpbi8qOyBkbwoJCW12ICR7aX17LC5lbWFjcy0ke1NMT1R9fSB8
fCBkaWUgIm12ICR7aX0gZmFpbGVkIgoJZG9uZQoJZG9zeW0gZW1hY3MuZW1hY3MtJHtTTE9UfSAv
dXNyL2Jpbi9lbWFjcy0ke1NMT1R9CgltdiAke0R9L3Vzci9zaGFyZS9tYW4vbWFuMS9lbWFjc3ss
LmVtYWNzLSR7U0xPVH19LjEgfHwgZGllCgoJZG9kb2MgUkVBRE1FIFBST0JMRU1TCn0KCnVwZGF0
ZS1hbHRlcm5hdGl2ZXMoKSB7CgkjIEV4dHJhY3QgdGhlIHN1ZmZpeCBvZiB0aGUgbWFucGFnZXMg
dG8gZGV0ZXJtaW5lIHRoZSBjb3JyZWN0CgkjIGNvbXByZXNzaW9uIHByb2dyYW0uCglsb2NhbCBz
dWZmaXg9JChlY2hvIC91c3Ivc2hhcmUvbWFuL21hbjEvZW1hY3MuZW1hY3MtKi4xKnxzZWQgJ3Mv
LipcLjEvLycpCgoJIyBUaGlzIGNyZWF0ZXMgc3ltbGlua3MgZm9yIGJpbmFyaWVzIGFuZCBtYW4g
cGFnZSwgc28gdGhlIGNvcnJlY3QKCSMgb25lcyBpbiBhIHNsb3R0ZWQgZW52aXJvbm1lbnQgY2Fu
IGJlIGFjY2Vzc2VkLgoJZm9yIGkgaW4gZW1hY3MgZW1hY3NjbGllbnQgZXRhZ3MgY3RhZ3M7IGRv
CgkJYWx0ZXJuYXRpdmVzX2F1dG9fbWFrZXN5bSAiL3Vzci9iaW4vJHtpfSIgIi91c3IvYmluLyR7
aX0uZW1hY3MtKiIKCWRvbmUKCglhbHRlcm5hdGl2ZXNfYXV0b19tYWtlc3ltICIvdXNyL3NoYXJl
L21hbi9tYW4xL2VtYWNzLjEke3N1ZmZpeH0iIFwKCQkiL3Vzci9zaGFyZS9tYW4vbWFuMS9lbWFj
cy5lbWFjcy0qLjEke3N1ZmZpeH0iCn0KCnBrZ19wb3N0aW5zdCgpIHsKCXVwZGF0ZS1hbHRlcm5h
dGl2ZXMKfQoKcGtnX3Bvc3RybSgpIHsKCXVwZGF0ZS1hbHRlcm5hdGl2ZXMKfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109829</attachid>
            <date>2007-02-11 09:53 0000</date>
            <desc>files/emacs-18.59-gcc4.patch</desc>
            <filename>emacs-18.59-gcc4.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">UHJlcmVxOiAyMDA0LTAzLTA5CmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvc3JjL0NoYW5nZUxv
ZyBlbWFjcy0xOC41OS9zcmMvQ2hhbmdlTG9nCi0tLSBlbWFjcy0xOC41OS1vcmlnL3NyYy9DaGFu
Z2VMb2cJMjAwNC0wMy0wOSAwODozNjo0OS4wMDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTE4LjU5
L3NyYy9DaGFuZ2VMb2cJMjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTEs
MyArMSwxMSBAQAorMjAwNy0wMS0yOSAgVWxyaWNoIE11ZWxsZXIgIDx1bG1Aa3BoLnVuaS1tYWlu
ei5kZT4KKworCSogeDExdGVybS5jIChpbnRlcm5hbF9zb2NrZXRfcmVhZCk6IEhhbmRsZSBYS19C
YWNrU3BhY2Uga2V5LgorCisJKiBjYWxscHJvYy5jLCBkb3BybnQuYywgZW1hY3NzaWduYWwuaCwg
Zm5zLmMsIGxpc3AuaCwgbHJlYWQuYywKKwltYWxsb2MuYywgcHJvY2Vzcy5jLCBzLWxpbnV4Lmgs
IHN5c2RlcC5jLCB0ZXJtaW5mby5jLCB4MTF0ZXJtLmM6CisJRml4IEdDQyA0LjEgY29tcGlsYXRp
b24gaXNzdWVzLgorCiAyMDA0LTAzLTA5ICBVbHJpY2ggTXVlbGxlciAgPHVsbUBrcGgudW5pLW1h
aW56LmRlPgogCiAJKiBtYWxsb2MuYyAoRE9OVF9ERUZJTkVfU0lHTkFMKTogRGVmaW5lZC4KZGlm
ZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvYWxsb2MuYyBlbWFjcy0xOC41OS9zcmMvYWxsb2Mu
YwotLS0gZW1hY3MtMTguNTktb3JpZy9zcmMvYWxsb2MuYwkxOTkyLTA5LTIxIDA3OjQ1OjMwLjAw
MDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkvc3JjL2FsbG9jLmMJMjAwNy0wMS0yOSAyMTo0
Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTEwNzMsNyArMTA3Myw3IEBACiAJICBtYXJrX29iamVj
dCAoJnB0ci0+Y29udGVudHNbaV0pOwogICAgICAgfQogICAgICAgYnJlYWs7Ci0jZW5kaWYgMAor
I2VuZGlmCiAKICAgICBjYXNlIExpc3BfU3ltYm9sOgogICAgICAgewpAQCAtMTMxMCw3ICsxMzEw
LDcgQEAKIAl9CiAgIH0KIAotI2VuZGlmIHN0YW5kYWxvbmUKKyNlbmRpZiAvKiBzdGFuZGFsb25l
ICovCiAKICAgLyogRnJlZSBhbGwgdW5tYXJrZWQgdmVjdG9ycyAqLwogICB7CmRpZmYgLXVyIGVt
YWNzLTE4LjU5LW9yaWcvc3JjL2J1ZmZlci5jIGVtYWNzLTE4LjU5L3NyYy9idWZmZXIuYwotLS0g
ZW1hY3MtMTguNTktb3JpZy9zcmMvYnVmZmVyLmMJMTk5Mi0wNS0xMyAyMTozOTozMy4wMDAwMDAw
MDAgKzAyMDAKKysrIGVtYWNzLTE4LjU5L3NyYy9idWZmZXIuYwkyMDA3LTAxLTI5IDIxOjQ3OjU2
LjAwMDAwMDAwMCArMDEwMApAQCAtMzMxLDcgKzMzMSw3IEBACiAgICAgcmV0dXJuIFhCVUZGRVIg
KGJ1ZmZlciktPm51bWJlcjsKICAgfQogICovCi0jZW5kaWYgTk9UREVGCisjZW5kaWYgLyogTk9U
REVGICovCiAKIERFRlVOICgiYnVmZmVyLWZpbGUtbmFtZSIsIEZidWZmZXJfZmlsZV9uYW1lLCBT
YnVmZmVyX2ZpbGVfbmFtZSwgMCwgMSwgMCwKICAgIlJldHVybiBuYW1lIG9mIGZpbGUgQlVGRkVS
IGlzIHZpc2l0aW5nLCBvciBOSUwgaWYgbm9uZS5cblwKQEAgLTYwMSw3ICs2MDEsNyBAQAogCiAj
aWZkZWYgc3VicHJvY2Vzc2VzCiAgIGtpbGxfYnVmZmVyX3Byb2Nlc3NlcyAoYnVmKTsKLSNlbmRp
ZiBzdWJwcm9jZXNzZXMKKyNlbmRpZgogCiAgIHRlbSA9IFZpbmhpYml0X3F1aXQ7CiAgIFZpbmhp
Yml0X3F1aXQgPSBRdDsKZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvY2FsbHByb2MuYyBl
bWFjcy0xOC41OS9zcmMvY2FsbHByb2MuYwotLS0gZW1hY3MtMTguNTktb3JpZy9zcmMvY2FsbHBy
b2MuYwkxOTkyLTA3LTEyIDA1OjI2OjAxLjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkv
c3JjL2NhbGxwcm9jLmMJMjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTIx
LDYgKzIxLDcgQEAKIC8qIFRoaXMgbXVzdCBwcmVjZWRlIHN5cy9zaWduYWwuaCBvbiBjZXJ0YWlu
IG1hY2hpbmVzLiAgKi8KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzaWduYWwu
aD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCkBAIC0yNDEs
NyArMjQyLDcgQEAKICAgICB7CiAjaWZuZGVmIHN1YnByb2Nlc3NlcwogICAgICAgd2FpdF93aXRo
b3V0X2Jsb2NraW5nICgpOwotI2VuZGlmIHN1YnByb2Nlc3NlcworI2VuZGlmCiAgICAgICByZXR1
cm4gUW5pbDsKICAgICB9CiAKQEAgLTQxMyw3ICs0MTQsNyBAQAogCiAjaWZkZWYgdmlwYwogICBz
b21ldGhpbmcgbWlzc2luZyBoZXJlOwotI2VuZGlmIHZpcGMKKyNlbmRpZgogCiAgIC8qIGV4ZWN2
cCBkb2VzIG5vdCBhY2NlcHQgYW4gZW52aXJvbm1lbnQgYXJnIHNvIHRoZSBvbmx5IHdheQogICAg
ICB0byBwYXNzIHRoaXMgZW52aXJvbm1lbnQgaXMgdG8gc2V0IGVudmlyb24uICBPdXIgY2FsbGVy
CmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvc3JjL2Rpc3BuZXcuYyBlbWFjcy0xOC41OS9zcmMv
ZGlzcG5ldy5jCi0tLSBlbWFjcy0xOC41OS1vcmlnL3NyYy9kaXNwbmV3LmMJMTk5Mi0wNy0yNCAy
MTozMTozNi4wMDAwMDAwMDAgKzAyMDAKKysrIGVtYWNzLTE4LjU5L3NyYy9kaXNwbmV3LmMJMjAw
Ny0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTU4NiwxNSArNTg2LDE1IEBACiB7
CiAjaWZuZGVmIENPTVBJTEVSX1JFR0lTVEVSX0JVRwogICByZWdpc3RlcgotI2VuZGlmIENPTVBJ
TEVSX1JFR0lTVEVSX0JVRworI2VuZGlmCiAgICAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cg
KHNlbGVjdGVkX3dpbmRvdyk7CiAjaWZuZGVmIENPTVBJTEVSX1JFR0lTVEVSX0JVRwogICByZWdp
c3RlcgotI2VuZGlmIENPTVBJTEVSX1JFR0lTVEVSX0JVRworI2VuZGlmCiAgICAgaW50IGhwb3Mg
PSBjdXJzb3JfaHBvczsKICNpZm5kZWYgQ09NUElMRVJfUkVHSVNURVJfQlVHCiAgIHJlZ2lzdGVy
Ci0jZW5kaWYgQ09NUElMRVJfUkVHSVNURVJfQlVHCisjZW5kaWYKICAgICBpbnQgdnBvcyA9IGN1
cnNvcl92cG9zOwogCiAgIC8qIEdpdmUgdXAgaWYgYWJvdXQgdG8gY29udGludWUgbGluZSAqLwpk
aWZmIC11ciBlbWFjcy0xOC41OS1vcmlnL3NyYy9kb3BybnQuYyBlbWFjcy0xOC41OS9zcmMvZG9w
cm50LmMKLS0tIGVtYWNzLTE4LjU5LW9yaWcvc3JjL2RvcHJudC5jCTE5OTEtMDEtMDggMTg6MjY6
MjMuMDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0xOC41OS9zcmMvZG9wcm50LmMJMjAwNy0wMS0y
OSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUg
PHN0ZGlvLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlICJjb25maWcuaCIKIAogZG9w
cm50IChidWZmZXIsIGJ1ZnNpemUsIGZvcm1hdCwgbmFyZ3MsIGFyZ3MpCiAgICAgIGNoYXIgKmJ1
ZmZlcjsKZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvZWRpdGZucy5jIGVtYWNzLTE4LjU5
L3NyYy9lZGl0Zm5zLmMKLS0tIGVtYWNzLTE4LjU5LW9yaWcvc3JjL2VkaXRmbnMuYwkxOTkyLTA4
LTA4IDAxOjM4OjE2LjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkvc3JjL2VkaXRmbnMu
YwkyMDA3LTAxLTI5IDIxOjQ3OjU2LjAwMDAwMDAwMCArMDEwMApAQCAtMTA0Niw3ICsxMDQ2LDcg
QEAKICAgICByZXR1cm4gUW5pbDsKICAgcmV0dXJuIGJ1aWxkX3N0cmluZyAodmFsKTsKIH0KLSNl
bmRpZiBNQUlOVEFJTl9FTlZJUk9OTUVOVAorI2VuZGlmIC8qIE1BSU5UQUlOX0VOVklST05NRU5U
ICovCiAMCiB2b2lkCiBzeW1zX29mX2VkaXRmbnMgKCkKZGlmZiAtdXIgZW1hY3MtMTguNTktb3Jp
Zy9zcmMvZW1hY3MuYyBlbWFjcy0xOC41OS9zcmMvZW1hY3MuYwotLS0gZW1hY3MtMTguNTktb3Jp
Zy9zcmMvZW1hY3MuYwkxOTkyLTEwLTE3IDA0OjUxOjAwLjAwMDAwMDAwMCArMDEwMAorKysgZW1h
Y3MtMTguNTkvc3JjL2VtYWNzLmMJMjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAK
QEAgLTMxNCw3ICszMTQsNyBAQAogI2lmZGVmIEhJR0hQUkkKICAgc2V0cHJpb3JpdHkgKFBSSU9f
UFJPQ0VTUywgZ2V0cGlkICgpLCBISUdIUFJJKTsKICAgc2V0dWlkIChnZXR1aWQgKCkpOwotI2Vu
ZGlmIEhJR0hQUkkKKyNlbmRpZgogCiAgIGluaGliaXRfd2luZG93X3N5c3RlbSA9IDA7CiAKQEAg
LTQwMiw3ICs0MDIsNyBAQAogI2VuZGlmCiAjaWZkZWYgU0lHWEZTWgogICAgICAgc2lnbmFsIChT
SUdYRlNaLCBmYXRhbF9lcnJvcl9zaWduYWwpOwotI2VuZGlmIFNJR1hGU1oKKyNlbmRpZgogCiAj
aWZkZWYgQUlYCiAgICAgICAvKiBUaGlzIHVzZWQgdG8gcnVuIGZhdGFsX2Vycm9yX3NpZ25hbCwK
QEAgLTQ4OSw3ICs0ODksNyBAQAogICAgICAgc3ltc19vZl9hbGxvYyAoKTsKICNpZmRlZiBNQUlO
VEFJTl9FTlZJUk9OTUVOVAogICAgICAgc3ltc19vZl9lbnZpcm9uICgpOwotI2VuZGlmIE1BSU5U
QUlOX0VOVklST05NRU5UCisjZW5kaWYgLyogTUFJTlRBSU5fRU5WSVJPTk1FTlQgKi8KICAgICAg
IHN5bXNfb2ZfcmVhZCAoKTsKICAgICAgIHN5bXNfb2ZfcHJpbnQgKCk7CiAgICAgICBzeW1zX29m
X2V2YWwgKCk7CmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvc3JjL2VtYWNzc2lnbmFsLmggZW1h
Y3MtMTguNTkvc3JjL2VtYWNzc2lnbmFsLmgKLS0tIGVtYWNzLTE4LjU5LW9yaWcvc3JjL2VtYWNz
c2lnbmFsLmgJMTk5MS0xMi0zMSAyMTo1MjozMS4wMDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTE4
LjU5L3NyYy9lbWFjc3NpZ25hbC5oCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAw
CkBAIC0yMiw3ICsyMiw4IEBACiAjZGVmaW5lIHNpZ2hvbGQoU0lHKSAgICAgT05MWV9VU0VEX0lO
X0JTRF80XzEKICNkZWZpbmUgc2lncmVsc2UoU0lHKSAgICBPTkxZX1VTRURfSU5fQlNEXzRfMQog
Ci1pbnQgKCpzeXNfc2lnbmFsIChpbnQgc2lnbmFsX251bWJlciwgaW50ICgqYWN0aW9uKSgpKSkg
KCk7Cit0eXBlZGVmIHZvaWQgKCpzaWduYWxfaGFuZGxlcl90KSAoKTsKK3NpZ25hbF9oYW5kbGVy
X3Qgc3lzX3NpZ25hbCAoaW50IHNpZ25hbF9udW1iZXIsIHNpZ25hbF9oYW5kbGVyX3QgYWN0aW9u
KTsKIGludCBzeXNfc2lncGF1c2UgKHNpZ3NldF90IG5ld19tYXNrKTsKIHNpZ3NldF90IHN5c19z
aWdibG9jayAoc2lnc2V0X3QgbmV3X21hc2spOwogc2lnc2V0X3Qgc3lzX3NpZ3VuYmxvY2sgKHNp
Z3NldF90IG5ld19tYXNrKTsKZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvZmlsZWlvLmMg
ZW1hY3MtMTguNTkvc3JjL2ZpbGVpby5jCi0tLSBlbWFjcy0xOC41OS1vcmlnL3NyYy9maWxlaW8u
YwkxOTk4LTA1LTMxIDA1OjM0OjM5LjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkvc3Jj
L2ZpbGVpby5jCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAwCkBAIC03ODQsNyAr
Nzg0LDcgQEAKIAkgIGlmIChvID09IHRhcmdldCArIDEgJiYgb1stMV0gPT0gJy8nICYmIG9bMF0g
PT0gJy8nKQogCSAgICArK287CiAJICBlbHNlCi0jZW5kaWYgQVBPTExPCisjZW5kaWYgLyogQVBP
TExPICovCiAJICBpZiAobyA9PSB0YXJnZXQgJiYgKm8gPT0gJy8nKQogCSAgICArK287CiAJICBw
ICs9IDM7CmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvc3JjL2Zucy5jIGVtYWNzLTE4LjU5L3Ny
Yy9mbnMuYwotLS0gZW1hY3MtMTguNTktb3JpZy9zcmMvZm5zLmMJMTk5Mi0xMC0xNyAwNDo1NDox
Ny4wMDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTE4LjU5L3NyYy9mbnMuYwkyMDA3LTAxLTI5IDIx
OjQ3OjU2LjAwMDAwMDAwMCArMDEwMApAQCAtOTAsOCArOTAsNiBAQAogICAoYXJnKQogICAgICBM
aXNwX09iamVjdCBhcmc7CiB7Ci0gIGV4dGVybiBsb25nIHJhbmRvbSAoKTsKLSAgZXh0ZXJuIHNy
YW5kb20gKCk7CiAgIGV4dGVybiBsb25nIHRpbWUgKCk7CiAKICAgaWYgKEVRIChhcmcsIFF0KSkK
ZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvbGlzcC5oIGVtYWNzLTE4LjU5L3NyYy9saXNw
LmgKLS0tIGVtYWNzLTE4LjU5LW9yaWcvc3JjL2xpc3AuaAkxOTkyLTAzLTA2IDAwOjExOjMxLjAw
MDAwMDAwMCArMDEwMAorKysgZW1hY3MtMTguNTkvc3JjL2xpc3AuaAkyMDA0LTA1LTEzIDAyOjU2
OjUzLjAwMDAwMDAwMCArMDIwMApAQCAtOTgzLDcgKzk4Myw2IEBACiAKIGV4dGVybiB2b2lkIGRl
YnVnZ2VyICgpOwogCi1leHRlcm4gY2hhciAqbWFsbG9jICgpLCAqcmVhbGxvYyAoKSwgKmdldGVu
diAoKSwgKmN0aW1lICgpLCAqZ2V0d2QgKCk7CiBleHRlcm4gbG9uZyAqeG1hbGxvYyAoKSwgKnhy
ZWFsbG9jICgpOwogCiAjaWZkZWYgTUFJTlRBSU5fRU5WSVJPTk1FTlQKZGlmZiAtdXIgZW1hY3Mt
MTguNTktb3JpZy9zcmMvbHJlYWQuYyBlbWFjcy0xOC41OS9zcmMvbHJlYWQuYwotLS0gZW1hY3Mt
MTguNTktb3JpZy9zcmMvbHJlYWQuYwkxOTkyLTAzLTIzIDA1OjE4OjE3LjAwMDAwMDAwMCArMDEw
MAorKysgZW1hY3MtMTguNTkvc3JjL2xyZWFkLmMJMjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAw
MDAgKzAxMDAKQEAgLTIyOSw3ICsyMjksNyBAQAogICAgICBMaXNwX09iamVjdCBzdHJlYW07CiB7
CiAgIGZjbG9zZSAoKihGSUxFICoqKSBYU1RSSU5HIChzdHJlYW0pKTsKLSAgZnJlZSAoWFBOVFIg
KHN0cmVhbSkpOworICBmcmVlICgodm9pZCAqKShYUE5UUiAoc3RyZWFtKSkpOwogICBpZiAoLS1s
b2FkX2luX3Byb2dyZXNzIDwgMCkgbG9hZF9pbl9wcm9ncmVzcyA9IDA7CiAgIHJldHVybiBRbmls
OwogfQpAQCAtNDY1LDcgKzQ2NSw3IEBACiAgIHJldHVybiBRbmlsOwogfQogCi0jZW5kaWYgc3Rh
bmRhbG9uZQorI2VuZGlmIC8qIHN0YW5kYWxvbmUgKi8KIAwKIERFRlVOICgicmVhZCIsIEZyZWFk
LCBTcmVhZCwgMCwgMSwgMCwKICAgIlJlYWQgb25lIExpc3AgZXhwcmVzc2lvbiBhcyB0ZXh0IGZy
b20gU1RSRUFNLCByZXR1cm4gYXMgTGlzcCBvYmplY3QuXG5cCkBAIC0xMTQxLDcgKzExNDEsNyBA
QAogICBzeW0gPSBpbnRlcm4gKHN0cmluZyk7CiAgIFhTRVQgKFhTWU1CT0wgKHN5bSktPmZ1bmN0
aW9uLCBMaXNwX1N1YnIsIHNuYW1lKTsKIH0KLSNlbmRpZiBOT1RERUYKKyNlbmRpZiAvKiBOT1RE
RUYgKi8KIAogLyogTmV3IHJlcGxhY2VtZW50IGZvciBEZWZJbnRWYXI7IGl0IGlnbm9yZXMgdGhl
IGRvYyBzdHJpbmcgYXJndW1lbnQKICAgIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgbWFrZS1kb2Nm
aWxlIHdpbGwgaGFuZGxlIHRoYXQuICAqLwpAQCAtMTIzMCw3ICsxMjMwLDcgQEAKICAgICBhYm9y
dCAoKTsKIH0KIAotI2VuZGlmIHN0YW5kYWxvbmUKKyNlbmRpZiAvKiBzdGFuZGFsb25lICovCiAM
CiBpbml0X3JlYWQgKCkKIHsKZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvbWFsbG9jLmMg
ZW1hY3MtMTguNTkvc3JjL21hbGxvYy5jCi0tLSBlbWFjcy0xOC41OS1vcmlnL3NyYy9tYWxsb2Mu
YwkyMDA0LTAzLTA5IDA4OjMzOjEyLjAwMDAwMDAwMCArMDEwMAorKysgZW1hY3MtMTguNTkvc3Jj
L21hbGxvYy5jCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAwCkBAIC0yMTMsOCAr
MjEzLDYgQEAKIAogc3RhdGljIHZvaWQgZ2V0cG9vbCAoKTsKIAotY2hhciAqbWFsbG9jICgpOwot
CiAvKiBDYXVzZSByZWluaXRpYWxpemF0aW9uIGJhc2VkIG9uIGpvYiBwYXJhbWV0ZXJzOwogICBh
bHNvIGRlY2xhcmUgd2hlcmUgdGhlIGVuZCBvZiBwdXJlIHN0b3JhZ2UgaXMuICovCiB2b2lkCkBA
IC00MTIsNyArNDEwLDcgQEAKICAgICB9CiB9CiAMCi1jaGFyICoKK3ZvaWQgKgogbWFsbG9jIChu
KQkJLyogZ2V0IGEgYmxvY2sgKi8KICAgICAgdW5zaWduZWQgbjsKIHsKQEAgLTQ4OCw4ICs0ODYs
OSBAQAogICByZXR1cm4gKGNoYXIgKikgcCArICgoc2l6ZW9mICpwICsgNykgJiB+Nyk7CiB9CiAK
K3ZvaWQKIGZyZWUgKG1lbSkKLSAgICAgY2hhciAqbWVtOworICAgICB2b2lkICptZW07CiB7CiAg
IHJlZ2lzdGVyIHN0cnVjdCBtaGVhZCAqcDsKICAgewpAQCAtNTA5LDcgKzUwOCw3IEBACiAgICAg
aWYgKHAgLT4gbWhfYWxsb2MgIT0gSVNBTExPQykKICAgICAgIGFib3J0ICgpOwogCi0jZWxzZSBy
Y2hlY2sKKyNlbHNlIC8qIHJjaGVjayAqLwogICAgIGlmIChwIC0+IG1oX2FsbG9jICE9IElTQUxM
T0MpCiAgICAgICB7CiAJaWYgKHAgLT4gbWhfYWxsb2MgPT0gSVNGUkVFKQpAQCAtNTQ0LDkgKzU0
Myw5IEBACiAgIH0KIH0KIAotY2hhciAqCit2b2lkICoKIHJlYWxsb2MgKG1lbSwgbikKLSAgICAg
Y2hhciAqbWVtOworICAgICB2b2lkICptZW07CiAgICAgIHJlZ2lzdGVyIHVuc2lnbmVkIG47CiB7
CiAgIHJlZ2lzdGVyIHN0cnVjdCBtaGVhZCAqcDsKQEAgLTYwNiw3ICs2MDUsNyBAQAogCiAvKiBU
aGlzIGlzIGluIGNhc2Ugc29tZXRoaW5nIGxpbmtlZCB3aXRoIEVtYWNzIGNhbGxzIGNhbGxvYy4g
ICovCiAKLWNoYXIgKgordm9pZCAqCiBjYWxsb2MgKG51bSwgc2l6ZSkKICAgICAgdW5zaWduZWQg
bnVtLCBzaXplOwogewpAQCAtNjIxLDggKzYyMCw5IEBACiAKIC8qIFRoaXMgaXMgaW4gY2FzZSBz
b21ldGhpbmcgbGlua2VkIHdpdGggRW1hY3MgY2FsbHMgY2ZyZWUuICAqLwogCit2b2lkCiBjZnJl
ZSAobWVtKQotICAgICBjaGFyICptZW07CisgICAgIHZvaWQgKm1lbTsKIHsKICAgcmV0dXJuIGZy
ZWUgKG1lbSk7CiB9CkBAIC02NTYsOCArNjU2LDggQEAKICNpZm5kZWYgSFBVWAogLyogVGhpcyBy
dW5zIGludG8gdHJvdWJsZSB3aXRoIGdldHBhZ2VzaXplIG9uIEhQVVguCiAgICBQYXRjaGluZyBv
dXQgc2VlbXMgY2xlYW5lciB0aGFuIHRoZSB1Z2x5IGZpeCBuZWVkZWQuICAqLwotY2hhciAqCi12
YWxsb2MgKHNpemUpCit2b2lkICoKK3ZhbGxvYyAoc2l6ZV90IHNpemUpCiB7CiAgIHJldHVybiBt
ZW1hbGlnbiAoZ2V0cGFnZXNpemUgKCksIHNpemUpOwogfQpkaWZmIC11ciBlbWFjcy0xOC41OS1v
cmlnL3NyYy9tb2NrbGlzcC5jIGVtYWNzLTE4LjU5L3NyYy9tb2NrbGlzcC5jCi0tLSBlbWFjcy0x
OC41OS1vcmlnL3NyYy9tb2NrbGlzcC5jCTE5OTEtMDEtMDggMTk6MDA6MDEuMDAwMDAwMDAwICsw
MTAwCisrKyBlbWFjcy0xOC41OS9zcmMvbW9ja2xpc3AuYwkyMDA3LTAxLTI5IDIxOjQ3OjU2LjAw
MDAwMDAwMCArMDEwMApAQCAtMTkzLDcgKzE5Myw3IEBACiAgIFhTRVRJTlQgKHRvLCBYSU5UICh0
bykgKyBYSU5UIChmcm9tKSk7CiAgIHJldHVybiBGc3Vic3RyaW5nIChzdHJpbmcsIGZyb20sIHRv
KTsKIH0KLSNlbmRpZiBOT1RERUYKKyNlbmRpZiAvKiBOT1RERUYgKi8KIERFRlVOICgiaW5zZXJ0
LXN0cmluZyIsIEZpbnNlcnRfc3RyaW5nLCBTaW5zZXJ0X3N0cmluZywgMCwgTUFOWSwgMCwKICAg
Ik1vY2tsaXNwLWNvbXBhdGliaWxpdHkgaW5zZXJ0IGZ1bmN0aW9uLlxuXAogTGlrZSB0aGUgZnVu
Y3Rpb24gYGluc2VydCcgZXhjZXB0IHRoYXQgYW55IGFyZ3VtZW50IHRoYXQgaXMgYSBudW1iZXJc
blwKZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvcHJvY2Vzcy5jIGVtYWNzLTE4LjU5L3Ny
Yy9wcm9jZXNzLmMKLS0tIGVtYWNzLTE4LjU5LW9yaWcvc3JjL3Byb2Nlc3MuYwkxOTk4LTA1LTMx
IDA1OjM0OjQwLjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkvc3JjL3Byb2Nlc3MuYwky
MDA3LTAxLTI5IDIxOjQ3OjU2LjAwMDAwMDAwMCArMDEwMApAQCAtMTQzOCw3ICsxNDM4LDcgQEAK
IAogICB3aGlsZSAoMSkKICAgICB7Ci0gICAgICBpbnQgdmFsdWUgPSBjb25uZWN0IChzLCAmYWRk
cmVzcywgc2l6ZW9mIGFkZHJlc3MpOworICAgICAgaW50IHZhbHVlID0gY29ubmVjdCAocywgKHN0
cnVjdCBzb2NrYWRkciAqKSZhZGRyZXNzLCBzaXplb2YgYWRkcmVzcyk7CiAgICAgICAvKiBDb250
aW51ZSBpZiBzdWNjZXNzZWZ1bC4gICovCiAgICAgICBpZiAodmFsdWUgIT0gLTEpCiAJYnJlYWs7
CkBAIC0xNTkyLDcgKzE1OTIsOCBAQAogICBpbnQgeGVycm5vOwogICBMaXNwX09iamVjdCBwcm9j
OwogI2lmZGVmIEhBVkVfVElNRVZBTAotICBzdHJ1Y3QgdGltZXZhbCB0aW1lb3V0LCBlbmRfdGlt
ZSwgZ2FyYmFnZTsKKyAgc3RydWN0IHRpbWV2YWwgdGltZW91dCwgZW5kX3RpbWU7CisgIHN0cnVj
dCB0aW1lem9uZSBnYXJiYWdlOwogI2Vsc2UKICAgbG9uZyB0aW1lb3V0LCBlbmRfdGltZSwgdGVt
cDsKICNlbmRpZiAvKiBub3QgSEFWRV9USU1FVkFMICovCmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9y
aWcvc3JjL3JlZ2V4LmMgZW1hY3MtMTguNTkvc3JjL3JlZ2V4LmMKLS0tIGVtYWNzLTE4LjU5LW9y
aWcvc3JjL3JlZ2V4LmMJMTk5Mi0wNy0wNyAxNzozNTozMy4wMDAwMDAwMDAgKzAyMDAKKysrIGVt
YWNzLTE4LjU5L3NyYy9yZWdleC5jCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAw
CkBAIC05MCw3ICs5MCw3IEBACiAKICNpZm5kZWYgTkZBSUxVUkVTCiAjZGVmaW5lIE5GQUlMVVJF
UyA4MAotI2VuZGlmIE5GQUlMVVJFUworI2VuZGlmCiAKIC8qIHdpZHRoIG9mIGEgYnl0ZSBpbiBi
aXRzICovCiAKQEAgLTUzNiw3ICs1MzYsNyBAQAogCSAgICAgIFBBVEZFVENIIChjKTsKIAkgICAg
ICBQQVRQVVNIIChzeW50YXhfc3BlY19jb2RlW2NdKTsKIAkgICAgICBicmVhazsKLSNlbmRpZiBl
bWFjcworI2VuZGlmIC8qIGVtYWNzICovCiAKIAkgICAgY2FzZSAndyc6CiAJICAgICAgbGFzdHN0
YXJ0ID0gYjsKQEAgLTgzMyw3ICs4MzMsNyBAQAogCSAgICBpZiAoU1lOVEFYIChqKSAhPSAoZW51
bSBzeW50YXhjb2RlKSBrKQogCSAgICAgIGZhc3RtYXBbal0gPSAxOwogCSAgYnJlYWs7Ci0jZW5k
aWYgZW1hY3MKKyNlbmRpZiAvKiBlbWFjcyAqLwogCiAJY2FzZSBjaGFyc2V0OgogCSAgZm9yIChq
ID0gKnArKyAqIEJZVEVXSURUSCAtIDE7IGogPj0gMDsgai0tKQpAQCAtMTQ3NSw3ICsxNDc1LDcg
QEAKIAkgIFBSRUZFVENIOwogCSAgaWYgKFNZTlRBWCAoKmQrKykgIT0gMCkgZ290byBmYWlsOwog
CSAgYnJlYWs7Ci0jZW5kaWYgbm90IGVtYWNzCisjZW5kaWYgLyogbm90IGVtYWNzICovCiAKIAlj
YXNlIGJlZ2J1ZjoKIAkgIGlmIChkID09IHN0cmluZzEpCS8qIE5vdGUsIGQgY2Fubm90IGVxdWFs
IHN0cmluZzIgKi8KQEAgLTE3MjIsNCArMTcyMiw0IEBACiAgIGV4aXQgKDEpOwogfQogCi0jZW5k
aWYgdGVzdAorI2VuZGlmIC8qIHRlc3QgKi8KZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMv
cy1saW51eC5oIGVtYWNzLTE4LjU5L3NyYy9zLWxpbnV4LmgKLS0tIGVtYWNzLTE4LjU5LW9yaWcv
c3JjL3MtbGludXguaAkyMDA0LTAzLTA5IDA4OjM0OjA1LjAwMDAwMDAwMCArMDEwMAorKysgZW1h
Y3MtMTguNTkvc3JjL3MtbGludXguaAkyMDA3LTAxLTI5IDIxOjQ3OjU2LjAwMDAwMDAwMCArMDEw
MApAQCAtMTI2LDYgKzEyNiwxMSBAQAogDAogLyogU3BlY2lhbCBoYWNrcyBuZWVkZWQgdG8gbWFr
ZSBFbWFjcyBydW4gb24gdGhpcyBzeXN0ZW0uICAqLwogCisjaWZkZWYgZW1hY3MKKyNpbmNsdWRl
IDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNlbmRpZgorCiAvKiBPbiBVU0cgc3lz
dGVtcyB0aGUgc3lzdGVtIGNhbGxzIGFyZSBpbnRlcnJ1cHRhYmxlIGJ5IHNpZ25hbHMKICB0aGF0
IHRoZSB1c2VyIHByb2dyYW0gaGFzIGVsZWN0ZWQgdG8gY2F0Y2guICBUaHVzIHRoZSBzeXN0ZW0g
Y2FsbAogIG11c3QgYmUgcmV0cmllZCBpbiB0aGVzZSBjYXNlcy4gIFRvIGhhbmRsZSB0aGlzIHdp
dGhvdXQgbWFzc2l2ZQpAQCAtMjI0LDYgKzIyOSw3IEBACiAjZGVmaW5lIE1BWE5BTUxFTiBOQU1F
X01BWAkvKiBtaXNzaW5nIFNZU1YtaXNtICovCiAjZW5kaWYKIAorI3VuZGVmIFNJR1NZUwogI2Rl
ZmluZSBTSUdTWVMgU0lHVU5VU0VECS8qIHJlbmFtZSB0byBoYXJtbGVzcyB3b3JrLWFsaWtlICov
CiAjZGVmaW5lIFZTV1RDSCBWU1dUQwkJLyogbWlzLXNwZWxsaW5nIGluIHRlcm1pb3MuaD8gKi8K
IApAQCAtMjUzLDcgKzI1OSw3IEBACiAKICNkZWZpbmUgQ19DT01QSUxFUiBnY2MKICNkZWZpbmUg
Q19ERUJVR19TV0lUQ0ggLWcKLSNkZWZpbmUgQ19PUFRJTUlaRV9TV0lUQ0ggLU8yIC1tYWxpZ24t
bG9vcHM9MiAtbWFsaWduLWp1bXBzPTIgLW1hbGlnbi1mdW5jdGlvbnM9MgorI2RlZmluZSBDX09Q
VElNSVpFX1NXSVRDSCAtTzIgLWZhbGlnbi1sb29wcz0yIC1mYWxpZ24tanVtcHM9MiAtZmFsaWdu
LWZ1bmN0aW9ucz0yCiAjZGVmaW5lIE9MRFhNRU5VX09QVElPTlMgQ0ZMQUdTPS1PMiBFWFRSQT1p
bnNxdWUubwogI2RlZmluZSBTVEFSVF9GSUxFUyBwcmUtY3J0MC5vIC91c3IvbGliL2NydDEubyAv
dXNyL2xpYi9jcnRpLm8KICNkZWZpbmUgTElCU19ERUJVRwkJLyogb3ZlcnJpZGUgaW4gY29uZmln
LmggdG8gaW5jbHVkZSAtbGcgKi8KZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9zcmMvc3lzZGVw
LmMgZW1hY3MtMTguNTkvc3JjL3N5c2RlcC5jCi0tLSBlbWFjcy0xOC41OS1vcmlnL3NyYy9zeXNk
ZXAuYwkxOTk4LTA1LTMxIDA1OjM0OjQzLjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkv
c3JjL3N5c2RlcC5jCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAwCkBAIC0yMDUx
LDggKzIwNTEsNiBAQAogI2VuZGlmCiB9CiAKLXR5cGVkZWYgaW50ICgqc2lnbmFsX2hhbmRsZXJf
dCkgKCk7Ci0KIHNpZ25hbF9oYW5kbGVyX3QKIHN5c19zaWduYWwgKGludCBzaWduYWxfbnVtYmVy
LCBzaWduYWxfaGFuZGxlcl90IGFjdGlvbikKIHsKQEAgLTIwNjMsNyArMjA2MSw3IEBACiAjZWxz
ZQogICBzaWdlbXB0eXNldCAoJm5ld19hY3Rpb24uc2FfbWFzayk7CiAgIG5ld19hY3Rpb24uc2Ff
aGFuZGxlciA9IGFjdGlvbjsKLSAgbmV3X2FjdGlvbi5zYV9mbGFncyA9IE5VTEw7CisgIG5ld19h
Y3Rpb24uc2FfZmxhZ3MgPSAwOwogICBzaWdhY3Rpb24gKHNpZ25hbF9udW1iZXIsICZuZXdfYWN0
aW9uLCAmb2xkX2FjdGlvbik7CiAgIHJldHVybiAob2xkX2FjdGlvbi5zYV9oYW5kbGVyKTsKICNl
bmRpZiAvKiBER1VYICovCmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvc3JjL3Rlcm1pbmZvLmMg
ZW1hY3MtMTguNTkvc3JjL3Rlcm1pbmZvLmMKLS0tIGVtYWNzLTE4LjU5LW9yaWcvc3JjL3Rlcm1p
bmZvLmMJMTk5MS0wMS0wOCAxOTowOTowNS4wMDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTE4LjU5
L3NyYy90ZXJtaW5mby5jCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAwCkBAIC0x
Nyw2ICsxNyw4IEBACiBhbG9uZyB3aXRoIEdOVSBFbWFjczsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
ICBJZiBub3QsIHdyaXRlIHRvCiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA2NzUgTWFz
cyBBdmUsIENhbWJyaWRnZSwgTUEgMDIxMzksIFVTQS4gICovCiAKKyNpbmNsdWRlICJjb25maWcu
aCIKKwogLyogRGVmaW5lIHRoZXNlIHZhcmlhYmxlcyB0aGF0IHNlcnZlIGFzIGdsb2JhbCBwYXJh
bWV0ZXJzIHRvIHRlcm1jYXAsCiAgICBzbyB0aGF0IHdlIGRvIG5vdCBuZWVkIHRvIGNvbmRpdGlv
bmFsaXplIHRoZSBwbGFjZXMgaW4gRW1hY3MKICAgIHRoYXQgc2V0IHRoZW0uICAqLwpkaWZmIC11
ciBlbWFjcy0xOC41OS1vcmlnL3NyYy94MTFmbnMuYyBlbWFjcy0xOC41OS9zcmMveDExZm5zLmMK
LS0tIGVtYWNzLTE4LjU5LW9yaWcvc3JjL3gxMWZucy5jCTE5OTItMDctMTUgMjE6Mzg6NDkuMDAw
MDAwMDAwICswMjAwCisrKyBlbWFjcy0xOC41OS9zcmMveDExZm5zLmMJMjAwNy0wMS0yOSAyMTo0
Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTg4NCw3ICs4ODQsNyBAQAogCQlyYXdzaGlmdCA9ICgo
KHVuc2lnbmVkKSAoWElOVCAoc2hpZnRfbWFzaykpKSAmIDE1KSA8PCAxMTsKIAkJWFJlYmluZENv
ZGUgKHJhd2tleSwgcmF3c2hpZnQsIHJhd3N0cmluZywgc3Ryc2l6ZSk7CiAJfQotI2VuZGlmIG5v
dGRlZgorI2VuZGlmIC8qIG5vdGRlZiAqLwogCXJldHVybiBRbmlsOwogfQogICAKQEAgLTkxOCwx
MSArOTE4LDExIEBACiAJCQlYUmViaW5kQ29kZSAocmF3a2V5LCBpIDw8IDExLCByYXdzdHJpbmcs
IHN0cnNpemUpOwogCQl9CiAJfQotI2VuZGlmIG5vdGRlZgorI2VuZGlmIC8qIG5vdGRlZiAqLwog
CXJldHVybiBRbmlsOwogfQogCi0jZW5kaWYgZm9vYmFyCisjZW5kaWYgLyogZm9vYmFyICovCiAK
IFhFeGl0V2l0aENvcmVEdW1wICgpCiB7CkBAIC05ODgsNyArOTg4LDcgQEAKICAgZGVmc3ViciAo
JlN4X3NldF9mb250KTsKICNpZmRlZiBub3RkZWYKICAgZGVmc3ViciAoJlN4X3NldF9pY29uKTsK
LSNlbmRpZiBub3RkZWYKKyNlbmRpZgogICBkZWZzdWJyICgmU2Nvb3JkaW5hdGVzX2luX3dpbmRv
d19wKTsKICAgZGVmc3ViciAoJlN4X21vdXNlX2V2ZW50cyk7CiAgIGRlZnN1YnIgKCZTeF9wcm9j
X21vdXNlX2V2ZW50KTsKQEAgLTEwMTIsNyArMTAxMiw3IEBACiAjaWZkZWYgbm90ZGVmCiAgIGRl
ZnN1YnIgKCZTeF9yZWJpbmRfa2V5KTsKICAgZGVmc3ViciAoJlN4X3JlYmluZF9rZXlzKTsKLSNl
bmRpZiBub3RkZWYKKyNlbmRpZgogICBkZWZzdWJyICgmU3hfZGVidWcpOwogfQogCmRpZmYgLXVy
IGVtYWNzLTE4LjU5LW9yaWcvc3JjL3gxMXRlcm0uYyBlbWFjcy0xOC41OS9zcmMveDExdGVybS5j
Ci0tLSBlbWFjcy0xOC41OS1vcmlnL3NyYy94MTF0ZXJtLmMJMTk5Mi0xMC0yNCAwNTozMTo1Ni4w
MDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTE4LjU5L3NyYy94MTF0ZXJtLmMJMjAwNy0wMS0yOSAy
MTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTMzLDEgKzMzLDEgQEAKLSNlbmRpZglsaW50Cisj
ZW5kaWYKQEAgLTE0ODIsNiArMTQ4MiwxMCBAQAogCSAgc3RyY3B5KG1hcHBpbmdfYnVmLCJcMDE2
Iik7CiAJICBuYnl0ZXMgPSAxOwogCSAgYnJlYWs7CisJY2FzZSBYS19CYWNrU3BhY2U6CisJICBz
dHJjcHkobWFwcGluZ19idWYsIlwxNzciKTsKKwkgIG5ieXRlcyA9IDE7CisJICBicmVhazsKIAl9
CiAjaWZuZGVmIEFJWAogICAgICAgfQpAQCAtMTcxNSw3ICsxNzE5LDYgQEAKIAogCWV4dGVybiBj
aGFyICpnZXRlbnYgKCk7CiAJZXh0ZXJuIFhUaW50ZXJydXB0X3NpZ25hbCAoKTsKLQlleHRlcm4g
Y2hhciAqbWFsbG9jICgpOwogCWV4dGVybiBMaXNwX09iamVjdCBWeHRlcm0sIFZ4dGVybTEsIFF0
OwogCWV4dGVybiBpbnQgWElnbm9yZUVycm9yKCk7CiAJaW50ICBpeDsKZGlmZiAtdXIgZW1hY3Mt
MTguNTktb3JpZy9zcmMveGRpc3AuYyBlbWFjcy0xOC41OS9zcmMveGRpc3AuYwotLS0gZW1hY3Mt
MTguNTktb3JpZy9zcmMveGRpc3AuYwkxOTkyLTA3LTI0IDIxOjA4OjEzLjAwMDAwMDAwMCArMDIw
MAorKysgZW1hY3MtMTguNTkvc3JjL3hkaXNwLmMJMjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAw
MDAgKzAxMDAKQEAgLTIxMDcsNyArMjEwNyw3IEBACiAgIExpc3BfT2JqZWN0IHJvb3Rfd2luZG93
OwogI2lmbmRlZiBDT01QSUxFUl9SRUdJU1RFUl9CVUcKICAgcmVnaXN0ZXIKLSNlbmRpZiBDT01Q
SUxFUl9SRUdJU1RFUl9CVUcKKyNlbmRpZgogICAgIHN0cnVjdCB3aW5kb3cgKm1pbmlfdzsKIAog
ICB0aGlzX2xpbmVfYnVmcG9zID0gMDsKZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9ldGMvQ2hh
bmdlTG9nIGVtYWNzLTE4LjU5L2V0Yy9DaGFuZ2VMb2cKLS0tIGVtYWNzLTE4LjU5LW9yaWcvZXRj
L0NoYW5nZUxvZwkxOTk4LTA1LTMxIDA1OjM0OjM0LjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3Mt
MTguNTkvZXRjL0NoYW5nZUxvZwkyMDA3LTAxLTI5IDIxOjQ3OjU2LjAwMDAwMDAwMCArMDEwMApA
QCAtMSwzICsxLDExIEBACisyMDA3LTAxLTI5ICBVbHJpY2ggTXVlbGxlciAgPHVsbUBrcGgudW5p
LW1haW56LmRlPgorCisJKiBlbWFjc2NsaWVudC5jLCBzZXJ2ZXIuYzogQ2hlY2sgZm9yIEhBVkVf
U09DS0VUUyBpbnN0ZWFkIG9mIEJTRC4KKworCSogY3Z0bWFpbC5jLCBlbWFjc2NsaWVudC5jLCBl
bnYuYywgZXRhZ3MuYywgZmFrZW1haWwuYywKKwltYWtlLWRvY2ZpbGUuYywgbW92ZW1haWwuYywg
c2VydmVyLmMsIHNvcnRlZC1kb2MuYywKKwl0ZXN0LWRpc3RyaWIuYywgd2FrZXVwLmMsIHlvdy5j
OiBGaXggR0NDIDQuMSBjb21waWxhdGlvbiBpc3N1ZXMuCisKIDE5OTgtMDUtMzAgIE5vYWggRnJp
ZWRtYW4gIDxmcmllZG1hbkBzcGxvZGUuY29tPgogCiAJKiBlbnYuYyAobWFpbik6IERlY2xhcmUg
c3lzX2Vycmxpc3QgaWYgbGludXggKyBnbGliYzIuCmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcv
ZXRjL2N2dG1haWwuYyBlbWFjcy0xOC41OS9ldGMvY3Z0bWFpbC5jCi0tLSBlbWFjcy0xOC41OS1v
cmlnL2V0Yy9jdnRtYWlsLmMJMTk5MS0wMS0wOCAyMDowNjowOC4wMDAwMDAwMDAgKzAxMDAKKysr
IGVtYWNzLTE4LjU5L2V0Yy9jdnRtYWlsLmMJMjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAg
KzAxMDAKQEAgLTM2LDcgKzM2LDEwIEBACiAKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAKK3ZvaWQgKnhtYWxsb2MoKSwgKnhy
ZWFsbG9jKCk7CiAKIG1haW4gKGFyZ2MsIGFyZ3YpCiAgICAgIGludCBhcmdjOwpAQCAtMTA5LDIy
ICsxMTIsMjIgQEAKICAgICA7CiB9CiAKLWludAordm9pZCAqCiB4bWFsbG9jIChzaXplKQogICAg
ICBpbnQgc2l6ZTsKIHsKLSAgaW50IHJlc3VsdCA9IG1hbGxvYyAoc2l6ZSk7CisgIHZvaWQgKnJl
c3VsdCA9IG1hbGxvYyAoc2l6ZSk7CiAgIGlmICghcmVzdWx0KQogICAgIGZhdGFsICgidmlydHVh
bCBtZW1vcnkgZXhoYXVzdGVkIiwgMCk7CiAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWludAordm9p
ZCAqCiB4cmVhbGxvYyAocHRyLCBzaXplKQogICAgICBjaGFyICpwdHI7CiAgICAgIGludCBzaXpl
OwogewotICBpbnQgcmVzdWx0ID0gcmVhbGxvYyAocHRyLCBzaXplKTsKKyAgdm9pZCAqcmVzdWx0
ID0gcmVhbGxvYyAocHRyLCBzaXplKTsKICAgaWYgKCFyZXN1bHQpCiAgICAgZmF0YWwgKCJ2aXJ0
dWFsIG1lbW9yeSBleGhhdXN0ZWQiKTsKICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtdXIgZW1hY3Mt
MTguNTktb3JpZy9ldGMvZW1hY3NjbGllbnQuYyBlbWFjcy0xOC41OS9ldGMvZW1hY3NjbGllbnQu
YwotLS0gZW1hY3MtMTguNTktb3JpZy9ldGMvZW1hY3NjbGllbnQuYwkxOTkyLTA4LTIyIDA5OjA5
OjQ3LjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkvZXRjL2VtYWNzY2xpZW50LmMJMjAw
Ny0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTI3LDggKzI3LDEwIEBACiAjdW5k
ZWYgY2xvc2UKICNlbmRpZgogCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5n
Lmg+CiAKLSNpZiAhZGVmaW5lZChCU0QpICYmICFkZWZpbmVkKEhBVkVfU1lTVklQQykKKyNpZiAh
ZGVmaW5lZChIQVZFX1NPQ0tFVFMpICYmICFkZWZpbmVkKEhBVkVfU1lTVklQQykKICNpbmNsdWRl
IDxzdGRpby5oPgogCiBtYWluIChhcmdjLCBhcmd2KQpAQCAtNDEsOSArNDMsOSBAQAogICBleGl0
ICgxKTsKIH0KIAotI2Vsc2UgLyogQlNEIG9yIEhBVkVfU1lTVklQQyAqLworI2Vsc2UgLyogSEFW
RV9TT0NLRVRTIG9yIEhBVkVfU1lTVklQQyAqLwogCi0jaWYgZGVmaW5lZChCU0QpICYmICEgZGVm
aW5lZCAoSEFWRV9TWVNWSVBDKQorI2lmIGRlZmluZWQoSEFWRV9TT0NLRVRTKQogLyogQlNEIGNv
ZGUgaXMgdmVyeSBkaWZmZXJlbnQgZnJvbSBTWVNWIElQQyBjb2RlICovCiAKICNpbmNsdWRlIDxz
eXMvdHlwZXMuaD4KQEAgLTUxLDEwICs1MywxMCBAQAogI2luY2x1ZGUgPHN5cy91bi5oPgogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4K
ICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogCiBleHRlcm4gaW50IHN5c19uZXJyOwotZXh0ZXJuIGNo
YXIgKnN5c19lcnJsaXN0W107CiBleHRlcm4gaW50IGVycm5vOwogCiBtYWluIChhcmdjLCBhcmd2
KQpAQCAtNjksOCArNzEsNiBAQAogICBjaGFyIHN0cmluZ1tCVUZTSVpdOwogICBzdHJ1Y3Qgc3Rh
dCBzdGF0YmZyOwogCi0gIGNoYXIgKmdldGVudiAoKSwgKmdldHdkICgpOwotCiAgIGlmIChhcmdj
IDwgMikKICAgICB7CiAgICAgICBmcHJpbnRmIChzdGRlcnIsICJVc2FnZTogJXMgZmlsZW5hbWVc
biIsIGFyZ3ZbMF0pOwpAQCAtMTEyLDcgKzExMiw4IEBACiAgIHN0cmNhdCAoc2VydmVyLnN1bl9w
YXRoLCAiLy5lbWFjc19zZXJ2ZXIiKTsKICNlbmRpZgogCi0gIGlmIChjb25uZWN0IChzLCAmc2Vy
dmVyLCBzdHJsZW4gKHNlcnZlci5zdW5fcGF0aCkgKyAyKSA8IDApCisgIGlmIChjb25uZWN0IChz
LCAoc3RydWN0IHNvY2thZGRyICopJnNlcnZlciwKKwkgICAgICAgc3RybGVuIChzZXJ2ZXIuc3Vu
X3BhdGgpICsgMikgPCAwKQogICAgIHsKICAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiAiLCBh
cmd2WzBdKTsKICAgICAgIHBlcnJvciAoImNvbm5lY3QiKTsKQEAgLTEyNSwxMSArMTI2LDExIEBA
CiAgICAgICBleGl0ICgxKTsKICAgICB9CiAKLSAgY3dkID0gZ2V0d2QgKHN0cmluZyk7CisgIGN3
ZCA9IGdldGN3ZCAoc3RyaW5nLCBzaXplb2Ygc3RyaW5nKTsKICAgaWYgKGN3ZCA9PSAwKQogICAg
IHsKLSAgICAgIC8qIGdldHdkIHB1dHMgbWVzc2FnZSBpbiBTVFJJTkcgaWYgaXQgZmFpbHMuICAq
LwotICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6ICVzICglcylcbiIsIGFyZ3ZbMF0sIHN0cmlu
ZywKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiAlcyAoJXMpXG4iLCBhcmd2WzBdLAorCSAg
ICAgICAiQ2Fubm90IGdldCBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IiwKIAkgICAgICAgKGVy
cm5vIDwgc3lzX25lcnIpID8gc3lzX2Vycmxpc3RbZXJybm9dIDogInVua25vd24gZXJyb3IiKTsK
ICAgICAgIGV4aXQgKDEpOwogICAgIH0KQEAgLTI3NSw0ICsyNzYsNCBAQAogCiAjZW5kaWYgLyog
SEFWRV9TWVNWSVBDICovCiAKLSNlbmRpZiAvKiBCU0Qgb3IgSEFWRV9TWVNWSVBDICovCisjZW5k
aWYgLyogSEFWRV9TT0NLRVRTIG9yIEhBVkVfU1lTVklQQyAqLwpkaWZmIC11ciBlbWFjcy0xOC41
OS1vcmlnL2V0Yy9lbnYuYyBlbWFjcy0xOC41OS9ldGMvZW52LmMKLS0tIGVtYWNzLTE4LjU5LW9y
aWcvZXRjL2Vudi5jCTE5OTgtMDUtMzEgMDU6MzQ6MzYuMDAwMDAwMDAwICswMjAwCisrKyBlbWFj
cy0xOC41OS9ldGMvZW52LmMJMjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAg
LTg5LDYgKzg5LDggQEAKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4K
KyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KIAogZXh0ZXJuIGludCBl
eGVjdnAgKCk7CiBleHRlcm4gY2hhciAqaW5kZXggKCk7CkBAIC0xMDIsNyArMTA0LDcgQEAKIGlu
dCBuZW52X3NpemU7CiAKIGNoYXIgKnByb2duYW1lOwotdm9pZCBzZXRlbnYgKCk7Cit2b2lkIHhz
ZXRlbnYgKCk7CiB2b2lkIGZhdGFsICgpOwogCiBtYWluIChhcmdjLCBhcmd2LCBlbnZwKQpAQCAt
MTM0LDcgKzEzNiw3IEBACiAJaWYgKHRlbSkKIAkgIHsKIAkgICAgKnRlbSA9ICdcMDAwJzsKLQkg
ICAgc2V0ZW52ICgqZW52cCwgdGVtICsgMSk7CisJICAgIHhzZXRlbnYgKCplbnZwLCB0ZW0gKyAx
KTsKIAkgIH0KICAgICAgfQogCkBAIC0xNDUsNyArMTQ3LDcgQEAKIAkvKiBJZiBhcmcgY29udGFp
bnMgYSAiPSIgaXQgc3BlY2lmaWVzIHRvIHNldCBhIHZhcmlhYmxlICovCiAJewogCSAgKnRlbSA9
ICdcMDAwJzsKLQkgIHNldGVudiAoKmFyZ3YsIHRlbSArIDEpOworCSAgeHNldGVudiAoKmFyZ3Ys
IHRlbSArIDEpOwogCSAgYXJnYy0tOyBhcmd2Kys7CiAJICBjb250aW51ZTsKIAl9CkBAIC0xNjEs
NyArMTYzLDcgQEAKIAkvKiBVbnNldCBhIHZhcmlhYmxlICovCiAJewogCSAgYXJnYy0tOyBhcmd2
Kys7Ci0JICBzZXRlbnYgKCphcmd2LCAwKTsKKwkgIHhzZXRlbnYgKCphcmd2LCAwKTsKIAkgIGFy
Z2MtLTsgYXJndisrOwogCX0KICAgICAgIGVsc2UgaWYgKCFzdHJjbXAgKCphcmd2LCAiLXMiKSB8
fApAQCAtMTc0LDcgKzE3Niw3IEBACiAJICAgIGZhdGFsICgiTm8gdmFsdWUgc3BlY2lmaWVkIGZv
ciB2YXJpYWJsZSBcIiVzXCIiLAogCQkgICB0ZW0pOwogCSAgYXJnYy0tOyBhcmd2Kys7Ci0JICBz
ZXRlbnYgKHRlbSwgKmFyZ3YpOworCSAgeHNldGVudiAodGVtLCAqYXJndik7CiAJICBhcmdjLS07
IGFyZ3YrKzsKIAl9CiAgICAgICBlbHNlIGlmICghc3RyY21wICgqYXJndiwgIi0iKSB8fCAhc3Ry
Y21wICgqYXJndiwgIi0tIikpCkBAIC0yMTYsNyArMjE4LDcgQEAKIH0KIAogdm9pZAotc2V0ZW52
ICh2YXIsIHZhbCkKK3hzZXRlbnYgKHZhciwgdmFsKQogICByZWdpc3RlciBjaGFyICp2YXIsICp2
YWw7CiB7CiAgIHJlZ2lzdGVyIGNoYXIgKiplOwpAQCAtMjc0LDggKzI3Niw2IEBACiB9CiAKIAwK
LWV4dGVybiBjaGFyICptYWxsb2MgKCksICpyZWFsbG9jICgpOwotCiB2b2lkCiBtZW1vcnlfZmF0
YWwgKCkKIHsKZGlmZiAtdXIgZW1hY3MtMTguNTktb3JpZy9ldGMvZXRhZ3MuYyBlbWFjcy0xOC41
OS9ldGMvZXRhZ3MuYwotLS0gZW1hY3MtMTguNTktb3JpZy9ldGMvZXRhZ3MuYwkxOTkyLTA4LTIw
IDA3OjExOjAxLjAwMDAwMDAwMCArMDIwMAorKysgZW1hY3MtMTguNTkvZXRjL2V0YWdzLmMJMjAw
Ny0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTIxLDYgKzIxLDggQEAKIAogI2lu
Y2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4K
KyNpbmNsdWRlIDxzdHJpbmcuaD4KIAogLyogRGVmaW5lIHRoZSBzeW1ib2wgRVRBR1MgdG8gbWFr
ZSB0aGUgcHJvZ3JhbSAiZXRhZ3MiLAogIHdoaWNoIG1ha2VzIGVtYWNzLXN0eWxlIHRhZyB0YWJs
ZXMgYnkgZGVmYXVsdC4KQEAgLTEyOCwxMSArMTMwLDEwIEBACiAKIGNoYXIgKnNhdmVzdHIoKTsK
IGNoYXIgKnNhdmVuc3RyICgpOwotY2hhciAqcmluZGV4KCk7Ci1jaGFyICppbmRleCgpOwogY2hh
ciAqY29uY2F0ICgpOwogdm9pZCBpbml0YnVmZmVyICgpOwogbG9uZyByZWFkbGluZSAoKTsKK3Zv
aWQgKnhtYWxsb2MoKSwgKnhyZWFsbG9jKCk7CiAKIC8qIEEgYHN0cnVjdCBsaW5lYnVmZmVyJyBp
cyBhIHN0cnVjdHVyZSB3aGljaCBob2xkcyBhIGxpbmUgb2YgdGV4dC4KICBgcmVhZGxpbmUnIHJl
YWRzIGEgbGluZSBmcm9tIGEgc3RyZWFtIGludG8gYSBsaW5lYnVmZmVyCkBAIC0xMzgwLDcgKzEz
ODEsNiBAQAogICAgICBjaGFyICpkZWZlbnY7CiB7CiAgIHJlZ2lzdGVyIGNoYXIgKmVudiwgKnA7
Ci0gIGV4dGVybiBjaGFyICpzYXZlbnN0ciAoKSwgKmluZGV4ICgpOwogCiAgIHN0cnVjdCBURVhf
dGFiZW50ICp0YWI7CiAgIGludCBzaXplLCBpOwpAQCAtMTUzMCw0NyArMTUzMCw2IEBACiAgIHJl
dHVybiBkcDsKIH0KIAotLyoKLSAqIFJldHVybiB0aGUgcHRyIGluIHNwIGF0IHdoaWNoIHRoZSBj
aGFyYWN0ZXIgYyBsYXN0Ci0gKiBhcHBlYXJzOyBOVUxMIGlmIG5vdCBmb3VuZAotICoKLSAqIElk
ZW50aWNhbCB0byB2NyByaW5kZXgsIGluY2x1ZGVkIGZvciBwb3J0YWJpbGl0eS4KLSAqLwotCi1j
aGFyICoKLXJpbmRleChzcCwgYykKLSAgICAgcmVnaXN0ZXIgY2hhciAqc3AsIGM7Ci17Ci0gIHJl
Z2lzdGVyIGNoYXIgKnI7Ci0KLSAgciA9IE5VTEw7Ci0gIGRvCi0gICAgewotICAgICAgaWYgKCpz
cCA9PSBjKQotCXIgPSBzcDsKLSAgICB9IHdoaWxlICgqc3ArKyk7Ci0gIHJldHVybihyKTsKLX0K
LQotLyoKLSAqIFJldHVybiB0aGUgcHRyIGluIHNwIGF0IHdoaWNoIHRoZSBjaGFyYWN0ZXIgYyBm
aXJzdAotICogYXBwZWFyczsgTlVMTCBpZiBub3QgZm91bmQKLSAqCi0gKiBJZGVudGljYWwgdG8g
djcgaW5kZXgsIGluY2x1ZGVkIGZvciBwb3J0YWJpbGl0eS4KLSAqLwotCi1jaGFyICoKLWluZGV4
KHNwLCBjKQotICAgICByZWdpc3RlciBjaGFyICpzcCwgYzsKLXsKLSAgZG8KLSAgICB7Ci0gICAg
ICBpZiAoKnNwID09IGMpCi0JcmV0dXJuIChzcCk7Ci0gICAgfSB3aGlsZSAoKnNwKyspOwotICBy
ZXR1cm4gKE5VTEwpOwotfQotCiAvKiBQcmludCBlcnJvciBtZXNzYWdlIGFuZCBleGl0LiAgKi8K
IAogZmF0YWwgKHMxLCBzMikKQEAgLTE2MDksMjIgKzE1NjgsMjIgQEAKIAogLyogTGlrZSBtYWxs
b2MgYnV0IGdldCBmYXRhbCBlcnJvciBpZiBtZW1vcnkgaXMgZXhoYXVzdGVkLiAgKi8KIAotaW50
Cit2b2lkICoKIHhtYWxsb2MgKHNpemUpCiAgICAgIGludCBzaXplOwogewotICBpbnQgcmVzdWx0
ID0gbWFsbG9jIChzaXplKTsKKyAgdm9pZCAqcmVzdWx0ID0gbWFsbG9jIChzaXplKTsKICAgaWYg
KCFyZXN1bHQpCiAgICAgZmF0YWwgKCJ2aXJ0dWFsIG1lbW9yeSBleGhhdXN0ZWQiLCAwKTsKICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotaW50Cit2b2lkICoKIHhyZWFsbG9jIChwdHIsIHNpemUpCiAg
ICAgIGNoYXIgKnB0cjsKICAgICAgaW50IHNpemU7CiB7Ci0gIGludCByZXN1bHQgPSByZWFsbG9j
IChwdHIsIHNpemUpOworICB2b2lkICpyZXN1bHQgPSByZWFsbG9jIChwdHIsIHNpemUpOwogICBp
ZiAoIXJlc3VsdCkKICAgICBmYXRhbCAoInZpcnR1YWwgbWVtb3J5IGV4aGF1c3RlZCIpOwogICBy
ZXR1cm4gcmVzdWx0OwpkaWZmIC11ciBlbWFjcy0xOC41OS1vcmlnL2V0Yy9mYWtlbWFpbC5jIGVt
YWNzLTE4LjU5L2V0Yy9mYWtlbWFpbC5jCi0tLSBlbWFjcy0xOC41OS1vcmlnL2V0Yy9mYWtlbWFp
bC5jCTE5OTEtMDEtMDggMjA6MDg6NDIuMDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0xOC41OS9l
dGMvZmFrZW1haWwuYwkyMDA3LTAxLTI5IDIxOjQ3OjU2LjAwMDAwMDAwMCArMDEwMApAQCAtNDMs
NiArNDMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxp
Yi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8
dGltZS5oPgpAQCAtMTIzLDE2ICsxMjQsOCBAQAogCiBleHRlcm4gRklMRSAqcG9wZW4gKCk7CiBl
eHRlcm4gaW50IGZjbG9zZSAoKSwgcGNsb3NlICgpOwotZXh0ZXJuIGNoYXIgKm1hbGxvYyAoKSwg
KnJlYWxsb2MgKCk7CiAKLSNpZmRlZiBDVVJSRU5UX1VTRVIKLWV4dGVybiBzdHJ1Y3QgcGFzc3dk
ICpnZXRwd3VpZCAoKTsKLWV4dGVybiB1bnNpZ25lZCBzaG9ydCBnZXRldWlkICgpOwotc3RhdGlj
IHN0cnVjdCBwYXNzd2QgKm15X2VudHJ5OwotI2RlZmluZSBjdXNlcmlkKHMpCQkJCVwKLShteV9l
bnRyeSA9IGdldHB3dWlkICgoKGludCkgZ2V0ZXVpZCAoKSkpLAlcCi0gbXlfZW50cnktPnB3X25h
bWUpCi0jZW5kaWYKKyNkZWZpbmUgY3VzZXJpZChzKSAoZ2V0cHd1aWQgKGdldGV1aWQgKCkpLT5w
d19uYW1lKQogDAogLyogVXRpbGl0aWVzICovCiAKQEAgLTU2NCw3ICs1NTcsNiBAQAogICByZXR1
cm47CiB9CiAMCi12b2lkCiBtYWluIChhcmdjLCBhcmd2KQogICAgICBpbnQgYXJnYzsKICAgICAg
Y2hhciAqKmFyZ3Y7CmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvZXRjL21ha2UtZG9jZmlsZS5j
IGVtYWNzLTE4LjU5L2V0Yy9tYWtlLWRvY2ZpbGUuYwotLS0gZW1hY3MtMTguNTktb3JpZy9ldGMv
bWFrZS1kb2NmaWxlLmMJMTk5MS0xMC0yNSAxOTo0MzoyOC4wMDAwMDAwMDAgKzAxMDAKKysrIGVt
YWNzLTE4LjU5L2V0Yy9tYWtlLWRvY2ZpbGUuYwkyMDA3LTAxLTI5IDIxOjQ3OjU2LjAwMDAwMDAw
MCArMDEwMApAQCAtMzIsNiArMzIsOCBAQAogICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgorI2lu
Y2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiBGSUxFICpvdXRmaWxlOwog
CmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvZXRjL21vdmVtYWlsLmMgZW1hY3MtMTguNTkvZXRj
L21vdmVtYWlsLmMKLS0tIGVtYWNzLTE4LjU5LW9yaWcvZXRjL21vdmVtYWlsLmMJMTk5Mi0wNS0w
NyAyMjoxMToxNi4wMDAwMDAwMDAgKzAyMDAKKysrIGVtYWNzLTE4LjU5L2V0Yy9tb3ZlbWFpbC5j
CTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAwCkBAIC01Miw2ICs1Miw5IEBACiAj
aW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvZmlsZS5oPgogI2luY2x1ZGUgPGVy
cm5vLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRl
IDxzdHJpbmcuaD4KICNkZWZpbmUgTk9fU0hPUlROQU1FUyAgIC8qIFRlbGwgY29uZmlnIG5vdCB0
byBsb2FkIHJlbWFwLmggKi8KICNpbmNsdWRlICIuLi9zcmMvY29uZmlnLmgiCiAKQEAgLTgxLDYg
Kzg0LDcgQEAKICN1bmRlZiBjbG9zZQogCiBjaGFyICpjb25jYXQgKCk7Cit2b2lkICp4bWFsbG9j
ICgpOwogZXh0ZXJuIGludCBlcnJubzsKIAogLyogTm9uemVybyBtZWFucyB0aGlzIGlzIG5hbWUg
b2YgYSBsb2NrIGZpbGUgdG8gZGVsZXRlIG9uIGZhdGFsIGVycm9yLiAgKi8KQEAgLTMyMCw3ICsz
MjQsNiBAQAogICAgICBjaGFyICpuYW1lOwogewogICBleHRlcm4gaW50IGVycm5vLCBzeXNfbmVy
cjsKLSAgZXh0ZXJuIGNoYXIgKnN5c19lcnJsaXN0W107CiAgIGNoYXIgKnM7CiAKICAgaWYgKGVy
cm5vIDwgc3lzX25lcnIpCkBAIC0zMzQsNyArMzM3LDYgQEAKICAgICAgY2hhciAqbmFtZTsKIHsK
ICAgZXh0ZXJuIGludCBlcnJubywgc3lzX25lcnI7Ci0gIGV4dGVybiBjaGFyICpzeXNfZXJybGlz
dFtdOwogICBjaGFyICpzOwogCiAgIGlmIChlcnJubyA8IHN5c19uZXJyKQpAQCAtMzY1LDExICsz
NjcsMTEgQEAKIAogLyogTGlrZSBtYWxsb2MgYnV0IGdldCBmYXRhbCBlcnJvciBpZiBtZW1vcnkg
aXMgZXhoYXVzdGVkLiAgKi8KIAotaW50Cit2b2lkICoKIHhtYWxsb2MgKHNpemUpCiAgICAgIGlu
dCBzaXplOwogewotICBpbnQgcmVzdWx0ID0gbWFsbG9jIChzaXplKTsKKyAgdm9pZCAqcmVzdWx0
ID0gbWFsbG9jIChzaXplKTsKICAgaWYgKCFyZXN1bHQpCiAgICAgZmF0YWwgKCJ2aXJ0dWFsIG1l
bW9yeSBleGhhdXN0ZWQiLCAwKTsKICAgcmV0dXJuIHJlc3VsdDsKQEAgLTcwNCw3ICs3MDYsNiBA
QAogZ2V0X2Vycm1zZyAoKQogewogICBleHRlcm4gaW50IGVycm5vLCBzeXNfbmVycjsKLSAgZXh0
ZXJuIGNoYXIgKnN5c19lcnJsaXN0W107CiAgIGNoYXIgKnM7CiAKICAgaWYgKGVycm5vIDwgc3lz
X25lcnIpCmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvZXRjL3NlcnZlci5jIGVtYWNzLTE4LjU5
L2V0Yy9zZXJ2ZXIuYwotLS0gZW1hY3MtMTguNTktb3JpZy9ldGMvc2VydmVyLmMJMTk5Mi0wMy0y
MyAwNTowNjowOC4wMDAwMDAwMDAgKzAxMDAKKysrIGVtYWNzLTE4LjU5L2V0Yy9zZXJ2ZXIuYwky
MDA3LTAxLTI5IDIxOjQ3OjU2LjAwMDAwMDAwMCArMDEwMApAQCAtMzYsOCArMzYsMTAgQEAKICN1
bmRlZiBvcGVuCiAjdW5kZWYgY2xvc2UKIAorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUg
PHN0cmluZy5oPgogCi0jaWYgIWRlZmluZWQoQlNEKSAmJiAhZGVmaW5lZChIQVZFX1NZU1ZJUEMp
CisjaWYgIWRlZmluZWQoSEFWRV9TT0NLRVRTKSAmJiAhZGVmaW5lZChIQVZFX1NZU1ZJUEMpCiAj
aW5jbHVkZSA8c3RkaW8uaD4KIAogbWFpbiAoKQpAQCAtNDcsOSArNDksOSBAQAogICBleGl0ICgx
KTsKIH0KIAotI2Vsc2UgLyogQlNEIG9yIEhBVkVfU1lTVklQQyAqLworI2Vsc2UgLyogSEFWRV9T
T0NLRVRTIG9yIEhBVkVfU1lTVklQQyAqLwogCi0jaWYgZGVmaW5lZCAoQlNEKSAmJiAhIGRlZmlu
ZWQgKEhBVkVfU1lTVklQQykKKyNpZiBkZWZpbmVkIChIQVZFX1NPQ0tFVFMpCiAvKiBCU0QgY29k
ZSBpcyB2ZXJ5IGRpZmZlcmVudCBmcm9tIFNZU1YgSVBDIGNvZGUgKi8KIAogI2luY2x1ZGUgPHN5
cy9maWxlLmg+CkBAIC0xMTAsNyArMTEyLDcgQEAKICAgdW5saW5rIChzZXJ2ZXIuc3VuX3BhdGgp
OwogI2VuZGlmCiAKLSAgaWYgKGJpbmQgKHMsICZzZXJ2ZXIsIHN0cmxlbiAoc2VydmVyLnN1bl9w
YXRoKSArIDIpIDwgMCkKKyAgaWYgKGJpbmQgKHMsIChzdHJ1Y3Qgc29ja2FkZHIgKikmc2VydmVy
LCBzdHJsZW4gKHNlcnZlci5zdW5fcGF0aCkgKyAyKSA8IDApCiAgICAgewogICAgICAgcGVycm9y
ICgiYmluZCIpOwogICAgICAgZXhpdCAoMSk7CkBAIC0xMjgsMTQgKzEzMCwxOCBAQAogICBzaWdu
YWwgKFNJR1BJUEUsIFNJR19JR04pOwogICBmb3IgKDs7KQogICAgIHsKLSAgICAgIGludCBybWFz
ayA9ICgxIDw8IHMpICsgMTsKKyAgICAgIGZkX3NldCBybWFzazsKKyAgICAgIEZEX1pFUk8gKCZy
bWFzayk7CisgICAgICBGRF9TRVQgKDAsICZybWFzayk7CisgICAgICBGRF9TRVQgKHMsICZybWFz
ayk7CiAgICAgICBpZiAoc2VsZWN0IChzICsgMSwgJnJtYXNrLCAwLCAwLCAwKSA8IDApCiAJcGVy
cm9yICgic2VsZWN0Iik7Ci0gICAgICBpZiAocm1hc2sgJiAoMSA8PCBzKSkJLyogY2xpZW50IHNl
bmRzIGxpc3Qgb2YgZmlsZW5hbWVzICovCisgICAgICBpZiAoRkRfSVNTRVQgKHMsICZybWFzaykp
CS8qIGNsaWVudCBzZW5kcyBsaXN0IG9mIGZpbGVuYW1lcyAqLwogCXsKIAkgIGZyb21sZW4gPSBz
aXplb2YgKGZyb211bml4KTsKIAkgIGZyb211bml4LnN1bl9mYW1pbHkgPSBBRl9VTklYOwotCSAg
aW5mZCA9IGFjY2VwdCAocywgJmZyb211bml4LCAmZnJvbWxlbik7IC8qIG9wZW4gc29ja2V0IGZk
ICovCisJICBpbmZkID0gYWNjZXB0IChzLCAoc3RydWN0IHNvY2thZGRyICopJmZyb211bml4LCAm
ZnJvbWxlbik7CisJCQkJLyogb3BlbiBzb2NrZXQgZmQgKi8KIAkgIGlmIChpbmZkIDwgMCkKIAkg
ICAgewogCSAgICAgIGlmIChlcnJubyA9PSBFTUZJTEUgfHwgZXJybm8gPT0gRU5GSUxFKQpAQCAt
MTg0LDcgKzE5MCw4IEBACiAJICBmZmx1c2ggKGluZmlsZSk7CiAJICBjb250aW51ZTsKIAl9Ci0g
ICAgICBlbHNlIGlmIChybWFzayAmIDEpIC8qIGVtYWNzIHNlbmRzIGNvZGV3b3JkLCBmZCwgYW5k
IHN0cmluZyBtZXNzYWdlICovCisgICAgICBlbHNlIGlmIChGRF9JU1NFVCAoMCwgJnJtYXNrKSkK
KwkJCS8qIGVtYWNzIHNlbmRzIGNvZGV3b3JkLCBmZCwgYW5kIHN0cmluZyBtZXNzYWdlICovCiAJ
ewogCSAgLyogUmVhZCBjb21tYW5kIGNvZGV3b3JkIGFuZCBmZCAqLwogCSAgY2xlYXJlcnIgKHN0
ZGluKTsKQEAgLTMyNSw2ICszMzIsNCBAQAogCiAjZW5kaWYgLyogU1lTViBJUEMgKi8KIAotI2Vu
ZGlmIC8qIEJTRCAmJiBJUEMgKi8KLQotCisjZW5kaWYgLyogSEFWRV9TT0NLRVRTICYmIElQQyAq
LwpkaWZmIC11ciBlbWFjcy0xOC41OS1vcmlnL2V0Yy9zb3J0ZWQtZG9jLmMgZW1hY3MtMTguNTkv
ZXRjL3NvcnRlZC1kb2MuYwotLS0gZW1hY3MtMTguNTktb3JpZy9ldGMvc29ydGVkLWRvYy5jCTE5
ODgtMDYtMDQgMDY6MjI6MjIuMDAwMDAwMDAwICswMjAwCisrKyBlbWFjcy0xOC41OS9ldGMvc29y
dGVkLWRvYy5jCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAwICswMTAwCkBAIC03LDggKzcs
OSBAQAogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUg
PHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgogCi1leHRlcm4gY2hhciAqbWFsbG9jICgp
OwogY2hhciAqeG1hbGxvYyAoKTsKIAogI2RlZmluZSBOVUwJJ1wwJwpkaWZmIC11ciBlbWFjcy0x
OC41OS1vcmlnL2V0Yy90ZXN0LWRpc3RyaWIuYyBlbWFjcy0xOC41OS9ldGMvdGVzdC1kaXN0cmli
LmMKLS0tIGVtYWNzLTE4LjU5LW9yaWcvZXRjL3Rlc3QtZGlzdHJpYi5jCTE5ODctMDUtMjIgMDY6
MTU6MTIuMDAwMDAwMDAwICswMjAwCisrKyBlbWFjcy0xOC41OS9ldGMvdGVzdC1kaXN0cmliLmMJ
MjAwNy0wMS0yOSAyMTo0Nzo1Ni4wMDAwMDAwMDAgKzAxMDAKQEAgLTEsNCArMSw1IEBACiAjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KIAogLyogQnJlYWsgc3RyaW5nIGlu
IHR3byBwYXJ0cyB0byBhdm9pZCBidWdneSBDIGNvbXBpbGVycyB0aGF0IGlnbm9yZSBjaGFyYWN0
ZXJzCiAgICBhZnRlciBudWxscyBpbiBzdHJpbmdzLiAgKi8KZGlmZiAtdXIgZW1hY3MtMTguNTkt
b3JpZy9ldGMvd2FrZXVwLmMgZW1hY3MtMTguNTkvZXRjL3dha2V1cC5jCi0tLSBlbWFjcy0xOC41
OS1vcmlnL2V0Yy93YWtldXAuYwkxOTkxLTA3LTMwIDIzOjAzOjM5LjAwMDAwMDAwMCArMDIwMAor
KysgZW1hY3MtMTguNTkvZXRjL3dha2V1cC5jCTIwMDctMDEtMjkgMjE6NDc6NTYuMDAwMDAwMDAw
ICswMTAwCkBAIC0yLDYgKzIsNyBAQAogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx0
aW1lLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CiAKIHN0cnVjdCB0bSAqbG9jYWx0aW1lICgpOwog
CmRpZmYgLXVyIGVtYWNzLTE4LjU5LW9yaWcvZXRjL3lvdy5jIGVtYWNzLTE4LjU5L2V0Yy95b3cu
YwotLS0gZW1hY3MtMTguNTktb3JpZy9ldGMveW93LmMJMTk4OC0wNC0xMyAwODoxMzo0MS4wMDAw
MDAwMDAgKzAyMDAKKysrIGVtYWNzLTE4LjU5L2V0Yy95b3cuYwkyMDA3LTAxLTI5IDIxOjQ3OjU2
LjAwMDAwMDAwMCArMDEwMApAQCAtMSw1ICsxLDcgQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2lu
Y2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+
CiAjaW5jbHVkZSAiLi4vc3JjL3BhdGhzLmgiCiAKIC8qIHppcHB5LmMK
</data>        

          </attachment>
    </bug>

</bugzilla>