From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11035 invoked by alias); 24 Sep 2007 10:09:38 -0000 Received: (qmail 11027 invoked by uid 22791); 24 Sep 2007 10:09:38 -0000 X-Spam-Check-By: sourceware.org Received: from sohm.kpit.com (HELO sohm.kpit.com) (203.197.93.231) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 24 Sep 2007 10:09:35 +0000 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C7FE92.C2380A6D" Subject: RE: error message : I'm sorry, Dave, I can't do that. Symbolformat 'elf32-xc16x' unknown. Date: Mon, 24 Sep 2007 11:07:00 -0000 Message-ID: <7B5265FF85A78C4BB9DAD0EE699C476002B271F2@sohm.kpit.com> In-Reply-To: <20070919142342.GA11562@caradoc.them.org> From: "Bhushan Attarde" To: "Daniel Jacobowitz" Cc: Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2007-09/txt/msg00185.txt.bz2 This is a multi-part message in MIME format. ------_=_NextPart_001_01C7FE92.C2380A6D Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1492 Hi Daniel, First of all thanks for your reply. I searched " bfd_get_elf_phdr_upper_bound" function, I found it in the following files: =20 bfd\bfd-in.h bfd\bfd-in2.h bfd\elf.c gdb\configure.ac gdb\configure gdb\elfread.c but I didn't find this function in any of the processor specific file so I am little confused where to add this function to work for our target. For reference I am sending "elf32-xc16x.c" & cpu-xc16x.c" files as attachment to this mail. =20 =20 Best Regards, Bhushan Attarde -----Original Message----- From: Daniel Jacobowitz [mailto:drow@false.org]=20 Sent: Wednesday, September 19, 2007 7:54 PM To: Bhushan Attarde Cc: gdb@sourceware.org Subject: Re: error message : I'm sorry, Dave, I can't do that. Symbolformat 'elf32-xc16x' unknown. On Wed, Sep 19, 2007 at 07:35:25PM +0530, Bhushan Attarde wrote: > And got the following output : >=20 > test_flavour 3.. our flavour 5... > test_flavour 2.. our flavour 5... > test_flavour 1.. our flavour 5... > I'm sorry, Dave, I can't do that. Symbol format 'elf32-xc16x' unknown. This means that GDB supports a.out, coff, and ecoff. 4 and 5 are xcoff and ELF. Earlier versions of GDB always included ELF support. New versions only include ELF support if they detect ELF support in BFD, by compiling a program which uses bfd_get_elf_phdr_upper_bound (see gdb/configure.ac). So is this function missing from BFD for xc16x? If so how? It looks to me like it should be there. --=20 Daniel Jacobowitz CodeSourcery ------_=_NextPart_001_01C7FE92.C2380A6D Content-Type: application/octet-stream; name="cpu-xc16x.c" Content-Transfer-Encoding: base64 Content-Description: cpu-xc16x.c Content-Disposition: attachment; filename="cpu-xc16x.c" Content-length: 3608 LyogQkZEIHN1cHBvcnQgZm9yIHRoZSBJbmZpbmVvbiBYQzE2WCBNaWNyb2Nv bnRyb2xsZXIuCiAgIENvcHlyaWdodCAyMDA2LCAyMDA3IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogICBDb250cmlidXRlZCBieSBLUElUIEN1 bW1pbnMgSW5mb3N5c3RlbXMgCgogICBUaGlzIGZpbGUgaXMgcGFydCBvZiBC RkQsIHRoZSBCaW5hcnkgRmlsZSBEZXNjcmlwdG9yIGxpYnJhcnkuCiAgIENv bnRyaWJ1dGVkIGJ5IEFuaWwgUGFyYW5qcGUoYW5pbHAxQGtwaXRjdW1taW5z LmNvbSkKCiAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQogICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgoKICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKICAgRm91bmRhdGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0g RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKICAgMDIxMTAtMTMwMSwgVVNBLiAg Ki8KCiNpbmNsdWRlICJzeXNkZXAuaCIKI2luY2x1ZGUgImJmZC5oIgojaW5j bHVkZSAibGliYmZkLmgiCgpjb25zdCBiZmRfYXJjaF9pbmZvX3R5cGUgeGMx NnhzX2luZm9fc3RydWN0ID0KewogIDE2LAkJCQkvKiBCaXRzIHBlciB3b3Jk LiAgKi8KICAxNiwJCQkJLyogQml0cyBwZXIgYWRkcmVzcy4gICovCiAgOCwJ CQkJLyogQml0cyBwZXIgYnl0ZS4gICovCiAgYmZkX2FyY2hfeGMxNngsCQkv KiBBcmNoaXRlY3R1cmUuICAqLwogIGJmZF9tYWNoX3hjMTZ4cywJCS8qIE1h Y2hpbmUuICAqLwogICJ4YzE2eCIsCQkJLyogQXJjaGl0ZWN0dXJlIG5hbWUu ICAqLwogICJ4YzE2eHMiLAkJCS8qIFByaW50YWJsZSBuYW1lLiAgKi8KICAx LAkJCQkvKiBTZWN0aW9uIGFsaWdubWVudCAtIDE2IGJpdC4gICovCiAgVFJV RSwJCQkJLyogVGhlIGRlZmF1bHQgPyAgKi8KICBiZmRfZGVmYXVsdF9jb21w YXRpYmxlLAkvKiBBcmNoaXRlY3R1cmUgY29tcGFyaXNvbiBmbi4gICovCiAg YmZkX2RlZmF1bHRfc2NhbiwJCS8qIFN0cmluZyB0byBhcmNoaXRlY3R1cmUg Y29udmVydCBmbi4gICovCiAgTlVMTAkJCQkvKiBOZXh0IGluIGxpc3QuICAq Lwp9OwoKY29uc3QgYmZkX2FyY2hfaW5mb190eXBlIHhjMTZ4bF9pbmZvX3N0 cnVjdCA9CnsKICAxNiwJCQkJLyogQml0cyBwZXIgd29yZC4gICovCiAgMzIs CQkJCS8qIEJpdHMgcGVyIGFkZHJlc3MuICAqLwogIDgsCQkJCS8qIEJpdHMg cGVyIGJ5dGUuICAqLwogIGJmZF9hcmNoX3hjMTZ4LAkJLyogQXJjaGl0ZWN0 dXJlLiAgKi8KICBiZmRfbWFjaF94YzE2eGwsCQkvKiBNYWNoaW5lLiAgKi8K ICAieGMxNngiLAkJCS8qIEFyY2hpdGVjdHVyZSBuYW1lLiAgKi8KICAieGMx NnhsIiwJCQkvKiBQcmludGFibGUgbmFtZS4gICovCiAgMSwJCQkJLyogU2Vj dGlvbiBhbGlnbm1lbnQgLSAxNiBiaXQuICAqLwogIFRSVUUsCQkJCS8qIFRo ZSBkZWZhdWx0ID8gICovCiAgYmZkX2RlZmF1bHRfY29tcGF0aWJsZSwJLyog QXJjaGl0ZWN0dXJlIGNvbXBhcmlzb24gZm4uICAqLwogIGJmZF9kZWZhdWx0 X3NjYW4sCQkvKiBTdHJpbmcgdG8gYXJjaGl0ZWN0dXJlIGNvbnZlcnQgZm4u ICAqLwogICYgeGMxNnhzX2luZm9fc3RydWN0CQkvKiBOZXh0IGluIGxpc3Qu ICAqLwp9OwoKY29uc3QgYmZkX2FyY2hfaW5mb190eXBlIGJmZF94YzE2eF9h cmNoID0KewogIDE2LAkJCQkvKiBCaXRzIHBlciB3b3JkLiAgKi8KICAxNiwJ CQkJLyogQml0cyBwZXIgYWRkcmVzcy4gICovCiAgOCwJCQkJLyogQml0cyBw ZXIgYnl0ZS4gICovCiAgYmZkX2FyY2hfeGMxNngsCQkvKiBBcmNoaXRlY3R1 cmUuICAqLwogIGJmZF9tYWNoX3hjMTZ4LAkJLyogTWFjaGluZS4gICovCiAg InhjMTZ4IiwJCQkvKiBBcmNoaXRlY3R1cmUgbmFtZS4gICovCiAgInhjMTZ4 IiwJCQkvKiBQcmludGFibGUgbmFtZS4gICovCiAgMSwJCQkJLyogU2VjdGlv biBhbGlnbm1lbnQgLSAxNiBiaXQuICAqLwogIFRSVUUsCQkJCS8qIFRoZSBk ZWZhdWx0ID8gICovCiAgYmZkX2RlZmF1bHRfY29tcGF0aWJsZSwJLyogQXJj aGl0ZWN0dXJlIGNvbXBhcmlzb24gZm4uICAqLwogIGJmZF9kZWZhdWx0X3Nj YW4sCQkvKiBTdHJpbmcgdG8gYXJjaGl0ZWN0dXJlIGNvbnZlcnQgZm4uICAq LwogICYgeGMxNnhsX2luZm9fc3RydWN0CQkvKiBOZXh0IGluIGxpc3QuICAq Lwp9Owo= ------_=_NextPart_001_01C7FE92.C2380A6D Content-Type: application/octet-stream; name="elf32-xc16x.c" Content-Transfer-Encoding: base64 Content-Description: elf32-xc16x.c Content-Disposition: attachment; filename="elf32-xc16x.c" Content-length: 18581 LyogSW5maW5lb24gWEMxNlgtc3BlY2lmaWMgc3VwcG9ydCBmb3IgMTYtYml0 IEVMRi4KICAgQ29weXJpZ2h0IDIwMDYsIDIwMDcgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogICBDb250cmlidXRlZCBieSBLUElUIEN1bW1p bnMgSW5mb3N5c3RlbXMKCiAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEJGRCwg dGhlIEJpbmFyeSBGaWxlIERlc2NyaXB0b3IgbGlicmFyeS4KCiAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CiAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiAgIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCgogICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAgRm91 bmRhdGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJv c3RvbiwKICAgTUEgMDIxMTAtMTMwMSwgVVNBLiAgKi8KCiNpbmNsdWRlICJz eXNkZXAuaCIKI2luY2x1ZGUgImJmZC5oIgojaW5jbHVkZSAibGliYmZkLmgi CiNpbmNsdWRlICJlbGYtYmZkLmgiCiNpbmNsdWRlICJlbGYveGMxNnguaCIK I2luY2x1ZGUgImVsZi9kd2FyZjIuaCIKI2luY2x1ZGUgImxpYmliZXJ0eS5o IgoKc3RhdGljIHJlbG9jX2hvd3RvX3R5cGUgeGMxNnhfZWxmX2hvd3RvX3Rh YmxlIFtdID0KewogIC8qIFRoaXMgcmVsb2MgZG9lcyBub3RoaW5nLiAgKi8K ICBIT1dUTyAoUl9YQzE2WF9OT05FLAkJLyogdHlwZSAqLwoJIDAsCQkJLyog cmlnaHRzaGlmdCAqLwoJIDEsCQkJLyogc2l6ZSAoMCA9IGJ5dGUsIDEgPSBz aG9ydCwgMiA9IGxvbmcpICovCgkgMTYsCQkJLyogYml0c2l6ZSAqLwoJIEZB TFNFLAkJCS8qIHBjX3JlbGF0aXZlICovCgkgMCwJCQkvKiBiaXRwb3MgKi8K CSBjb21wbGFpbl9vdmVyZmxvd19iaXRmaWVsZCwgLyogY29tcGxhaW5fb25f b3ZlcmZsb3cgKi8KCSBiZmRfZWxmX2dlbmVyaWNfcmVsb2MsCS8qIHNwZWNp YWxfZnVuY3Rpb24gKi8KCSAiUl9YQzE2WF9OT05FIiwJLyogbmFtZSAqLwoJ IEZBTFNFLAkJCS8qIHBhcnRpYWxfaW5wbGFjZSAqLwoJIDAsCQkJLyogc3Jj X21hc2sgKi8KCSAwLAkJCS8qIGRzdF9tYXNrICovCgkgRkFMU0UpLAkJLyog cGNyZWxfb2Zmc2V0ICovCgogIC8qIEFuIDggYml0IGFic29sdXRlIHJlbG9j YXRpb24uICAqLwogIEhPV1RPIChSX1hDMTZYX0FCU184LAkJLyogdHlwZSAq LwoJIDAsCQkJLyogcmlnaHRzaGlmdCAqLwoJIDAsCQkJLyogc2l6ZSAoMCA9 IGJ5dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICovCgkgOCwJCQkvKiBiaXRz aXplICovCgkgRkFMU0UsCQkJLyogcGNfcmVsYXRpdmUgKi8KCSA4LAkJCS8q IGJpdHBvcyAqLwoJIGNvbXBsYWluX292ZXJmbG93X2JpdGZpZWxkLCAvKiBj b21wbGFpbl9vbl9vdmVyZmxvdyAqLwoJIGJmZF9lbGZfZ2VuZXJpY19yZWxv YywJLyogc3BlY2lhbF9mdW5jdGlvbiAqLwoJICJSX1hDMTZYX0FCU184IiwJ LyogbmFtZSAqLwoJIFRSVUUsCQkJLyogcGFydGlhbF9pbnBsYWNlICovCgkg MHgwMDAwLAkJLyogc3JjX21hc2sgKi8KCSAweDAwZmYsCQkvKiBkc3RfbWFz ayAqLwoJIEZBTFNFKSwJCS8qIHBjcmVsX29mZnNldCAqLwoKICAvKiBBIDE2 IGJpdCBhYnNvbHV0ZSByZWxvY2F0aW9uLiAgKi8KICBIT1dUTyAoUl9YQzE2 WF9BQlNfMTYsCS8qIHR5cGUgKi8KCSAwLAkJCS8qIHJpZ2h0c2hpZnQgKi8K CSAxLAkJCS8qIHNpemUgKDAgPSBieXRlLCAxID0gc2hvcnQsIDIgPSBsb25n KSAqLwoJIDE2LAkJCS8qIGJpdHNpemUgKi8KCSBGQUxTRSwJCQkvKiBwY19y ZWxhdGl2ZSAqLwoJIDAsCQkJLyogYml0cG9zICovCgkgY29tcGxhaW5fb3Zl cmZsb3dfZG9udCwgLyogY29tcGxhaW5fb25fb3ZlcmZsb3cgKi8KCSBiZmRf ZWxmX2dlbmVyaWNfcmVsb2MsCS8qIHNwZWNpYWxfZnVuY3Rpb24gKi8KCSAi Ul9YQzE2WF9BQlNfMTYiLAkvKiBuYW1lICovCgkgVFJVRSwJCQkvKiBwYXJ0 aWFsX2lucGxhY2UgKi8KCSAweDAwMDAwMDAwLAkJLyogc3JjX21hc2sgKi8K CSAweDAwMDBmZmZmLAkJLyogZHN0X21hc2sgKi8KCSBGQUxTRSksCQkvKiBw Y3JlbF9vZmZzZXQgKi8KCiAgSE9XVE8gKFJfWEMxNlhfQUJTXzMyLAkvKiB0 eXBlICovCiAgCSAwLAkJCS8qIHJpZ2h0c2hpZnQgKi8KICAJIDIsCQkJLyog c2l6ZSAoMCA9IGJ5dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICovCiAgCSAz MiwJCQkvKiBiaXRzaXplICovCiAgCSBGQUxTRSwJCQkvKiBwY19yZWxhdGl2 ZSAqLwogIAkgMCwJCQkvKiBiaXRwb3MgKi8KICAJIGNvbXBsYWluX292ZXJm bG93X2JpdGZpZWxkLCAvKiBjb21wbGFpbl9vbl9vdmVyZmxvdyAqLwogIAkg YmZkX2VsZl9nZW5lcmljX3JlbG9jLAkvKiBzcGVjaWFsX2Z1bmN0aW9uICov CiAgCSAiUl9YQzE2WF9BQlNfMzIiLAkvKiBuYW1lICovCiAgCSBUUlVFLAkJ CS8qIHBhcnRpYWxfaW5wbGFjZSAqLwogIAkgMHgwMDAwMDAwMCwJCS8qIHNy Y19tYXNrICovCiAgCSAweGZmZmZmZmZmLAkJLyogZHN0X21hc2sgKi8KICAJ IEZBTFNFKSwJCS8qIHBjcmVsX29mZnNldCAqLwoKCiAgLyogQSBQQyByZWxh dGl2ZSA4IGJpdCByZWxvY2F0aW9uLiAgKi8KICBIT1dUTyAoUl9YQzE2WF84 X1BDUkVMLAkvKiB0eXBlICovCgkgMCwJCQkvKiByaWdodHNoaWZ0ICovCgkg MCwJCQkvKiBzaXplICgwID0gYnl0ZSwgMSA9IHNob3J0LCAyID0gbG9uZykg Ki8KCSA4LAkJCS8qIGJpdHNpemUgKi8KCSBUUlVFLAkJCS8qIHBjX3JlbGF0 aXZlICovCgkgOCwJCQkvKiBiaXRwb3MgKi8KCSBjb21wbGFpbl9vdmVyZmxv d19zaWduZWQsIC8qIGNvbXBsYWluX29uX292ZXJmbG93ICovCgkgYmZkX2Vs Zl9nZW5lcmljX3JlbG9jLCAvKiBzcGVjaWFsX2Z1bmN0aW9uICovCgkgIlJf WEMxNlhfOF9QQ1JFTCIsCS8qIG5hbWUgKi8KCSBGQUxTRSwJCQkvKiBwYXJ0 aWFsX2lucGxhY2UgKi8KCSAweDAwMDAsCQkvKiBzcmNfbWFzayAqLwoJIDB4 MDBmZiwJCS8qIGRzdF9tYXNrICovCgkgVFJVRSksCQkvKiBwY3JlbF9vZmZz ZXQgKi8KCiAgLyogUmVsb2NhdGlvbiByZWdhcmRpbmcgcGFnZSBudW1iZXIu ICAqLwogICAgSE9XVE8gKFJfWEMxNlhfUEFHLAkvKiB0eXBlICovCiAgCSAw LAkJCS8qIHJpZ2h0c2hpZnQgKi8KICAJIDEsCQkJLyogc2l6ZSAoMCA9IGJ5 dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICovCiAgCSAxNiwJCQkvKiBiaXRz aXplICovCiAgCSBGQUxTRSwJCQkvKiBwY19yZWxhdGl2ZSAqLwogIAkgMCwJ CQkvKiBiaXRwb3MgKi8KICAJIGNvbXBsYWluX292ZXJmbG93X3NpZ25lZCwg LyogY29tcGxhaW5fb25fb3ZlcmZsb3cgKi8KICAJIGJmZF9lbGZfZ2VuZXJp Y19yZWxvYywgLyogc3BlY2lhbF9mdW5jdGlvbiAqLwogIAkgIlJfWEMxNlhf UEFHIiwJLyogbmFtZSAqLwogIAkgVFJVRSwJCQkvKiBwYXJ0aWFsX2lucGxh Y2UgKi8KICAJIDB4MDAwMDAwMDAsCQkvKiBzcmNfbWFzayAqLwogIAkgMHgw MDAwZmZmZiwJCS8qIGRzdF9tYXNrICovCiAgCSBGQUxTRSksCQkvKiBwY3Jl bF9vZmZzZXQgKi8KCgogIC8qIFJlbG9jYXRpb24gcmVnYXJkaW5nIHBhZ2Ug bnVtYmVyLiAgKi8KICAgICAgSE9XVE8gKFJfWEMxNlhfUE9GLAkvKiB0eXBl ICovCiAgICAJIDAsCQkJLyogcmlnaHRzaGlmdCAqLwogICAgCSAxLAkJCS8q IHNpemUgKDAgPSBieXRlLCAxID0gc2hvcnQsIDIgPSBsb25nKSAqLwogICAg CSAxNiwJCQkvKiBiaXRzaXplICovCiAgICAJIEZBTFNFLAkJCS8qIHBjX3Jl bGF0aXZlICovCiAgICAJIDAsCQkJLyogYml0cG9zICAqLwogICAgCSBjb21w bGFpbl9vdmVyZmxvd19zaWduZWQsIC8qIGNvbXBsYWluX29uX292ZXJmbG93 ICAqLwogICAgCSBiZmRfZWxmX2dlbmVyaWNfcmVsb2MsIC8qIHNwZWNpYWxf ZnVuY3Rpb24gICovCiAgICAJICJSX1hDMTZYX1BPRiIsCS8qIG5hbWUgICov CiAgICAJIFRSVUUsCQkJLyogcGFydGlhbF9pbnBsYWNlICAqLwogICAgCSAw eDAwMDAwMDAwLAkJLyogc3JjX21hc2sgICovCiAgICAJIDB4MDAwMGZmZmYs CQkvKiBkc3RfbWFzayAgKi8KICAgIAkgRkFMU0UpLAkJLyogcGNyZWxfb2Zm c2V0ICAqLwoKCiAgLyogUmVsb2NhdGlvbiByZWdhcmRpbmcgc2VnbWVudCBu dW1iZXIuICAgKi8KICAgICAgSE9XVE8gKFJfWEMxNlhfU0VHLAkvKiB0eXBl ICAqLwogICAgCSAwLAkJCS8qIHJpZ2h0c2hpZnQgICovCiAgICAJIDEsCQkJ Lyogc2l6ZSAoMCA9IGJ5dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICAqLwog ICAgCSAxNiwJCQkvKiBiaXRzaXplICAqLwogICAgCSBGQUxTRSwJCQkvKiBw Y19yZWxhdGl2ZSAgKi8KICAgIAkgMCwJCQkvKiBiaXRwb3MgICovCiAgICAJ IGNvbXBsYWluX292ZXJmbG93X3NpZ25lZCwgLyogY29tcGxhaW5fb25fb3Zl cmZsb3cgICovCiAgICAJIGJmZF9lbGZfZ2VuZXJpY19yZWxvYywgLyogc3Bl Y2lhbF9mdW5jdGlvbiAgKi8KICAgIAkgIlJfWEMxNlhfU0VHIiwJLyogbmFt ZSAgKi8KICAgIAkgVFJVRSwJCQkvKiBwYXJ0aWFsX2lucGxhY2UgICovCiAg ICAJIDB4MDAwMDAwMDAsCQkvKiBzcmNfbWFzayAgKi8KICAgIAkgMHgwMDAw ZmZmZiwJCS8qIGRzdF9tYXNrICAqLwogICAgCSBGQUxTRSksCQkvKiBwY3Jl bF9vZmZzZXQgICovCgogIC8qIFJlbG9jYXRpb24gcmVnYXJkaW5nIHNlZ21l bnQgb2Zmc2V0LiAgKi8KICAgICAgSE9XVE8gKFJfWEMxNlhfU09GLAkvKiB0 eXBlICAqLwogICAgCSAwLAkJCS8qIHJpZ2h0c2hpZnQgICovCiAgICAJIDEs CQkJLyogc2l6ZSAoMCA9IGJ5dGUsIDEgPSBzaG9ydCwgMiA9IGxvbmcpICAq LwogICAgCSAxNiwJCQkvKiBiaXRzaXplICAqLwogICAgCSBGQUxTRSwJCQkv KiBwY19yZWxhdGl2ZSAgKi8KICAgIAkgMCwJCQkvKiBiaXRwb3MgICovCiAg ICAJIGNvbXBsYWluX292ZXJmbG93X3NpZ25lZCwgLyogY29tcGxhaW5fb25f b3ZlcmZsb3cgICovCiAgICAJIGJmZF9lbGZfZ2VuZXJpY19yZWxvYywgLyog c3BlY2lhbF9mdW5jdGlvbiAgKi8KICAgIAkgIlJfWEMxNlhfU09GIiwJLyog bmFtZSAqLwogICAgCSBUUlVFLAkJCS8qIHBhcnRpYWxfaW5wbGFjZSAgKi8K ICAgIAkgMHgwMDAwMDAwMCwJCS8qIHNyY19tYXNrICAqLwogICAgCSAweDAw MDBmZmZmLAkJLyogZHN0X21hc2sgICovCiAgICAJIEZBTFNFKQkJCS8qIHBj cmVsX29mZnNldCAgKi8KfTsKCgovKiBNYXAgQkZEIHJlbG9jIHR5cGVzIHRv IFhDMTZYIEVMRiByZWxvYyB0eXBlcy4gICovCgpzdHJ1Y3QgeGMxNnhfcmVs b2NfbWFwCnsKICBiZmRfcmVsb2NfY29kZV9yZWFsX3R5cGUgYmZkX3JlbG9j X3ZhbDsKICB1bnNpZ25lZCBpbnQgeGMxNnhfcmVsb2NfdmFsOwp9OwoKc3Rh dGljIGNvbnN0IHN0cnVjdCB4YzE2eF9yZWxvY19tYXAgeGMxNnhfcmVsb2Nf bWFwIFtdID0KewogIHsgQkZEX1JFTE9DX05PTkUsICAgICAgICAgICBSX1hD MTZYX05PTkUgfSwKICB7IEJGRF9SRUxPQ184LCAgICAgICAgICAgICAgUl9Y QzE2WF9BQlNfOCB9LAogIHsgQkZEX1JFTE9DXzE2LCAgICAgICAgICAgICBS X1hDMTZYX0FCU18xNiB9LAogIHsgQkZEX1JFTE9DXzMyLCAgICAgICAgICAg ICBSX1hDMTZYX0FCU18zMiB9LAogIHsgQkZEX1JFTE9DXzhfUENSRUwsICAg ICAgICBSX1hDMTZYXzhfUENSRUwgfSwKICB7IEJGRF9SRUxPQ19YQzE2WF9Q QUcsICAgICAgUl9YQzE2WF9QQUd9LAogIHsgQkZEX1JFTE9DX1hDMTZYX1BP RiwgICAgICBSX1hDMTZYX1BPRn0sCiAgeyBCRkRfUkVMT0NfWEMxNlhfU0VH LCAgICAgIFJfWEMxNlhfU0VHfSwKICB7IEJGRF9SRUxPQ19YQzE2WF9TT0Ys ICAgICAgUl9YQzE2WF9TT0Z9LAp9OwoKCi8qIFRoaXMgZnVuY3Rpb24gaXMg dXNlZCB0byBzZWFyY2ggZm9yIGNvcnJlY3QgcmVsb2NhdGlvbiB0eXBlIGZy b20KICAgaG93dG8gc3RydWN0dXJlLiAgKi8KCnN0YXRpYyByZWxvY19ob3d0 b190eXBlICoKeGMxNnhfcmVsb2NfdHlwZV9sb29rdXAgKGJmZCAqYWJmZCBB VFRSSUJVVEVfVU5VU0VELAoJCQkgYmZkX3JlbG9jX2NvZGVfcmVhbF90eXBl IGNvZGUpCnsKICB1bnNpZ25lZCBpbnQgaTsKCiAgZm9yIChpID0gQVJSQVlf U0laRSAoeGMxNnhfcmVsb2NfbWFwKTsgLS1pOykKICAgIGlmICh4YzE2eF9y ZWxvY19tYXAgW2ldLmJmZF9yZWxvY192YWwgPT0gY29kZSkKICAgICAgcmV0 dXJuICYgeGMxNnhfZWxmX2hvd3RvX3RhYmxlIFt4YzE2eF9yZWxvY19tYXBb aV0ueGMxNnhfcmVsb2NfdmFsXTsKCiAgcmV0dXJuIE5VTEw7Cn0KCnN0YXRp YyByZWxvY19ob3d0b190eXBlICoKeGMxNnhfcmVsb2NfbmFtZV9sb29rdXAg KGJmZCAqYWJmZCBBVFRSSUJVVEVfVU5VU0VELAoJCQkgY29uc3QgY2hhciAq cl9uYW1lKQp7CiAgdW5zaWduZWQgaW50IGk7CgogIGZvciAoaSA9IDA7CiAg ICAgICBpIDwgc2l6ZW9mICh4YzE2eF9lbGZfaG93dG9fdGFibGUpIC8gc2l6 ZW9mICh4YzE2eF9lbGZfaG93dG9fdGFibGVbMF0pOwogICAgICAgaSsrKQog ICAgaWYgKHhjMTZ4X2VsZl9ob3d0b190YWJsZVtpXS5uYW1lICE9IE5VTEwK CSYmIHN0cmNhc2VjbXAgKHhjMTZ4X2VsZl9ob3d0b190YWJsZVtpXS5uYW1l LCByX25hbWUpID09IDApCiAgICAgIHJldHVybiAmeGMxNnhfZWxmX2hvd3Rv X3RhYmxlW2ldOwoKICByZXR1cm4gTlVMTDsKfQoKLyogRm9yIGEgcGFydGlj dWxhciBvcGVyYW5kIHRoaXMgZnVuY3Rpb24gaXMKICAgY2FsbGVkIHRvIGZp bmFsaXNlIHRoZSB0eXBlIG9mIHJlbG9jYXRpb24uICAqLwoKc3RhdGljIHZv aWQKZWxmMzJfeGMxNnhfaW5mb190b19ob3d0byAoYmZkICphYmZkIEFUVFJJ QlVURV9VTlVTRUQsIGFyZWxlbnQgKmJmZF9yZWxvYywKCQkJICAgRWxmX0lu dGVybmFsX1JlbGEgKmVsZl9yZWxvYykKewogIHVuc2lnbmVkIGludCByOwog IHVuc2lnbmVkIGludCBpOwoKICByID0gRUxGMzJfUl9UWVBFIChlbGZfcmVs b2MtPnJfaW5mbyk7CiAgZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUgKHhj MTZ4X2VsZl9ob3d0b190YWJsZSk7IGkrKykKICAgIGlmICh4YzE2eF9lbGZf aG93dG9fdGFibGVbaV0udHlwZSA9PSByKQogICAgICB7CgliZmRfcmVsb2Mt Pmhvd3RvID0gJnhjMTZ4X2VsZl9ob3d0b190YWJsZVtpXTsKCXJldHVybjsK ICAgICAgfQogIGFib3J0ICgpOwp9CgpzdGF0aWMgYmZkX3JlbG9jX3N0YXR1 c190eXBlCmVsZjMyX3hjMTZ4X2ZpbmFsX2xpbmtfcmVsb2NhdGUgKHVuc2ln bmVkIGxvbmcgcl90eXBlLAoJCQkJIGJmZCAqaW5wdXRfYmZkLAoJCQkJIGJm ZCAqb3V0cHV0X2JmZCBBVFRSSUJVVEVfVU5VU0VELAoJCQkJIGFzZWN0aW9u ICppbnB1dF9zZWN0aW9uIEFUVFJJQlVURV9VTlVTRUQsCgkJCQkgYmZkX2J5 dGUgKmNvbnRlbnRzLAoJCQkJIGJmZF92bWEgb2Zmc2V0LAoJCQkJIGJmZF92 bWEgdmFsdWUsCgkJCQkgYmZkX3ZtYSBhZGRlbmQsCgkJCQkgc3RydWN0IGJm ZF9saW5rX2luZm8gKmluZm8gQVRUUklCVVRFX1VOVVNFRCwKCQkJCSBhc2Vj dGlvbiAqc3ltX3NlYyBBVFRSSUJVVEVfVU5VU0VELAoJCQkJIGludCBpc19s b2NhbCBBVFRSSUJVVEVfVU5VU0VEKQp7CiAgYmZkX2J5dGUgKmhpdF9kYXRh ID0gY29udGVudHMgKyBvZmZzZXQ7CiAgYmZkX3ZtYSB2YWwxOwoKICBzd2l0 Y2ggKHJfdHlwZSkKICAgIHsKICAgIGNhc2UgUl9YQzE2WF9OT05FOgogICAg ICByZXR1cm4gYmZkX3JlbG9jX29rOwoKICAgIGNhc2UgUl9YQzE2WF9BQlNf MTY6CiAgICAgIHZhbHVlICs9IGFkZGVuZDsKICAgICAgYmZkX3B1dF8xNiAo aW5wdXRfYmZkLCB2YWx1ZSwgaGl0X2RhdGEpOwogICAgICByZXR1cm4gYmZk X3JlbG9jX29rOwoKICAgIGNhc2UgUl9YQzE2WF84X1BDUkVMOgogICAgICBi ZmRfcHV0XzggKGlucHV0X2JmZCwgdmFsdWUsIGhpdF9kYXRhKTsKICAgICAg cmV0dXJuIGJmZF9yZWxvY19vazsKCiAgICAgIC8qIEZvbGxvd2luZyBjYXNl IGlzIHRvIGZpbmQgcGFnZSBudW1iZXIgZnJvbSBhY3R1YWwKCSBhZGRyZXNz IGZvciB0aGlzIGRpdmlkZSB2YWx1ZSBieSAxNmsgaS5lLiBwYWdlIHNpemUu ICAqLwoKICAgIGNhc2UgUl9YQzE2WF9QQUc6CiAgICAgIHZhbHVlICs9IGFk ZGVuZDsKICAgICAgdmFsdWUgLz0gMHg0MDAwOwogICAgICBiZmRfcHV0XzE2 IChpbnB1dF9iZmQsIHZhbHVlLCBoaXRfZGF0YSk7CiAgICAgIHJldHVybiBi ZmRfcmVsb2Nfb2s7CgogICAgICAvKiBGb2xsb3dpbmcgY2FzZSBpcyB0byBm aW5kIHBhZ2Ugb2Zmc2V0IGZyb20gYWN0dWFsIGFkZHJlc3MKCSBmb3IgdGhp cyB0YWtlIG1vZHVsbyBvZiB2YWx1ZSBieSAxNmsgaS5lLiBwYWdlIHNpemUu ICAqLwoKICAgIGNhc2UgUl9YQzE2WF9QT0Y6CiAgICAgIHZhbHVlICs9IGFk ZGVuZDsKICAgICAgdmFsdWUgJT0gMHg0MDAwOwogICAgICBiZmRfcHV0XzE2 IChpbnB1dF9iZmQsIHZhbHVlLCBoaXRfZGF0YSk7CiAgICAgIHJldHVybiBi ZmRfcmVsb2Nfb2s7CgogICAgICAvKiBGb2xsb3dpbmcgY2FzZSBpcyB0byBm aW5kIHNlZ21lbnQgbnVtYmVyIGZyb20gYWN0dWFsCgkgYWRkcmVzcyBmb3Ig dGhpcyBkaXZpZGUgdmFsdWUgYnkgNjRrIGkuZS4gc2VnbWVudCBzaXplLiAg Ki8KCiAgICBjYXNlIFJfWEMxNlhfU0VHOgogICAgICB2YWx1ZSArPSBhZGRl bmQ7CiAgICAgIHZhbHVlIC89IDB4MTAwMDA7CiAgICAgIGJmZF9wdXRfMTYg KGlucHV0X2JmZCwgdmFsdWUsIGhpdF9kYXRhKTsKICAgICAgcmV0dXJuIGJm ZF9yZWxvY19vazsKCiAgICAgIC8qIEZvbGxvd2luZyBjYXNlIGlzIHRvIGZp bmQgc2VnbWVudCBvZmZzZXQgZnJvbSBhY3R1YWwgYWRkcmVzcwoJIGZvciB0 aGlzIHRha2UgbW9kdWxvIG9mIHZhbHVlIGJ5IDY0ayBpLmUuIHNlZ21lbnQg c2l6ZS4gICovCgogICAgY2FzZSBSX1hDMTZYX1NPRjoKICAgICAgdmFsdWUg Kz0gYWRkZW5kOwogICAgICB2YWx1ZSAlPSAweDEwMDAwOwogICAgICBiZmRf cHV0XzE2IChpbnB1dF9iZmQsIHZhbHVlLCBoaXRfZGF0YSk7CiAgICAgIHJl dHVybiBiZmRfcmVsb2Nfb2s7CgogICAgY2FzZSBSX1hDMTZYX0FCU18zMjoK ICAgICAgaWYgKCFzdHJzdHIgKGlucHV0X3NlY3Rpb24tPm5hbWUsIi5kZWJ1 ZyIpKQoJewoJICB2YWx1ZSArPSBhZGRlbmQ7CgkgIHZhbDEgPSB2YWx1ZTsK CSAgdmFsdWUgJT0gMHg0MDAwOwoJICB2YWwxIC89IDB4NDAwMDsKCSAgdmFs MSA9IHZhbDEgPDwgMTY7CgkgIHZhbHVlICs9IHZhbDE7CgkgIGJmZF9wdXRf MzIgKGlucHV0X2JmZCwgdmFsdWUsIGhpdF9kYXRhKTsKCX0KICAgICAgZWxz ZQoJewoJICB2YWx1ZSArPSBhZGRlbmQ7CgkgIGJmZF9wdXRfMzIgKGlucHV0 X2JmZCwgdmFsdWUsIGhpdF9kYXRhKTsKCX0KICAgICAgcmV0dXJuIGJmZF9y ZWxvY19vazsKCiAgICBkZWZhdWx0OgogICAgICByZXR1cm4gYmZkX3JlbG9j X25vdHN1cHBvcnRlZDsKICAgIH0KfQoKc3RhdGljIGJmZF9ib29sZWFuCmVs ZjMyX3hjMTZ4X3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwK CQkJICAgICAgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sCgkJCSAgICAg IGJmZCAqaW5wdXRfYmZkLAoJCQkgICAgICBhc2VjdGlvbiAqaW5wdXRfc2Vj dGlvbiwKCQkJICAgICAgYmZkX2J5dGUgKmNvbnRlbnRzLAoJCQkgICAgICBF bGZfSW50ZXJuYWxfUmVsYSAqcmVsb2NzLAoJCQkgICAgICBFbGZfSW50ZXJu YWxfU3ltICpsb2NhbF9zeW1zLAoJCQkgICAgICBhc2VjdGlvbiAqKmxvY2Fs X3NlY3Rpb25zKQp7CiAgRWxmX0ludGVybmFsX1NoZHIgKnN5bXRhYl9oZHI7 CiAgc3RydWN0IGVsZl9saW5rX2hhc2hfZW50cnkgKipzeW1faGFzaGVzOwog IEVsZl9JbnRlcm5hbF9SZWxhICpyZWwsICpyZWxlbmQ7CgogIHN5bXRhYl9o ZHIgPSAmZWxmX3RkYXRhIChpbnB1dF9iZmQpLT5zeW10YWJfaGRyOwogIHN5 bV9oYXNoZXMgPSBlbGZfc3ltX2hhc2hlcyAoaW5wdXRfYmZkKTsKCiAgcmVs ID0gcmVsb2NzOwogIHJlbGVuZCA9IHJlbG9jcyArIGlucHV0X3NlY3Rpb24t PnJlbG9jX2NvdW50OwogIGZvciAoOyByZWwgPCByZWxlbmQ7IHJlbCsrKQog ICAgewogICAgICB1bnNpZ25lZCBpbnQgcl90eXBlOwogICAgICB1bnNpZ25l ZCBsb25nIHJfc3ltbmR4OwogICAgICBFbGZfSW50ZXJuYWxfU3ltICpzeW07 CiAgICAgIGFzZWN0aW9uICpzZWM7CiAgICAgIHN0cnVjdCBlbGZfbGlua19o YXNoX2VudHJ5ICpoOwogICAgICBiZmRfdm1hIHJlbG9jYXRpb247CiAgICAg IGJmZF9yZWxvY19zdGF0dXNfdHlwZSByOwoKICAgICAgLyogVGhpcyBpcyBh IGZpbmFsIGxpbmsuICAqLwogICAgICByX3N5bW5keCA9IEVMRjMyX1JfU1lN IChyZWwtPnJfaW5mbyk7CiAgICAgIHJfdHlwZSA9IEVMRjMyX1JfVFlQRSAo cmVsLT5yX2luZm8pOwogICAgICBoID0gTlVMTDsKICAgICAgc3ltID0gTlVM TDsKICAgICAgc2VjID0gTlVMTDsKICAgICAgaWYgKHJfc3ltbmR4IDwgc3lt dGFiX2hkci0+c2hfaW5mbykKCXsKCSAgc3ltID0gbG9jYWxfc3ltcyArIHJf c3ltbmR4OwoJICBzZWMgPSBsb2NhbF9zZWN0aW9uc1tyX3N5bW5keF07Cgkg IHJlbG9jYXRpb24gPSBfYmZkX2VsZl9yZWxhX2xvY2FsX3N5bSAob3V0cHV0 X2JmZCwgc3ltLCAmc2VjLCByZWwpOwoJfQogICAgICBlbHNlCgl7CgkgIGJm ZF9ib29sZWFuIHVucmVzb2x2ZWRfcmVsb2MsIHdhcm5lZDsKCgkgIFJFTE9D X0ZPUl9HTE9CQUxfU1lNQk9MIChpbmZvLCBpbnB1dF9iZmQsIGlucHV0X3Nl Y3Rpb24sIHJlbCwKCQkJCSAgIHJfc3ltbmR4LCBzeW10YWJfaGRyLCBzeW1f aGFzaGVzLAoJCQkJICAgaCwgc2VjLCByZWxvY2F0aW9uLAoJCQkJICAgdW5y ZXNvbHZlZF9yZWxvYywgd2FybmVkKTsKCX0KCiAgICAgIGlmIChzZWMgIT0g TlVMTCAmJiBlbGZfZGlzY2FyZGVkX3NlY3Rpb24gKHNlYykpCgl7CgkgIC8q IEZvciByZWxvY3MgYWdhaW5zdCBzeW1ib2xzIGZyb20gcmVtb3ZlZCBsaW5r b25jZSBzZWN0aW9ucywKCSAgICAgb3Igc2VjdGlvbnMgZGlzY2FyZGVkIGJ5 IGEgbGlua2VyIHNjcmlwdCwgd2UganVzdCB3YW50IHRoZQoJICAgICBzZWN0 aW9uIGNvbnRlbnRzIHplcm9lZC4gIEF2b2lkIGFueSBzcGVjaWFsIHByb2Nl c3NpbmcuICAqLwoJICByZWxvY19ob3d0b190eXBlICpob3d0bzsKCSAgaG93 dG8gPSB4YzE2eF9yZWxvY190eXBlX2xvb2t1cCAoaW5wdXRfYmZkLCByX3R5 cGUpOwoJICBfYmZkX2NsZWFyX2NvbnRlbnRzIChob3d0bywgaW5wdXRfYmZk LCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQpOwoJICByZWwtPnJfaW5mbyA9 IDA7CgkgIHJlbC0+cl9hZGRlbmQgPSAwOwoJICBjb250aW51ZTsKCX0KCiAg ICAgIGlmIChpbmZvLT5yZWxvY2F0YWJsZSkKCWNvbnRpbnVlOwoKICAgICAg ciA9IGVsZjMyX3hjMTZ4X2ZpbmFsX2xpbmtfcmVsb2NhdGUgKHJfdHlwZSwg aW5wdXRfYmZkLCBvdXRwdXRfYmZkLAoJCQkJCSAgIGlucHV0X3NlY3Rpb24s CgkJCQkJICAgY29udGVudHMsIHJlbC0+cl9vZmZzZXQsCgkJCQkJICAgcmVs b2NhdGlvbiwgcmVsLT5yX2FkZGVuZCwKCQkJCQkgICBpbmZvLCBzZWMsIGgg PT0gTlVMTCk7CiAgICB9CgogIHJldHVybiBUUlVFOwp9CgoKc3RhdGljIHZv aWQKZWxmMzJfeGMxNnhfZmluYWxfd3JpdGVfcHJvY2Vzc2luZyAoYmZkICph YmZkLAoJCQkJICAgIGJmZF9ib29sZWFuIGxpbmtlciBBVFRSSUJVVEVfVU5V U0VEKQp7CiAgdW5zaWduZWQgbG9uZyB2YWw7CgogIHN3aXRjaCAoYmZkX2dl dF9tYWNoIChhYmZkKSkKICAgIHsKICAgIGRlZmF1bHQ6CiAgICBjYXNlIGJm ZF9tYWNoX3hjMTZ4OgogICAgICB2YWwgPSAweDEwMDA7CiAgICAgIGJyZWFr OwoKICAgIGNhc2UgYmZkX21hY2hfeGMxNnhsOgogICAgICB2YWwgPSAweDEw MDE7CiAgICAgIGJyZWFrOwoKICAgIGNhc2UgYmZkX21hY2hfeGMxNnhzOgog ICAgICB2YWwgPSAweDEwMDI7CiAgICAgIGJyZWFrOwogICAgfQoKICBlbGZf ZWxmaGVhZGVyIChhYmZkKS0+ZV9mbGFncyB8PSB2YWw7Cn0KCnN0YXRpYyB1 bnNpZ25lZCBsb25nCmVsZjMyX3hjMTZ4X21hY2ggKGZsYWd3b3JkIGZsYWdz KQp7CiAgc3dpdGNoIChmbGFncykKICAgIHsKICAgIGNhc2UgMHgxMDAwOgog ICAgZGVmYXVsdDoKICAgICAgcmV0dXJuIGJmZF9tYWNoX3hjMTZ4OwoKICAg IGNhc2UgMHgxMDAxOgogICAgICByZXR1cm4gYmZkX21hY2hfeGMxNnhsOwoK ICAgIGNhc2UgMHgxMDAyOgogICAgICByZXR1cm4gYmZkX21hY2hfeGMxNnhz OwogICAgfQp9CgoKc3RhdGljIGJmZF9ib29sZWFuCmVsZjMyX3hjMTZ4X29i amVjdF9wIChiZmQgKmFiZmQpCnsKICBiZmRfZGVmYXVsdF9zZXRfYXJjaF9t YWNoIChhYmZkLCBiZmRfYXJjaF94YzE2eCwKCQkJICAgICBlbGYzMl94YzE2 eF9tYWNoIChlbGZfZWxmaGVhZGVyIChhYmZkKS0+ZV9mbGFncykpOwogIHJl dHVybiBUUlVFOwp9CgoKCgojZGVmaW5lIEVMRl9BUkNICQliZmRfYXJjaF94 YzE2eAojZGVmaW5lIEVMRl9NQUNISU5FX0NPREUJRU1fWEMxNlgKI2RlZmlu ZSBFTEZfTUFYUEFHRVNJWkUJCTB4MTAwCgojZGVmaW5lIFRBUkdFVF9MSVRU TEVfU1lNICAgICAgIGJmZF9lbGYzMl94YzE2eF92ZWMKI2RlZmluZSBUQVJH RVRfTElUVExFX05BTUUJImVsZjMyLXhjMTZ4IgojZGVmaW5lIGVsZl9iYWNr ZW5kX2ZpbmFsX3dyaXRlX3Byb2Nlc3NpbmcJZWxmMzJfeGMxNnhfZmluYWxf d3JpdGVfcHJvY2Vzc2luZwojZGVmaW5lIGVsZl9iYWNrZW5kX29iamVjdF9w ICAgCQllbGYzMl94YzE2eF9vYmplY3RfcAojZGVmaW5lIGVsZl9iYWNrZW5k X2Nhbl9nY19zZWN0aW9ucwkxCiNkZWZpbmUgYmZkX2VsZjMyX2JmZF9yZWxv Y190eXBlX2xvb2t1cAl4YzE2eF9yZWxvY190eXBlX2xvb2t1cAojZGVmaW5l IGJmZF9lbGYzMl9iZmRfcmVsb2NfbmFtZV9sb29rdXAgeGMxNnhfcmVsb2Nf bmFtZV9sb29rdXAKI2RlZmluZSBlbGZfaW5mb190b19ob3d0bwkJZWxmMzJf eGMxNnhfaW5mb190b19ob3d0bwojZGVmaW5lIGVsZl9pbmZvX3RvX2hvd3Rv X3JlbAkJZWxmMzJfeGMxNnhfaW5mb190b19ob3d0bwojZGVmaW5lIGVsZl9i YWNrZW5kX3JlbG9jYXRlX3NlY3Rpb24gIAllbGYzMl94YzE2eF9yZWxvY2F0 ZV9zZWN0aW9uCiNkZWZpbmUgZWxmX2JhY2tlbmRfcmVsYV9ub3JtYWwJCTEK CiNkZWZpbmUgYmZkX2VsZjMyX2JmZF9zZXRfcHJpdmF0ZV9mbGFncwkJeGMx NnhfZWxmX3NldF9wcml2YXRlX2ZsYWdzCiNkZWZpbmUgYmZkX2VsZjMyX2Jm ZF9jb3B5X3ByaXZhdGVfYmZkX2RhdGEJeGMxNnhfZWxmX2NvcHlfcHJpdmF0 ZV9iZmRfZGF0YQojZGVmaW5lIGJmZF9lbGYzMl9iZmRfbWVyZ2VfcHJpdmF0 ZV9iZmRfZGF0YQl4YzE2eF9lbGZfbWVyZ2VfcHJpdmF0ZV9iZmRfZGF0YQoK I2luY2x1ZGUgImVsZjMyLXRhcmdldC5oIgo= ------_=_NextPart_001_01C7FE92.C2380A6D--