From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5960 invoked by alias); 24 Aug 2009 21:14:08 -0000 Received: (qmail 5951 invoked by uid 22791); 24 Aug 2009 21:14:05 -0000 X-SWARE-Spam-Status: No, hits=1.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_37,KAM_STOCKTIP,SARE_MSGID_LONG40 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.45.13) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 24 Aug 2009 21:13:57 +0000 Received: from spaceape7.eur.corp.google.com (spaceape7.eur.corp.google.com [172.28.16.141]) by smtp-out.google.com with ESMTP id n7OLDreR011783 for ; Mon, 24 Aug 2009 14:13:53 -0700 Received: from ywh36 (ywh36.prod.google.com [10.192.8.36]) by spaceape7.eur.corp.google.com with ESMTP id n7OLDoiE014009 for ; Mon, 24 Aug 2009 14:13:50 -0700 Received: by ywh36 with SMTP id 36so3562962ywh.31 for ; Mon, 24 Aug 2009 14:13:50 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.59.12 with SMTP id h12mr9019407yba.39.1251148430017; Mon, 24 Aug 2009 14:13:50 -0700 (PDT) In-Reply-To: References: <20090523232414.BED2B846C2@localhost> <200907022344.12495.pedro@codesourcery.com> <200907201402.47393.pedro@codesourcery.com> Date: Mon, 24 Aug 2009 22:02:00 -0000 Message-ID: Subject: Re: [RFA] Fix too many "no debugging symbols found" warnings. From: Doug Evans To: Tom Tromey Cc: Pedro Alves , Eli Zaretskii , gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd6ecf6bb850c0471e9b167 X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-08/txt/msg00398.txt.bz2 --000e0cd6ecf6bb850c0471e9b167 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2261 On Mon, Jul 27, 2009 at 9:48 AM, Tom Tromey wrote: >>>>>> "Doug" =3D=3D Doug Evans writes: > > Doug> Maybe the thing to do is stick with the old format *if* using MI? > Doug> If/when an MI command is added frontends can then just use that ins= tead. > > I think that might be ok if we had a plan to remove the old code after > some time. =A0My concern is that we will otherwise end up with multiple > layers of old formatting code. > > This particular function seems overdue for ui-out-ification. > This would let us keep the old version for MI[12], and then properly > evolve the output for future versions MI. > > Tom > Is this what you had in mind? 2009-08-24 Doug Evans * NEWS: Add note on "info sharedlibrary". Remove note on "set print symbol-loading". * main.c (captured_main): Pass !batch for from_tty when calling symbol_file_add_main. * objfiles.h (objfile_has_partial_symbols): Declare. (objfile_has_full_symbols): Declare. * objfiles.c (objfile_has_partial_symbols): New function. (have_partial_symbols): Use it. (objfile_has_full_symbols): New function. (have_full_symbols): Use it. * solib.c: Include interps.h. (solib_read_symbols): Back out patch of 2008-07-10. Add test for info_verbose for symbol loading messages for consistency with symfile.c. (info_sharedlibrary_command): Handle optional parameter of regex of libraries to list. Inform user of libraries without debugging info. Rewrite to use ui_out routines to format output. * symfile.c (print_symbol_loading): Delete. (symbol_file_add_with_addrs_or_offsets): Back out patch of 2008-07-= 10. Print "no debugging symbols found" only if from_tty || info_verbose; and only check file being loaded, not all files. (reread_symbols): Test file being loaded for whether it has symbols, not all files. (__initialize_symfile): Delete `set print symbol-loading'. * symfile.h (print_symbol_loading): Delete. * doc/gdb.texinfo: Delete `set print symbol-loading'. Add note on new optional regex arg to `info sharedlibrary'. --000e0cd6ecf6bb850c0471e9b167 Content-Type: text/plain; charset=US-ASCII; name="gdb-090824-info-shared-1.patch.txt" Content-Disposition: attachment; filename="gdb-090824-info-shared-1.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fyrpg9wu0 Content-length: 22920 MjAwOS0wOC0yNCAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCSog TkVXUzogQWRkIG5vdGUgb24gImluZm8gc2hhcmVkbGlicmFyeSIuCglSZW1v dmUgbm90ZSBvbiAic2V0IHByaW50IHN5bWJvbC1sb2FkaW5nIi4KCSogbWFp bi5jIChjYXB0dXJlZF9tYWluKTogUGFzcyAhYmF0Y2ggZm9yIGZyb21fdHR5 IHdoZW4gY2FsbGluZwoJc3ltYm9sX2ZpbGVfYWRkX21haW4uCgkqIG9iamZp bGVzLmggKG9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyk6IERlY2xhcmUu Cgkob2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xzKTogRGVjbGFyZS4KCSogb2Jq ZmlsZXMuYyAob2JqZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xzKTogTmV3IGZ1 bmN0aW9uLgoJKGhhdmVfcGFydGlhbF9zeW1ib2xzKTogVXNlIGl0LgoJKG9i amZpbGVfaGFzX2Z1bGxfc3ltYm9scyk6IE5ldyBmdW5jdGlvbi4KCShoYXZl X2Z1bGxfc3ltYm9scyk6IFVzZSBpdC4KCSogc29saWIuYzogSW5jbHVkZSBp bnRlcnBzLmguCgkoc29saWJfcmVhZF9zeW1ib2xzKTogQmFjayBvdXQgcGF0 Y2ggb2YgMjAwOC0wNy0xMC4KCUFkZCB0ZXN0IGZvciBpbmZvX3ZlcmJvc2Ug Zm9yIHN5bWJvbCBsb2FkaW5nIG1lc3NhZ2VzIGZvcgoJY29uc2lzdGVuY3kg d2l0aCBzeW1maWxlLmMuCgkoaW5mb19zaGFyZWRsaWJyYXJ5X2NvbW1hbmQp OiBIYW5kbGUgb3B0aW9uYWwgcGFyYW1ldGVyIG9mIHJlZ2V4IG9mCglsaWJy YXJpZXMgdG8gbGlzdC4gIEluZm9ybSB1c2VyIG9mIGxpYnJhcmllcyB3aXRo b3V0IGRlYnVnZ2luZyBpbmZvLgoJUmV3cml0ZSB0byB1c2UgdWlfb3V0IHJv dXRpbmVzIHRvIGZvcm1hdCBvdXRwdXQuCgkqIHN5bWZpbGUuYyAocHJpbnRf c3ltYm9sX2xvYWRpbmcpOiBEZWxldGUuCgkoc3ltYm9sX2ZpbGVfYWRkX3dp dGhfYWRkcnNfb3Jfb2Zmc2V0cyk6IEJhY2sgb3V0IHBhdGNoIG9mIDIwMDgt MDctMTAuCglQcmludCAibm8gZGVidWdnaW5nIHN5bWJvbHMgZm91bmQiIG9u bHkgaWYgZnJvbV90dHkgfHwgaW5mb192ZXJib3NlOwoJYW5kIG9ubHkgY2hl Y2sgZmlsZSBiZWluZyBsb2FkZWQsIG5vdCBhbGwgZmlsZXMuCgkocmVyZWFk X3N5bWJvbHMpOiBUZXN0IGZpbGUgYmVpbmcgbG9hZGVkIGZvciB3aGV0aGVy IGl0IGhhcyBzeW1ib2xzLAoJbm90IGFsbCBmaWxlcy4KCShfX2luaXRpYWxp emVfc3ltZmlsZSk6IERlbGV0ZSBgc2V0IHByaW50IHN5bWJvbC1sb2FkaW5n Jy4KCSogc3ltZmlsZS5oIChwcmludF9zeW1ib2xfbG9hZGluZyk6IERlbGV0 ZS4KCgkqIGRvYy9nZGIudGV4aW5mbzogRGVsZXRlIGBzZXQgcHJpbnQgc3lt Ym9sLWxvYWRpbmcnLgoJQWRkIG5vdGUgb24gbmV3IG9wdGlvbmFsIHJlZ2V4 IGFyZyB0byBgaW5mbyBzaGFyZWRsaWJyYXJ5Jy4KCkluZGV4OiBORVdTCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9n ZGIvTkVXUyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMjYKZGlmZiAtdSAt cCAtcjEuMzI2IE5FV1MKLS0tIE5FV1MJMjAgQXVnIDIwMDkgMTg6MDI6NDcg LTAwMDAJMS4zMjYKKysrIE5FV1MJMjQgQXVnIDIwMDkgMjA6MDg6MzAgLTAw MDAKQEAgLTQ4LDYgKzQ4LDkgQEAgcmVtb3RlIHRhcmdldHMuICBUbyB1c2Ug dGhpcyBmZWF0dXJlLCBzcAogd2l0aCB0aGUgYHJlbW90ZTonIHByZWZpeCwg ZWl0aGVyIHZpYSB0aGUgYHNldCBzeXNyb290JyBjb21tYW5kIG9yIHZpYQog dGhlIGAtLXdpdGgtc3lzcm9vdCcgY29uZmlndXJlLXRpbWUgb3B0aW9uLgog CisqICJpbmZvIHNoYXJlZGxpYnJhcnkiIG5vdyB0YWtlcyBhbiBvcHRpb25h bCByZWdleCBvZiBsaWJyYXJpZXMgdG8gc2hvdywKK2FuZCBpdCBub3cgcmVw b3J0cyBpZiBhIHNoYXJlZCBsaWJyYXJ5IGhhcyBubyBkZWJ1Z2dpbmcgaW5m b3JtYXRpb24uCisKICogQ29tbWFuZHMgYHNldCBkZWJ1Zy1maWxlLWRpcmVj dG9yeScsIGBzZXQgc29saWItc2VhcmNoLXBhdGgnIGFuZCBgc2V0IGFyZ3Mn CiBub3cgY29tcGxldGUgb24gZmlsZSBuYW1lcy4KIApAQCAtMjc4LDEwICsy ODEsNiBAQCBzZXQgc2ggY2FsbGluZy1jb252ZW50aW9uCiBzaG93IHNoIGNh bGxpbmctY29udmVudGlvbgogICBDb250cm9sIHRoZSBjYWxsaW5nIGNvbnZl bnRpb24gdXNlZCB3aGVuIGNhbGxpbmcgU0ggdGFyZ2V0IGZ1bmN0aW9ucy4K IAotc2V0IHByaW50IHN5bWJvbC1sb2FkaW5nCi1zaG93IHByaW50IHN5bWJv bC1sb2FkaW5nCi0gIENvbnRyb2wgcHJpbnRpbmcgb2Ygc3ltYm9sIGxvYWRp bmcgbWVzc2FnZXMuCi0KIHNldCBkZWJ1ZyB0aW1lc3RhbXAKIHNob3cgZGVi dWcgdGltZXN0YW1wCiAgIENvbnRyb2wgZGlzcGxheSBvZiB0aW1lc3RhbXBz IHdpdGggR0RCIGRlYnVnZ2luZyBvdXRwdXQuCkluZGV4OiBtYWluLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dk Yi9tYWluLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzYKZGlmZiAtdSAt cCAtcjEuNzYgbWFpbi5jCi0tLSBtYWluLmMJMjcgQXByIDIwMDkgMTA6MjQ6 MDggLTAwMDAJMS43NgorKysgbWFpbi5jCTI0IEF1ZyAyMDA5IDIwOjA4OjMw IC0wMDAwCkBAIC04MDEsMTQgKzgwMSwxNCBAQCBFeGNlc3MgY29tbWFuZCBs aW5lIGFyZ3VtZW50cyBpZ25vcmVkLiAoCiAgICAgICAgICBvcGVuIGl0LCBi ZXR0ZXIgb25seSBwcmludCBvbmUgZXJyb3IgbWVzc2FnZS4KICAgICAgICAg IGNhdGNoX2NvbW1hbmRfZXJyb3JzIHJldHVybnMgbm9uLXplcm8gb24gc3Vj Y2VzcyEgKi8KICAgICAgIGlmIChjYXRjaF9jb21tYW5kX2Vycm9ycyAoZXhl Y19maWxlX2F0dGFjaCwgZXhlY2FyZywgIWJhdGNoLCBSRVRVUk5fTUFTS19B TEwpKQotCWNhdGNoX2NvbW1hbmRfZXJyb3JzIChzeW1ib2xfZmlsZV9hZGRf bWFpbiwgc3ltYXJnLCAwLCBSRVRVUk5fTUFTS19BTEwpOworCWNhdGNoX2Nv bW1hbmRfZXJyb3JzIChzeW1ib2xfZmlsZV9hZGRfbWFpbiwgc3ltYXJnLCAh YmF0Y2gsIFJFVFVSTl9NQVNLX0FMTCk7CiAgICAgfQogICBlbHNlCiAgICAg ewogICAgICAgaWYgKGV4ZWNhcmcgIT0gTlVMTCkKIAljYXRjaF9jb21tYW5k X2Vycm9ycyAoZXhlY19maWxlX2F0dGFjaCwgZXhlY2FyZywgIWJhdGNoLCBS RVRVUk5fTUFTS19BTEwpOwogICAgICAgaWYgKHN5bWFyZyAhPSBOVUxMKQot CWNhdGNoX2NvbW1hbmRfZXJyb3JzIChzeW1ib2xfZmlsZV9hZGRfbWFpbiwg c3ltYXJnLCAwLCBSRVRVUk5fTUFTS19BTEwpOworCWNhdGNoX2NvbW1hbmRf ZXJyb3JzIChzeW1ib2xfZmlsZV9hZGRfbWFpbiwgc3ltYXJnLCAhYmF0Y2gs IFJFVFVSTl9NQVNLX0FMTCk7CiAgICAgfQogCiAgIGlmIChjb3JlYXJnICYm IHBpZGFyZykKSW5kZXg6IG9iamZpbGVzLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxlcy5jLHYK cmV0cmlldmluZyByZXZpc2lvbiAxLjkzCmRpZmYgLXUgLXAgLXIxLjkzIG9i amZpbGVzLmMKLS0tIG9iamZpbGVzLmMJMjEgQXVnIDIwMDkgMTc6NTc6MTcg LTAwMDAJMS45MworKysgb2JqZmlsZXMuYwkyNCBBdWcgMjAwOSAyMDowODoz MCAtMDAwMApAQCAtNzAwLDYgKzcwMCwyMiBAQCBvYmpmaWxlX3JlbG9jYXRl IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCiAgIGJyZWFrcG9pbnRfcmVfc2V0 ICgpOwogfQogDAorLyogUmV0dXJuIG5vbi16ZXJvIGlmIE9CSkZJTEUgaGFz IHBhcnRpYWwgc3ltYm9scy4gICovCisKK2ludAorb2JqZmlsZV9oYXNfcGFy dGlhbF9zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK3sKKyAg cmV0dXJuIG9iamZpbGUtPnBzeW10YWJzICE9IE5VTEw7Cit9CisKKy8qIFJl dHVybiBub24temVybyBpZiBPQkpGSUxFIGhhcyBmdWxsIHN5bWJvbHMuICAq LworCitpbnQKK29iamZpbGVfaGFzX2Z1bGxfc3ltYm9scyAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUpCit7CisgIHJldHVybiBvYmpmaWxlLT5zeW10YWJz ICE9IE5VTEw7Cit9CisKIC8qIE1hbnkgcGxhY2VzIGluIGdkYiB3YW50IHRv IHRlc3QganVzdCB0byBzZWUgaWYgd2UgaGF2ZSBhbnkgcGFydGlhbAogICAg c3ltYm9scyBhdmFpbGFibGUuICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgemVy byBpZiBub25lIGFyZSBjdXJyZW50bHkKICAgIGF2YWlsYWJsZSwgbm9uemVy byBvdGhlcndpc2UuICovCkBAIC03MTEsMTAgKzcyNyw4IEBAIGhhdmVfcGFy dGlhbF9zeW1ib2xzICh2b2lkKQogCiAgIEFMTF9PQkpGSUxFUyAob2ZwKQog ICB7Ci0gICAgaWYgKG9mcC0+cHN5bXRhYnMgIT0gTlVMTCkKLSAgICAgIHsK LQlyZXR1cm4gMTsKLSAgICAgIH0KKyAgICBpZiAob2JqZmlsZV9oYXNfcGFy dGlhbF9zeW1ib2xzIChvZnApKQorICAgICAgcmV0dXJuIDE7CiAgIH0KICAg cmV0dXJuIDA7CiB9CkBAIC03MzAsMTAgKzc0NCw4IEBAIGhhdmVfZnVsbF9z eW1ib2xzICh2b2lkKQogCiAgIEFMTF9PQkpGSUxFUyAob2ZwKQogICB7Ci0g ICAgaWYgKG9mcC0+c3ltdGFicyAhPSBOVUxMKQotICAgICAgewotCXJldHVy biAxOwotICAgICAgfQorICAgIGlmIChvYmpmaWxlX2hhc19mdWxsX3N5bWJv bHMgKG9mcCkpCisgICAgICByZXR1cm4gMTsKICAgfQogICByZXR1cm4gMDsK IH0KSW5kZXg6IG9iamZpbGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS Q1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9vYmpmaWxlcy5oLHYKcmV0cmll dmluZyByZXZpc2lvbiAxLjYyCmRpZmYgLXUgLXAgLXIxLjYyIG9iamZpbGVz LmgKLS0tIG9iamZpbGVzLmgJMjEgQXVnIDIwMDkgMTc6NTc6MTcgLTAwMDAJ MS42MgorKysgb2JqZmlsZXMuaAkyNCBBdWcgMjAwOSAyMDowODozMCAtMDAw MApAQCAtNDcyLDYgKzQ3MiwxMCBAQCBleHRlcm4gdm9pZCBmcmVlX2FsbF9v YmpmaWxlcyAodm9pZCk7CiAKIGV4dGVybiB2b2lkIG9iamZpbGVfcmVsb2Nh dGUgKHN0cnVjdCBvYmpmaWxlICosIHN0cnVjdCBzZWN0aW9uX29mZnNldHMg Kik7CiAKK2V4dGVybiBpbnQgb2JqZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xz IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSk7CisKK2V4dGVybiBpbnQgb2Jq ZmlsZV9oYXNfZnVsbF9zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSk7CisKIGV4dGVybiBpbnQgaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKHZvaWQp OwogCiBleHRlcm4gaW50IGhhdmVfZnVsbF9zeW1ib2xzICh2b2lkKTsKSW5k ZXg6IHNvbGliLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog L2N2cy9zcmMvc3JjL2dkYi9zb2xpYi5jLHYKcmV0cmlldmluZyByZXZpc2lv biAxLjEyNQpkaWZmIC11IC1wIC1yMS4xMjUgc29saWIuYwotLS0gc29saWIu YwkyMSBBdWcgMjAwOSAxNzo1NzoxNyAtMDAwMAkxLjEyNQorKysgc29saWIu YwkyNCBBdWcgMjAwOSAyMDowODozMCAtMDAwMApAQCAtNDYsNiArNDYsNyBA QAogI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCiAjaW5jbHVkZSAi cmVtb3RlLmgiCiAjaW5jbHVkZSAic29saWIuaCIKKyNpbmNsdWRlICJpbnRl cnBzLmgiCiAKIC8qIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyBvcGVyYXRpb25z LiAgKi8KIApAQCAtNDcyLDEyICs0NzMsMTIgQEAgc29saWJfcmVhZF9zeW1i b2xzIChzdHJ1Y3Qgc29fbGlzdCAqc28sIAogCiAgIGlmIChzby0+c3ltYm9s c19sb2FkZWQpCiAgICAgewotICAgICAgaWYgKGZyb21fdHR5KQorICAgICAg aWYgKGZyb21fdHR5IHx8IGluZm9fdmVyYm9zZSkKIAlwcmludGZfdW5maWx0 ZXJlZCAoXygiU3ltYm9scyBhbHJlYWR5IGxvYWRlZCBmb3IgJXNcbiIpLCBz by0+c29fbmFtZSk7CiAgICAgfQogICBlbHNlIGlmIChzby0+YWJmZCA9PSBO VUxMKQogICAgIHsKLSAgICAgIGlmIChmcm9tX3R0eSkKKyAgICAgIGlmIChm cm9tX3R0eSB8fCBpbmZvX3ZlcmJvc2UpCiAJcHJpbnRmX3VuZmlsdGVyZWQg KF8oIlN5bWJvbCBmaWxlIG5vdCBmb3VuZCBmb3IgJXNcbiIpLCBzby0+c29f bmFtZSk7CiAgICAgfQogICBlbHNlCkBAIC00OTMsNyArNDk0LDcgQEAgc29s aWJfcmVhZF9zeW1ib2xzIChzdHJ1Y3Qgc29fbGlzdCAqc28sIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3Igd2hpbGUgcmVhZGluZyBz aGFyZWQgbGlicmFyeSBzeW1ib2xzOlxuIik7CiAgICAgICAgICAgcmV0dXJu IDA7CiAgICAgICAgIH0KLSAgICAgIGlmIChmcm9tX3R0eSAmJiBwcmludF9z eW1ib2xfbG9hZGluZykKKyAgICAgIGlmIChmcm9tX3R0eSB8fCBpbmZvX3Zl cmJvc2UpCiAgICAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJMb2FkZWQg c3ltYm9scyBmb3IgJXNcbiIpLCBzby0+c29fbmFtZSk7CiAgICAgICBzby0+ c3ltYm9sc19sb2FkZWQgPSAxOwogICAgICAgcmV0dXJuIDE7CkBAIC03ODQs NTIgKzc4NSwxMTcgQEAgc29saWJfYWRkIChjaGFyICpwYXR0ZXJuLCBpbnQg ZnJvbV90dHksIAogICAgREVTQ1JJUFRJT04KIAogICAgV2FsayB0aHJvdWdo IHRoZSBzaGFyZWQgbGlicmFyeSBsaXN0IGFuZCBwcmludCBpbmZvcm1hdGlv bgotICAgYWJvdXQgZWFjaCBhdHRhY2hlZCBsaWJyYXJ5LgorICAgYWJvdXQg ZWFjaCBhdHRhY2hlZCBsaWJyYXJ5IG1hdGNoaW5nIFBBVFRFUk4uICBJZiBQ QVRURVJOIGlzIGVsaWRlZCwKKyAgIHByaW50IHRoZW0gYWxsLgogICovCiAK IHN0YXRpYyB2b2lkCi1pbmZvX3NoYXJlZGxpYnJhcnlfY29tbWFuZCAoY2hh ciAqaWdub3JlLCBpbnQgZnJvbV90dHkpCitpbmZvX3NoYXJlZGxpYnJhcnlf Y29tbWFuZCAoY2hhciAqcGF0dGVybiwgaW50IGZyb21fdHR5KQogewogICBz dHJ1Y3Qgc29fbGlzdCAqc28gPSBOVUxMOwkvKiBsaW5rIG1hcCBzdGF0ZSB2 YXJpYWJsZSAqLwogICBpbnQgaGVhZGVyX2RvbmUgPSAwOworICBpbnQgc29f bWlzc2luZ19kZWJ1Z19pbmZvID0gMDsKICAgaW50IGFkZHJfd2lkdGg7Cisg IGludCBucl9saWJzOworICBzdHJ1Y3QgY2xlYW51cCAqdGFibGVfY2xlYW51 cDsKKyAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSB0YXJnZXRfZ2RiYXJj aDsKKworICBpZiAocGF0dGVybikKKyAgICB7CisgICAgICBjaGFyICpyZV9l cnIgPSByZV9jb21wIChwYXR0ZXJuKTsKKworICAgICAgaWYgKHJlX2VycikK KwllcnJvciAoXygiSW52YWxpZCByZWdleHA6ICVzIiksIHJlX2Vycik7Cisg ICAgfQogCiAgIC8qICIweCIsIGEgbGl0dGxlIHdoaXRlc3BhY2UsIGFuZCB0 d28gaGV4IGRpZ2l0cyBwZXIgYnl0ZSBvZiBwb2ludGVycy4gICovCi0gIGFk ZHJfd2lkdGggPSA0ICsgKGdkYmFyY2hfcHRyX2JpdCAodGFyZ2V0X2dkYmFy Y2gpIC8gNCk7CisgIGFkZHJfd2lkdGggPSA0ICsgKGdkYmFyY2hfcHRyX2Jp dCAoZ2RiYXJjaCkgLyA0KTsKIAogICB1cGRhdGVfc29saWJfbGlzdCAoZnJv bV90dHksIDApOwogCi0gIGZvciAoc28gPSBzb19saXN0X2hlYWQ7IHNvOyBz byA9IHNvLT5uZXh0KQorICAvKiBtYWtlX2NsZWFudXBfdWlfb3V0X3RhYmxl X2JlZ2luX2VuZCBuZWVkcyB0byBrbm93IHRoZSBudW1iZXIgb2YKKyAgICAg cm93cywgc28gd2UgbmVlZCB0byBtYWtlIHR3byBwYXNzZXMgb3ZlciB0aGUg bGlicy4gICovCisKKyAgZm9yIChucl9saWJzID0gMCwgc28gPSBzb19saXN0 X2hlYWQ7IHNvOyBzbyA9IHNvLT5uZXh0KQogICAgIHsKICAgICAgIGlmIChz by0+c29fbmFtZVswXSkKIAl7Ci0JICBpZiAoIWhlYWRlcl9kb25lKQotCSAg ICB7Ci0JICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKCIlLSpzJS0qcyUtMTJz JXNcbiIsIGFkZHJfd2lkdGgsICJGcm9tIiwKLQkJCQkgYWRkcl93aWR0aCwg IlRvIiwgIlN5bXMgUmVhZCIsCi0JCQkJICJTaGFyZWQgT2JqZWN0IExpYnJh cnkiKTsKLQkgICAgICBoZWFkZXJfZG9uZSsrOwotCSAgICB9CisJICBpZiAo cGF0dGVybiAmJiAhIHJlX2V4ZWMgKHNvLT5zb19uYW1lKSkKKwkgICAgY29u dGludWU7CisJICArK25yX2xpYnM7CisJfQorICAgIH0KKworICB0YWJsZV9j bGVhbnVwID0KKyAgICBtYWtlX2NsZWFudXBfdWlfb3V0X3RhYmxlX2JlZ2lu X2VuZCAodWlvdXQsIDQsIG5yX2xpYnMsCisJCQkJCSAiU2hhcmVkTGlicmFy eVRhYmxlIik7CisKKyAgLyogVGhlICItIDEiIGlzIGJlY2F1c2UgdWlfb3V0 IGFkZHMgb25lIHNwYWNlIGJldHdlZW4gY29sdW1ucy4gICovCisgIHVpX291 dF90YWJsZV9oZWFkZXIgKHVpb3V0LCBhZGRyX3dpZHRoIC0gMSwgdWlfbGVm dCwgIkZyb20iLCAiRnJvbSIpOworICB1aV9vdXRfdGFibGVfaGVhZGVyICh1 aW91dCwgYWRkcl93aWR0aCAtIDEsIHVpX2xlZnQsICJUbyIsICJUbyIpOwor ICB1aV9vdXRfdGFibGVfaGVhZGVyICh1aW91dCwgMTIgLSAxLCB1aV9sZWZ0 LCAiU3ltc1JlYWQiLCAiU3ltcyBSZWFkIik7CisgIHVpX291dF90YWJsZV9o ZWFkZXIgKHVpb3V0LCAwLCB1aV9ub2FsaWduLAorCQkgICAgICAgIk5hbWUi LCAiU2hhcmVkIE9iamVjdCBMaWJyYXJ5Iik7CisKKyAgdWlfb3V0X3RhYmxl X2JvZHkgKHVpb3V0KTsKKworICBmb3IgKHNvID0gc29fbGlzdF9oZWFkOyBz bzsgc28gPSBzby0+bmV4dCkKKyAgICB7CisgICAgICBzdHJ1Y3QgY2xlYW51 cCAqbGliX2NsZWFudXA7CiAKLQkgIHByaW50Zl91bmZpbHRlcmVkICgiJS0q cyIsIGFkZHJfd2lkdGgsCi0JCQkgICAgIHNvLT5hZGRyX2hpZ2ggIT0gMAot CQkJICAgICAgID8gaGV4X3N0cmluZ19jdXN0b20gKAotCQkJICAgICAgICAg ICAoTE9OR0VTVCkgc28tPmFkZHJfbG93LAotCSAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFkZHJfd2lkdGggLSA0KQotCQkJICAgICAgIDogIiIpOwot CSAgcHJpbnRmX3VuZmlsdGVyZWQgKCIlLSpzIiwgYWRkcl93aWR0aCwKLQkJ CSAgICAgc28tPmFkZHJfaGlnaCAhPSAwCi0JCQkgICAgICAgPyBoZXhfc3Ry aW5nX2N1c3RvbSAoCi0JCQkgICAgICAgICAgIChMT05HRVNUKSBzby0+YWRk cl9oaWdoLAotCSAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJfd2lk dGggLSA0KQotCQkJICAgICAgIDogIiIpOwotCSAgcHJpbnRmX3VuZmlsdGVy ZWQgKCIlLTEycyIsIHNvLT5zeW1ib2xzX2xvYWRlZCA/ICJZZXMiIDogIk5v Iik7Ci0JICBwcmludGZfdW5maWx0ZXJlZCAoIiVzXG4iLCBzby0+c29fbmFt ZSk7CisgICAgICBpZiAoISBzby0+c29fbmFtZVswXSkKKwljb250aW51ZTsK KyAgICAgIGlmIChwYXR0ZXJuICYmICEgcmVfZXhlYyAoc28tPnNvX25hbWUp KQorCWNvbnRpbnVlOworCisgICAgICBsaWJfY2xlYW51cCA9IG1ha2VfY2xl YW51cF91aV9vdXRfdHVwbGVfYmVnaW5fZW5kICh1aW91dCwgImxpYiIpOwor CisgICAgICBpZiAoc28tPmFkZHJfaGlnaCAhPSAwKQorCXsKKwkgIHVpX291 dF9maWVsZF9jb3JlX2FkZHIgKHVpb3V0LCAiRnJvbSIsIGdkYmFyY2gsIHNv LT5hZGRyX2xvdyk7CisJICB1aV9vdXRfZmllbGRfY29yZV9hZGRyICh1aW91 dCwgIlRvIiwgZ2RiYXJjaCwgc28tPmFkZHJfaGlnaCk7CisJfQorICAgICAg ZWxzZQorCXsKKwkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiRnJv bSIsICIiKTsKKwkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiVG8i LCAiIik7CiAJfQorCisgICAgICBpZiAoISB1aV9vdXRfaXNfbWlfbGlrZV9w IChpbnRlcnBfdWlfb3V0ICh0b3BfbGV2ZWxfaW50ZXJwcmV0ZXIgKCkpKQor CSAgJiYgc28tPnN5bWJvbHNfbG9hZGVkCisJICAmJiAhb2JqZmlsZV9oYXNf cGFydGlhbF9zeW1ib2xzIChzby0+b2JqZmlsZSkKKwkgICYmICFvYmpmaWxl X2hhc19mdWxsX3N5bWJvbHMgKHNvLT5vYmpmaWxlKSkKKwl7CisJICBzb19t aXNzaW5nX2RlYnVnX2luZm8gPSAxOworCSAgdWlfb3V0X2ZpZWxkX3N0cmlu ZyAodWlvdXQsICJTeW1zUmVhZCIsICJZZXMgKCopIik7CisJfQorICAgICAg ZWxzZQorCXVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiU3ltc1JlYWQi LCAKKwkJCSAgICAgc28tPnN5bWJvbHNfbG9hZGVkID8gIlllcyIgOiAiTm8i KTsKKworICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJTeW1z UmVhZCIsIHNvLT5zb19uYW1lKTsKKworICAgICAgdWlfb3V0X3RleHQgKHVp b3V0LCAiXG4iKTsKKworICAgICAgZG9fY2xlYW51cHMgKGxpYl9jbGVhbnVw KTsKICAgICB9Ci0gIGlmIChzb19saXN0X2hlYWQgPT0gTlVMTCkKKworICBk b19jbGVhbnVwcyAodGFibGVfY2xlYW51cCk7CisKKyAgaWYgKG5yX2xpYnMg PT0gMCkKKyAgICB7CisgICAgICBpZiAocGF0dGVybikKKwl1aV9vdXRfbWVz c2FnZSAodWlvdXQsIDAsCisJCQlfKCJObyBzaGFyZWQgbGlicmFyaWVzIG1h dGNoZWQuXG4iKSk7CisgICAgICBlbHNlCisJdWlfb3V0X21lc3NhZ2UgKHVp b3V0LCAwLAorCQkJXygiTm8gc2hhcmVkIGxpYnJhcmllcyBsb2FkZWQgYXQg dGhpcyB0aW1lLlxuIikpOworICAgIH0KKyAgZWxzZQogICAgIHsKLSAgICAg IHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBzaGFyZWQgbGlicmFyaWVzIGxv YWRlZCBhdCB0aGlzIHRpbWUuXG4iKSk7CisgICAgICBpZiAoc29fbWlzc2lu Z19kZWJ1Z19pbmZvKQorCXVpX291dF9tZXNzYWdlICh1aW91dCwgMCwKKwkJ CV8oIigqKTogU2hhcmVkIGxpYnJhcnkgaXMgbWlzc2luZyBkZWJ1Z2dpbmcg aW5mb3JtYXRpb24uXG4iKSk7CiAgICAgfQogfQogCkluZGV4OiBzeW1maWxl LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMv c3JjL2dkYi9zeW1maWxlLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjQ0 CmRpZmYgLXUgLXAgLXIxLjI0NCBzeW1maWxlLmMKLS0tIHN5bWZpbGUuYwky MSBBdWcgMjAwOSAxNzo1NzoxNyAtMDAwMAkxLjI0NAorKysgc3ltZmlsZS5j CTI0IEF1ZyAyMDA5IDIwOjA4OjMwIC0wMDAwCkBAIC0xNzEsMTMgKzE3MSw2 IEBAIER5bmFtaWMgc3ltYm9sIHRhYmxlIHJlbG9hZGluZyBtdWx0aXBsZSAK IAkJICAgIHZhbHVlKTsKIH0KIAotLyogSWYgbm9uLXplcm8sIGdkYiB3aWxs IG5vdGlmeSB0aGUgdXNlciB3aGVuIGl0IGlzIGxvYWRpbmcgc3ltYm9scwot ICAgZnJvbSBhIGZpbGUuICBUaGlzIGlzIGFsbW9zdCBhbHdheXMgd2hhdCB1 c2VycyB3aWxsIHdhbnQgdG8gaGF2ZSBoYXBwZW47Ci0gICBidXQgZm9yIHBy b2dyYW1zIHdpdGggbG90cyBvZiBkeW5hbWljYWxseSBsaW5rZWQgbGlicmFy aWVzLCB0aGUgb3V0cHV0Ci0gICBjYW4gYmUgbW9yZSBub2lzZSB0aGFuIHNp Z25hbC4gICovCi0KLWludCBwcmludF9zeW1ib2xfbG9hZGluZyA9IDE7Ci0K IC8qIElmIG5vbi16ZXJvLCBzaGFyZWQgbGlicmFyeSBzeW1ib2xzIHdpbGwg YmUgYWRkZWQgYXV0b21hdGljYWxseQogICAgd2hlbiB0aGUgaW5mZXJpb3Ig aXMgY3JlYXRlZCwgbmV3IGxpYnJhcmllcyBhcmUgbG9hZGVkLCBvciB3aGVu CiAgICBhdHRhY2hpbmcgdG8gdGhlIGluZmVyaW9yLiAgVGhpcyBpcyBhbG1v c3QgYWx3YXlzIHdoYXQgdXNlcnMgd2lsbApAQCAtOTg5LDEyICs5ODIsOSBA QCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChiCiAJ ZGVwcmVjYXRlZF9wcmVfYWRkX3N5bWJvbF9ob29rIChuYW1lKTsKICAgICAg IGVsc2UKIAl7Ci0gICAgICAgICAgaWYgKHByaW50X3N5bWJvbF9sb2FkaW5n KQotCSAgICB7Ci0JICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlJlYWRp bmcgc3ltYm9scyBmcm9tICVzLi4uIiksIG5hbWUpOwotCSAgICAgIHdyYXBf aGVyZSAoIiIpOwotCSAgICAgIGdkYl9mbHVzaCAoZ2RiX3N0ZG91dCk7Ci0J ICAgIH0KKwkgIHByaW50Zl91bmZpbHRlcmVkIChfKCJSZWFkaW5nIHN5bWJv bHMgZnJvbSAlcy4uLiIpLCBuYW1lKTsKKwkgIHdyYXBfaGVyZSAoIiIpOwor CSAgZ2RiX2ZsdXNoIChnZGJfc3Rkb3V0KTsKIAl9CiAgICAgfQogICBzeW1z X2Zyb21fb2JqZmlsZSAob2JqZmlsZSwgYWRkcnMsIG9mZnNldHMsIG51bV9v ZmZzZXRzLApAQCAtMTAwNyw3ICs5OTcsNyBAQCBzeW1ib2xfZmlsZV9hZGRf d2l0aF9hZGRyc19vcl9vZmZzZXRzIChiCiAKICAgaWYgKChmbGFncyAmIE9C SkZfUkVBRE5PVykgfHwgcmVhZG5vd19zeW1ib2xfZmlsZXMpCiAgICAgewot ICAgICAgaWYgKChmcm9tX3R0eSB8fCBpbmZvX3ZlcmJvc2UpICYmIHByaW50 X3N5bWJvbF9sb2FkaW5nKQorICAgICAgaWYgKGZyb21fdHR5IHx8IGluZm9f dmVyYm9zZSkKIAl7CiAJICBwcmludGZfdW5maWx0ZXJlZCAoXygiZXhwYW5k aW5nIHRvIGZ1bGwgc3ltYm9scy4uLiIpKTsKIAkgIHdyYXBfaGVyZSAoIiIp OwpAQCAtMTA0OSwxNSArMTAzOSwxMiBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0 aF9hZGRyc19vcl9vZmZzZXRzIChiCiAgICAgICB4ZnJlZSAoZGVidWdmaWxl KTsKICAgICB9CiAKLSAgaWYgKCFoYXZlX3BhcnRpYWxfc3ltYm9scyAoKSAm JiAhaGF2ZV9mdWxsX3N5bWJvbHMgKCkKLSAgICAgICYmIHByaW50X3N5bWJv bF9sb2FkaW5nKQorICBpZiAoKGZyb21fdHR5IHx8IGluZm9fdmVyYm9zZSkK KyAgICAgICYmICFvYmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMgKG9iamZp bGUpCisgICAgICAmJiAhb2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xzIChvYmpm aWxlKSkKICAgICB7CiAgICAgICB3cmFwX2hlcmUgKCIiKTsKLSAgICAgIHBy aW50Zl91bmZpbHRlcmVkIChfKCIobm8gZGVidWdnaW5nIHN5bWJvbHMgZm91 bmQpIikpOwotICAgICAgaWYgKGZyb21fdHR5IHx8IGluZm9fdmVyYm9zZSkK LSAgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKCIuLi4iKTsKLSAgICAgIGVs c2UKLSAgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKCJcbiIpOworICAgICAg cHJpbnRmX3VuZmlsdGVyZWQgKF8oIihubyBkZWJ1Z2dpbmcgc3ltYm9scyBm b3VuZCkuLi4iKSk7CiAgICAgICB3cmFwX2hlcmUgKCIiKTsKICAgICB9CiAK QEAgLTEwNjYsMTAgKzEwNTMsNyBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9h ZGRyc19vcl9vZmZzZXRzIChiCiAgICAgICBpZiAoZGVwcmVjYXRlZF9wb3N0 X2FkZF9zeW1ib2xfaG9vaykKIAlkZXByZWNhdGVkX3Bvc3RfYWRkX3N5bWJv bF9ob29rICgpOwogICAgICAgZWxzZQotCXsKLQkgIGlmIChwcmludF9zeW1i b2xfbG9hZGluZykKLQkgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oImRvbmUu XG4iKSk7Ci0JfQorCXByaW50Zl91bmZpbHRlcmVkIChfKCJkb25lLlxuIikp OwogICAgIH0KIAogICAvKiBXZSBwcmludCBzb21lIG1lc3NhZ2VzIHJlZ2Fy ZGxlc3Mgb2Ygd2hldGhlciAnZnJvbV90dHkgfHwKQEAgLTI0MzgsNyArMjQy Miw4IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQogCSAgICAgICAgIHplcm8g aXMgT0sgc2luY2UgZGJ4cmVhZC5jIGFsc28gZG9lcyB3aGF0IGl0IG5lZWRz IHRvIGRvIGlmCiAJICAgICAgICAgb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xz LnNpemUgaXMgMC4gICovCiAJICAgICAgKCpvYmpmaWxlLT5zZi0+c3ltX3Jl YWQpIChvYmpmaWxlLCAwKTsKLQkgICAgICBpZiAoIWhhdmVfcGFydGlhbF9z eW1ib2xzICgpICYmICFoYXZlX2Z1bGxfc3ltYm9scyAoKSkKKwkgICAgICBp ZiAoIW9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAob2JqZmlsZSkKKwkJ ICAmJiAhb2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xzIChvYmpmaWxlKSkKIAkJ ewogCQkgIHdyYXBfaGVyZSAoIiIpOwogCQkgIHByaW50Zl91bmZpbHRlcmVk IChfKCIobm8gZGVidWdnaW5nIHN5bWJvbHMgZm91bmQpXG4iKSk7CkBAIC00 MjA3LDEyICs0MTkyLDQgQEAgdGhlIGdsb2JhbCBkZWJ1Zy1maWxlIGRpcmVj dG9yeSBwcmVwZW5kZQogCQkJCSAgICAgTlVMTCwKIAkJCQkgICAgIHNob3df ZGVidWdfZmlsZV9kaXJlY3RvcnksCiAJCQkJICAgICAmc2V0bGlzdCwgJnNo b3dsaXN0KTsKLQotICBhZGRfc2V0c2hvd19ib29sZWFuX2NtZCAoInN5bWJv bC1sb2FkaW5nIiwgbm9fY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAmcHJpbnRfc3ltYm9sX2xvYWRpbmcsIF8oIlwKLVNldCBwcmludGlu ZyBvZiBzeW1ib2wgbG9hZGluZyBtZXNzYWdlcy4iKSwgXygiXAotU2hvdyBw cmludGluZyBvZiBzeW1ib2wgbG9hZGluZyBtZXNzYWdlcy4iKSwgTlVMTCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnNldHByaW50bGlzdCwgJnNob3dwcmludGxpc3QpOwogfQpJbmRl eDogc3ltZmlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9jdnMvc3JjL3NyYy9nZGIvc3ltZmlsZS5oLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjUxCmRpZmYgLXUgLXAgLXIxLjUxIHN5bWZpbGUuaAotLS0gc3lt ZmlsZS5oCTE2IEp1biAyMDA5IDE4OjQ5OjI1IC0wMDAwCTEuNTEKKysrIHN5 bWZpbGUuaAkyNCBBdWcgMjAwOSAyMDowODozMCAtMDAwMApAQCAtMjg0LDEz ICsyODQsNiBAQCBleHRlcm4gY2hhciAqb2Jjb25jYXQgKHN0cnVjdCBvYnN0 YWNrICpvCiAKIAkJCS8qICAgVmFyaWFibGVzICAgKi8KIAotLyogSWYgbm9u LXplcm8sIGdkYiB3aWxsIG5vdGlmeSB0aGUgdXNlciB3aGVuIGl0IGlzIGxv YWRpbmcgc3ltYm9scwotICAgZnJvbSBhIGZpbGUuICBUaGlzIGlzIGFsbW9z dCBhbHdheXMgd2hhdCB1c2VycyB3aWxsIHdhbnQgdG8gaGF2ZSBoYXBwZW47 Ci0gICBidXQgZm9yIHByb2dyYW1zIHdpdGggbG90cyBvZiBkeW5hbWljYWxs eSBsaW5rZWQgbGlicmFyaWVzLCB0aGUgb3V0cHV0Ci0gICBjYW4gYmUgbW9y ZSBub2lzZSB0aGFuIHNpZ25hbC4gICovCi0KLWV4dGVybiBpbnQgcHJpbnRf c3ltYm9sX2xvYWRpbmc7Ci0KIC8qIElmIG5vbi16ZXJvLCBzaGFyZWQgbGli cmFyeSBzeW1ib2xzIHdpbGwgYmUgYWRkZWQgYXV0b21hdGljYWxseQogICAg d2hlbiB0aGUgaW5mZXJpb3IgaXMgY3JlYXRlZCwgbmV3IGxpYnJhcmllcyBh cmUgbG9hZGVkLCBvciB3aGVuCiAgICBhdHRhY2hpbmcgdG8gdGhlIGluZmVy aW9yLiAgVGhpcyBpcyBhbG1vc3QgYWx3YXlzIHdoYXQgdXNlcnMgd2lsbApJ bmRleDogZG9jL2dkYi50ZXhpbmZvCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZG9jL2dkYi50ZXhpbmZvLHYK cmV0cmlldmluZyByZXZpc2lvbiAxLjYxNgpkaWZmIC11IC1wIC1yMS42MTYg Z2RiLnRleGluZm8KLS0tIGRvYy9nZGIudGV4aW5mbwkyMCBBdWcgMjAwOSAx ODowMjo0OCAtMDAwMAkxLjYxNgorKysgZG9jL2dkYi50ZXhpbmZvCTI0IEF1 ZyAyMDA5IDIwOjA4OjMxIC0wMDAwCkBAIC0xMjYxNCwyMiArMTI2MTQsNiBA QCBpcyBwcmludGVkIGFzIGZvbGxvd3M6CiBAaXRlbSBzaG93IG9wYXF1ZS10 eXBlLXJlc29sdXRpb24KIFNob3cgd2hldGhlciBvcGFxdWUgdHlwZXMgYXJl IHJlc29sdmVkIG9yIG5vdC4KIAotQGtpbmRleCBzZXQgcHJpbnQgc3ltYm9s LWxvYWRpbmcKLUBjaW5kZXggcHJpbnQgbWVzc2FnZXMgd2hlbiBzeW1ib2xz IGFyZSBsb2FkZWQKLUBpdGVtIHNldCBwcmludCBzeW1ib2wtbG9hZGluZwot QGl0ZW14IHNldCBwcmludCBzeW1ib2wtbG9hZGluZyBvbgotQGl0ZW14IHNl dCBwcmludCBzeW1ib2wtbG9hZGluZyBvZmYKLVRoZSBAY29kZXtzZXQgcHJp bnQgc3ltYm9sLWxvYWRpbmd9IGNvbW1hbmQgYWxsb3dzIHlvdSB0byBlbmFi bGUgb3IKLWRpc2FibGUgcHJpbnRpbmcgb2YgbWVzc2FnZXMgd2hlbiBAdmFs dWV7R0RCTn0gbG9hZHMgc3ltYm9scy4KLUJ5IGRlZmF1bHQsIHRoZXNlIG1l c3NhZ2VzIHdpbGwgYmUgcHJpbnRlZCwgYW5kIG5vcm1hbGx5IHRoaXMgaXMg d2hhdAoteW91IHdhbnQuICBEaXNhYmxpbmcgdGhlc2UgbWVzc2FnZXMgaXMg dXNlZnVsIHdoZW4gZGVidWdnaW5nIGFwcGxpY2F0aW9ucwotd2l0aCBsb3Rz IG9mIHNoYXJlZCBsaWJyYXJpZXMgd2hlcmUgdGhlIHF1YW50aXR5IG9mIG91 dHB1dCBjYW4gYmUgbW9yZQotYW5ub3lpbmcgdGhhbiB1c2VmdWwuCi0KLUBr aW5kZXggc2hvdyBwcmludCBzeW1ib2wtbG9hZGluZwotQGl0ZW0gc2hvdyBw cmludCBzeW1ib2wtbG9hZGluZwotU2hvdyB3aGV0aGVyIG1lc3NhZ2VzIHdp bGwgYmUgcHJpbnRlZCB3aGVuIEB2YWx1ZXtHREJOfSBsb2FkcyBzeW1ib2xz LgotCiBAa2luZGV4IG1haW50IHByaW50IHN5bWJvbHMKIEBjaW5kZXggc3lt Ym9sIGR1bXAKIEBraW5kZXggbWFpbnQgcHJpbnQgcHN5bWJvbHMKQEAgLTEz NTAyLDkgKzEzNDg2LDExIEBAIGNvbW1hbmQ6CiBAdGFibGUgQGNvZGUKIEBr aW5kZXggaW5mbyBzaGFyZWRsaWJyYXJ5CiBAa2luZGV4IGluZm8gc2hhcmUK LUBpdGVtIGluZm8gc2hhcmUKLUBpdGVteCBpbmZvIHNoYXJlZGxpYnJhcnkK LVByaW50IHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJhcmllcyB3aGlj aCBhcmUgY3VycmVudGx5IGxvYWRlZC4KK0BpdGVtIGluZm8gc2hhcmUgQHZh cntyZWdleH0KK0BpdGVteCBpbmZvIHNoYXJlZGxpYnJhcnkgQHZhcntyZWdl eH0KK1ByaW50IHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJhcmllcyB3 aGljaCBhcmUgY3VycmVudGx5IGxvYWRlZAordGhhdCBtYXRjaCBAdmFye3Jl Z2V4fS4gIElmIEB2YXJ7cmVnZXh9IGlzIG9taXR0ZWQgdGhlbiBwcmludAor YWxsIHNoYXJlZCBsaWJyYXJpZXMgdGhhdCBhcmUgbG9hZGVkLgogCiBAa2lu ZGV4IHNoYXJlZGxpYnJhcnkKIEBraW5kZXggc2hhcmUK --000e0cd6ecf6bb850c0471e9b167--