From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9202 invoked by alias); 18 Feb 2011 09:50:39 -0000 Received: (qmail 8654 invoked by uid 22791); 18 Feb 2011 09:50:30 -0000 X-SWARE-Spam-Status: No, hits=-0.1 required=5.0 tests=AWL,BAYES_40,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST X-Spam-Check-By: sourceware.org Received: from mail-qw0-f41.google.com (HELO mail-qw0-f41.google.com) (209.85.216.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 18 Feb 2011 09:50:20 +0000 Received: by qwd7 with SMTP id 7so207452qwd.0 for ; Fri, 18 Feb 2011 01:50:18 -0800 (PST) MIME-Version: 1.0 Received: by 10.224.63.228 with SMTP id c36mr429246qai.17.1298022617525; Fri, 18 Feb 2011 01:50:17 -0800 (PST) Received: by 10.229.214.131 with HTTP; Fri, 18 Feb 2011 01:50:17 -0800 (PST) In-Reply-To: <20110217191714.GD30899@tyan-ft48-01.lab.bos.redhat.com> References: <20110217190253.GC30899@tyan-ft48-01.lab.bos.redhat.com> <20110217191714.GD30899@tyan-ft48-01.lab.bos.redhat.com> Date: Fri, 18 Feb 2011 09:50:00 -0000 Message-ID: Subject: Re: [RFC patch]: Adjust the use of 'long' type in dwarf2.h header From: Kai Tietz To: Alan Modra Cc: GCC Patches , Binutils , gdb , Joel Brobecker , Jakub Jelinek Content-Type: multipart/mixed; boundary=0016e64a864a0730ad049c8b7101 X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00241.txt.bz2 --0016e64a864a0730ad049c8b7101 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3178 2011/2/17 Jakub Jelinek : > On Thu, Feb 17, 2011 at 08:06:53PM +0100, Kai Tietz wrote: >> > I'd prefer if we could move those binutils specific internal implement= ation >> > details out of the dwarf2.h header, keep it really just for the stuff >> > defined in the standard, and add a new binutils specific header somewh= ere >> > else which would contain binutils specific details. >> >> Well, so we make dwarf2.h in include just host-specific and isn't able >> to cover things for foreign target, like 32-bit host can't use this >> header for 64-bit dwarf2 information. I am fine by this, but >> nevertheless is then the use of 'unsigned long' type within this >> header still an issue. Here should be used instead then 'intptr_t'. As >> on LLP64 unsigned long isn't wide-enough. > > I mean that none of the DWARF2_Internal types should be in the > include/dwarf2.h headers (that's implementation specific stuff), > and the DWARF2_External types are questionable too, to me they look > very much like implementation detail too. =A0E.g. DWARF2_External_LineInfo > type is dubious, because it might somehow describe version 2 or 3 > .debug_line header, but version 4 looks differently, etc. > So IMHO the DWARF2_External stuff should be moved too. > And the guard should be probably renamed from _ELF_DWARF2_H to _DWARF2_H, > I don't see anything ELF specific in the header. > > =A0 =A0 =A0 =A0Jakub > So I reworked my patch as Jakub suggested and retested it for x86_64-w64-mingw32, i686-w64-mingw32, and x86_64-pc-linux-gnu for gcc, binutils, and gdb. Ok for apply? binutils, gdb, gcc ChangeLog include/ 2011-02-18 Kai Tietz * dwarf2.h (_ELF_DWARF2_H): Renamed to _DWARF2_H. (DWARF2_External_LineInfo, DWARF2_Internal_LineInfo, DWARF2_External_PubNames, DWARF2_Internal_PubNames, DWARF2_External_CompUnit, DWARF2_Internal_CompUnit, DWARF2_External_ARange, DWARF2_Internal_ARange): Removed. ChangeLog binutils/ 2011-02-18 Kai Tietz * dwarf.c (read_leb128): Use dw2_vma_t instead of long type. (process_extended_line_op): Use for adr bfd_vma type and print those typed values via BFD_VMA_FMT. (fetch_indirect_string): Adjust offset's type. (decode_location_expression): Adjust argument types and uvalue type. (read_and_display_attr_value): Likewise. (read_and_display_attr): Likewise. (decode_location_expression): Adjust printf format. (process_debug_info): Likewise. (display_debug_lines_raw): Likewise. (display_debug_lines_decoded): Likewise. (display_debug_pubnames): Likewise. (display_debug_loc): Likewise. (display_debug_aranges): Likewise. * dwarf.h (DWARF2_External_LineInfo, DWARF2_Internal_LineInfo, DWARF2_External_PubNames, DWARF2_Internal_PubNames, DWARF2_External_CompUnit, DWARF2_Internal_CompUnit, DWARF2_External_ARange, DWARF2_Internal_ARange): Added.. (read_leb128): Adjust return type. Regards, Kai PS: A lot of those moved structures aren't used at all in binutils dwarf.c (which is the only consumer of some of those structures as a grep over binutils/gdb/gcc had shown). So maybe the unused could be removed in a second patch completely. --0016e64a864a0730ad049c8b7101 Content-Type: text/plain; charset=US-ASCII; name="b_dw2_inc.txt" Content-Disposition: attachment; filename="b_dw2_inc.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkax174s0 Content-length: 34742 SW5kZXg6IHNyYy9iaW51dGlscy9kd2FyZi5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHNyYy5vcmlnL2JpbnV0aWxzL2R3YXJmLmMJMjAxMS0wMi0x NyAxMTowMDozNC4wMDAwMDAwMDAgKzAxMDAKKysrIHNyYy9iaW51dGlscy9k d2FyZi5jCTIwMTEtMDItMTggMTA6Mjc6MTAuOTQxODU3NjAwICswMTAwCkBA IC0xMjMsMTAgKzEyMywxMCBAQCBwcmludF9kd2FyZl92bWEgKGR3YXJmX3Zt YSB2YWwsIHVuc2lnbmVkCiAgIGZwdXRzIChidWZmICsgKGJ5dGVfc2l6ZSA9 PSA0ID8gOCA6IDApLCBzdGRvdXQpOwogfQogCi11bnNpZ25lZCBsb25nIGlu dAorYmZkX3ZtYQogcmVhZF9sZWIxMjggKHVuc2lnbmVkIGNoYXIgKmRhdGEs IHVuc2lnbmVkIGludCAqbGVuZ3RoX3JldHVybiwgaW50IHNpZ24pCiB7Ci0g IHVuc2lnbmVkIGxvbmcgaW50IHJlc3VsdCA9IDA7CisgIGJmZF92bWEgcmVz dWx0ID0gMDsKICAgdW5zaWduZWQgaW50IG51bV9yZWFkID0gMDsKICAgdW5z aWduZWQgaW50IHNoaWZ0ID0gMDsKICAgdW5zaWduZWQgY2hhciBieXRlOwpA QCAtMTM2LDcgKzEzNiw3IEBAIHJlYWRfbGViMTI4ICh1bnNpZ25lZCBjaGFy ICpkYXRhLCB1bnNpZ24KICAgICAgIGJ5dGUgPSAqZGF0YSsrOwogICAgICAg bnVtX3JlYWQrKzsKIAotICAgICAgcmVzdWx0IHw9ICgodW5zaWduZWQgbG9u ZyBpbnQpIChieXRlICYgMHg3ZikpIDw8IHNoaWZ0OworICAgICAgcmVzdWx0 IHw9ICgoYmZkX3ZtYSkgKGJ5dGUgJiAweDdmKSkgPDwgc2hpZnQ7CiAKICAg ICAgIHNoaWZ0ICs9IDc7CiAKQEAgLTE5Myw3ICsxOTMsNyBAQCBwcm9jZXNz X2V4dGVuZGVkX2xpbmVfb3AgKHVuc2lnbmVkIGNoYXIgCiAgIHVuc2lnbmVk IGludCBieXRlc19yZWFkOwogICB1bnNpZ25lZCBpbnQgbGVuOwogICB1bnNp Z25lZCBjaGFyICpuYW1lOwotICB1bnNpZ25lZCBsb25nIGFkcjsKKyAgYmZk X3ZtYSBhZHI7CiAKICAgbGVuID0gcmVhZF9sZWIxMjggKGRhdGEsICYgYnl0 ZXNfcmVhZCwgMCk7CiAgIGRhdGEgKz0gYnl0ZXNfcmVhZDsKQEAgLTIxOCw3 ICsyMTgsNyBAQCBwcm9jZXNzX2V4dGVuZGVkX2xpbmVfb3AgKHVuc2lnbmVk IGNoYXIgCiAKICAgICBjYXNlIERXX0xORV9zZXRfYWRkcmVzczoKICAgICAg IGFkciA9IGJ5dGVfZ2V0IChkYXRhLCBsZW4gLSBieXRlc19yZWFkIC0gMSk7 Ci0gICAgICBwcmludGYgKF8oInNldCBBZGRyZXNzIHRvIDB4JWx4XG4iKSwg YWRyKTsKKyAgICAgIHByaW50ZiAoXygic2V0IEFkZHJlc3MgdG8gMHglIiBC RkRfVk1BX0ZNVCAieFxuIiksIGFkcik7CiAgICAgICBzdGF0ZV9tYWNoaW5l X3JlZ3MuYWRkcmVzcyA9IGFkcjsKICAgICAgIHN0YXRlX21hY2hpbmVfcmVn cy5vcF9pbmRleCA9IDA7CiAgICAgICBicmVhazsKQEAgLTIzMCwxNiArMjMw LDE3IEBAIHByb2Nlc3NfZXh0ZW5kZWRfbGluZV9vcCAodW5zaWduZWQgY2hh ciAKICAgICAgIHByaW50ZiAoIiAgICVkXHQiLCArK3N0YXRlX21hY2hpbmVf cmVncy5sYXN0X2ZpbGVfZW50cnkpOwogICAgICAgbmFtZSA9IGRhdGE7CiAg ICAgICBkYXRhICs9IHN0cmxlbiAoKGNoYXIgKikgZGF0YSkgKyAxOwotICAg ICAgcHJpbnRmICgiJWx1XHQiLCByZWFkX2xlYjEyOCAoZGF0YSwgJiBieXRl c19yZWFkLCAwKSk7CisgICAgICBwcmludGYgKCIlIiBCRkRfVk1BX0ZNVCAi dVx0IiwgcmVhZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOwog ICAgICAgZGF0YSArPSBieXRlc19yZWFkOwotICAgICAgcHJpbnRmICgiJWx1 XHQiLCByZWFkX2xlYjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAwKSk7Cisg ICAgICBwcmludGYgKCIlIiBCRkRfVk1BX0ZNVCAidVx0IiwKKwkgICAgICBy ZWFkX2xlYjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAwKSk7CiAgICAgICBk YXRhICs9IGJ5dGVzX3JlYWQ7Ci0gICAgICBwcmludGYgKCIlbHVcdCIsIHJl YWRfbGViMTI4IChkYXRhLCAmIGJ5dGVzX3JlYWQsIDApKTsKKyAgICAgIHBy aW50ZiAoIiUiIEJGRF9WTUFfRk1UICJ1XHQiLCByZWFkX2xlYjEyOCAoZGF0 YSwgJiBieXRlc19yZWFkLCAwKSk7CiAgICAgICBwcmludGYgKCIlc1xuXG4i LCBuYW1lKTsKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBEV19MTkVfc2V0 X2Rpc2NyaW1pbmF0b3I6Ci0gICAgICBwcmludGYgKF8oInNldCBEaXNjcmlt aW5hdG9yIHRvICVsdVxuIiksCisgICAgICBwcmludGYgKF8oInNldCBEaXNj cmltaW5hdG9yIHRvICUiIEJGRF9WTUFfRk1UICJ1XG4iKSwKICAgICAgICAg ICAgICAgcmVhZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOwog ICAgICAgYnJlYWs7CiAKQEAgLTI5MSw3ICsyOTIsNyBAQCBwcm9jZXNzX2V4 dGVuZGVkX2xpbmVfb3AgKHVuc2lnbmVkIGNoYXIgCiB9CiAKIHN0YXRpYyBj b25zdCBjaGFyICoKLWZldGNoX2luZGlyZWN0X3N0cmluZyAodW5zaWduZWQg bG9uZyBvZmZzZXQpCitmZXRjaF9pbmRpcmVjdF9zdHJpbmcgKGJmZF92bWEg b2Zmc2V0KQogewogICBzdHJ1Y3QgZHdhcmZfc2VjdGlvbiAqc2VjdGlvbiA9 ICZkZWJ1Z19kaXNwbGF5cyBbc3RyXS5zZWN0aW9uOwogCkBAIC0zMDIsNyAr MzAzLDcgQEAgZmV0Y2hfaW5kaXJlY3Rfc3RyaW5nICh1bnNpZ25lZCBsb25n IG9mZgogICBvZmZzZXQgLT0gc2VjdGlvbi0+YWRkcmVzczsKICAgaWYgKG9m ZnNldCA+IHNlY3Rpb24tPnNpemUpCiAgICAgewotICAgICAgd2FybiAoXygi RFdfRk9STV9zdHJwIG9mZnNldCB0b28gYmlnOiAlbHhcbiIpLCBvZmZzZXQp OworICAgICAgd2FybiAoXygiRFdfRk9STV9zdHJwIG9mZnNldCB0b28gYmln OiAlbHhcbiIpLCAobG9uZykgb2Zmc2V0KTsKICAgICAgIHJldHVybiBfKCI8 b2Zmc2V0IGlzIHRvbyBiaWc+Iik7CiAgICAgfQogCkBAIC02MDUsMTMgKzYw NiwxMyBAQCBkZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbiAodW5zaWduZWQg Y2hhCiAJCQkgICAgdW5zaWduZWQgaW50IHBvaW50ZXJfc2l6ZSwKIAkJCSAg ICB1bnNpZ25lZCBpbnQgb2Zmc2V0X3NpemUsCiAJCQkgICAgaW50IGR3YXJm X3ZlcnNpb24sCi0JCQkgICAgdW5zaWduZWQgbG9uZyBsZW5ndGgsCi0JCQkg ICAgdW5zaWduZWQgbG9uZyBjdV9vZmZzZXQsCisJCQkgICAgYmZkX3ZtYSBs ZW5ndGgsCisJCQkgICAgYmZkX3ZtYSBjdV9vZmZzZXQsCiAJCQkgICAgc3Ry dWN0IGR3YXJmX3NlY3Rpb24gKiBzZWN0aW9uKQogewogICB1bnNpZ25lZCBv cDsKICAgdW5zaWduZWQgaW50IGJ5dGVzX3JlYWQ7Ci0gIHVuc2lnbmVkIGxv bmcgdXZhbHVlOworICBiZmRfdm1hIHV2YWx1ZTsKICAgdW5zaWduZWQgY2hh ciAqZW5kID0gZGF0YSArIGxlbmd0aDsKICAgaW50IG5lZWRfZnJhbWVfYmFz ZSA9IDA7CiAKQEAgLTY2MiwxMSArNjYzLDEzIEBAIGRlY29kZV9sb2NhdGlv bl9leHByZXNzaW9uICh1bnNpZ25lZCBjaGEKIAkgIGRhdGEgKz0gODsKIAkg IGJyZWFrOwogCWNhc2UgRFdfT1BfY29uc3R1OgotCSAgcHJpbnRmICgiRFdf T1BfY29uc3R1OiAlbHUiLCByZWFkX2xlYjEyOCAoZGF0YSwgJmJ5dGVzX3Jl YWQsIDApKTsKKwkgIHByaW50ZiAoIkRXX09QX2NvbnN0dTogJSIgQkZEX1ZN QV9GTVQgInUiLAorCQkgIHJlYWRfbGViMTI4IChkYXRhLCAmYnl0ZXNfcmVh ZCwgMCkpOwogCSAgZGF0YSArPSBieXRlc19yZWFkOwogCSAgYnJlYWs7CiAJ Y2FzZSBEV19PUF9jb25zdHM6Ci0JICBwcmludGYgKCJEV19PUF9jb25zdHM6 ICVsZCIsIHJlYWRfbGViMTI4IChkYXRhLCAmYnl0ZXNfcmVhZCwgMSkpOwor CSAgcHJpbnRmICgiRFdfT1BfY29uc3RzOiAlIiBCRkRfVk1BX0ZNVCAiZCIs CisJCSAgcmVhZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFkLCAxKSk7CiAJ ICBkYXRhICs9IGJ5dGVzX3JlYWQ7CiAJICBicmVhazsKIAljYXNlIERXX09Q X2R1cDoKQEAgLTcyMSw3ICs3MjQsNyBAQCBkZWNvZGVfbG9jYXRpb25fZXhw cmVzc2lvbiAodW5zaWduZWQgY2hhCiAJICBwcmludGYgKCJEV19PUF9wbHVz Iik7CiAJICBicmVhazsKIAljYXNlIERXX09QX3BsdXNfdWNvbnN0OgotCSAg cHJpbnRmICgiRFdfT1BfcGx1c191Y29uc3Q6ICVsdSIsCisJICBwcmludGYg KCJEV19PUF9wbHVzX3Vjb25zdDogJSIgQkZEX1ZNQV9GTVQgInUiLAogCQkg IHJlYWRfbGViMTI4IChkYXRhLCAmYnl0ZXNfcmVhZCwgMCkpOwogCSAgZGF0 YSArPSBieXRlc19yZWFkOwogCSAgYnJlYWs7CkBAIC04NjcsNyArODcwLDgg QEAgZGVjb2RlX2xvY2F0aW9uX2V4cHJlc3Npb24gKHVuc2lnbmVkIGNoYQog CWNhc2UgRFdfT1BfYnJlZzI5OgogCWNhc2UgRFdfT1BfYnJlZzMwOgogCWNh c2UgRFdfT1BfYnJlZzMxOgotCSAgcHJpbnRmICgiRFdfT1BfYnJlZyVkICgl cyk6ICVsZCIsIG9wIC0gRFdfT1BfYnJlZzAsCisJICBwcmludGYgKCJEV19P UF9icmVnJWQgKCVzKTogJSIgQkZEX1ZNQV9GTVQgImQiLAorCQkgIG9wIC0g RFdfT1BfYnJlZzAsCiAJCSAgcmVnbmFtZSAob3AgLSBEV19PUF9icmVnMCwg MSksCiAJCSAgcmVhZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFkLCAxKSk7 CiAJICBkYXRhICs9IGJ5dGVzX3JlYWQ7CkBAIC04NzYsMjIgKzg4MCwyNiBA QCBkZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbiAodW5zaWduZWQgY2hhCiAJ Y2FzZSBEV19PUF9yZWd4OgogCSAgdXZhbHVlID0gcmVhZF9sZWIxMjggKGRh dGEsICZieXRlc19yZWFkLCAwKTsKIAkgIGRhdGEgKz0gYnl0ZXNfcmVhZDsK LQkgIHByaW50ZiAoIkRXX09QX3JlZ3g6ICVsdSAoJXMpIiwgdXZhbHVlLCBy ZWduYW1lICh1dmFsdWUsIDEpKTsKKwkgIHByaW50ZiAoIkRXX09QX3JlZ3g6 ICUiIEJGRF9WTUFfRk1UICJ1ICglcykiLAorCQkgIHV2YWx1ZSwgcmVnbmFt ZSAodXZhbHVlLCAxKSk7CiAJICBicmVhazsKIAljYXNlIERXX09QX2ZicmVn OgogCSAgbmVlZF9mcmFtZV9iYXNlID0gMTsKLQkgIHByaW50ZiAoIkRXX09Q X2ZicmVnOiAlbGQiLCByZWFkX2xlYjEyOCAoZGF0YSwgJmJ5dGVzX3JlYWQs IDEpKTsKKwkgIHByaW50ZiAoIkRXX09QX2ZicmVnOiAlIiBCRkRfVk1BX0ZN VCAiZCIsCisJCSAgcmVhZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFkLCAx KSk7CiAJICBkYXRhICs9IGJ5dGVzX3JlYWQ7CiAJICBicmVhazsKIAljYXNl IERXX09QX2JyZWd4OgogCSAgdXZhbHVlID0gcmVhZF9sZWIxMjggKGRhdGEs ICZieXRlc19yZWFkLCAwKTsKIAkgIGRhdGEgKz0gYnl0ZXNfcmVhZDsKLQkg IHByaW50ZiAoIkRXX09QX2JyZWd4OiAlbHUgKCVzKSAlbGQiLCB1dmFsdWUs IHJlZ25hbWUgKHV2YWx1ZSwgMSksCisJICBwcmludGYgKCJEV19PUF9icmVn eDogJSIgQkZEX1ZNQV9GTVQgInUgKCVzKSAlIiBCRkRfVk1BX0ZNVCAiZCIs CisJCSAgdXZhbHVlLCByZWduYW1lICh1dmFsdWUsIDEpLAogCQkgIHJlYWRf bGViMTI4IChkYXRhLCAmYnl0ZXNfcmVhZCwgMSkpOwogCSAgZGF0YSArPSBi eXRlc19yZWFkOwogCSAgYnJlYWs7CiAJY2FzZSBEV19PUF9waWVjZToKLQkg IHByaW50ZiAoIkRXX09QX3BpZWNlOiAlbHUiLCByZWFkX2xlYjEyOCAoZGF0 YSwgJmJ5dGVzX3JlYWQsIDApKTsKKwkgIHByaW50ZiAoIkRXX09QX3BpZWNl OiAlIiBCRkRfVk1BX0ZNVCAidSIsCisJCSAgcmVhZF9sZWIxMjggKGRhdGEs ICZieXRlc19yZWFkLCAwKSk7CiAJICBkYXRhICs9IGJ5dGVzX3JlYWQ7CiAJ ICBicmVhazsKIAljYXNlIERXX09QX2RlcmVmX3NpemU6CkBAIC05MTEsMTMg KzkxOSwxNSBAQCBkZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbiAodW5zaWdu ZWQgY2hhCiAJY2FzZSBEV19PUF9jYWxsMjoKIAkgIC8qIFhYWDogU3RyaWN0 bHkgc3BlYWtpbmcgZm9yIDY0LWJpdCBEV0FSRjMgZmlsZXMKIAkgICAgIHRo aXMgb3VnaHQgdG8gYmUgYW4gOC1ieXRlIHdpZGUgY29tcHV0YXRpb24uICAq LwotCSAgcHJpbnRmICgiRFdfT1BfY2FsbDI6IDwweCVseD4iLCAobG9uZykg Ynl0ZV9nZXQgKGRhdGEsIDIpICsgY3Vfb2Zmc2V0KTsKKwkgIHByaW50ZiAo IkRXX09QX2NhbGwyOiA8MHglIiBCRkRfVk1BX0ZNVCAieD4iLAorCQkgIChi ZmRfc2lnbmVkX3ZtYSkgYnl0ZV9nZXQgKGRhdGEsIDIpICsgY3Vfb2Zmc2V0 KTsKIAkgIGRhdGEgKz0gMjsKIAkgIGJyZWFrOwogCWNhc2UgRFdfT1BfY2Fs bDQ6CiAJICAvKiBYWFg6IFN0cmljdGx5IHNwZWFraW5nIGZvciA2NC1iaXQg RFdBUkYzIGZpbGVzCiAJICAgICB0aGlzIG91Z2h0IHRvIGJlIGFuIDgtYnl0 ZSB3aWRlIGNvbXB1dGF0aW9uLiAgKi8KLQkgIHByaW50ZiAoIkRXX09QX2Nh bGw0OiA8MHglbHg+IiwgKGxvbmcpIGJ5dGVfZ2V0IChkYXRhLCA0KSArIGN1 X29mZnNldCk7CisJICBwcmludGYgKCJEV19PUF9jYWxsNDogPDB4JSIgQkZE X1ZNQV9GTVQgIng+IiwKKwkJICAoYmZkX3NpZ25lZF92bWEpIGJ5dGVfZ2V0 IChkYXRhLCA0KSArIGN1X29mZnNldCk7CiAJICBkYXRhICs9IDQ7CiAJICBi cmVhazsKIAljYXNlIERXX09QX2NhbGxfcmVmOgpAQCAtOTUwLDkgKzk2MCwx MSBAQCBkZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbiAodW5zaWduZWQgY2hh CiAJICBicmVhazsKIAljYXNlIERXX09QX2JpdF9waWVjZToKIAkgIHByaW50 ZiAoIkRXX09QX2JpdF9waWVjZTogIik7Ci0JICBwcmludGYgKCJzaXplOiAl bHUgIiwgcmVhZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFkLCAwKSk7CisJ ICBwcmludGYgKCJzaXplOiAlIiBCRkRfVk1BX0ZNVCAidSAiLAorCQkgIHJl YWRfbGViMTI4IChkYXRhLCAmYnl0ZXNfcmVhZCwgMCkpOwogCSAgZGF0YSAr PSBieXRlc19yZWFkOwotCSAgcHJpbnRmICgib2Zmc2V0OiAlbHUgIiwgcmVh ZF9sZWIxMjggKGRhdGEsICZieXRlc19yZWFkLCAwKSk7CisJICBwcmludGYg KCJvZmZzZXQ6ICUiIEJGRF9WTUFfRk1UICJ1ICIsCisJCSAgcmVhZF9sZWIx MjggKGRhdGEsICZieXRlc19yZWFkLCAwKSk7CiAJICBkYXRhICs9IGJ5dGVz X3JlYWQ7CiAJICBicmVhazsKIApAQCAtMTAwMSwxNiArMTAxMywyMCBAQCBk ZWNvZGVfbG9jYXRpb25fZXhwcmVzc2lvbiAodW5zaWduZWQgY2hhCiAJICAg IH0KIAkgIGlmIChkd2FyZl92ZXJzaW9uID09IDIpCiAJICAgIHsKLQkgICAg ICBwcmludGYgKCJEV19PUF9HTlVfaW1wbGljaXRfcG9pbnRlcjogPDB4JWx4 PiAlbGQiLAotCQkgICAgICAobG9uZykgYnl0ZV9nZXQgKGRhdGEsIHBvaW50 ZXJfc2l6ZSksCi0JCSAgICAgIHJlYWRfbGViMTI4IChkYXRhICsgcG9pbnRl cl9zaXplLCAmYnl0ZXNfcmVhZCwgMSkpOworCSAgICAgIHByaW50ZiAoIkRX X09QX0dOVV9pbXBsaWNpdF9wb2ludGVyOiAiCisJCSAgICAgICI8MHglIiBC RkRfVk1BX0ZNVCAieD4gJSIgQkZEX1ZNQV9GTVQgImQiLAorCQkgICAgICAo YmZkX3ZtYSkgYnl0ZV9nZXQgKGRhdGEsIHBvaW50ZXJfc2l6ZSksCisJCSAg ICAgIChiZmRfc2lnbmVkX3ZtYSkgcmVhZF9sZWIxMjggKGRhdGEgKyBwb2lu dGVyX3NpemUsCisJCQkJCQkmYnl0ZXNfcmVhZCwgMSkpOwogCSAgICAgIGRh dGEgKz0gcG9pbnRlcl9zaXplICsgYnl0ZXNfcmVhZDsKIAkgICAgfQogCSAg ZWxzZQogCSAgICB7Ci0JICAgICAgcHJpbnRmICgiRFdfT1BfR05VX2ltcGxp Y2l0X3BvaW50ZXI6IDwweCVseD4gJWxkIiwKLQkJICAgICAgKGxvbmcpIGJ5 dGVfZ2V0IChkYXRhLCBvZmZzZXRfc2l6ZSksCi0JCSAgICAgIHJlYWRfbGVi MTI4IChkYXRhICsgb2Zmc2V0X3NpemUsICZieXRlc19yZWFkLCAxKSk7CisJ ICAgICAgcHJpbnRmICgiRFdfT1BfR05VX2ltcGxpY2l0X3BvaW50ZXI6ICIK KwkJICAgICAgIjwweCUiIEJGRF9WTUFfRk1UICJ4PiAlIiBCRkRfVk1BX0ZN VCAiZCIsCisJCSAgICAgIChiZmRfdm1hKSBieXRlX2dldCAoZGF0YSwgb2Zm c2V0X3NpemUpLAorCQkgICAgICAoYmZkX3NpZ25lZF92bWEpIHJlYWRfbGVi MTI4IChkYXRhICsgb2Zmc2V0X3NpemUsCisJCQkJCQkmYnl0ZXNfcmVhZCwg MSkpOwogCSAgICAgIGRhdGEgKz0gb2Zmc2V0X3NpemUgKyBieXRlc19yZWFk OwogCSAgICB9CiAJICBicmVhazsKQEAgLTEwNzIsMTUgKzEwODgsMTUgQEAg c3RhdGljIHVuc2lnbmVkIGNoYXIgKgogcmVhZF9hbmRfZGlzcGxheV9hdHRy X3ZhbHVlICh1bnNpZ25lZCBsb25nIGF0dHJpYnV0ZSwKIAkJCSAgICAgdW5z aWduZWQgbG9uZyBmb3JtLAogCQkJICAgICB1bnNpZ25lZCBjaGFyICogZGF0 YSwKLQkJCSAgICAgdW5zaWduZWQgbG9uZyBjdV9vZmZzZXQsCi0JCQkgICAg IHVuc2lnbmVkIGxvbmcgcG9pbnRlcl9zaXplLAotCQkJICAgICB1bnNpZ25l ZCBsb25nIG9mZnNldF9zaXplLAorCQkJICAgICBiZmRfdm1hIGN1X29mZnNl dCwKKwkJCSAgICAgYmZkX3ZtYSBwb2ludGVyX3NpemUsCisJCQkgICAgIGJm ZF92bWEgb2Zmc2V0X3NpemUsCiAJCQkgICAgIGludCBkd2FyZl92ZXJzaW9u LAogCQkJICAgICBkZWJ1Z19pbmZvICogZGVidWdfaW5mb19wLAogCQkJICAg ICBpbnQgZG9fbG9jLAogCQkJICAgICBzdHJ1Y3QgZHdhcmZfc2VjdGlvbiAq IHNlY3Rpb24pCiB7Ci0gIHVuc2lnbmVkIGxvbmcgdXZhbHVlID0gMDsKKyAg YmZkX3ZtYSB1dmFsdWUgPSAwOwogICB1bnNpZ25lZCBjaGFyICpibG9ja19z dGFydCA9IE5VTEw7CiAgIHVuc2lnbmVkIGNoYXIgKiBvcmlnX2RhdGEgPSBk YXRhOwogICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKQEAgLTExNjcsNyAr MTE4Myw3IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSAodW5zaWdu ZWQgbG8KICAgICB7CiAgICAgY2FzZSBEV19GT1JNX3JlZl9hZGRyOgogICAg ICAgaWYgKCFkb19sb2MpCi0JcHJpbnRmICgiIDwweCVseD4iLCB1dmFsdWUp OworCXByaW50ZiAoIiA8MHglIiBCRkRfVk1BX0ZNVCAieD4iLCB1dmFsdWUp OwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIERXX0ZPUk1fcmVmMToKQEAg LTExNzUsMTQgKzExOTEsMTQgQEAgcmVhZF9hbmRfZGlzcGxheV9hdHRyX3Zh bHVlICh1bnNpZ25lZCBsbwogICAgIGNhc2UgRFdfRk9STV9yZWY0OgogICAg IGNhc2UgRFdfRk9STV9yZWZfdWRhdGE6CiAgICAgICBpZiAoIWRvX2xvYykK LQlwcmludGYgKCIgPDB4JWx4PiIsIHV2YWx1ZSArIGN1X29mZnNldCk7CisJ cHJpbnRmICgiIDwweCUiIEJGRF9WTUFfRk1UICJ4PiIsIHV2YWx1ZSArIGN1 X29mZnNldCk7CiAgICAgICBicmVhazsKIAogICAgIGNhc2UgRFdfRk9STV9k YXRhNDoKICAgICBjYXNlIERXX0ZPUk1fYWRkcjoKICAgICBjYXNlIERXX0ZP Uk1fc2VjX29mZnNldDoKICAgICAgIGlmICghZG9fbG9jKQotCXByaW50ZiAo IiAweCVseCIsIHV2YWx1ZSk7CisJcHJpbnRmICgiIDB4JSIgQkZEX1ZNQV9G TVQgIngiLCB1dmFsdWUpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIERX X0ZPUk1fZmxhZ19wcmVzZW50OgpAQCAtMTE5Miw3ICsxMjA4LDcgQEAgcmVh ZF9hbmRfZGlzcGxheV9hdHRyX3ZhbHVlICh1bnNpZ25lZCBsbwogICAgIGNh c2UgRFdfRk9STV9zZGF0YToKICAgICBjYXNlIERXX0ZPUk1fdWRhdGE6CiAg ICAgICBpZiAoIWRvX2xvYykKLQlwcmludGYgKCIgJWxkIiwgdXZhbHVlKTsK KwlwcmludGYgKCIgJSIgQkZEX1ZNQV9GTVQgImQiLCB1dmFsdWUpOwogICAg ICAgYnJlYWs7CiAKICAgICBjYXNlIERXX0ZPUk1fcmVmODoKQEAgLTEyMDAs NyArMTIxNiw3IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSAodW5z aWduZWQgbG8KICAgICAgIGlmICghZG9fbG9jKQogCXsKIAkgIHV2YWx1ZSA9 IGJ5dGVfZ2V0IChkYXRhLCA0KTsKLQkgIHByaW50ZiAoIiAweCVseCIsIHV2 YWx1ZSk7CisJICBwcmludGYgKCIgMHglIiBCRkRfVk1BX0ZNVCAieCIsIHV2 YWx1ZSk7CiAJICBwcmludGYgKCIgMHglbHgiLCAodW5zaWduZWQgbG9uZykg Ynl0ZV9nZXQgKGRhdGEgKyA0LCA0KSk7CiAJfQogICAgICAgaWYgKChkb19s b2MgfHwgZG9fZGVidWdfbG9jIHx8IGRvX2RlYnVnX3JhbmdlcykKQEAgLTEy MDksNyArMTIyNSw3IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSAo dW5zaWduZWQgbG8KIAkgIGlmIChzaXplb2YgKHV2YWx1ZSkgPT0gOCkKIAkg ICAgdXZhbHVlID0gYnl0ZV9nZXQgKGRhdGEsIDgpOwogCSAgZWxzZQotCSAg ICBlcnJvciAoXygiRFdfRk9STV9kYXRhOCBpcyB1bnN1cHBvcnRlZCB3aGVu IHNpemVvZiAodW5zaWduZWQgbG9uZykgIT0gOFxuIikpOworCSAgICBlcnJv ciAoXygiRFdfRk9STV9kYXRhOCBpcyB1bnN1cHBvcnRlZCB3aGVuIHNpemVv ZiAoYmZkX3ZtYSkgIT0gOFxuIikpOwogCX0KICAgICAgIGRhdGEgKz0gODsK ICAgICAgIGJyZWFrOwpAQCAtMTI1OSw3ICsxMjc1LDcgQEAgcmVhZF9hbmRf ZGlzcGxheV9hdHRyX3ZhbHVlICh1bnNpZ25lZCBsbwogCiAgICAgY2FzZSBE V19GT1JNX3N0cnA6CiAgICAgICBpZiAoIWRvX2xvYykKLQlwcmludGYgKF8o IiAoaW5kaXJlY3Qgc3RyaW5nLCBvZmZzZXQ6IDB4JWx4KTogJXMiKSwKKwlw cmludGYgKF8oIiAoaW5kaXJlY3Qgc3RyaW5nLCBvZmZzZXQ6IDB4JSIgQkZE X1ZNQV9GTVQgIngpOiAlcyIpLAogCQl1dmFsdWUsIGZldGNoX2luZGlyZWN0 X3N0cmluZyAodXZhbHVlKSk7CiAgICAgICBicmVhazsKIApAQCAtMTMxMyw3 ICsxMzI5LDcgQEAgcmVhZF9hbmRfZGlzcGxheV9hdHRyX3ZhbHVlICh1bnNp Z25lZCBsbwogCSAgICAgIGlmIChsbWF4ID09IDAgfHwgbnVtID49IGxtYXgp CiAJCXsKIAkJICBsbWF4ICs9IDEwMjQ7Ci0JCSAgZGVidWdfaW5mb19wLT5s b2Nfb2Zmc2V0cyA9IChsb25nIHVuc2lnbmVkIGludCAqKQorCQkgIGRlYnVn X2luZm9fcC0+bG9jX29mZnNldHMgPSAoYmZkX3ZtYSAqKQogICAgICAgICAg ICAgICAgICAgICAgIHhjcmVhbGxvYyAoZGVidWdfaW5mb19wLT5sb2Nfb2Zm c2V0cywKIAkJCQkgbG1heCwgc2l6ZW9mICgqZGVidWdfaW5mb19wLT5sb2Nf b2Zmc2V0cykpOwogCQkgIGRlYnVnX2luZm9fcC0+aGF2ZV9mcmFtZV9iYXNl ID0gKGludCAqKQpAQCAtMTM0NCw3ICsxMzYwLDcgQEAgcmVhZF9hbmRfZGlz cGxheV9hdHRyX3ZhbHVlICh1bnNpZ25lZCBsbwogCSAgICAgIGlmIChsbWF4 ID09IDAgfHwgbnVtID49IGxtYXgpCiAJCXsKIAkJICBsbWF4ICs9IDEwMjQ7 Ci0JCSAgZGVidWdfaW5mb19wLT5yYW5nZV9saXN0cyA9IChsb25nIHVuc2ln bmVkIGludCAqKQorCQkgIGRlYnVnX2luZm9fcC0+cmFuZ2VfbGlzdHMgPSAo YmZkX3ZtYSAqKQogICAgICAgICAgICAgICAgICAgICAgIHhjcmVhbGxvYyAo ZGVidWdfaW5mb19wLT5yYW5nZV9saXN0cywKIAkJCQkgbG1heCwgc2l6ZW9m ICgqZGVidWdfaW5mb19wLT5yYW5nZV9saXN0cykpOwogCQkgIGRlYnVnX2lu Zm9fcC0+bWF4X3JhbmdlX2xpc3RzID0gbG1heDsKQEAgLTEzODMsNyArMTM5 OSw4IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSAodW5zaWduZWQg bG8KIAkgIHByaW50ZiAoXygiKGRlY2xhcmVkIGFzIGlubGluZSBhbmQgaW5s aW5lZCkiKSk7CiAJICBicmVhazsKIAlkZWZhdWx0OgotCSAgcHJpbnRmIChf KCIgIChVbmtub3duIGlubGluZSBhdHRyaWJ1dGUgdmFsdWU6ICVseCkiKSwg dXZhbHVlKTsKKwkgIHByaW50ZiAoXygiICAoVW5rbm93biBpbmxpbmUgYXR0 cmlidXRlIHZhbHVlOiAlIiBCRkRfVk1BX0ZNVCAieCkiKSwKKwkgIAkgIHV2 YWx1ZSk7CiAJICBicmVhazsKIAl9CiAgICAgICBicmVhazsKQEAgLTE0MjEs OSArMTQzOCw5IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92YWx1ZSAodW5z aWduZWQgbG8KIAljYXNlIERXX0xBTkdfVXBjOgkJcHJpbnRmICgiKFVuaWZp ZWQgUGFyYWxsZWwgQykiKTsgYnJlYWs7CiAJZGVmYXVsdDoKIAkgIGlmICh1 dmFsdWUgPj0gRFdfTEFOR19sb191c2VyICYmIHV2YWx1ZSA8PSBEV19MQU5H X2hpX3VzZXIpCi0JICAgIHByaW50ZiAoIihpbXBsZW1lbnRhdGlvbiBkZWZp bmVkOiAlbHgpIiwgdXZhbHVlKTsKKwkgICAgcHJpbnRmICgiKGltcGxlbWVu dGF0aW9uIGRlZmluZWQ6ICUiIEJGRF9WTUFfRk1UICJ4KSIsIHV2YWx1ZSk7 CiAJICBlbHNlCi0JICAgIHByaW50ZiAoIihVbmtub3duOiAlbHgpIiwgdXZh bHVlKTsKKwkgICAgcHJpbnRmICgiKFVua25vd246ICUiIEJGRF9WTUFfRk1U ICJ4KSIsIHV2YWx1ZSk7CiAJICBicmVhazsKIAl9CiAgICAgICBicmVhazsK QEAgLTE1ODQsNyArMTYwMSw3IEBAIHJlYWRfYW5kX2Rpc3BsYXlfYXR0cl92 YWx1ZSAodW5zaWduZWQgbG8KIAkgIHV2YWx1ZSArPSBjdV9vZmZzZXQ7CiAK IAlpZiAodXZhbHVlID49IHNlY3Rpb24tPnNpemUpCi0JICB3YXJuIChfKCJP ZmZzZXQgJWx4IHVzZWQgYXMgdmFsdWUgZm9yIERXX0FUX2ltcG9ydCBhdHRy aWJ1dGUgb2YgRElFIGF0IG9mZnNldCAlbHggaXMgdG9vIGJpZy5cbiIpLAor CSAgd2FybiAoXygiT2Zmc2V0ICUiIEJGRF9WTUFfRk1UICJ4IHVzZWQgYXMg dmFsdWUgZm9yIERXX0FUX2ltcG9ydCBhdHRyaWJ1dGUgb2YgRElFIGF0IG9m ZnNldCAlbHggaXMgdG9vIGJpZy5cbiIpLAogCQl1dmFsdWUsICh1bnNpZ25l ZCBsb25nKSAob3JpZ19kYXRhIC0gc2VjdGlvbi0+c3RhcnQpKTsKIAllbHNl CiAJICB7CkBAIC0xNzg2LDkgKzE4MDMsOSBAQCBzdGF0aWMgdW5zaWduZWQg Y2hhciAqCiByZWFkX2FuZF9kaXNwbGF5X2F0dHIgKHVuc2lnbmVkIGxvbmcg YXR0cmlidXRlLAogCQkgICAgICAgdW5zaWduZWQgbG9uZyBmb3JtLAogCQkg ICAgICAgdW5zaWduZWQgY2hhciAqIGRhdGEsCi0JCSAgICAgICB1bnNpZ25l ZCBsb25nIGN1X29mZnNldCwKLQkJICAgICAgIHVuc2lnbmVkIGxvbmcgcG9p bnRlcl9zaXplLAotCQkgICAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXRfc2l6 ZSwKKwkJICAgICAgIGJmZF92bWEgY3Vfb2Zmc2V0LAorCQkgICAgICAgYmZk X3ZtYSBwb2ludGVyX3NpemUsCisJCSAgICAgICBiZmRfdm1hIG9mZnNldF9z aXplLAogCQkgICAgICAgaW50IGR3YXJmX3ZlcnNpb24sCiAJCSAgICAgICBk ZWJ1Z19pbmZvICogZGVidWdfaW5mb19wLAogCQkgICAgICAgaW50IGRvX2xv YywKQEAgLTE5MDAsNyArMTkxNyw3IEBAIHByb2Nlc3NfZGVidWdfaW5mbyAo c3RydWN0IGR3YXJmX3NlY3Rpb24KICAgICAgIHVuc2lnbmVkIGNoYXIgKmhk cnB0cjsKICAgICAgIHVuc2lnbmVkIGNoYXIgKnRhZ3M7CiAgICAgICBpbnQg bGV2ZWw7Ci0gICAgICB1bnNpZ25lZCBsb25nIGN1X29mZnNldDsKKyAgICAg IGJmZF92bWEgY3Vfb2Zmc2V0OwogICAgICAgaW50IG9mZnNldF9zaXplOwog ICAgICAgaW50IGluaXRpYWxfbGVuZ3RoX3NpemU7CiAgICAgICB1bnNpZ25l ZCBjaGFyIHNpZ25hdHVyZVs4XSA9IHsgMCB9OwpAQCAtMTk3MCwxMSArMTk4 NywxMyBAQCBwcm9jZXNzX2RlYnVnX2luZm8gKHN0cnVjdCBkd2FyZl9zZWN0 aW9uCiAKICAgICAgIGlmICghZG9fbG9jKQogCXsKLQkgIHByaW50ZiAoXygi ICBDb21waWxhdGlvbiBVbml0IEAgb2Zmc2V0IDB4JWx4OlxuIiksIGN1X29m ZnNldCk7Ci0JICBwcmludGYgKF8oIiAgIExlbmd0aDogICAgICAgIDB4JWx4 ICglcylcbiIpLCBjb21wdW5pdC5jdV9sZW5ndGgsCisJICBwcmludGYgKF8o IiAgQ29tcGlsYXRpb24gVW5pdCBAIG9mZnNldCAweCUiIEJGRF9WTUFfRk1U ICJ4OlxuIiksIGN1X29mZnNldCk7CisJICBwcmludGYgKF8oIiAgIExlbmd0 aDogICAgICAgIDB4JSIgQkZEX1ZNQV9GTVQgInggKCVzKVxuIiksCisJCSAg Y29tcHVuaXQuY3VfbGVuZ3RoLAogCQkgIGluaXRpYWxfbGVuZ3RoX3NpemUg PT0gOCA/ICI2NC1iaXQiIDogIjMyLWJpdCIpOwogCSAgcHJpbnRmIChfKCIg ICBWZXJzaW9uOiAgICAgICAlZFxuIiksIGNvbXB1bml0LmN1X3ZlcnNpb24p OwotCSAgcHJpbnRmIChfKCIgICBBYmJyZXYgT2Zmc2V0OiAlbGRcbiIpLCBj b21wdW5pdC5jdV9hYmJyZXZfb2Zmc2V0KTsKKwkgIHByaW50ZiAoXygiICAg QWJicmV2IE9mZnNldDogJSIgQkZEX1ZNQV9GTVQgImRcbiIpLAorCQkgIGNv bXB1bml0LmN1X2FiYnJldl9vZmZzZXQpOwogCSAgcHJpbnRmIChfKCIgICBQ b2ludGVyIFNpemU6ICAlZFxuIiksIGNvbXB1bml0LmN1X3BvaW50ZXJfc2l6 ZSk7CiAJICBpZiAoZG9fdHlwZXMpCiAJICAgIHsKQEAgLTE5OTAsNyArMjAw OSw5IEBAIHByb2Nlc3NfZGVidWdfaW5mbyAoc3RydWN0IGR3YXJmX3NlY3Rp b24KICAgICAgIGlmIChjdV9vZmZzZXQgKyBjb21wdW5pdC5jdV9sZW5ndGgg KyBpbml0aWFsX2xlbmd0aF9zaXplCiAJICA+IHNlY3Rpb24tPnNpemUpCiAJ ewotCSAgd2FybiAoXygiRGVidWcgaW5mbyBpcyBjb3JydXB0ZWQsIGxlbmd0 aCBvZiBDVSBhdCAlbHggZXh0ZW5kcyBiZXlvbmQgZW5kIG9mIHNlY3Rpb24g KGxlbmd0aCA9ICVseClcbiIpLAorCSAgd2FybiAoXygiRGVidWcgaW5mbyBp cyBjb3JydXB0ZWQsIGxlbmd0aCBvZiBDVSBhdCAlIgorCSAgCSAgQkZEX1ZN QV9GTVQgInggZXh0ZW5kcyBiZXlvbmQgZW5kIG9mIHNlY3Rpb24gKGxlbmd0 aCA9ICUiCisJICAJICBCRkRfVk1BX0ZNVCAieClcbiIpLAogCQljdV9vZmZz ZXQsIGNvbXB1bml0LmN1X2xlbmd0aCk7CiAJICBicmVhazsKIAl9CkBAIC0y MDAxLDcgKzIwMjIsOCBAQCBwcm9jZXNzX2RlYnVnX2luZm8gKHN0cnVjdCBk d2FyZl9zZWN0aW9uCiAJICAmJiBjb21wdW5pdC5jdV92ZXJzaW9uICE9IDMK IAkgICYmIGNvbXB1bml0LmN1X3ZlcnNpb24gIT0gNCkKIAl7Ci0JICB3YXJu IChfKCJDVSBhdCBvZmZzZXQgJWx4IGNvbnRhaW5zIGNvcnJ1cHQgb3IgdW5z dXBwb3J0ZWQgdmVyc2lvbiBudW1iZXI6ICVkLlxuIiksCisJICB3YXJuIChf KCJDVSBhdCBvZmZzZXQgJSIgQkZEX1ZNQV9GTVQgInggY29udGFpbnMgY29y cnVwdCBvciAiCisJCSAgInVuc3VwcG9ydGVkIHZlcnNpb24gbnVtYmVyOiAl ZC5cbiIpLAogCQljdV9vZmZzZXQsIGNvbXB1bml0LmN1X3ZlcnNpb24pOwog CSAgY29udGludWU7CiAJfQpAQCAtMjI2OCw3ICsyMjkwLDcgQEAgZGlzcGxh eV9kZWJ1Z19saW5lc19yYXcgKHN0cnVjdCBkd2FyZl9zZQogICAgICAgbGlu Zm8ubGlfbGluZV9iYXNlID4+PSAyNDsKIAogICAgICAgcHJpbnRmIChfKCIg IE9mZnNldDogICAgICAgICAgICAgICAgICAgICAgMHglbHhcbiIpLCBoZHJv ZmYpOwotICAgICAgcHJpbnRmIChfKCIgIExlbmd0aDogICAgICAgICAgICAg ICAgICAgICAgJWxkXG4iKSwgbGluZm8ubGlfbGVuZ3RoKTsKKyAgICAgIHBy aW50ZiAoXygiICBMZW5ndGg6ICAgICAgICAgICAgICAgICAgICAgICVsZFxu IiksIChsb25nKSBsaW5mby5saV9sZW5ndGgpOwogICAgICAgcHJpbnRmIChf KCIgIERXQVJGIFZlcnNpb246ICAgICAgICAgICAgICAgJWRcbiIpLCBsaW5m by5saV92ZXJzaW9uKTsKICAgICAgIHByaW50ZiAoXygiICBQcm9sb2d1ZSBM ZW5ndGg6ICAgICAgICAgICAgICVkXG4iKSwgbGluZm8ubGlfcHJvbG9ndWVf bGVuZ3RoKTsKICAgICAgIHByaW50ZiAoXygiICBNaW5pbXVtIEluc3RydWN0 aW9uIExlbmd0aDogICVkXG4iKSwgbGluZm8ubGlfbWluX2luc25fbGVuZ3Ro KTsKQEAgLTIzMjksMTEgKzIzNTEsMTQgQEAgZGlzcGxheV9kZWJ1Z19saW5l c19yYXcgKHN0cnVjdCBkd2FyZl9zZQogCiAJICAgICAgZGF0YSArPSBzdHJs ZW4gKChjaGFyICopIGRhdGEpICsgMTsKIAotCSAgICAgIHByaW50ZiAoIiVs dVx0IiwgcmVhZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOwor CSAgICAgIHByaW50ZiAoIiUiIEJGRF9WTUFfRk1UICJ1XHQiLAorCQkgICAg ICByZWFkX2xlYjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAwKSk7CiAJICAg ICAgZGF0YSArPSBieXRlc19yZWFkOwotCSAgICAgIHByaW50ZiAoIiVsdVx0 IiwgcmVhZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOworCSAg ICAgIHByaW50ZiAoIiUiIEJGRF9WTUFfRk1UICJ1XHQiLAorCQkgICAgICBy ZWFkX2xlYjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAwKSk7CiAJICAgICAg ZGF0YSArPSBieXRlc19yZWFkOwotCSAgICAgIHByaW50ZiAoIiVsdVx0Iiwg cmVhZF9sZWIxMjggKGRhdGEsICYgYnl0ZXNfcmVhZCwgMCkpOworCSAgICAg IHByaW50ZiAoIiUiIEJGRF9WTUFfRk1UICJ1XHQiLAorCQkgICAgICByZWFk X2xlYjEyOCAoZGF0YSwgJiBieXRlc19yZWFkLCAwKSk7CiAJICAgICAgZGF0 YSArPSBieXRlc19yZWFkOwogCSAgICAgIHByaW50ZiAoIiVzXG4iLCBuYW1l KTsKIAkgICAgfQpAQCAtMjUwNSw3ICsyNTMwLDggQEAgZGlzcGxheV9kZWJ1 Z19saW5lc19yYXcgKHN0cnVjdCBkd2FyZl9zZQogCiAJICAgICAgZm9yIChp ID0gc3RhbmRhcmRfb3Bjb2Rlc1tvcF9jb2RlIC0gMV07IGkgPiAwIDsgLS1p KQogCQl7Ci0JCSAgcHJpbnRmICgiMHglbHglcyIsIHJlYWRfbGViMTI4IChk YXRhLCAmYnl0ZXNfcmVhZCwgMCksCisJCSAgcHJpbnRmICgiMHglIiBCRkRf Vk1BX0ZNVCAieCVzIiwKKwkJCSAgcmVhZF9sZWIxMjggKGRhdGEsICZieXRl c19yZWFkLCAwKSwKIAkJCSAgaSA9PSAxID8gIiIgOiAiLCAiKTsKIAkJICBk YXRhICs9IGJ5dGVzX3JlYWQ7CiAJCX0KQEAgLTI5MTgsNyArMjk0NCw4IEBA IGRpc3BsYXlfZGVidWdfbGluZXNfZGVjb2RlZCAoc3RydWN0IGR3YXIKIAog ICAgICAgICAgICAgICBmb3IgKGkgPSBzdGFuZGFyZF9vcGNvZGVzW29wX2Nv ZGUgLSAxXTsgaSA+IDAgOyAtLWkpCiAgICAgICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgICAgcHJpbnRmICgiMHglbHglcyIsIHJlYWRfbGViMTI4 IChkYXRhLCAmYnl0ZXNfcmVhZCwgMCksCisgICAgICAgICAgICAgICAgICBw cmludGYgKCIweCUiIEJGRF9WTUFfRk1UICJ4JXMiLAorCQkJICByZWFkX2xl YjEyOCAoZGF0YSwgJmJ5dGVzX3JlYWQsIDApLAogICAgICAgICAgICAgICAg ICAgICAgICAgICBpID09IDEgPyAiIiA6ICIsICIpOwogICAgICAgICAgICAg ICAgICAgZGF0YSArPSBieXRlc19yZWFkOwogICAgICAgICAgICAgICAgIH0K QEAgLTMwNzYsNyArMzEwMyw3IEBAIGRpc3BsYXlfZGVidWdfcHVibmFtZXMg KHN0cnVjdCBkd2FyZl9zZWMKIAkgICYmIG51bV9kZWJ1Z19pbmZvX2VudHJp ZXMgPiAwCiAJICAmJiBmaW5kX2RlYnVnX2luZm9fZm9yX29mZnNldCAobmFt ZXMucG5fb2Zmc2V0KSA9PSBOVUxMKQogCXdhcm4gKF8oIi5kZWJ1Z19pbmZv IG9mZnNldCBvZiAweCVseCBpbiAlcyBzZWN0aW9uIGRvZXMgbm90IHBvaW50 IHRvIGEgQ1UgaGVhZGVyLlxuIiksCi0JICAgICAgbmFtZXMucG5fb2Zmc2V0 LCBzZWN0aW9uLT5uYW1lKTsKKwkgICAgICAodW5zaWduZWQgbG9uZykgbmFt ZXMucG5fb2Zmc2V0LCBzZWN0aW9uLT5uYW1lKTsKIAogICAgICAgbmFtZXMu cG5fc2l6ZSA9IGJ5dGVfZ2V0IChkYXRhLCBvZmZzZXRfc2l6ZSk7CiAgICAg ICBkYXRhICs9IG9mZnNldF9zaXplOwpAQCAtMzA5NywxMyArMzEyNCwxMyBA QCBkaXNwbGF5X2RlYnVnX3B1Ym5hbWVzIChzdHJ1Y3QgZHdhcmZfc2VjCiAJ fQogCiAgICAgICBwcmludGYgKF8oIiAgTGVuZ3RoOiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICVsZFxuIiksCi0JICAgICAgbmFtZXMucG5fbGVu Z3RoKTsKKwkgICAgICAobG9uZykgbmFtZXMucG5fbGVuZ3RoKTsKICAgICAg IHByaW50ZiAoXygiICBWZXJzaW9uOiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJWRcbiIpLAogCSAgICAgIG5hbWVzLnBuX3ZlcnNpb24pOwogICAg ICAgcHJpbnRmIChfKCIgIE9mZnNldCBpbnRvIC5kZWJ1Z19pbmZvIHNlY3Rp b246ICAgICAweCVseFxuIiksCi0JICAgICAgbmFtZXMucG5fb2Zmc2V0KTsK KwkgICAgICAodW5zaWduZWQgbG9uZykgbmFtZXMucG5fb2Zmc2V0KTsKICAg ICAgIHByaW50ZiAoXygiICBTaXplIG9mIGFyZWEgaW4gLmRlYnVnX2luZm8g c2VjdGlvbjogJWxkXG4iKSwKLQkgICAgICBuYW1lcy5wbl9zaXplKTsKKwkg ICAgICAobG9uZykgbmFtZXMucG5fc2l6ZSk7CiAKICAgICAgIHByaW50ZiAo XygiXG4gICAgT2Zmc2V0XHROYW1lXG4iKSk7CiAKQEAgLTMzMjMsNyArMzM1 MCw3IEBAIGRpc3BsYXlfZGVidWdfbG9jIChzdHJ1Y3QgZHdhcmZfc2VjdGlv biAKICAgLyogRFdBUkYgc2VjdGlvbnMgdW5kZXIgTWFjaC1PIGhhdmUgbm9u LXplcm8gYWRkcmVzc2VzLiAgKi8KICAgaWYgKGRlYnVnX2luZm9ybWF0aW9u IFtmaXJzdF0ubnVtX2xvY19vZmZzZXRzID4gMAogICAgICAgJiYgZGVidWdf aW5mb3JtYXRpb24gW2ZpcnN0XS5sb2Nfb2Zmc2V0cyBbMF0gIT0gc2VjdGlv bi0+YWRkcmVzcykKLSAgICB3YXJuIChfKCJMb2NhdGlvbiBsaXN0cyBpbiAl cyBzZWN0aW9uIHN0YXJ0IGF0IDB4JWx4XG4iKSwKKyAgICB3YXJuIChfKCJM b2NhdGlvbiBsaXN0cyBpbiAlcyBzZWN0aW9uIHN0YXJ0IGF0IDB4JSIgQkZE X1ZNQV9GTVQgInhcbiIpLAogCSAgc2VjdGlvbi0+bmFtZSwgZGVidWdfaW5m b3JtYXRpb24gW2ZpcnN0XS5sb2Nfb2Zmc2V0cyBbMF0pOwogCiAgIHByaW50 ZiAoXygiQ29udGVudHMgb2YgdGhlICVzIHNlY3Rpb246XG5cbiIpLCBzZWN0 aW9uLT5uYW1lKTsKQEAgLTM1OTYsNyArMzYyMyw3IEBAIGRpc3BsYXlfZGVi dWdfYXJhbmdlcyAoc3RydWN0IGR3YXJmX3NlY3QKIAkgICYmIG51bV9kZWJ1 Z19pbmZvX2VudHJpZXMgPiAwCiAJICAmJiBmaW5kX2RlYnVnX2luZm9fZm9y X29mZnNldCAoYXJhbmdlLmFyX2luZm9fb2Zmc2V0KSA9PSBOVUxMKQogCXdh cm4gKF8oIi5kZWJ1Z19pbmZvIG9mZnNldCBvZiAweCVseCBpbiAlcyBzZWN0 aW9uIGRvZXMgbm90IHBvaW50IHRvIGEgQ1UgaGVhZGVyLlxuIiksCi0JICAg ICAgYXJhbmdlLmFyX2luZm9fb2Zmc2V0LCBzZWN0aW9uLT5uYW1lKTsKKwkg ICAgICAodW5zaWduZWQgbG9uZykgYXJhbmdlLmFyX2luZm9fb2Zmc2V0LCBz ZWN0aW9uLT5uYW1lKTsKIAogICAgICAgYXJhbmdlLmFyX3BvaW50ZXJfc2l6 ZSA9IGJ5dGVfZ2V0IChoZHJwdHIsIDEpOwogICAgICAgaGRycHRyICs9IDE7 CkBAIC0zNjEwLDkgKzM2MzcsMTEgQEAgZGlzcGxheV9kZWJ1Z19hcmFuZ2Vz IChzdHJ1Y3QgZHdhcmZfc2VjdAogCSAgYnJlYWs7CiAJfQogCi0gICAgICBw cmludGYgKF8oIiAgTGVuZ3RoOiAgICAgICAgICAgICAgICAgICAlbGRcbiIp LCBhcmFuZ2UuYXJfbGVuZ3RoKTsKKyAgICAgIHByaW50ZiAoXygiICBMZW5n dGg6ICAgICAgICAgICAgICAgICAgICVsZFxuIiksCisJICAgICAgKGxvbmcp IGFyYW5nZS5hcl9sZW5ndGgpOwogICAgICAgcHJpbnRmIChfKCIgIFZlcnNp b246ICAgICAgICAgICAgICAgICAgJWRcbiIpLCBhcmFuZ2UuYXJfdmVyc2lv bik7Ci0gICAgICBwcmludGYgKF8oIiAgT2Zmc2V0IGludG8gLmRlYnVnX2lu Zm86ICAweCVseFxuIiksIGFyYW5nZS5hcl9pbmZvX29mZnNldCk7CisgICAg ICBwcmludGYgKF8oIiAgT2Zmc2V0IGludG8gLmRlYnVnX2luZm86ICAweCVs eFxuIiksCisJICAgICAgKHVuc2lnbmVkIGxvbmcpIGFyYW5nZS5hcl9pbmZv X29mZnNldCk7CiAgICAgICBwcmludGYgKF8oIiAgUG9pbnRlciBTaXplOiAg ICAgICAgICAgICAlZFxuIiksIGFyYW5nZS5hcl9wb2ludGVyX3NpemUpOwog ICAgICAgcHJpbnRmIChfKCIgIFNlZ21lbnQgU2l6ZTogICAgICAgICAgICAg JWRcbiIpLCBhcmFuZ2UuYXJfc2VnbWVudF9zaXplKTsKIApJbmRleDogc3Jj L2JpbnV0aWxzL2R3YXJmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g c3JjLm9yaWcvYmludXRpbHMvZHdhcmYuaAkyMDExLTAyLTE3IDExOjAwOjM0 LjAwMDAwMDAwMCArMDEwMAorKysgc3JjL2JpbnV0aWxzL2R3YXJmLmgJMjAx MS0wMi0xOCAxMDoyNTozNC42MDg4NDY4MDAgKzAxMDAKQEAgLTIyLDYgKzIy LDkyIEBACiB0eXBlZGVmIHVuc2lnbmVkIEhPU1RfV0lERVNUX0lOVCBkd2Fy Zl92bWE7CiB0eXBlZGVmIHVuc2lnbmVkIEhPU1RfV0lERVNUX0lOVCBkd2Fy Zl9zaXplX3R5cGU7CiAKKy8qIFN0cnVjdHVyZSBmb3VuZCBpbiB0aGUgLmRl YnVnX2xpbmUgc2VjdGlvbi4gICovCit0eXBlZGVmIHN0cnVjdAoreworICB1 bnNpZ25lZCBjaGFyIGxpX2xlbmd0aCAgICAgICAgICBbNF07CisgIHVuc2ln bmVkIGNoYXIgbGlfdmVyc2lvbiAgICAgICAgIFsyXTsKKyAgdW5zaWduZWQg Y2hhciBsaV9wcm9sb2d1ZV9sZW5ndGggWzRdOworICB1bnNpZ25lZCBjaGFy IGxpX21pbl9pbnNuX2xlbmd0aCBbMV07CisgIHVuc2lnbmVkIGNoYXIgbGlf ZGVmYXVsdF9pc19zdG10IFsxXTsKKyAgdW5zaWduZWQgY2hhciBsaV9saW5l X2Jhc2UgICAgICAgWzFdOworICB1bnNpZ25lZCBjaGFyIGxpX2xpbmVfcmFu Z2UgICAgICBbMV07CisgIHVuc2lnbmVkIGNoYXIgbGlfb3Bjb2RlX2Jhc2Ug ICAgIFsxXTsKK30KK0RXQVJGMl9FeHRlcm5hbF9MaW5lSW5mbzsKKwordHlw ZWRlZiBzdHJ1Y3QKK3sKKyAgYmZkX3ZtYQkgbGlfbGVuZ3RoOworICB1bnNp Z25lZCBzaG9ydCBsaV92ZXJzaW9uOworICB1bnNpZ25lZCBpbnQgICBsaV9w cm9sb2d1ZV9sZW5ndGg7CisgIHVuc2lnbmVkIGNoYXIgIGxpX21pbl9pbnNu X2xlbmd0aDsKKyAgdW5zaWduZWQgY2hhciAgbGlfbWF4X29wc19wZXJfaW5z bjsKKyAgdW5zaWduZWQgY2hhciAgbGlfZGVmYXVsdF9pc19zdG10OworICBp bnQgICAgICAgICAgICBsaV9saW5lX2Jhc2U7CisgIHVuc2lnbmVkIGNoYXIg IGxpX2xpbmVfcmFuZ2U7CisgIHVuc2lnbmVkIGNoYXIgIGxpX29wY29kZV9i YXNlOworfQorRFdBUkYyX0ludGVybmFsX0xpbmVJbmZvOworCisvKiBTdHJ1 Y3R1cmUgZm91bmQgaW4gLmRlYnVnX3B1Ym5hbWVzIHNlY3Rpb24uICAqLwor dHlwZWRlZiBzdHJ1Y3QKK3sKKyAgdW5zaWduZWQgY2hhciBwbl9sZW5ndGgg IFs0XTsKKyAgdW5zaWduZWQgY2hhciBwbl92ZXJzaW9uIFsyXTsKKyAgdW5z aWduZWQgY2hhciBwbl9vZmZzZXQgIFs0XTsKKyAgdW5zaWduZWQgY2hhciBw bl9zaXplICAgIFs0XTsKK30KK0RXQVJGMl9FeHRlcm5hbF9QdWJOYW1lczsK KwordHlwZWRlZiBzdHJ1Y3QKK3sKKyAgYmZkX3ZtYQkgcG5fbGVuZ3RoOwor ICB1bnNpZ25lZCBzaG9ydCBwbl92ZXJzaW9uOworICBiZmRfdm1hCSBwbl9v ZmZzZXQ7CisgIGJmZF92bWEJIHBuX3NpemU7Cit9CitEV0FSRjJfSW50ZXJu YWxfUHViTmFtZXM7CisKKy8qIFN0cnVjdHVyZSBmb3VuZCBpbiAuZGVidWdf aW5mbyBzZWN0aW9uLiAgKi8KK3R5cGVkZWYgc3RydWN0Cit7CisgIHVuc2ln bmVkIGNoYXIgIGN1X2xlbmd0aCAgICAgICAgWzRdOworICB1bnNpZ25lZCBj aGFyICBjdV92ZXJzaW9uICAgICAgIFsyXTsKKyAgdW5zaWduZWQgY2hhciAg Y3VfYWJicmV2X29mZnNldCBbNF07CisgIHVuc2lnbmVkIGNoYXIgIGN1X3Bv aW50ZXJfc2l6ZSAgWzFdOworfQorRFdBUkYyX0V4dGVybmFsX0NvbXBVbml0 OworCit0eXBlZGVmIHN0cnVjdAoreworICBiZmRfdm1hCSBjdV9sZW5ndGg7 CisgIHVuc2lnbmVkIHNob3J0IGN1X3ZlcnNpb247CisgIGJmZF92bWEJIGN1 X2FiYnJldl9vZmZzZXQ7CisgIHVuc2lnbmVkIGNoYXIgIGN1X3BvaW50ZXJf c2l6ZTsKK30KK0RXQVJGMl9JbnRlcm5hbF9Db21wVW5pdDsKKwordHlwZWRl ZiBzdHJ1Y3QKK3sKKyAgdW5zaWduZWQgY2hhciAgYXJfbGVuZ3RoICAgICAg IFs0XTsKKyAgdW5zaWduZWQgY2hhciAgYXJfdmVyc2lvbiAgICAgIFsyXTsK KyAgdW5zaWduZWQgY2hhciAgYXJfaW5mb19vZmZzZXQgIFs0XTsKKyAgdW5z aWduZWQgY2hhciAgYXJfcG9pbnRlcl9zaXplIFsxXTsKKyAgdW5zaWduZWQg Y2hhciAgYXJfc2VnbWVudF9zaXplIFsxXTsKK30KK0RXQVJGMl9FeHRlcm5h bF9BUmFuZ2U7CisKK3R5cGVkZWYgc3RydWN0Cit7CisgIGJmZF92bWEJIGFy X2xlbmd0aDsKKyAgdW5zaWduZWQgc2hvcnQgYXJfdmVyc2lvbjsKKyAgYmZk X3ZtYQkgYXJfaW5mb19vZmZzZXQ7CisgIHVuc2lnbmVkIGNoYXIgIGFyX3Bv aW50ZXJfc2l6ZTsKKyAgdW5zaWduZWQgY2hhciAgYXJfc2VnbWVudF9zaXpl OworfQorRFdBUkYyX0ludGVybmFsX0FSYW5nZTsKKwogc3RydWN0IGR3YXJm X3NlY3Rpb24KIHsKICAgLyogQSBkZWJ1ZyBzZWN0aW9uIGhhcyBhIGRpZmZl cmVudCBuYW1lIHdoZW4gaXQncyBzdG9yZWQgY29tcHJlc3NlZApAQCAtNzks MTUgKzE2NSwxNSBAQCB0eXBlZGVmIHN0cnVjdAogICB1bnNpZ25lZCBpbnQg ICBwb2ludGVyX3NpemU7CiAgIHVuc2lnbmVkIGludCAgIG9mZnNldF9zaXpl OwogICBpbnQgICAgICAgICAgICBkd2FyZl92ZXJzaW9uOwotICB1bnNpZ25l ZCBsb25nICBjdV9vZmZzZXQ7Ci0gIHVuc2lnbmVkIGxvbmcJIGJhc2VfYWRk cmVzczsKKyAgYmZkX3ZtYQkgY3Vfb2Zmc2V0OworICBiZmRfdm1hCSBiYXNl X2FkZHJlc3M7CiAgIC8qIFRoaXMgaXMgYW4gYXJyYXkgb2Ygb2Zmc2V0cyB0 byB0aGUgbG9jYXRpb24gbGlzdCB0YWJsZS4gICovCi0gIHVuc2lnbmVkIGxv bmcgKmxvY19vZmZzZXRzOworICBiZmRfdm1hCSpsb2Nfb2Zmc2V0czsKICAg aW50CQkqaGF2ZV9mcmFtZV9iYXNlOwogICB1bnNpZ25lZCBpbnQgICBudW1f bG9jX29mZnNldHM7CiAgIHVuc2lnbmVkIGludCAgIG1heF9sb2Nfb2Zmc2V0 czsKICAgLyogTGlzdCBvZiAuZGVidWdfcmFuZ2VzIG9mZnNldHMgc2VlbiBp biB0aGlzIC5kZWJ1Z19pbmZvLiAgKi8KLSAgdW5zaWduZWQgbG9uZyAqcmFu Z2VfbGlzdHM7CisgIGJmZF92bWEJKnJhbmdlX2xpc3RzOwogICB1bnNpZ25l ZCBpbnQgICBudW1fcmFuZ2VfbGlzdHM7CiAgIHVuc2lnbmVkIGludCAgIG1h eF9yYW5nZV9saXN0czsKIH0KQEAgLTEzMSw1ICsyMTcsNSBAQCB2b2lkICpj bWFsbG9jIChzaXplX3QsIHNpemVfdCk7CiB2b2lkICp4Y21hbGxvYyAoc2l6 ZV90LCBzaXplX3QpOwogdm9pZCAqeGNyZWFsbG9jICh2b2lkICosIHNpemVf dCwgc2l6ZV90KTsKIAotdW5zaWduZWQgbG9uZyBpbnQgcmVhZF9sZWIxMjgg KHVuc2lnbmVkIGNoYXIgKmRhdGEsCi0JCQkgICAgICAgdW5zaWduZWQgaW50 ICpsZW5ndGhfcmV0dXJuLCBpbnQgc2lnbik7CitiZmRfdm1hIHJlYWRfbGVi MTI4ICh1bnNpZ25lZCBjaGFyICpkYXRhLAorCQkgICAgIHVuc2lnbmVkIGlu dCAqbGVuZ3RoX3JldHVybiwgaW50IHNpZ24pOwpJbmRleDogc3JjL2luY2x1 ZGUvZHdhcmYyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3JjLm9y aWcvaW5jbHVkZS9kd2FyZjIuaAkyMDExLTAyLTE3IDExOjAwOjM0LjAwMDAw MDAwMCArMDEwMAorKysgc3JjL2luY2x1ZGUvZHdhcmYyLmgJMjAxMS0wMi0x OCAxMDoyMDoxMy4yNjczMzI4MDAgKzAxMDAKQEAgLTQ0LDk1ICs0NCw4IEBA CiAvKiBUaGlzIGZpbGUgaXMgc2hhcmVkIGJldHdlZW4gR0NDIGFuZCBHREIs IGFuZCBzaG91bGQgbm90IGNvbnRhaW4KICAgIHByb3RvdHlwZXMuICAqLwog Ci0jaWZuZGVmIF9FTEZfRFdBUkYyX0gKLSNkZWZpbmUgX0VMRl9EV0FSRjJf SAotCi0vKiBTdHJ1Y3R1cmUgZm91bmQgaW4gdGhlIC5kZWJ1Z19saW5lIHNl Y3Rpb24uICAqLwotdHlwZWRlZiBzdHJ1Y3QKLXsKLSAgdW5zaWduZWQgY2hh ciBsaV9sZW5ndGggICAgICAgICAgWzRdOwotICB1bnNpZ25lZCBjaGFyIGxp X3ZlcnNpb24gICAgICAgICBbMl07Ci0gIHVuc2lnbmVkIGNoYXIgbGlfcHJv bG9ndWVfbGVuZ3RoIFs0XTsKLSAgdW5zaWduZWQgY2hhciBsaV9taW5faW5z bl9sZW5ndGggWzFdOwotICB1bnNpZ25lZCBjaGFyIGxpX2RlZmF1bHRfaXNf c3RtdCBbMV07Ci0gIHVuc2lnbmVkIGNoYXIgbGlfbGluZV9iYXNlICAgICAg IFsxXTsKLSAgdW5zaWduZWQgY2hhciBsaV9saW5lX3JhbmdlICAgICAgWzFd OwotICB1bnNpZ25lZCBjaGFyIGxpX29wY29kZV9iYXNlICAgICBbMV07Ci19 Ci1EV0FSRjJfRXh0ZXJuYWxfTGluZUluZm87Ci0KLXR5cGVkZWYgc3RydWN0 Ci17Ci0gIHVuc2lnbmVkIGxvbmcgIGxpX2xlbmd0aDsKLSAgdW5zaWduZWQg c2hvcnQgbGlfdmVyc2lvbjsKLSAgdW5zaWduZWQgaW50ICAgbGlfcHJvbG9n dWVfbGVuZ3RoOwotICB1bnNpZ25lZCBjaGFyICBsaV9taW5faW5zbl9sZW5n dGg7Ci0gIHVuc2lnbmVkIGNoYXIgIGxpX21heF9vcHNfcGVyX2luc247Ci0g IHVuc2lnbmVkIGNoYXIgIGxpX2RlZmF1bHRfaXNfc3RtdDsKLSAgaW50ICAg ICAgICAgICAgbGlfbGluZV9iYXNlOwotICB1bnNpZ25lZCBjaGFyICBsaV9s aW5lX3JhbmdlOwotICB1bnNpZ25lZCBjaGFyICBsaV9vcGNvZGVfYmFzZTsK LX0KLURXQVJGMl9JbnRlcm5hbF9MaW5lSW5mbzsKLQotLyogU3RydWN0dXJl IGZvdW5kIGluIC5kZWJ1Z19wdWJuYW1lcyBzZWN0aW9uLiAgKi8KLXR5cGVk ZWYgc3RydWN0Ci17Ci0gIHVuc2lnbmVkIGNoYXIgcG5fbGVuZ3RoICBbNF07 Ci0gIHVuc2lnbmVkIGNoYXIgcG5fdmVyc2lvbiBbMl07Ci0gIHVuc2lnbmVk IGNoYXIgcG5fb2Zmc2V0ICBbNF07Ci0gIHVuc2lnbmVkIGNoYXIgcG5fc2l6 ZSAgICBbNF07Ci19Ci1EV0FSRjJfRXh0ZXJuYWxfUHViTmFtZXM7Ci0KLXR5 cGVkZWYgc3RydWN0Ci17Ci0gIHVuc2lnbmVkIGxvbmcgIHBuX2xlbmd0aDsK LSAgdW5zaWduZWQgc2hvcnQgcG5fdmVyc2lvbjsKLSAgdW5zaWduZWQgbG9u ZyAgcG5fb2Zmc2V0OwotICB1bnNpZ25lZCBsb25nICBwbl9zaXplOwotfQot RFdBUkYyX0ludGVybmFsX1B1Yk5hbWVzOwotCi0vKiBTdHJ1Y3R1cmUgZm91 bmQgaW4gLmRlYnVnX2luZm8gc2VjdGlvbi4gICovCi10eXBlZGVmIHN0cnVj dAotewotICB1bnNpZ25lZCBjaGFyICBjdV9sZW5ndGggICAgICAgIFs0XTsK LSAgdW5zaWduZWQgY2hhciAgY3VfdmVyc2lvbiAgICAgICBbMl07Ci0gIHVu c2lnbmVkIGNoYXIgIGN1X2FiYnJldl9vZmZzZXQgWzRdOwotICB1bnNpZ25l ZCBjaGFyICBjdV9wb2ludGVyX3NpemUgIFsxXTsKLX0KLURXQVJGMl9FeHRl cm5hbF9Db21wVW5pdDsKLQotdHlwZWRlZiBzdHJ1Y3QKLXsKLSAgdW5zaWdu ZWQgbG9uZyAgY3VfbGVuZ3RoOwotICB1bnNpZ25lZCBzaG9ydCBjdV92ZXJz aW9uOwotICB1bnNpZ25lZCBsb25nICBjdV9hYmJyZXZfb2Zmc2V0OwotICB1 bnNpZ25lZCBjaGFyICBjdV9wb2ludGVyX3NpemU7Ci19Ci1EV0FSRjJfSW50 ZXJuYWxfQ29tcFVuaXQ7Ci0KLXR5cGVkZWYgc3RydWN0Ci17Ci0gIHVuc2ln bmVkIGNoYXIgIGFyX2xlbmd0aCAgICAgICBbNF07Ci0gIHVuc2lnbmVkIGNo YXIgIGFyX3ZlcnNpb24gICAgICBbMl07Ci0gIHVuc2lnbmVkIGNoYXIgIGFy X2luZm9fb2Zmc2V0ICBbNF07Ci0gIHVuc2lnbmVkIGNoYXIgIGFyX3BvaW50 ZXJfc2l6ZSBbMV07Ci0gIHVuc2lnbmVkIGNoYXIgIGFyX3NlZ21lbnRfc2l6 ZSBbMV07Ci19Ci1EV0FSRjJfRXh0ZXJuYWxfQVJhbmdlOwotCi10eXBlZGVm IHN0cnVjdAotewotICB1bnNpZ25lZCBsb25nICBhcl9sZW5ndGg7Ci0gIHVu c2lnbmVkIHNob3J0IGFyX3ZlcnNpb247Ci0gIHVuc2lnbmVkIGxvbmcgIGFy X2luZm9fb2Zmc2V0OwotICB1bnNpZ25lZCBjaGFyICBhcl9wb2ludGVyX3Np emU7Ci0gIHVuc2lnbmVkIGNoYXIgIGFyX3NlZ21lbnRfc2l6ZTsKLX0KLURX QVJGMl9JbnRlcm5hbF9BUmFuZ2U7Ci0KKyNpZm5kZWYgX0RXQVJGMl9ICisj ZGVmaW5lIF9EV0FSRjJfSAogCiAvKiBUYWcgbmFtZXMgYW5kIGNvZGVzLiAg Ki8KIGVudW0gZHdhcmZfdGFnCkBAIC05NTMsNCArODY2LDQgQEAgZW51bSBk d2FyZl9tYWNpbmZvX3JlY29yZF90eXBlCiAKICNkZWZpbmUgRFdfRUhfUEVf aW5kaXJlY3QJMHg4MAogCi0jZW5kaWYgLyogX0VMRl9EV0FSRjJfSCAqLwor I2VuZGlmIC8qIF9EV0FSRjJfSCAqLwo= --0016e64a864a0730ad049c8b7101--