From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6239 invoked by alias); 6 Oct 2010 02:30:42 -0000 Received: (qmail 6221 invoked by uid 22791); 6 Oct 2010 02:30:41 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mail-iw0-f169.google.com (HELO mail-iw0-f169.google.com) (209.85.214.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 06 Oct 2010 02:30:36 +0000 Received: by iwn41 with SMTP id 41so1876548iwn.0 for ; Tue, 05 Oct 2010 19:30:34 -0700 (PDT) MIME-Version: 1.0 Received: by 10.231.35.66 with SMTP id o2mr5293921ibd.30.1286332233829; Tue, 05 Oct 2010 19:30:33 -0700 (PDT) Received: by 10.231.205.129 with HTTP; Tue, 5 Oct 2010 19:30:33 -0700 (PDT) In-Reply-To: References: <4CABB53A.8000101@vmware.com> Date: Wed, 06 Oct 2010 02:30:00 -0000 Message-ID: Subject: Re: disable objective-c stuff when theres no objective-c cu. From: Matt Rice To: Michael Snyder Cc: "gdb-patches@sourceware.org" Content-Type: multipart/mixed; boundary=000325573806dc600f0491e98f54 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: 2010-10/txt/msg00066.txt.bz2 --000325573806dc600f0491e98f54 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3140 On Tue, Oct 5, 2010 at 4:35 PM, Matt Rice wrote: > On Tue, Oct 5, 2010 at 4:31 PM, Michael Snyder wrote: >> Matt Rice wrote: >>> >>> this makes it so that a flag is set if either an objective-c >>> compilation unit is found, >>> or the user goes 'set language objective-c' in the case where debug >>> symbols are absent. >>> >>> 2010-10-05 =A0Matt Rice =A0 >>> >>> =A0 =A0 =A0 =A0* defs.h: Add comment. >>> =A0 =A0 =A0 =A0* dwarf2read.c (set_cu_language): Notice that a language= has been >>> =A0 =A0 =A0 =A0seen. >>> =A0 =A0 =A0 =A0* language.c (set_language): Ditto. >>> =A0 =A0 =A0 =A0(mask_for_language, language_has_cu_loaded): New Functio= ns. >>> =A0 =A0 =A0 =A0(set_language_has_cu_loaded): Ditto. >>> =A0 =A0 =A0 =A0* language.h: Declare new functions. >>> =A0 =A0 =A0 =A0* linespec.c (decode_line_1): Don't lookup objective-c m= ethods >>> =A0 =A0 =A0 =A0unless objective-c has been seen. >> >> Hi Matt, >> >> Do you have a =A0copyright assignment? > > Yeah, I do > > and I should have probably noted that this is a change of behaviour > so its kind of an RFC, and I didn't think about stabs, so w/ this they > probably require 'set language objective-c' 'set language auto' should > restore the old behaviour > > waiting on the testsuite to run, but it looks like gdb.objc/nondebug.exp > is going to require 'set language objective-c'. > attached is a new patch, the old one had some typos/pasteos in comments, and i noticed that we can lessen the impact by checking for is_objc_method, or for objective-c compilation units. (is_objc_method doesn't neccesarily affect future lookups should it call set_language_has_cu_loaded?) added a NEWS entry which at least explains the current impact of the change. which may or may not be acceptable. I asked on the gnustep-dev list a while ago about removing this feature all together, they weren't opposed to replacing it with a different but similar feature, so they're probably not opposed to keeping the feature but having to manually enable it if it cannot be lazily enabled. here is when gcc started to emit DW_LANG_ObjC, maybe we could fall back to source files with the .m extension. http://gcc.gnu.org/ml/gcc-patches/2006-03/msg01515.html another patch here which i'll look into tomorrow to see whatever happened with it, might be helpful in squaring out support for other debug info formats also probably looking for .m sources. http://sourceware.org/ml/gdb-patches/2004-08/msg00138.html the impetus for this is that Objective-c matches normal c functions as meth= ods, so when you set a breakpoint on a c-function it tries to match it to an objective-c method and churns through all the symbols, then finally falls back to looking for a c function. -PASS: gdb.cp/psmang.exp: break s::method2 +FAIL: gdb.cp/psmang.exp: break s::method2 (got interactive prompt) -FAIL: gdb.threads/attachstop-mt.exp: attach1, post-gdb sanity check of the sleeping state - Red Hat BZ 197584 +PASS: gdb.threads/attachstop-mt.exp: attach1, post-gdb sanity check of the sleeping state - Red Hat BZ 197584 at least it broke even. --000325573806dc600f0491e98f54 Content-Type: application/octet-stream; name="gdb-lang-objc.diff" Content-Disposition: attachment; filename="gdb-lang-objc.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gexi7yj20 Content-length: 8744 ZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggODUwNTlj Ni4uMDFiMGEzYyAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05F V1MKQEAgLTIzLDYgKzIzLDI1IEBACiAgICAgIGZlYXR1cmUgcmVxdWlyZXMg cHJvcGVyIGRlYnVnaW5mbyBzdXBwb3J0IGZyb20gdGhlIGNvbXBpbGVyOyBp dAogICAgICB3YXMgYWRkZWQgdG8gR0NDIDQuNS4KIAorKiBPYmplY3RpdmUt QyBjaGFuZ2VzOgorCisgICoqIEdEQiBPYmplY3RpdmUtQyBsYW5ndWFnZSBz dXBwb3J0IGhhcyBjaGFuZ2VkIHNvIHRoYXQgbG9va3VwcyBvZgorICAgICBv YmplY3RpdmUtYyBtZXRob2RzIGlzIG5vdyBkb25lIGlmIGFueSBvZiB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnMgaXMgdHJ1ZToKKworICAgICAgICogR0RC IGhhcyBpZGVudGlmaWVkIG9iamVjdGl2ZS1jIGNvZGUgYXMgaGF2aW5nIGJl ZW4gbG9hZGVkLgorCisgICAgICAgKiBUaGUgdXNlciBoYXMgc3BlY2lmaWVk IGFuIG9iamVjdGl2ZS1jIG1ldGhvZCBleHBsaWNpdGx5IGluIHRoZSBmb3Jt IG9mCisgICAgICAgICBgYnJlYWsgK1tDbGFzcyBhTWV0aG9kXScgb3IgYGJy ZWFrIC1bQ2xhc3MgYU1ldGhvZF0nIGFzIG9wcG9zZWQgdG8KKyAgICAgICAg IHRoZSBzaG9ydCBmb3JtIGBicmVhayBhTWV0aG9kJy4KKyAKKyAgICAgICAq IFRoZSB1c2VyIGhhcyBjYWxsZWQgJ3NldCBsYW5ndWFnZSBvYmplY3RpdmUt YycgYXQgbGVhc3Qgb25jZTsKKyAgICAgICAgIHRob3VnaCBpdCBuZWVkIG5v dCBiZSB0aGUgY3VycmVudCBsYW5ndWFnZS4KKworICAgICBGb3IgR0RCIHRv IGlkZW50aWZ5IGFuIG9iamVjdGl2ZS1jIGxpYnJhcnkgZGVidWcgc3ltYm9s cyBtdXN0IGJlIHByZXNlbnQKKyAgICAgYW5kIGNvbnRhaW4gbGFuZ3VhZ2Ug aW5mb3JtYXRpb24uICBVc2VycyB3YW50aW5nIHRvIHJldGFpbiB0aGUgb2xk IGJlaGF2aW91cgorICAgICBjYW4gYWRkIGBzZXQgbGFuZ3VhZ2Ugb2JqZWN0 aXZlLWNgIGZvbGxvd2VkIGJ5IGBzZXQgbGFuZ3VhZ2UgYXV0bycgbGluZXMK KyAgICAgdG8gdGhlaXIgLmdkYmluaXQgZmlsZS4KKwogKiBHREIgbm93IGhh cyBzb21lIHN1cHBvcnQgZm9yIHVzaW5nIGxhYmVscyBpbiB0aGUgcHJvZ3Jh bSdzIHNvdXJjZSBpbgogICBsaW5lc3BlY3MuICBGb3IgaW5zdGFuY2UsIHlv dSBjYW4gdXNlICJhZHZhbmNlIGxhYmVsIiB0byBjb250aW51ZQogICBleGVj dXRpb24gdG8gYSBsYWJlbC4KZGlmZiAtLWdpdCBhL2dkYi9kZWZzLmggYi9n ZGIvZGVmcy5oCmluZGV4IDllNDgwMGMuLjMwNGQxYzkgMTAwNjQ0Ci0tLSBh L2dkYi9kZWZzLmgKKysrIGIvZ2RiL2RlZnMuaApAQCAtMTg1LDcgKzE4NSw5 IEBAIGV4dGVybiB2b2lkIHF1aXQgKHZvaWQpOwogLyogTGFuZ3VhZ2VzIHJl cHJlc2VudGVkIGluIHRoZSBzeW1ib2wgdGFibGUgYW5kIGVsc2V3aGVyZS4K ICAgIFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIGluIGxhbmd1YWdlLmgsIGJ1 dCBzaW5jZSBlbnVtJ3MgY2FuJ3QKICAgIGJlIGZvcndhcmQgZGVjbGFyZWQg dG8gc2F0aXNmeSBvcGFxdWUgcmVmZXJlbmNlcyBiZWZvcmUgdGhlaXIKLSAg IGFjdHVhbCBkZWZpbml0aW9uLCBuZWVkcyB0byBiZSBoZXJlLiAqLworICAg YWN0dWFsIGRlZmluaXRpb24sIG5lZWRzIHRvIGJlIGhlcmUuCisKKyAgIFdo ZW4gYWRkaW5nIGEgdGFuZ2libGUgbGFuZ3VhZ2UgYWxzbyB1cGRhdGUgbGFu Z3VhZ2UuYzptYXNrX2Zvcl9sYW5ndWFnZSAqLwogCiBlbnVtIGxhbmd1YWdl CiAgIHsKZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdh cmYycmVhZC5jCmluZGV4IGJmMzZlMDEuLmUwZDRkNTIgMTAwNjQ0Ci0tLSBh L2dkYi9kd2FyZjJyZWFkLmMKKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwpAQCAt OTY0Niw2ICs5NjQ2LDcgQEAgc2V0X2N1X2xhbmd1YWdlICh1bnNpZ25lZCBp bnQgbGFuZywgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICBicmVhazsK ICAgICB9CiAgIGN1LT5sYW5ndWFnZV9kZWZuID0gbGFuZ3VhZ2VfZGVmIChj dS0+bGFuZ3VhZ2UpOworICBzZXRfbGFuZ3VhZ2VfaGFzX2N1X2xvYWRlZCAo Y3UtPmxhbmd1YWdlKTsKIH0KIAogLyogUmV0dXJuIHRoZSBuYW1lZCBhdHRy aWJ1dGUgb3IgTlVMTCBpZiBub3QgdGhlcmUuICAqLwpkaWZmIC0tZ2l0IGEv Z2RiL2xhbmd1YWdlLmMgYi9nZGIvbGFuZ3VhZ2UuYwppbmRleCAzY2UwOGI1 Li5jZGM2OWM5IDEwMDY0NAotLS0gYS9nZGIvbGFuZ3VhZ2UuYworKysgYi9n ZGIvbGFuZ3VhZ2UuYwpAQCAtNDM1LDYgKzQzNSw3IEBAIHNldF9sYW5ndWFn ZSAoZW51bSBsYW5ndWFnZSBsYW5nKQogICAgICAgaWYgKGxhbmd1YWdlc1tp XS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZykKIAl7CiAJICBjdXJyZW50X2xhbmd1 YWdlID0gbGFuZ3VhZ2VzW2ldOworCSAgc2V0X2xhbmd1YWdlX2hhc19jdV9s b2FkZWQoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UpOwogCSAgc2V0 X3R5cGVfcmFuZ2VfY2FzZSAoKTsKIAkgIGJyZWFrOwogCX0KQEAgLTEwNjAs NiArMTA2MSw4MiBAQCBkZWZhdWx0X2dldF9zdHJpbmcgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIGdkYl9ieXRlICoqYnVmZmVyLCBpbnQgKmxlbmd0aCwKICAg ZXJyb3IgKF8oIkdldHRpbmcgYSBzdHJpbmcgaXMgdW5zdXBwb3J0ZWQgaW4g dGhpcyBsYW5ndWFnZS4iKSk7CiB9CiAKKworLyogQSBtYXNrIGZvciBsYW5n dWFnZXMgdGhhdCB3YW50IHRvIGVuYWJsZSBzcGVjaWZpYyBiZWhhdmlvdXJz IGlmIChub3Qgd2hlbikKKyAgIGEgY29tcGlsYXRpb24gdW5pdCBvZiB0aGF0 IGxhbmd1YWdlIGhhcyBiZWVuIGxvYWRlZC4gKi8KKyNkZWZpbmUgQ1VfTE9B REVEX0NfTEFOR19NQVNLCQkweDEgPDwgMAorI2RlZmluZSBDVV9MT0FERURf Q1BMVVNfTEFOR19NQVNLCTB4MSA8PCAxCisjZGVmaW5lIENVX0xPQURFRF9E X0xBTkdfTUFTSwkJMHgxIDw8IDIKKyNkZWZpbmUgQ1VfTE9BREVEX09CSkNf TEFOR19NQVNLCTB4MSA8PCAzCisjZGVmaW5lIENVX0xPQURFRF9KQVZBX0xB TkdfTUFTSwkweDEgPDwgNAorI2RlZmluZSBDVV9MT0FERURfRk9SVFJBTl9M QU5HX01BU0sJMHgxIDw8IDUKKyNkZWZpbmUgQ1VfTE9BREVEX00yX0xBTkdf TUFTSwkJMHgxIDw8IDYKKyNkZWZpbmUgQ1VfTE9BREVEX0FTTV9MQU5HX01B U0sJCTB4MSA8PCA3CisjZGVmaW5lIENVX0xPQURFRF9QQVNDQUxfTEFOR19N QVNLCTB4MSA8PCA4CisjZGVmaW5lIENVX0xPQURFRF9BREFfTEFOR19NQVNL CQkweDEgPDwgOQorI2RlZmluZSBDVV9MT0FERURfU0NNX0xBTkdfTUFTSwkJ MHgxIDw8IDEwCisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgY3VfbGFuZ3VhZ2Vz X2xvYWRlZF9tYXNrOworCitzdGF0aWMgdW5zaWduZWQgaW50CittYXNrX2Zv cl9sYW5ndWFnZShlbnVtIGxhbmd1YWdlIGxhbmcpCit7CisgIHVuc2lnbmVk IGludCBsYW5nX21hc2s7CisgIHN3aXRjaChsYW5nKQorICAgIHsKKyAgICAg IGNhc2UgbGFuZ3VhZ2VfYzoJCQkvKiBDICovCisgICAgICAgIGxhbmdfbWFz ayA9IENVX0xPQURFRF9DX0xBTkdfTUFTSzsKKyAgICAgIGJyZWFrOworICAg ICAgY2FzZSBsYW5ndWFnZV9jcGx1czoJCS8qIEMrKyAqLworICAgICAgICBs YW5nX21hc2sgPSBDVV9MT0FERURfQ1BMVVNfTEFOR19NQVNLOworICAgICAg YnJlYWs7CisgICAgICBjYXNlIGxhbmd1YWdlX2Q6CQkJLyogRCAqLworICAg ICAgICBsYW5nX21hc2sgPSBDVV9MT0FERURfRF9MQU5HX01BU0s7CisgICAg ICBicmVhazsKKyAgICAgIGNhc2UgbGFuZ3VhZ2Vfb2JqYzoJCS8qIE9iamVj dGl2ZS1DICovCisgICAgICAgIGxhbmdfbWFzayA9IENVX0xPQURFRF9PQkpD X0xBTkdfTUFTSzsKKyAgICAgIGJyZWFrOworICAgICAgY2FzZSBsYW5ndWFn ZV9qYXZhOgkJLyogSmF2YSAqLworICAgICAgICBsYW5nX21hc2sgPSBDVV9M T0FERURfSkFWQV9MQU5HX01BU0s7CisgICAgICBicmVhazsKKyAgICAgIGNh c2UgbGFuZ3VhZ2VfZm9ydHJhbjoJCS8qIEZvcnRyYW4gKi8KKyAgICAgICAg bGFuZ19tYXNrID0gQ1VfTE9BREVEX0ZPUlRSQU5fTEFOR19NQVNLOworICAg ICAgYnJlYWs7CisgICAgICBjYXNlIGxhbmd1YWdlX20yOgkJCS8qIE1vZHVs YS0yICovCisgICAgICAgIGxhbmdfbWFzayA9IENVX0xPQURFRF9NMl9MQU5H X01BU0s7CisgICAgICBicmVhazsKKyAgICAgIGNhc2UgbGFuZ3VhZ2VfYXNt OgkJLyogQXNzZW1ibHkgbGFuZ3VhZ2UgKi8KKyAgICAgICAgbGFuZ19tYXNr ID0gQ1VfTE9BREVEX0FTTV9MQU5HX01BU0s7CisgICAgICBicmVhazsKKyAg ICAgIGNhc2UgbGFuZ3VhZ2VfcGFzY2FsOgkJLyogUGFzY2FsICovCisgICAg ICAgIGxhbmdfbWFzayA9IENVX0xPQURFRF9QQVNDQUxfTEFOR19NQVNLOwor ICAgICAgYnJlYWs7CisgICAgICBjYXNlIGxhbmd1YWdlX2FkYToJCS8qIEFk YSAqLworICAgICAgICBsYW5nX21hc2sgPSBDVV9MT0FERURfQURBX0xBTkdf TUFTSzsKKyAgICAgIGJyZWFrOworICAgICAgY2FzZSBsYW5ndWFnZV9zY206 CQkvKiBHdWlsZSBTY2hlbWUqLworICAgICAgICBsYW5nX21hc2sgPSBDVV9M T0FERURfU0NNX0xBTkdfTUFTSzsKKyAgICAgIGJyZWFrOworICAgICAgZGVm YXVsdDoKKwlyZXR1cm4gMDsKKyAgICB9CisgIHJldHVybiBsYW5nX21hc2s7 Cit9CisKK3Vuc2lnbmVkIGludAorbGFuZ3VhZ2VfaGFzX2N1X2xvYWRlZCAo ZW51bSBsYW5ndWFnZSBsYW5nKQoreworICB1bnNpZ25lZCBpbnQgbGFuZ19t YXNrID0gbWFza19mb3JfbGFuZ3VhZ2UgKGxhbmcpOworICByZXR1cm4gY3Vf bGFuZ3VhZ2VzX2xvYWRlZF9tYXNrICYgbGFuZ19tYXNrOworfQorCit2b2lk CitzZXRfbGFuZ3VhZ2VfaGFzX2N1X2xvYWRlZCAoZW51bSBsYW5ndWFnZSBs YW5nKQoreworICB1bnNpZ25lZCBpbnQgbGFuZ19tYXNrID0gbWFza19mb3Jf bGFuZ3VhZ2UgKGxhbmcpOworICBjdV9sYW5ndWFnZXNfbG9hZGVkX21hc2sg fD0gbGFuZ19tYXNrOworfQorCiAvKiBEZWZpbmUgdGhlIGxhbmd1YWdlIHRo YXQgaXMgbm8gbGFuZ3VhZ2UuICAqLwogCiBzdGF0aWMgaW50CmRpZmYgLS1n aXQgYS9nZGIvbGFuZ3VhZ2UuaCBiL2dkYi9sYW5ndWFnZS5oCmluZGV4IGFh MDUyM2IuLjZmZGU0MDEgMTAwNjQ0Ci0tLSBhL2dkYi9sYW5ndWFnZS5oCisr KyBiL2dkYi9sYW5ndWFnZS5oCkBAIC01MjMsNCArNTIzLDEyIEBAIHZvaWQg ZGVmYXVsdF9nZXRfc3RyaW5nIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBnZGJf Ynl0ZSAqKmJ1ZmZlciwgaW50ICpsZW5ndGgsCiB2b2lkIGNfZ2V0X3N0cmlu ZyAoc3RydWN0IHZhbHVlICp2YWx1ZSwgZ2RiX2J5dGUgKipidWZmZXIsIGlu dCAqbGVuZ3RoLAogCQkgICBzdHJ1Y3QgdHlwZSAqKmNoYXJfdHlwZSwgY29u c3QgY2hhciAqKmNoYXJzZXQpOwogCisvKiBSZXR1cm5zIG5vbi16ZXJvIGlm IGN1IG9mIHRoZSBsYW5ndWFnZSB0eXBlIGhhcyBiZWVuIHByZXZpb3VzbHkg bG9hZGVkLiAqLwordW5zaWduZWQgaW50CitsYW5ndWFnZV9oYXNfY3VfbG9h ZGVkIChlbnVtIGxhbmd1YWdlIGxhbmcpOworCisvKiBTZXRzIHRoYXQgYSBj dSBvZiB0aGUgbGFuZ3VhZ2UgdHlwZSBoYXMgYmVlbiBwcmV2aW91c2x5IGxv YWRlZC4gKi8KK3ZvaWQKK3NldF9sYW5ndWFnZV9oYXNfY3VfbG9hZGVkIChl bnVtIGxhbmd1YWdlIGxhbmcpOworCiAjZW5kaWYgLyogZGVmaW5lZCAoTEFO R1VBR0VfSCkgKi8KZGlmZiAtLWdpdCBhL2dkYi9saW5lc3BlYy5jIGIvZ2Ri L2xpbmVzcGVjLmMKaW5kZXggOTFjNWI5MC4uYjc0Yzk5NyAxMDA2NDQKLS0t IGEvZ2RiL2xpbmVzcGVjLmMKKysrIGIvZ2RiL2xpbmVzcGVjLmMKQEAgLTc3 MSwxNCArNzcxLDE1IEBAIGRlY29kZV9saW5lXzEgKGNoYXIgKiphcmdwdHIs IGludCBmdW5maXJzdGxpbmUsIHN0cnVjdCBzeW10YWIgKmRlZmF1bHRfc3lt dGFiLAogCiAgIC8qIENoZWNrIGlmIHRoZSBzeW1ib2wgY291bGQgYmUgYW4g T2JqZWN0aXZlLUMgc2VsZWN0b3IuICAqLwogCi0gIHsKLSAgICBzdHJ1Y3Qg c3ltdGFic19hbmRfbGluZXMgdmFsdWVzOworICBpZiAoaXNfb2JqY19tZXRo b2QgfHwgbGFuZ3VhZ2VfaGFzX2N1X2xvYWRlZChsYW5ndWFnZV9vYmpjKSkK KyAgICB7CisgICAgICBzdHJ1Y3Qgc3ltdGFic19hbmRfbGluZXMgdmFsdWVz OwogCi0gICAgdmFsdWVzID0gZGVjb2RlX29iamMgKGFyZ3B0ciwgZnVuZmly c3RsaW5lLCBOVUxMLAorICAgICAgdmFsdWVzID0gZGVjb2RlX29iamMgKGFy Z3B0ciwgZnVuZmlyc3RsaW5lLCBOVUxMLAogCQkJICBjYW5vbmljYWwsIHNh dmVkX2FyZyk7Ci0gICAgaWYgKHZhbHVlcy5zYWxzICE9IE5VTEwpCi0gICAg ICByZXR1cm4gdmFsdWVzOwotICB9CisgICAgICBpZiAodmFsdWVzLnNhbHMg IT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CiAKICAg LyogRG9lcyBpdCBsb29rIGxpa2UgdGhlcmUgYWN0dWFsbHkgd2VyZSB0d28g cGFydHM/ICAqLwogCg== --000325573806dc600f0491e98f54--