From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16756 invoked by alias); 29 Aug 2011 16:23:12 -0000 Received: (qmail 16720 invoked by uid 22791); 29 Aug 2011 16:23:07 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_CP X-Spam-Check-By: sourceware.org Received: from mail-yw0-f41.google.com (HELO mail-yw0-f41.google.com) (209.85.213.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 29 Aug 2011 16:22:49 +0000 Received: by ywm13 with SMTP id 13so5161252ywm.0 for ; Mon, 29 Aug 2011 09:22:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.236.9.101 with SMTP id 65mr26818000yhs.11.1314634968294; Mon, 29 Aug 2011 09:22:48 -0700 (PDT) Received: by 10.236.34.162 with HTTP; Mon, 29 Aug 2011 09:22:48 -0700 (PDT) In-Reply-To: References: <201108121544.09810.pedro@codesourcery.com> Date: Mon, 29 Aug 2011 16:23:00 -0000 Message-ID: Subject: Re: [patch] python prompt additions at first prompt. From: Matt Rice To: Pedro Alves Cc: gdb-patches@sourceware.org, Tom Tromey Content-Type: multipart/mixed; boundary=20cf303bfe044b649b04aba74e51 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: 2011-08/txt/msg00570.txt.bz2 --20cf303bfe044b649b04aba74e51 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1465 On Fri, Aug 12, 2011 at 8:07 AM, Matt Rice wrote: > On Fri, Aug 12, 2011 at 7:44 AM, Pedro Alves wro= te: >> On Friday 12 August 2011 14:10:17, Matt Rice wrote: >>> it seems clearer to return early in all sync_execution cases, and >>> limit the potential for introducing the double prompting type of bug. >>> I haven't been able to find any problems with this approach. >> >> I think this breaks the pagination prompt in async mode. =A0Try setting >> a breakpoint in a loop, with a command list that just continues: >> >> (gdb) b inloop >> (gdb) commands >> Type commands for breakpoint(s) 2, one per line. >> End with a line saying just "end". >>>c >>>end >> (gdb) c > > Yeah it does, thank you for pointing this out. > Here is a version of my previous patch, which doesn't suffer from this fail= ure. I have added comments explaining that we really do want to display an empty prompt in this case. hopefully this clears up any confusion... 2011-08-28 Matt Rice * event-top.c (cli_command_loop): Replace readline setup with direct call to display_gdb_prompt. (display_gdb_prompt): Do not call observer mechanism during synchronous execution. 2011-08-28 Matt Rice * lib/prompt.exp: New file for testing the first prompt. * gdb.python/py-prompt.exp: Ditto. * gdb.python/py-prompt.c: Ditto (copy of ext-attach.c). --20cf303bfe044b649b04aba74e51 Content-Type: text/x-patch; charset=US-ASCII; name="foo.diff" Content-Disposition: attachment; filename="foo.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_grxnok6f1 Content-length: 15616 ZGlmZiAtLWdpdCBhL2dkYi9ldmVudC10b3AuYyBiL2dkYi9ldmVudC10b3Au YwppbmRleCAzNzg4MjcyOC4uNjQ5Njk4OCAxMDA2NDQKLS0tIGEvZ2RiL2V2 ZW50LXRvcC5jCisrKyBiL2dkYi9ldmVudC10b3AuYwpAQCAtMTg1LDI3ICsx ODUsNyBAQCBybF9jYWxsYmFja19yZWFkX2NoYXJfd3JhcHBlciAoZ2RiX2Ns aWVudF9kYXRhIGNsaWVudF9kYXRhKQogdm9pZAogY2xpX2NvbW1hbmRfbG9v cCAodm9pZCkKIHsKLSAgLyogSWYgd2UgYXJlIHVzaW5nIHJlYWRsaW5lLCBz ZXQgdGhpbmdzIHVwIGFuZCBkaXNwbGF5IHRoZSBmaXJzdAotICAgICBwcm9t cHQsIG90aGVyd2lzZSBqdXN0IHByaW50IHRoZSBwcm9tcHQuICAqLwotICBp ZiAoYXN5bmNfY29tbWFuZF9lZGl0aW5nX3ApCi0gICAgewotICAgICAgaW50 IGxlbmd0aDsKLSAgICAgIGNoYXIgKmFfcHJvbXB0OwotICAgICAgY2hhciAq Z2RiX3Byb21wdCA9IGdldF9wcm9tcHQgKDApOwotCi0gICAgICAvKiBUZWxs IHJlYWRsaW5lIHdoYXQgdGhlIHByb21wdCB0byBkaXNwbGF5IGlzIGFuZCB3 aGF0IGZ1bmN0aW9uCi0gICAgICAgICBpdCB3aWxsIG5lZWQgdG8gY2FsbCBh ZnRlciBhIHdob2xlIGxpbmUgaXMgcmVhZC4gIFRoaXMgYWxzbwotICAgICAg ICAgZGlzcGxheXMgdGhlIGZpcnN0IHByb21wdC4gICovCi0gICAgICBsZW5n dGggPSBzdHJsZW4gKGdldF9wcmVmaXggKDApKQotCSsgc3RybGVuIChnZGJf cHJvbXB0KSArIHN0cmxlbiAoZ2V0X3N1ZmZpeCgwKSkgKyAxOwotICAgICAg YV9wcm9tcHQgPSAoY2hhciAqKSBhbGxvY2EgKGxlbmd0aCk7Ci0gICAgICBz dHJjcHkgKGFfcHJvbXB0LCBnZXRfcHJlZml4ICgwKSk7Ci0gICAgICBzdHJj YXQgKGFfcHJvbXB0LCBnZGJfcHJvbXB0KTsKLSAgICAgIHN0cmNhdCAoYV9w cm9tcHQsIGdldF9zdWZmaXggKDApKTsKLSAgICAgIHJsX2NhbGxiYWNrX2hh bmRsZXJfaW5zdGFsbCAoYV9wcm9tcHQsIGlucHV0X2hhbmRsZXIpOwotICAg IH0KLSAgZWxzZQotICAgIGRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CisgIGRp c3BsYXlfZ2RiX3Byb21wdCAoMCk7CiAKICAgLyogTm93IGl0J3MgdGltZSB0 byBzdGFydCB0aGUgZXZlbnQgbG9vcC4gICovCiAgIHN0YXJ0X2V2ZW50X2xv b3AgKCk7CkBAIC0yNzIsOCArMjUyLDExIEBAIGRpc3BsYXlfZ2RiX3Byb21w dCAoY2hhciAqbmV3X3Byb21wdCkKICAgLyogR2V0IHRoZSBwcm9tcHQgYmVm b3JlIHRoZSBvYnNlcnZlcnMgYXJlIGNhbGxlZCBhcyBvYnNlcnZlciBob29r CiAgICAgIGZ1bmN0aW9ucyBtYXkgY2hhbmdlIHRoZSBwcm9tcHQuICBEbyBu b3QgY2FsbCBvYnNlcnZlcnMgb24gYW4KICAgICAgZXhwbGljaXQgcHJvbXB0 IGNoYW5nZSBhcyBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiwgYXMgdGhpcyBm b3JtcwotICAgICBhIHRlbXBvcmFyeSBwcm9tcHQsIElFLCBkaXNwbGF5ZWQg YnV0IG5vdCBzZXQuICAqLwotICBpZiAoISBuZXdfcHJvbXB0KQorICAgICBh IHRlbXBvcmFyeSBwcm9tcHQsIElFLCBkaXNwbGF5ZWQgYnV0IG5vdCBzZXQu ICBEbyBub3QgY2FsbAorICAgICBvYnNlcnZlcnMgZm9yIGEgcHJvbXB0IGNo YW5nZSBpZiBzeW5jX2V4ZWN1dGlvbiBpcyBzZXQsIGl0IHdpbGwKKyAgICAg Y2FsbCB1cyBhZ2FpbiB3aXRoIHN5bmNfZXhlY3V0aW9uIG5vdCBzZXQgd2hl biBpdCB3YW50cyB0bworICAgICBkaXNwbGF5IGFuIGFjdHVhbCBwcm9tcHQu ICAqLworICBpZiAoISBzeW5jX2V4ZWN1dGlvbiAmJiAhIG5ld19wcm9tcHQp CiAgICAgewogICAgICAgY2hhciAqcG9zdF9nZGJfcHJvbXB0ID0gTlVMTDsK ICAgICAgIGNoYXIgKnByZV9nZGJfcHJvbXB0ID0geHN0cmR1cCAoZ2V0X3By b21wdCAoMCkpOwpAQCAtMjg4LDYgKzI3MSwxMCBAQCBkaXNwbGF5X2dkYl9w cm9tcHQgKGNoYXIgKm5ld19wcm9tcHQpCiAgICAgICB4ZnJlZSAocHJlX2dk Yl9wcm9tcHQpOwogICAgIH0KIAorICAvKiBJbiB0aGUgc3luY19leGVjdXRp b24gJiYgIWlzX3J1bm5pbmcgY2FzZSB3ZSBuZWVkIHRvIGRpc3BsYXkgdGhl IHByb21wdAorICAgICBldmVudCB0aG91Z2ggaXQgbWF5IGJlICIiIHRvIGF2 b2lkIGEgZG91YmxlIHByb21wdCwgd2hpbGUgaW5zdGFsbGluZyB0aGUKKyAg ICAgY2FsbGJhY2sgaGFuZGxlcnMsIGluIHRoZSBhc3luY19lZGl0aW5nX3Ag Y2FzZSBmb3IgcGFnaW5hdGlvbiwKKyAgICAgU28gZmFsbCB0aHJvdWdoLiAg Ki8KICAgaWYgKHN5bmNfZXhlY3V0aW9uICYmIGlzX3J1bm5pbmcgKGluZmVy aW9yX3B0aWQpKQogICAgIHsKICAgICAgIC8qIFRoaXMgaXMgdG8gdHJpY2sg cmVhZGxpbmUgaW50byBub3QgdHJ5aW5nIHRvIGRpc3BsYXkgdGhlCmRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJvbXB0LmMg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJvbXB0LmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ4NGYwOQotLS0gL2Rl di9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcm9t cHQuYwpAQCAtMCwwICsxLDMxIEBACisvKiBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorCisgICBDb3B5cmlnaHQg MjAwNywgMjAwOSwgMjAxMCwgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworLyog VGhpcyBwcm9ncmFtIGlzIGludGVuZGVkIHRvIGJlIHN0YXJ0ZWQgb3V0c2lk ZSBvZiBnZGIsIGFuZCB0aGVuCisgICBhdHRhY2hlZCB0byBieSBnZGIuICBJ dCBsb29wcyBmb3IgYSB3aGlsZSwgYnV0IG5vdCBmb3JldmVyLiAgKi8KKwor I2luY2x1ZGUgPHVuaXN0ZC5oPgorCitpbnQgbWFpbiAoKQoreworICBpbnQg aTsKKworICBmb3IgKGkgPSAwOyBpIDwgMTIwOyBpKyspCisgICAgc2xlZXAg KDEpOworCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXByb21wdC5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktcHJvbXB0LmV4cApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jMWNhMTA1Ci0tLSAvZGV2L251bGwKKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByb21wdC5leHAKQEAgLTAs MCArMSwxMzEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisjIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHREIgdGVzdHN1aXRlLiAgSXQgdGVz dHMgdGhlIG1lY2hhbmlzbQorIyBmb3IgZGVmaW5pbmcgdGhlIHByb21wdCBp biBQeXRob24uCisKK2lmICR0cmFjZWxldmVsIHRoZW4geworICAgIHN0cmFj ZSAkdHJhY2VsZXZlbAorfQorCitzZXQgdGVzdGZpbGUgInB5LXByb21wdCIK K3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKK3NldCBiaW5maWxlICR7b2Jq ZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KKworCitsb2FkX2xpYiBnZGIt cHl0aG9uLmV4cAorbG9hZF9saWIgcHJvbXB0LmV4cAorCisjIFN0YXJ0IHdp dGggYSBmcmVzaCBnZGIuCisKK2dkYl9leGl0CitnZGJfc3RhcnQKK2dkYl9y ZWluaXRpYWxpemVfZGlyICRzcmNkaXIvJHN1YmRpcgorCisjIFNraXAgYWxs IHRlc3RzIGlmIFB5dGhvbiBzY3JpcHRpbmcgaXMgbm90IGVuYWJsZWQuCitp ZiB7IFtza2lwX3B5dGhvbl90ZXN0c10gfSB7IGNvbnRpbnVlIH0KK2dkYl9l eGl0CisKK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGly fS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9 XSAhPSAiIiB9IHsKKyAgICB1bnRlc3RlZCBweS1wcm9tcHQuZXhwCisgICAg cmV0dXJuIC0xCit9CisKK2dsb2JhbCBHREJGTEFHUworc2V0IHNhdmVkX2dk YmZsYWdzICRHREJGTEFHUworc2V0IEdEQkZMQUdTIFtjb25jYXQgJEdEQkZM QUdTICIgLWV4IFwic2V0IGhlaWdodCAwXCIiXQorc2V0IEdEQkZMQUdTIFtj b25jYXQgJEdEQkZMQUdTICIgLWV4IFwic2V0IHdpZHRoIDBcIiJdCitzZXQg R0RCRkxBR1MgW2NvbmNhdCAkR0RCRkxBR1MgIiAtZXggXCJweXRob24gcCA9 IGxpc3QoKVwiIl0KK3NldCBwcm9tcHRfZnVuYyAicHl0aG9uIGRlZiBmb28o eCk6IGdsb2JhbCBwOyBwLmFwcGVuZCh4KTsgIHJldHVybiBcJyhGb28pIFwn Igorc2V0IEdEQkZMQUdTIFtjb25jYXQgJEdEQkZMQUdTICIgLWV4IFwiJHBy b21wdF9mdW5jXCIiXQorc2V0IEdEQkZMQUdTIFtjb25jYXQgJEdEQkZMQUdT ICIgLWV4IFwicHl0aG9uIGdkYi5wcm9tcHRfaG9vaz1mb29cIiJdCisKK3Nl dCB0bXBfZ2RiZmxhZ3MgJEdEQkZMQUdTCitzZXQgZ2RiX3Byb21wdF9mYWls ICRnZGJfcHJvbXB0CisKK2dsb2JhbCBnZGJfcHJvbXB0CisjIERvZXMgbm90 IGluY2x1ZGUgdGhlIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIHByb21wdC4K KyMgZ2RiX3Rlc3QgZXhwZWN0cyBpdCBub3QgdG8gYmUgdGhlcmUuCitzZXQg Z2RiX3Byb21wdCAiXFsoXF1Gb29cWylcXSIKKworc2V0IEdEQkZMQUdTIFtj b25jYXQgJHRtcF9nZGJmbGFncyAiIC1leCBcInNldCBlZGl0aW5nIG9uXCIi XQorcHJvbXB0X2dkYl9zdGFydAorZ2RiX3Rlc3QgInB5dGhvbiB4ID0gbGVu KHApOyBwcmludCBnZGIuZXhlY3V0ZShcInNob3cgcHJvbXB0XCIsIHRvX3N0 cmluZyA9IFRydWUpIiBcCisJICIuKnByb21wdCBpcyBcIiRnZGJfcHJvbXB0 IFwiLioiIFwKKwkgInNob3cgcHJvbXB0IGdldHMgdGhlIGNvcnJlY3QgcmVz dWx0IgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCB4LCBsZW4ocCkiICIxIDIi IFwKKwkgInJldHJpZXZpbmcgdGhlIHByb21wdCBjYXVzZXMgbm8gZXh0cmEg cHJvbXB0X2hvb2sgY2FsbHMiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IFwi J1wiICsgc3RyKHBcWzBcXSkgKyBcIidcIiIgIickZ2RiX3Byb21wdF9mYWls ICciIFwKKwkgInByb21wdF9ob29rIGFyZ3VtZW50IGlzIGRlZmF1bHQgcHJv bXB0LiIKK2dkYl9leGl0CisKKworc2V0IEdEQkZMQUdTIFtjb25jYXQgJHRt cF9nZGJmbGFncyAiIC1leCBcInNldCBlZGl0aW5nIG9mZlwiIl0KK3Byb21w dF9nZGJfc3RhcnQKK2dkYl90ZXN0ICJweXRob24geCA9IGxlbihwKTsgcHJp bnQgZ2RiLmV4ZWN1dGUoXCJzaG93IHByb21wdFwiLCB0b19zdHJpbmcgPSBU cnVlKSIgXAorCSAiLipwcm9tcHQgaXMgXCIkZ2RiX3Byb21wdCBcIi4qIiBc CisJICJzaG93IHByb21wdCBnZXRzIHRoZSBjb3JyZWN0IHJlc3VsdCAyIgor Z2RiX3Rlc3QgInB5dGhvbiBwcmludCB4LCBsZW4ocCkiICIxIDIiIFwKKwkg InJldHJpZXZpbmcgdGhlIHByb21wdCBjYXVzZXMgbm8gZXh0cmEgcHJvbXB0 X2hvb2sgY2FsbHMgMiIKK2dkYl90ZXN0ICJweXRob24gcHJpbnQgXCInXCIg KyBzdHIocFxbMFxdKSArIFwiJ1wiIiAiJyRnZGJfcHJvbXB0X2ZhaWwgJyIg XAorCSAicHJvbXB0X2hvb2sgYXJndW1lbnQgaXMgZGVmYXVsdCBwcm9tcHQu IDIiCitnZGJfZXhpdAorCisjIFN0YXJ0IHRoZSBwcm9ncmFtIHJ1bm5pbmcg YW5kIHRoZW4gd2FpdCBmb3IgYSBiaXQsIHRvIGJlIHN1cmUKKyMgdGhhdCBp dCBjYW4gYmUgYXR0YWNoZWQgdG8uCitzZXQgdGVzdHBpZCBbZXZhbCBleGVj ICRiaW5maWxlICZdCitleGVjIHNsZWVwIDIKK2lmIHsgW2lzdGFyZ2V0ICIq LSotY3lnd2luKiJdIH0geworICAgICMgdGVzdHBpZCBpcyB0aGUgQ3lnd2lu IFBJRCwgR0RCIHVzZXMgdGhlIFdpbmRvd3MgUElELCB3aGljaCBtaWdodCBi ZQorICAgICMgZGlmZmVyZW50IGR1ZSB0byB0aGUgd2F5IGZvcmsvZXhlYyB3 b3Jrcy4KKyAgICBzZXQgdGVzdHBpZCBbIGV4ZWMgcHMgLWUgfCBnYXdrICJ7 IGlmIChcJDEgPT0gJHRlc3RwaWQpIHByaW50IFwkNDsgfSIgXQorfQorCitz ZXQgR0RCRkxBR1MgW2NvbmNhdCAkdG1wX2dkYmZsYWdzICIgLWV4IFwic2V0 IHRhcmdldC1hc3luYyBvblwiIl0KK3NldCBHREJGTEFHUyBbY29uY2F0ICRH REJGTEFHUyAiIC1leCBcInNldCBwYWdpbmF0aW9uIG9mZlwiIl0KK3NldCBH REJGTEFHUyBbY29uY2F0ICRHREJGTEFHUyAiIC1leCBcInNldCBlZGl0aW5n IG9uXCIiXQorc2V0IEdEQkZMQUdTIFtjb25jYXQgJEdEQkZMQUdTICIgLWV4 IFwiYXR0YWNoICR0ZXN0cGlkXCIiXQorc2V0IEdEQkZMQUdTIFtjb25jYXQg JEdEQkZMQUdTICIgLWV4IFwiY29udGludWUmXCIiXQorCisjIHN5bmNfZXhl Y3V0aW9uID0gMSBpc19ydW5uaW5nID0gMQorcHJvbXB0X2dkYl9zdGFydAor Z2RiX3Rlc3QgInB5dGhvbiB4ID0gbGVuKHApOyBwcmludCBnZGIuZXhlY3V0 ZShcInNob3cgcHJvbXB0XCIsIHRvX3N0cmluZyA9IFRydWUpIiBcCisJICIu KnByb21wdCBpcyBcIiRnZGJfcHJvbXB0IFwiLioiIFwKKwkgInNob3cgcHJv bXB0IGdldHMgdGhlIGNvcnJlY3QgcmVzdWx0IDMiCitnZGJfdGVzdCAicHl0 aG9uIHByaW50IHgsIGxlbihwKSIgIjEgMiIgXAorCSAicmV0cmlldmluZyB0 aGUgcHJvbXB0IGNhdXNlcyBubyBleHRyYSBwcm9tcHRfaG9vayBjYWxscyAz IgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBcIidcIiArIHN0cihwXFswXF0p ICsgXCInXCIiICInJGdkYl9wcm9tcHRfZmFpbCAnIiBcCisJICJwcm9tcHRf aG9vayBhcmd1bWVudCBpcyBkZWZhdWx0IHByb21wdC4gMyIKK2dkYl9leGl0 CisKK3NldCBHREJGTEFHUyBbY29uY2F0ICR0bXBfZ2RiZmxhZ3MgIiAtZXgg XCJzZXQgdGFyZ2V0LWFzeW5jIG9uXCIiXQorc2V0IEdEQkZMQUdTIFtjb25j YXQgJEdEQkZMQUdTICIgLWV4IFwic2V0IHBhZ2luYXRpb24gb2ZmXCIiXQor c2V0IEdEQkZMQUdTIFtjb25jYXQgJEdEQkZMQUdTICIgLWV4IFwic2V0IGVk aXRpbmcgb25cIiJdCitzZXQgR0RCRkxBR1MgW2NvbmNhdCAkR0RCRkxBR1Mg IiAtZXggXCJhdHRhY2ggJHRlc3RwaWRcIiJdCitzZXQgR0RCRkxBR1MgW2Nv bmNhdCAkR0RCRkxBR1MgIiAtZXggXCJpbnRlcnJ1cHRcIiJdCisKKyMgc3lu Y19leGVjdXRpb24gPSAxIGlzX3J1bm5pbmcgPSAwCitwcm9tcHRfZ2RiX3N0 YXJ0CitnZGJfdGVzdCAicHl0aG9uIHggPSBsZW4ocCk7IHByaW50IGdkYi5l eGVjdXRlKFwic2hvdyBwcm9tcHRcIiwgdG9fc3RyaW5nID0gVHJ1ZSkiIFwK KwkgIi4qcHJvbXB0IGlzIFwiJGdkYl9wcm9tcHQgXCIuKiIgXAorCSAic2hv dyBwcm9tcHQgZ2V0cyB0aGUgY29ycmVjdCByZXN1bHQgNCIKK2dkYl90ZXN0 ICJweXRob24gcHJpbnQgeCwgbGVuKHApIiAiMSAyIiBcCisJICJyZXRyaWV2 aW5nIHRoZSBwcm9tcHQgY2F1c2VzIG5vIGV4dHJhIHByb21wdF9ob29rIGNh bGxzIDQiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IFwiJ1wiICsgc3RyKHBc WzBcXSkgKyBcIidcIiIgIickZ2RiX3Byb21wdF9mYWlsICciIFwKKwkgInBy b21wdF9ob29rIGFyZ3VtZW50IGlzIGRlZmF1bHQgcHJvbXB0LiA0IgorZ2Ri X2V4aXQKKworc2V0IEdEQkZMQUdTICRzYXZlZF9nZGJmbGFncworcmV0dXJu IDAKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL3Byb21wdC5leHAg Yi9nZGIvdGVzdHN1aXRlL2xpYi9wcm9tcHQuZXhwCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyN2JiYjMKLS0tIC9kZXYvbnVsbAor KysgYi9nZGIvdGVzdHN1aXRlL2xpYi9wcm9tcHQuZXhwCkBAIC0wLDAgKzEs OTIgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorIworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor IworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworIyBTcGVjaWFs aXplZCBzdWJyb3V0aW5lcyBmb3IgbGF1bmNoaW5nIGdkYiBhbmQgdGVzdGlu ZyB0aGUgdmVyeSBmaXJzdCBwcm9tcHQuCisKKworIworIyBzdGFydCBnZGIg LS0gc3RhcnQgZ2RiIHJ1bm5pbmcsIHByb21wdCBwcm9jZWR1cmUKKyMgdGhp cyBwcm9jZWR1cmUgZGlmZmVycyBmcm9tIHRoZSBkZWZhdWx0IGluIHRoYXQg eW91IG11c3QgcGFzcyAnc2V0IGhlaWdodCAwJywKKyMgYW5kICdzZXQgd2lk dGggMCcsIHlvdXJzZWxmIGluIEdEQkZMQUdTLCBhbmQgaXQgaGFzIGEgZ2Ri X3Byb21wdF9mYWlsIHZhcmlhYmxlLAorIworIyB1c2VzIHBhc3MgaWYgaXQg c2VlcyAkZ2RiX3Byb21wdCwgYW5kIGZhaWwgaWYgaXQgc2VlcyAkZ2RiX3By b21wdF9mYWlsLgorIworcHJvYyBkZWZhdWx0X3Byb21wdF9nZGJfc3RhcnQg eyB9IHsKKyAgICBnbG9iYWwgdmVyYm9zZQorICAgIGdsb2JhbCBHREIKKyAg ICBnbG9iYWwgSU5URVJOQUxfR0RCRkxBR1MgR0RCRkxBR1MKKyAgICBnbG9i YWwgZ2RiX3Byb21wdAorICAgIGdsb2JhbCBnZGJfcHJvbXB0X2ZhaWwKKyAg ICBnbG9iYWwgdGltZW91dAorICAgIGdsb2JhbCBnZGJfc3Bhd25faWQ7CisK KyAgICBnZGJfc3RvcF9zdXBwcmVzc2luZ190ZXN0czsKKworICAgIHZlcmJv c2UgIlNwYXduaW5nICRHREIgJElOVEVSTkFMX0dEQkZMQUdTICRHREJGTEFH UyIKKworICAgIGlmIFtpbmZvIGV4aXN0cyBnZGJfc3Bhd25faWRdIHsKKwly ZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAhW2lzX3JlbW90ZSBob3N0XSB7 CisJaWYgeyBbd2hpY2ggJEdEQl0gPT0gMCB9IHRoZW4geworCSAgICBwZXJy b3IgIiRHREIgZG9lcyBub3QgZXhpc3QuIgorCSAgICBleGl0IDEKKwl9Cisg ICAgfQorICAgIHNldCByZXMgW3JlbW90ZV9zcGF3biBob3N0ICIkR0RCICRJ TlRFUk5BTF9HREJGTEFHUyAkR0RCRkxBR1MgW2hvc3RfaW5mbyBnZGJfb3B0 c10iXTsKKyAgICBpZiB7ICRyZXMgPCAwIHx8ICRyZXMgPT0gIiIgfSB7CisJ cGVycm9yICJTcGF3bmluZyAkR0RCIGZhaWxlZC4iCisJcmV0dXJuIDE7Cisg ICAgfQorICAgIGdkYl9leHBlY3QgMzYwIHsKKwktcmUgIi4qJGdkYl9wcm9t cHRfZmFpbC4qJGdkYl9wcm9tcHRfZmFpbC4qIiB7CisJICAgIGZhaWwgImRv dWJsZSBwcm9tcHRlZCBmYWlsIHByb21wdCIKKwl9CisJLXJlICIuKiRnZGJf cHJvbXB0LiokZ2RiX3Byb21wdC4qIiB7CisJICAgIGZhaWwgImRvdWJsZSBw cm9tcHRlZCIKKwl9CisJLXJlICJcW1xyXG5cXSRnZGJfcHJvbXB0X2ZhaWwg JCIgeworCSAgICBmYWlsICJHREIgaW5pdGlhbGl6aW5nIGZpcnN0IHByb21w dCIKKwl9CisJLXJlICJcW1xyXG5cXSRnZGJfcHJvbXB0ICQiIHsKKwkgICAg cGFzcyAiR0RCIGluaXRpYWxpemluZyBmaXJzdCBwcm9tcHQiCisJfQorCS1y ZSAiJGdkYl9wcm9tcHQgJCIJeworCSAgICBwZXJyb3IgIkdEQiBuZXZlciBp bml0aWFsaXplZC4iCisJICAgIHJldHVybiAtMQorCX0KKwktcmUgIiRnZGJf cHJvbXB0X2ZhaWwgJCIJeworCSAgICBwZXJyb3IgIkdEQiBuZXZlciBpbml0 aWFsaXplZC4iCisJICAgIHJldHVybiAtMQorCX0KKwl0aW1lb3V0CXsKKwkg ICAgcGVycm9yICIodGltZW91dCkgR0RCIG5ldmVyIGluaXRpYWxpemVkIGFm dGVyIDEwIHNlY29uZHMuIgorCSAgICByZW1vdGVfY2xvc2UgaG9zdDsKKwkg ICAgcmV0dXJuIC0xCisJfQorICAgIH0KKyAgICBzZXQgZ2RiX3NwYXduX2lk IC0xOworICAgIHJldHVybiAwOworfQorCisjCisjIE92ZXJyaWRhYmxlIGZ1 bmN0aW9uLiBZb3UgY2FuIG92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gaW4geW91 cgorIyBiYXNlYm9hcmQgZmlsZS4KKyMKK3Byb2MgcHJvbXB0X2dkYl9zdGFy dCB7IH0geworICAgIGRlZmF1bHRfcHJvbXB0X2dkYl9zdGFydAorfQorCg== --20cf303bfe044b649b04aba74e51--