From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15488 invoked by alias); 11 Jan 2008 22:28:11 -0000 Received: (qmail 15479 invoked by uid 22791); 11 Jan 2008 22:28:10 -0000 X-Spam-Check-By: sourceware.org Received: from fencepost.gnu.org (HELO fencepost.gnu.org) (140.186.70.10) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 11 Jan 2008 22:27:48 +0000 Received: from mx10.gnu.org ([199.232.76.166]) by fencepost.gnu.org with esmtp (Exim 4.67) (envelope-from ) id 1JDSLq-00011N-0B for gcc@gnu.org; Fri, 11 Jan 2008 17:27:46 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1JDSLn-00032n-2Z for gcc@gnu.org; Fri, 11 Jan 2008 17:27:46 -0500 Received: from wa-out-1112.google.com ([209.85.146.179]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JDSLm-00031N-Eo for gcc@gnu.org; Fri, 11 Jan 2008 17:27:42 -0500 Received: by wa-out-1112.google.com with SMTP id k34so2028931wah.10 for ; Fri, 11 Jan 2008 14:27:39 -0800 (PST) Received: by 10.114.126.1 with SMTP id y1mr4238058wac.25.1200090459745; Fri, 11 Jan 2008 14:27:39 -0800 (PST) Received: by 10.115.19.17 with HTTP; Fri, 11 Jan 2008 14:27:39 -0800 (PST) Message-ID: <24b520d20801111427r6081fec6k6a4a513e5022c492@mail.gmail.com> Date: Fri, 11 Jan 2008 22:44:00 -0000 From: "Doug Gregor" To: jklowden@freetds.org, gcc-patches@gcc.gnu.org Subject: Re: -Wparentheses lumps too much together Cc: gcc@gnu.org In-Reply-To: <20071219200235.GA21525@oak.schemamania.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_4210_2085303.1200090459734" References: <20071219200235.GA21525@oak.schemamania.org> X-detected-kernel: by monty-python.gnu.org: Linux 2.6 (newer, 2) X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2008-01/txt/msg00156.txt.bz2 ------=_Part_4210_2085303.1200090459734 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 1334 On Dec 19, 2007 3:02 PM, wrote: > My specific candidate for exclusion from -Wall is this one: > > if (a && b || c && d) > > which yields (as you know) advice to parenthesize the two && pairs. To make this discussion a bit more concrete, the attached patch removes this particular warning from -Wparentheses and puts it into a new warning, -Wprecedence, that is not enabled by -Wall. This is slightly more fine-grained than what -Wparentheses does now. Opinions? - Doug 2008-01-11 Douglas Gregor * invoke.texi: Document Wprecedence. 2008-01-11 Douglas Gregor * gcc.dg/Wparentheses-1.c: Use -Wprecedence * gcc.dg/Wparentheses-5.c: Ditto. * g++.dg/warn/Wparentheses-8.C: Ditto. * g++.dg/warn/Wparentheses-17.C: Ditto. * g++.dg/warn/Wparentheses-5.C: Ditto. 2008-01-11 Douglas Gregor * typeck.c (build_x_binary_op): Call warn_about_parentheses if either warn_parentheses or warn_precedence. (convert_for_assignment): Ditto. 2008-01-11 Douglas Gregor * c.opt (Wprecedence): Add new warning category. * c-typeck.c (parser_build_binary_op): Call warn_about_parentheses if either warn_parentheses or warn_precedence. (c-common.c): Use Wprecedence for the warning about && and ||. ------=_Part_4210_2085303.1200090459734 Content-Type: application/octet-stream; name=Wprecedence.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_fbbarzaa0 Content-Disposition: attachment; filename=Wprecedence.patch Content-length: 9350 SW5kZXg6IGRvYy9pbnZva2UudGV4aQo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBkb2MvaW52b2tlLnRleGkJKHJldmlzaW9uIDEzMTQ3NikKKysrIGRv Yy9pbnZva2UudGV4aQkod29ya2luZyBjb3B5KQpAQCAtMjQ4LDcgKzI0OCw3 IEBAIE9iamVjdGl2ZS1DIGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3RzfS4K IC1Xbm8tbXVsdGljaGFyICAtV25vbm51bGwgIC1Xbm8tb3ZlcmZsb3cgQGdv bAogLVdvdmVybGVuZ3RoLXN0cmluZ3MgIC1XcGFja2VkICAtV3BhZGRlZCBA Z29sCiAtV3BhcmVudGhlc2VzICAtV3BvaW50ZXItYXJpdGggIC1Xbm8tcG9p bnRlci10by1pbnQtY2FzdCBAZ29sCi0tV3JlZHVuZGFudC1kZWNscyBAZ29s CistV3ByZWNlZGVuY2UgLVdyZWR1bmRhbnQtZGVjbHMgQGdvbAogLVdyZXR1 cm4tdHlwZSAgLVdzZXF1ZW5jZS1wb2ludCAgLVdzaGFkb3cgQGdvbAogLVdz aWduLWNvbXBhcmUgIC1Xc2lnbi1jb252ZXJzaW9uICAtV3N0YWNrLXByb3Rl Y3RvciBAZ29sCiAtV3N0cmljdC1hbGlhc2luZyAtV3N0cmljdC1hbGlhc2lu Zz1uIEBnb2wKQEAgLTI5NDEsNiArMjk0MSwyMCBAQCBsb29rIGxpa2UgdGhp czoKIAogVGhpcyB3YXJuaW5nIGlzIGVuYWJsZWQgYnkgQG9wdGlvbnstV2Fs bH0uCiAKK0BpdGVtIC1XcHJlY2VkZW5jZQorQG9waW5kZXggV3ByZWNlZGVu Y2UKK1dhcm4gaWYgcGFyZW50aGVzZXMgYXJlIG9taXR0ZWQgaW4gd2hlbiB1 c2luZyBAc2FtcHsmJn0gYW5kIEBzYW1we3x8fSAKK3RvZ2V0aGVyLCB3aGVy ZSB0aGUgcHJlY2VkZW5jZSBvZiB0aGVzZSBvcGVyYXRvcnMgbWF5IGJlIGNv bmZ1c2luZy4KKworQHNtYWxsZXhhbXBsZQorQGdyb3VwCitAeworICBpZiAo YSAmJiBiIHx8IGMgJiYgZCkgCisgICAgZm9vICgpOworQH0KK0BlbmQgZ3Jv dXAKK0BlbmQgc21hbGxleGFtcGxlCisKIEBpdGVtIC1Xc2VxdWVuY2UtcG9p bnQKIEBvcGluZGV4IFdzZXF1ZW5jZS1wb2ludAogV2FybiBhYm91dCBjb2Rl IHRoYXQgbWF5IGhhdmUgdW5kZWZpbmVkIHNlbWFudGljcyBiZWNhdXNlIG9m IHZpb2xhdGlvbnMKSW5kZXg6IHRlc3RzdWl0ZS9nY2MuZGcvV3BhcmVudGhl c2VzLTEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUv Z2NjLmRnL1dwYXJlbnRoZXNlcy0xLmMJKHJldmlzaW9uIDEzMTQ3NikKKysr IHRlc3RzdWl0ZS9nY2MuZGcvV3BhcmVudGhlc2VzLTEuYwkod29ya2luZyBj b3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qIENvcHlyaWdodCAoQykgMjAwMSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4gICovCiAKIC8qIHsgZGct ZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgLVdwYXJlbnRoZXNl cyB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1XcHJlY2VkZW5jZSIgfSAqLwog CiAvKiBTb3VyY2U6IE5laWwgQm9vdGgsIDEgTm92IDIwMDEuICBQUiAzMTcw LCAzNDIyIC0gYm9ndXMgd2FybmluZ3MKICAgIGFib3V0IHN1Z2dlc3Rpbmcg cGFyZW50aGVzZXMuICAqLwpJbmRleDogdGVzdHN1aXRlL2djYy5kZy9XcGFy ZW50aGVzZXMtNS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3Rz dWl0ZS9nY2MuZGcvV3BhcmVudGhlc2VzLTUuYwkocmV2aXNpb24gMTMxNDc2 KQorKysgdGVzdHN1aXRlL2djYy5kZy9XcGFyZW50aGVzZXMtNS5jCSh3b3Jr aW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAotLyogVGVzdCBvcGVyYXRpb24g b2YgLVdwYXJlbnRoZXNlcy4gIFByZWNlZGVuY2Ugd2FybmluZ3MuICAmJiBp bnNpZGUKKy8qIFRlc3Qgb3BlcmF0aW9uIG9mIC1XcHJlY2VkZW5jZS4gIFBy ZWNlZGVuY2Ugd2FybmluZ3MuICAmJiBpbnNpZGUKICAgIHx8LiAgKi8KIC8q IE9yaWdpbjogSm9zZXBoIE15ZXJzIDxqc21AcG9seW9taW5vLm9yZy51az4g Ki8KIAogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLS8qIHsgZGctb3B0aW9u cyAiLVdwYXJlbnRoZXNlcyIgfSAqLworLyogeyBkZy1vcHRpb25zIC1XcHJl Y2VkZW5jZSB9ICovCiAKIGludCBmb28gKGludCk7CiAKSW5kZXg6IHRlc3Rz dWl0ZS9nKysuZGcvd2Fybi9XcGFyZW50aGVzZXMtOC5DCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvd2Fybi9XcGFyZW50 aGVzZXMtOC5DCShyZXZpc2lvbiAxMzE0NzYpCisrKyB0ZXN0c3VpdGUvZysr LmRnL3dhcm4vV3BhcmVudGhlc2VzLTguQwkod29ya2luZyBjb3B5KQpAQCAt MSw1ICsxLDUgQEAKIC8vIHsgZGctZG8gY29tcGlsZSB9Ci0vLyB7IGRnLW9w dGlvbnMgIi1XcGFyZW50aGVzZXMiIH0KKy8vIHsgZGctb3B0aW9ucyAtV3By ZWNlZGVuY2UgfQogCiAvLyBDKysgdmVyc2lvbiBvZiBnY2MuZGcvV3BhcmVu dGhlc2VzLTUuYwogCkluZGV4OiB0ZXN0c3VpdGUvZysrLmRnL3dhcm4vV3Bh cmVudGhlc2VzLTE3LkMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVz dHN1aXRlL2crKy5kZy93YXJuL1dwYXJlbnRoZXNlcy0xNy5DCShyZXZpc2lv biAxMzE0NzYpCisrKyB0ZXN0c3VpdGUvZysrLmRnL3dhcm4vV3BhcmVudGhl c2VzLTE3LkMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvLyB7 IGRnLWRvIGNvbXBpbGUgfQotLy8geyBkZy1vcHRpb25zICItV3BhcmVudGhl c2VzIiB9CisvLyB7IGRnLW9wdGlvbnMgLVdwcmVjZWRlbmNlIH0KIAogLy8g VGVtcGxhdGUgdmVyc2lvbiBvZiBXcGFyZW50aGVzZXMtOC5DLgogCkluZGV4 OiB0ZXN0c3VpdGUvZysrLmRnL3dhcm4vV3BhcmVudGhlc2VzLTUuQwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUvZysrLmRnL3dhcm4v V3BhcmVudGhlc2VzLTUuQwkocmV2aXNpb24gMTMxNDc2KQorKysgdGVzdHN1 aXRlL2crKy5kZy93YXJuL1dwYXJlbnRoZXNlcy01LkMJKHdvcmtpbmcgY29w eSkKQEAgLTEsNSArMSw1IEBACiAvLyB7IGRnLWRvIGNvbXBpbGUgfQotLy8g eyBkZy1vcHRpb25zIC1XcGFyZW50aGVzZXMgfQorLy8geyBkZy1vcHRpb25z ICItV3BhcmVudGhlc2VzIC1XcHJlY2VkZW5jZSIgfQogCiAvLyBDKysgdmVy c2lvbiBvZiBnY2MuZGcvV3BhcmVudGhlc2VzLTEuYy4KIApJbmRleDogY3Av dHlwZWNrLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3AvdHlwZWNr LmMJKHJldmlzaW9uIDEzMTQ3NikKKysrIGNwL3R5cGVjay5jCSh3b3JraW5n IGNvcHkpCkBAIC0yOTc5LDcgKzI5NzksNyBAQCBidWlsZF94X2JpbmFyeV9v cCAoZW51bSB0cmVlX2NvZGUgY29kZSwgCiAgIC8qIENoZWNrIGZvciBjYXNl cyBzdWNoIGFzIHgreTw8eiB3aGljaCB1c2VycyBhcmUgbGlrZWx5IHRvCiAg ICAgIG1pc2ludGVycHJldC4gIEJ1dCBkb24ndCB3YXJuIGFib3V0IG9iaiA8 PCB4ICsgeSwgc2luY2UgdGhhdCBpcyBhCiAgICAgIGNvbW1vbiBpZGlvbSBm b3IgSS9PLiAgKi8KLSAgaWYgKHdhcm5fcGFyZW50aGVzZXMKKyAgaWYgKCh3 YXJuX3BhcmVudGhlc2VzIHx8IHdhcm5fcHJlY2VkZW5jZSkKICAgICAgICYm ICFwcm9jZXNzaW5nX3RlbXBsYXRlX2RlY2wKICAgICAgICYmICFlcnJvcl9v cGVyYW5kX3AgKGFyZzEpCiAgICAgICAmJiAhZXJyb3Jfb3BlcmFuZF9wIChh cmcyKQpAQCAtNjQzMCw3ICs2NDMwLDcgQEAgY29udmVydF9mb3JfYXNzaWdu bWVudCAodHJlZSB0eXBlLCB0cmVlIAogCiAgIC8qIElmIC1XcGFyZW50aGVz ZXMsIHdhcm4gYWJvdXQgYSA9IGIgPSBjIHdoZW4gYSBoYXMgdHlwZSBib29s IGFuZCBiCiAgICAgIGRvZXMgbm90LiAgKi8KLSAgaWYgKHdhcm5fcGFyZW50 aGVzZXMKKyAgaWYgKCh3YXJuX3BhcmVudGhlc2VzIHx8IHdhcm5fcHJlY2Vk ZW5jZSkKICAgICAgICYmIHR5cGUgPT0gYm9vbGVhbl90eXBlX25vZGUKICAg ICAgICYmIFRSRUVfQ09ERSAocmhzKSA9PSBNT0RJRllfRVhQUgogICAgICAg JiYgIVRSRUVfTk9fV0FSTklORyAocmhzKQpJbmRleDogYy5vcHQKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gYy5vcHQJKHJldmlzaW9uIDEzMTQ3NikK KysrIGMub3B0CSh3b3JraW5nIGNvcHkpCkBAIC0zNzcsNiArMzc3LDEwIEBA IFdwcmFnbWFzCiBDIE9iakMgQysrIE9iakMrKyBWYXIod2Fybl9wcmFnbWFz KSBJbml0KDEpIFdhcm5pbmcKIFdhcm4gYWJvdXQgbWlzdXNlcyBvZiBwcmFn bWFzCiAKK1dwcmVjZWRlbmNlCitDIE9iakMgQysrIE9iakMrKyBWYXIod2Fy bl9wcmVjZWRlbmNlKSBJbml0KDApIFdhcm5pbmcKK1dhcm4gYWJvdXQgY29u ZnVzaW5nIG9wZXJhdG9yIHByZWNlZGVuY2Ugd2l0aCAmJiBhbmQgfHwKKwog V3Byb3RvY29sCiBPYmpDIE9iakMrKyBWYXIod2Fybl9wcm90b2NvbCkgSW5p dCgxKSBXYXJuaW5nCiBXYXJuIGlmIGluaGVyaXRlZCBtZXRob2RzIGFyZSB1 bmltcGxlbWVudGVkCkluZGV4OiBjLXR5cGVjay5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGMtdHlwZWNrLmMJKHJldmlzaW9uIDEzMTQ3NikKKysr IGMtdHlwZWNrLmMJKHdvcmtpbmcgY29weSkKQEAgLTI3NTUsNyArMjc1NSw3 IEBAIHBhcnNlcl9idWlsZF9iaW5hcnlfb3AgKGVudW0gdHJlZV9jb2RlIGMK IAogICAvKiBDaGVjayBmb3IgY2FzZXMgc3VjaCBhcyB4K3k8PHogd2hpY2gg dXNlcnMgYXJlIGxpa2VseQogICAgICB0byBtaXNpbnRlcnByZXQuICAqLwot ICBpZiAod2Fybl9wYXJlbnRoZXNlcykKKyAgaWYgKHdhcm5fcGFyZW50aGVz ZXMgfHwgd2Fybl9wcmVjZWRlbmNlKQogICAgIHdhcm5fYWJvdXRfcGFyZW50 aGVzZXMgKGNvZGUsIGNvZGUxLCBjb2RlMik7CiAKICAgaWYgKGNvZGUxICE9 IHRjY19jb21wYXJpc29uKQpJbmRleDogYy1jb21tb24uYwo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBjLWNvbW1vbi5jCShyZXZpc2lvbiAxMzE0NzYp CisrKyBjLWNvbW1vbi5jCSh3b3JraW5nIGNvcHkpCkBAIC03MjQ5LDE5ICs3 MjQ5LDIwIEBAIHdhcm5fYXJyYXlfc3Vic2NyaXB0X3dpdGhfdHlwZV9jaGFy ICh0cmUKICAgICB3YXJuaW5nIChPUFRfV2NoYXJfc3Vic2NyaXB0cywgImFy cmF5IHN1YnNjcmlwdCBoYXMgdHlwZSAlPGNoYXIlPiIpOwogfQogCi0vKiBJ bXBsZW1lbnQgLVdwYXJlbnRoZXNlcyBmb3IgdGhlIHVuZXhwZWN0ZWQgQyBw cmVjZWRlbmNlIHJ1bGVzLCB0bwotICAgY292ZXIgY2FzZXMgbGlrZSB4ICsg eSA8PCB6IHdoaWNoIHJlYWRlcnMgYXJlIGxpa2VseSB0bwotICAgbWlzaW50 ZXJwcmV0LiAgV2UgaGF2ZSBzZWVuIGFuIGV4cHJlc3Npb24gaW4gd2hpY2gg Q09ERSBpcyBhIGJpbmFyeQotICAgb3BlcmF0b3IgdXNlZCB0byBjb21iaW5l IGV4cHJlc3Npb25zIGhlYWRlZCBieSBDT0RFX0xFRlQgYW5kCi0gICBDT0RF X1JJR0hULiAgQ09ERV9MRUZUIGFuZCBDT0RFX1JJR0hUIG1heSBiZSBFUlJP Ul9NQVJLLCB3aGljaAotICAgbWVhbnMgdGhhdCB0aGF0IHNpZGUgb2YgdGhl IGV4cHJlc3Npb24gd2FzIG5vdCBmb3JtZWQgdXNpbmcgYQotICAgYmluYXJ5 IG9wZXJhdG9yLCBvciBpdCB3YXMgZW5jbG9zZWQgaW4gcGFyZW50aGVzZXMu ICAqLworLyogSW1wbGVtZW50IC1XcGFyZW50aGVzZXMgYW5kIC1XcHJlY2Vk ZW5jZSBmb3IgdGhlIHVuZXhwZWN0ZWQgQworICAgcHJlY2VkZW5jZSBydWxl cywgdG8gY292ZXIgY2FzZXMgbGlrZSB4ICsgeSA8PCB6IHdoaWNoIHJlYWRl cnMgYXJlCisgICBsaWtlbHkgdG8gbWlzaW50ZXJwcmV0LiAgV2UgaGF2ZSBz ZWVuIGFuIGV4cHJlc3Npb24gaW4gd2hpY2ggQ09ERQorICAgaXMgYSBiaW5h cnkgb3BlcmF0b3IgdXNlZCB0byBjb21iaW5lIGV4cHJlc3Npb25zIGhlYWRl ZCBieQorICAgQ09ERV9MRUZUIGFuZCBDT0RFX1JJR0hULiAgQ09ERV9MRUZU IGFuZCBDT0RFX1JJR0hUIG1heSBiZQorICAgRVJST1JfTUFSSywgd2hpY2gg bWVhbnMgdGhhdCB0aGF0IHNpZGUgb2YgdGhlIGV4cHJlc3Npb24gd2FzIG5v dAorICAgZm9ybWVkIHVzaW5nIGEgYmluYXJ5IG9wZXJhdG9yLCBvciBpdCB3 YXMgZW5jbG9zZWQgaW4KKyAgIHBhcmVudGhlc2VzLiAgKi8KIAogdm9pZAog d2Fybl9hYm91dF9wYXJlbnRoZXNlcyAoZW51bSB0cmVlX2NvZGUgY29kZSwg ZW51bSB0cmVlX2NvZGUgY29kZV9sZWZ0LAogCQkJZW51bSB0cmVlX2NvZGUg Y29kZV9yaWdodCkKIHsKLSAgaWYgKCF3YXJuX3BhcmVudGhlc2VzKQorICBp ZiAoIXdhcm5fcGFyZW50aGVzZXMgJiYgIXdhcm5fcHJlY2VkZW5jZSkKICAg ICByZXR1cm47CiAKICAgaWYgKGNvZGUgPT0gTFNISUZUX0VYUFIgfHwgY29k ZSA9PSBSU0hJRlRfRVhQUikKQEAgLTcyNzYsNyArNzI3Nyw3IEBAIHdhcm5f YWJvdXRfcGFyZW50aGVzZXMgKGVudW0gdHJlZV9jb2RlIGMKICAgICB7CiAg ICAgICBpZiAoY29kZV9sZWZ0ID09IFRSVVRIX0FORElGX0VYUFIKIAkgIHx8 IGNvZGVfcmlnaHQgPT0gVFJVVEhfQU5ESUZfRVhQUikKLQl3YXJuaW5nIChP UFRfV3BhcmVudGhlc2VzLAorCXdhcm5pbmcgKE9QVF9XcHJlY2VkZW5jZSwK IAkJICJzdWdnZXN0IHBhcmVudGhlc2VzIGFyb3VuZCAmJiB3aXRoaW4gfHwi KTsKICAgICB9CiAK ------=_Part_4210_2085303.1200090459734--