From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:5f26::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id kGmBG8JzlmUubwEAkFu2QA (envelope-from ) for ; Thu, 04 Jan 2024 10:00:50 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id mK6wF8JzlmW9JQAAqHPOHw (envelope-from ) for ; Thu, 04 Jan 2024 10:00:50 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=G3gRyTNb; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1704358849; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=E7Zwigd8qy8e7kKNR35uCBT3rt2DZw5njbfMw/3lgus=; b=PkB9pdCrBlJ/HFq/xUIMPbBF9aPWmgFU7iSOqBPQjjGnQpOo/YsMGL/9HYDfmBqfCJYw7O WX5wy3fqExzbh6VyiYnXDIjHJaeJLfyXULodfJAnxM46y/rtZtWmb1xn7iYRmBo0auqVVV 1AHSmhNukWWI7TgO+S8xoQpFBFnOzgd3TUIqXD/QSNTziZN7TwGAysBmM8ydbCo135DeyH q0PM1Pg8bUB3G3PCLAbpHehV6Rx+AZBJY3668HrDOGU3H0ZIvUFypN7jEyvFYoSRlP6gN5 WYDCg19RNlDfzk6mqn1VTYBSRbg3eLsor6EqG7EulT8YnmffEt8eqU3GMdgJ+g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1704358849; a=rsa-sha256; cv=none; b=jKdLoP12BSOFLVZ92GwCmvqEN4Yx9fO/utYEOWGOFU1VqxCKgfulpnzs4j0UozBlz+SDQN Xqzfy3OlCCVoDona7rZqrpVlDM3sEDxdBkYyol6Q+xuV4jDDCXLkrWNOkgwrA48FYlQTmY VhDyr0jm24h9hrWc9stecY4v66+ZKNKC9RJSHG2ixpah4QhGdtMww3AmuAh6BcP003H/hQ PBSHn12RWtNKGP2DN3hke9M1+Uvz2IHhV0+qi/cJMxOwH+0LF7q+VoNSGyuqAIpJdhBeQU Rspjl5KNgEJhqNM75vs26+L0SA9z2aVLHZwdgKubcWQvkMNIME3Q/RqghC8VZA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=G3gRyTNb; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 83A6826821 for ; Thu, 4 Jan 2024 10:00:49 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rLJa4-0002WW-LF; Thu, 04 Jan 2024 04:00:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLJa3-0002WO-H9 for emacs-orgmode@gnu.org; Thu, 04 Jan 2024 03:59:59 -0500 Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLJa0-00045S-N5 for emacs-orgmode@gnu.org; Thu, 04 Jan 2024 03:59:59 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id DB498240104 for ; Thu, 4 Jan 2024 09:59:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1704358791; bh=bP68W3BM3lx5ZrLwuUNn9aS8mkfvnpCe1lan+A9B6fI=; h=MIME-Version:Date:From:To:Cc:Subject:Message-ID:From; b=G3gRyTNbMtEMoUZrGF+ZEozno8TbFrF8ubF4x0PV38W5iuP4QC3JH78eOW4PmgGJ5 qaiDI1GwtBLdOy8c2HuR1GVISvLSIdcy5FtqunahBxQ0iZ8kqQaEL1LrdvOyocAWTo qquBeTRky7HIyjoFkGDH7kMlkt/FuS30H5QE0CKyqZT09A7UW4JNNAf0WXh5tclqix 4JSe2RIM5HLu/3dq62nIpQDHGOEzPW6rkVVsvZgh6hg8xYRtb+4idtFEw2rx1l+nwT i05ULsrfCcsf0y4L8+wdBDWaYcdmucMBasspKm2Qy/wDt65m4tujAuVQffwmcb6KJ7 t56QPF7aRvfMQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4T5LBb0sPvz6twg; Thu, 4 Jan 2024 09:59:51 +0100 (CET) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_e0dcc806be1f474df9027ae0f71ed0b7" Date: Thu, 04 Jan 2024 08:59:51 +0000 From: gerard.vermeulen@posteo.net To: Ihor Radchenko Cc: Emacs orgmode Subject: Re: [PATCH] org-babel-demarcate-block: split using org-element instead of regexp In-Reply-To: <87v88a78qd.fsf@localhost> References: <7e41f9b6e9026a404e256f33371e974c@posteo.net> <87zfxq78ff.fsf@localhost> <87zfxo3taa.fsf@localhost> <87v88a78qd.fsf@localhost> Message-ID: <7f23ea966f0f0aad3fad29b0b96864f3@posteo.net> Received-SPF: pass client-ip=185.67.36.66; envelope-from=gerard.vermeulen@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -10.00 X-Spam-Score: -10.00 X-Migadu-Queue-Id: 83A6826821 X-Migadu-Scanner: mx12.migadu.com X-TUID: w/RoOiq1EKi1 --=_e0dcc806be1f474df9027ae0f71ed0b7 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 03.01.2024 16:11, Ihor Radchenko wrote: > gerard.vermeulen@posteo.net writes: > [...] Attached you'll find a new patch that seems to solve the block indentation problem that you have pointed out, see PS or attached patch-demo.org. test-ob/demarcate-block-split passes. > > This was a bug in `org-element-copy'. Fixed, on main now. > https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=dfeff03c5 > I did not yet pull your change. Nevertheless, the Emergency exit errors have disappeared. > [...] > > I made some adjustments to the patch, making use of org-element API. > See the attached updated version of the patch. > This patch is heavily edited and I think I did not forget any of your changes. I have tried to clean up the code. I have also tried to get `body-beg' and `body-end' marking the text between the #+begin_src and #+end_src lines from the element API, but I failed and had to fall back to `org-babel-where-is-src-block-head'. But only for that. > I am not yet merging it as I found some weirdness with indentation. > Consider the following (indentation is important): > > #+BEGIN_SRC emacs-lisp -n 20 > ;; This exports with line number 20. > (message "This is line 21") > #+END_SRC > > After M-x org-babel-demarcate-block, I am getting > > #+BEGIN_SRC emacs-lisp -n 20 > ;; This exports with line number 20. > #+END_SRC > > #+begin_src emacs-lisp -n 20 > (message "This is line 21") > #+end_src See PS or patch-demo.org: PS (hope you read it with a mono-spaced font): #+begin_src emacs-lisp :results silent (setopt org-adapt-indentation t org-src-preserve-indentation nil org-edit-src-content-indentation 2) #+end_src ******** before C-u org-babel-demarcate-block splitting I put point at the left of the last line in this block before splitting #+BEGIN_SRC emacs-lisp -n 20 ;; this exports with line number 20 (message "This exports with line number 21") #+END_SRC C-u C-c C-v d gets the stars right and the indentation ******** after C-u org-babel-demarcate-block splitting I put point at the left of the last line in this block before splitting #+begin_src emacs-lisp -n 20 ;; this exports with line number 20 #+end_src ******** #+begin_src emacs-lisp -n 20 (message "This exports with line number 21") #+end_src C-u C-c C-v d gets the stars right and the indentation --=_e0dcc806be1f474df9027ae0f71ed0b7 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name=0001-org-babel-demarcate-block-split-using-org-element-in.patch Content-Disposition: attachment; filename=0001-org-babel-demarcate-block-split-using-org-element-in.patch; size=10058 RnJvbSA5YTE5ZjE0MmQ3MjIyOWNmNzE0ZDZmY2U3YWFiYjg4NjBkYjgxYTczIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJhcmQgVmVybWV1bGVuIDxnZXJhcmQudmVybWV1bGVuQHBv c3Rlby5uZXQ+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMTk6MjU6MjUgKzAxMDAKU3ViamVjdDog W1BBVENIXSBvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrOiBzcGxpdCB1c2luZyBvcmctZWxlbWVu dCBpbnN0ZWFkIG9mCiByZWdleHAKCiogbGlzcC9vYi1iYWJlbC5lbCAob3JnLWJhYmVsLWRlbWFy Y2F0ZS1ibG9jayk6IE1vZGlmeSBhIGNvcHkKb2YgKG9yZy1lbGVtZW50LWF0LXBvaW50KSB0byBy ZXBsYWNlIHRoZSBvbGQgc291cmNlIGJsb2NrIHdpdGggMiBuZXcKYmxvY2tzIGFmdGVyIGFwcGx5 aW5nIGBvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YScgdG8gc3VpdGFibGUKbW9kaWZpZWQgY29w aWVzLiAgVGhlIHVwcGVyIHNvdXJjZSBibG9jayBjb250YWlucyB0aGUgdGV4dCBmcm9tIHRoZQpi b2R5IG9mIHRoZSBvbGQgYmxvY2sgYmVmb3JlIHBvaW50IGFuZCB0aGUgbG93ZXIgc291cmNlIGJs b2NrIGNvbnRhaW5zCnRoZSBib2R5IHRleHQgYWZ0ZXIgcG9pbnQuICBUaGUgY2FwdGlvbiBhbmQg dGhlIG5hbWUgYXJlIGRlbGV0ZWQgZnJvbQp0aGUgbG93ZXIgc291cmNlIGJsb2NrLiAgQ2hlY2sg YG9yZy1hZGFwdC1pbmRlbnRhdGlvbicgd2hldGhlciB0bwppbmRlbnQgdGhlIGJsb2Nrcy4gIExl YXZlIHBvaW50IGluIGEgY29udmVuaWVudCBwb3NpdGlvbiBhZnRlcgpzcGxpdHRpbmcuICBUcnlp bmcgdG8gc3BsaXQgd2hlbiBwb2ludCBpcyBhdCB0aGUgb2xkIHNvdXJjZSBibG9jayBidXQKbm90 IHdpdGhpbiB0aGUgYm9keSBvZiB0aGUgb2xkIHNvdXJjZSBibG9jayByYWlzZXMgYW4gdXNlci1l cnJvci4KQ2xlYW4gdXAgdGhlIHdyYXAgYnkgZGVtYXJjYXRpb24gYnJhbmNoIGFuZCB0aGUgZG9j dW1lbnRhdGlvbiBzdHJpbmcuCiogdGVzdGluZy9saXNwL3Rlc3Qtb2IuZWwgKHRlc3Qtb2IvZGVt YXJjYXRlLWJsb2NrLXNwbGl0KTogTmV3IHRlc3QKZm9yIGJsb2NrIHNwbGl0dGluZyBieSBkZW1h cmNhdGlvbi4gIEl0IGNoZWNrcyBhbHNvIHRoYXQgdGhlIGxhbmd1YWdlLApzd2l0Y2hlcywgYW5k IGhlYWRlciBhcmd1bWVudHMgYXJlIGR1cGxpY2F0ZWQuCi0tLQogbGlzcC9vYi1jb3JlLmVsICAg ICAgICAgfCAxMDMgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogdGVz dGluZy9saXNwL3Rlc3Qtb2IuZWwgfCAgMzggKysrKysrKysrKysrKysrCiAyIGZpbGVzIGNoYW5n ZWQsIDkwIGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpc3Av b2ItY29yZS5lbCBiL2xpc3Avb2ItY29yZS5lbAppbmRleCBmN2U0ZTI1NWYuLmRlMDVkNzE0NCAx MDA2NDQKLS0tIGEvbGlzcC9vYi1jb3JlLmVsCisrKyBiL2xpc3Avb2ItY29yZS5lbApAQCAtNzMs NiArNzMsNyBAQAogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVsZW1lbnQtcGFyZW50ICJvcmctZWxl bWVudC1hc3QiIChub2RlKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbGVtZW50LXR5cGUgIm9y Zy1lbGVtZW50LWFzdCIgKG5vZGUgJm9wdGlvbmFsIGFub255bW91cykpCiAoZGVjbGFyZS1mdW5j dGlvbiBvcmctZWxlbWVudC10eXBlLXAgIm9yZy1lbGVtZW50LWFzdCIgKG5vZGUgJm9wdGlvbmFs IHR5cGVzKSkKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbGVtZW50LWludGVycHJldC1kYXRhICJv cmctZWxlbWVudCIgKGRhdGEpKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudHJ5LWdldCAib3Jn IiAocG9tIHByb3BlcnR5ICZvcHRpb25hbCBpbmhlcml0IGxpdGVyYWwtbmlsKSkKIChkZWNsYXJl LWZ1bmN0aW9uIG9yZy1lc2NhcGUtY29kZS1pbi1yZWdpb24gIm9yZy1zcmMiIChiZWcgZW5kKSkK IChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1mb3J3YXJkLWhlYWRpbmctc2FtZS1sZXZlbCAib3JnIiAo YXJnICZvcHRpb25hbCBpbnZpc2libGUtb2spKQpAQCAtMjA1MSw3MiArMjA1Miw3MiBAQCBXaXRo IG9wdGlvbmFsIHByZWZpeCBhcmd1bWVudCBBUkcsIGp1bXAgYmFja3dhcmQgQVJHIG1hbnkgc291 cmNlIGJsb2Nrcy4iCiAgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgNSkpKSkpCiAK IChkZWZ1biBvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrICgmb3B0aW9uYWwgYXJnKQotICAiV3Jh cCBvciBzcGxpdCB0aGUgY29kZSBpbiB0aGUgcmVnaW9uIG9yIG9uIHRoZSBwb2ludC4KKyAgIldy YXAgb3Igc3BsaXQgdGhlIGNvZGUgaW4gYW4gYWN0aXZlIHJlZ2lvbiBvciBhdCBwb2ludC4KIAog V2l0aCBwcmVmaXggYXJndW1lbnQgQVJHLCBhbHNvIGNyZWF0ZSBhIG5ldyBoZWFkaW5nIGF0IHBv aW50LgogCi1XaGVuIGNhbGxlZCBmcm9tIGluc2lkZSBvZiBhIGNvZGUgYmxvY2sgdGhlIGN1cnJl bnQgYmxvY2sgaXMKLXNwbGl0LiAgV2hlbiBjYWxsZWQgZnJvbSBvdXRzaWRlIG9mIGEgY29kZSBi bG9jayBhIG5ldyBjb2RlIGJsb2NrCi1pcyBjcmVhdGVkLiAgSW4gYm90aCBjYXNlcyBpZiB0aGUg cmVnaW9uIGlzIGRlbWFyY2F0ZWQgYW5kIGlmIHRoZQotcmVnaW9uIGlzIG5vdCBhY3RpdmUgdGhl biB0aGUgcG9pbnQgaXMgZGVtYXJjYXRlZC4KLQotV2hlbiBjYWxsZWQgd2l0aGluIGJsYW5rIGxp bmVzIGFmdGVyIGEgY29kZSBibG9jaywgY3JlYXRlIGEgbmV3IGNvZGUKLWJsb2NrIG9mIHRoZSBz YW1lIGxhbmd1YWdlIHdpdGggdGhlIHByZXZpb3VzLiIKK1doZW4gY2FsbGVkIGZyb20gaW5zaWRl IG9mIGEgY29kZSBibG9jayB0aGUgY3VycmVudCBibG9jayBpcyBzcGxpdC4gIFdoZW4KK2NhbGxl ZCBmcm9tIG91dHNpZGUgb2YgYSBjb2RlIGJsb2NrIGEgbmV3IGNvZGUgYmxvY2sgaXMgY3JlYXRl ZC4gIEluIHRoZQorZmlyc3QgY2FzZSwgcG9pbnQgaXMgZGVtYXJjYXRlZCBhbmQgaW4gdGhlIHNl Y29uZCBjYXNlIGFuIGFjdGl2ZSByZWdpb24gaXMKK2RlbWFyY2F0ZWQsIGJ1dCBpZiB0aGVyZSBp cyBubyBhY3RpdmUgcmVnaW9uIHRoZW4gcG9pbnQgaXMgZGVtYXJjYXRlZC4iCiAgIChpbnRlcmFj dGl2ZSAiUCIpCi0gIChsZXQqICgoaW5mbyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5mbyAn bm8tZXZhbCkpCi0JIChzdGFydCAob3JnLWJhYmVsLXdoZXJlLWlzLXNyYy1ibG9jay1oZWFkKSkK LSAgICAgICAgIDs7IGBzdGFydCcgd2lsbCBiZSBuaWwgd2hlbiB3aXRoaW4gc3BhY2UgbGluZXMg YWZ0ZXIgc3JjIGJsb2NrLgotCSAoYmxvY2sgKGFuZCBzdGFydCAobWF0Y2gtc3RyaW5nIDApKSkK LQkgKGhlYWRlcnMgKGFuZCBzdGFydCAobWF0Y2gtc3RyaW5nIDQpKSkKLQkgKHN0YXJzIChjb25j YXQgKG1ha2Utc3RyaW5nIChvciAob3JnLWN1cnJlbnQtbGV2ZWwpIDEpID8qKSAiICIpKQotCSAo dXBwZXItY2FzZS1wIChhbmQgYmxvY2sKLQkJCSAgICAobGV0IChjYXNlLWZvbGQtc2VhcmNoKQot CQkJICAgICAgKHN0cmluZy1tYXRjaC1wICIjXFwrQkVHSU5fU1JDIiBibG9jaykpKSkpCi0gICAg KGlmIChhbmQgaW5mbyBzdGFydCkgOzsgQXQgc3JjIGJsb2NrLCBidXQgbm90IHdpdGhpbiBibGFu ayBsaW5lcyBhZnRlciBpdC4KLSAgICAgICAgKG1hcGMKLSAgICAgICAgIChsYW1iZGEgKHBsYWNl KQotICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24KLSAgICAgICAgICAgICAoZ290by1jaGFyIHBs YWNlKQotICAgICAgICAgICAgIChsZXQgKChsYW5nIChudGggMCBpbmZvKSkKLSAgICAgICAgICAg ICAgICAgICAoaW5kZW50IChtYWtlLXN0cmluZyAob3JnLWN1cnJlbnQtdGV4dC1pbmRlbnRhdGlv bikgP1xzKSkpCi0JICAgICAgICh3aGVuIChzdHJpbmctbWF0Y2ggIl5bWzpzcGFjZTpdXSokIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZyAobGlu ZS1iZWdpbm5pbmctcG9zaXRpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikpKQotICAgICAgICAgICAgICAg ICAoZGVsZXRlLXJlZ2lvbiAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3Np dGlvbikpKQotICAgICAgICAgICAgICAgKGluc2VydCAoY29uY2F0Ci0JCSAgICAgICAgKGlmIChs b29raW5nLWF0ICJeIikgIiIgIlxuIikKLQkJICAgICAgICBpbmRlbnQgKGlmIHVwcGVyLWNhc2Ut cCAiIytFTkRfU1JDXG4iICIjK2VuZF9zcmNcbiIpCi0JCSAgICAgICAgKGlmIGFyZyBzdGFycyBp bmRlbnQpICJcbiIKLQkJICAgICAgICBpbmRlbnQgKGlmIHVwcGVyLWNhc2UtcCAiIytCRUdJTl9T UkMgIiAiIytiZWdpbl9zcmMgIikKLQkJICAgICAgICBsYW5nCi0JCSAgICAgICAgKGlmICg+IChs ZW5ndGggaGVhZGVycykgMSkKLQkJCSAgICAoY29uY2F0ICIgIiBoZWFkZXJzKSBoZWFkZXJzKQot CQkgICAgICAgIChpZiAobG9va2luZy1hdCAiW1xuXHJdIikKLQkJCSAgICAiIgotCQkJICAoY29u Y2F0ICJcbiIgKG1ha2Utc3RyaW5nIChjdXJyZW50LWNvbHVtbikgPyApKSkpKSkpCi0JICAgKG1v dmUtZW5kLW9mLWxpbmUgMikpCi0gICAgICAgICAoc29ydCAoaWYgKG9yZy1yZWdpb24tYWN0aXZl LXApIChsaXN0IChtYXJrKSAocG9pbnQpKSAobGlzdCAocG9pbnQpKSkgIyc+KSkKKyAgKGxldCAo KGNvcHkgKG9yZy1lbGVtZW50LWNvcHkgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpCisgICAgICAg IChzdGFycyAoY29uY2F0IChtYWtlLXN0cmluZyAob3IgKG9yZy1jdXJyZW50LWxldmVsKSAxKSA/ KikgIiAiKSkpCisgICAgKGlmIChlcSAnc3JjLWJsb2NrIChjYXIgY29weSkpCisgICAgICAgIDs7 IEtlZXAgdGhpcyBicmFuY2ggaW4gc3luYyB3aXRoIHRlc3Qtb2IvZGVtYXJjYXRlLWJsb2NrLXNw bGl0LgorICAgICAgICA7OyBfc3RhcnQgaXMgbmV2ZXIgbmlsLCBzaW5jZSB0aGVyZSBpcyBhIHNv dXJjZSBibG9jayBlbGVtZW50IGF0IHBvaW50LgorICAgICAgICAobGV0KiAoKF9zdGFydCAob3Jn LWJhYmVsLXdoZXJlLWlzLXNyYy1ibG9jay1oZWFkKSkKKyAgICAgICAgICAgICAgIChib2R5LWJl ZyAobWF0Y2gtYmVnaW5uaW5nIDUpKQorICAgICAgICAgICAgICAgKGJvZHktZW5kIChtYXRjaC1l bmQgNSkpCisgICAgICAgICAgICAgICAoYmVmb3JlIChvcmctZWxlbWVudC1iZWdpbiBjb3B5KSkK KyAgICAgICAgICAgICAgIChiZXlvbmQgKG9yZy1lbGVtZW50LWVuZCBjb3B5KSkKKyAgICAgICAg ICAgICAgIGFib3ZlIGJlbG93KQorICAgICAgICAgICh1bmxlc3MgKGFuZCAoPj0gKHBvaW50KSBi b2R5LWJlZykgKD49IGJvZHktZW5kIChwb2ludCkpKQorICAgICAgICAgICAgKHVzZXItZXJyb3Ig Im1vdmUgcG9pbnQgd2l0aGluIHRoZSBzb3VyY2UgYmxvY2sgYm9keSB0byBzcGxpdCBpdCIpKQor ICAgICAgICAgIChzZXRxIGFib3ZlIChidWZmZXItc3Vic3RyaW5nIGJvZHktYmVnIChwb2ludCkp KQorICAgICAgICAgIChzZXRxIGJlbG93IChidWZmZXItc3Vic3RyaW5nIChwb2ludCkgYm9keS1l bmQpKQorICAgICAgICAgIChkZWxldGUtcmVnaW9uIGJlZm9yZSBiZXlvbmQpCisgICAgICAgICAg KG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0eSBjb3B5IDp2YWx1ZSBhYm92ZSkKKyAgICAgICAgICAo aW5zZXJ0IChvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSBjb3B5KSkKKyAgICAgICAgICAoaW5z ZXJ0IChjb25jYXQgKGlmIGFyZyBzdGFycyAiIikgIlxuIikpCisgICAgICAgICAgKG9yZy1lbGVt ZW50LXB1dC1wcm9wZXJ0eSBjb3B5IDpjYXB0aW9uIG5pbCkKKyAgICAgICAgICAob3JnLWVsZW1l bnQtcHV0LXByb3BlcnR5IGNvcHkgOm5hbWUgbmlsKQorICAgICAgICAgIChvcmctZWxlbWVudC1w dXQtcHJvcGVydHkgY29weSA6dmFsdWUgYmVsb3cpCisgICAgICAgICAgKGluc2VydCAob3JnLWVs ZW1lbnQtaW50ZXJwcmV0LWRhdGEgY29weSkpCisgICAgICAgICAgKGlmIChub3Qgb3JnLWFkYXB0 LWluZGVudGF0aW9uKQorICAgICAgICAgICAgICA7OyBNb3ZlIHBvaW50IHRvIHRoZSBsZWZ0IG9m IHRoZSBsb3dlciBibG9jayBsaW5lICMrYmVnaW5fc3JjLgorICAgICAgICAgICAgICAob3JnLXBy ZXZpb3VzLWJsb2NrIDEpCisgICAgICAgICAgICA7OyBBZGFwdCB0aGUgaW5kZW50YXRpb246IHVw cGVyIGJsb2NrIGZpcnN0IGFuZCBsb3dlciBibG9jayBzZWNvbmQuCisgICAgICAgICAgICAob3Jn LXByZXZpb3VzLWJsb2NrIDIpCisgICAgICAgICAgICAob3JnLWluZGVudC1ibG9jaykKKyAgICAg ICAgICAgIDs7IE1vdmUgcG9pbnQgdG8gdGhlIGxlZnQgb2YgdGhlIGxvd2VyIGJsb2NrIGxpbmUg IytiZWdpbl9zcmMuCisgICAgICAgICAgICAob3JnLW5leHQtYmxvY2sgMSkKKyAgICAgICAgICAg IChvcmctaW5kZW50LWJsb2NrKSkpCiAgICAgICAobGV0ICgoc3RhcnQgKHBvaW50KSkKLQkgICAg KGxhbmcgKG9yIChjYXIgaW5mbykgOyBSZXVzZSBsYW5ndWFnZSBmcm9tIHByZXZpb3VzIGJsb2Nr LgotICAgICAgICAgICAgICAgICAgICAgIChjb21wbGV0aW5nLXJlYWQKLQkJICAgICAgICJMYW5n OiAiCi0JCSAgICAgICAobWFwY2FyICMnc3ltYm9sLW5hbWUKLQkJCSAgICAgICAoZGVsZXRlLWR1 cHMKLQkJCSAgICAgICAgKGFwcGVuZCAobWFwY2FyICMnY2FyIG9yZy1iYWJlbC1sb2FkLWxhbmd1 YWdlcykKLQkJCQkgICAgICAgIChtYXBjYXIgKGxhbWJkYSAoZWwpIChpbnRlcm4gKGNhciBlbCkp KQotCQkJCQkgICAgICAgIG9yZy1zcmMtbGFuZy1tb2RlcykpKSkpKSkKKyAgICAgICAgICAgIDs7 IChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvICduby1ldmFsKSByZXR1cm5zIG5pbCwKKyAg ICAgICAgICAgIDs7IHNpbmNlIHRoZXJlIGlzIG5vIHNvdXJjZSBibG9jayBhdCBwb2ludC4gIFRo ZXJlZm9yZSwgdGhpcworICAgICAgICAgICAgOzsgY2Fubm90IGJlIHVzZWQgdG8gZ2V0IHRoZSBs YW5ndWFnZSBvZiBhIG5laWdoYm91ciBibG9jay4KKyAgICAgICAgICAgIDs7IERlbGV0ZWQgY29k ZSBpbmRpY2F0ZWQgdGhhdCB0aGlzIG1heSBoYXZlIHdvcmtlZCBpbiB0aGUgcGFzdC4KKyAgICAg ICAgICAgIDs7IEkgaGF2ZSByZW1vdmVkIHVwcGVyLWNhc2UtcCwgc2luY2UgaXQgY291bGQgbmV2 ZXIgYmUgdHJ1ZSBoZXJlLgorCSAgICAobGFuZyAoY29tcGxldGluZy1yZWFkCisJCSAgICJMYW5n OiAiCisJCSAgIChtYXBjYXIgIydzeW1ib2wtbmFtZQorCQkJICAgKGRlbGV0ZS1kdXBzCisJCQkg ICAgKGFwcGVuZCAobWFwY2FyICMnY2FyIG9yZy1iYWJlbC1sb2FkLWxhbmd1YWdlcykKKwkJCQkg ICAgKG1hcGNhciAobGFtYmRhIChlbCkgKGludGVybiAoY2FyIGVsKSkpCisJCQkJCSAgICBvcmct c3JjLWxhbmctbW9kZXMpKSkpKSkKIAkgICAgKGJvZHkgKGRlbGV0ZS1hbmQtZXh0cmFjdC1yZWdp b24KIAkJICAgKGlmIChvcmctcmVnaW9uLWFjdGl2ZS1wKSAobWFyaykgKHBvaW50KSkgKHBvaW50 KSkpKQogCShpbnNlcnQgKGNvbmNhdCAoaWYgKGxvb2tpbmctYXQgIl4iKSAiIiAiXG4iKQogCQkJ KGlmIGFyZyAoY29uY2F0IHN0YXJzICJcbiIpICIiKQotCQkJKGlmIHVwcGVyLWNhc2UtcCAiIytC RUdJTl9TUkMgIiAiIytiZWdpbl9zcmMgIikKKwkJCSIjK2JlZ2luX3NyYyAiCiAJCQlsYW5nICJc biIgYm9keQogCQkJKGlmIChvciAoPSAobGVuZ3RoIGJvZHkpIDApCiAJCQkJKHN0cmluZy1zdWZm aXgtcCAiXHIiIGJvZHkpCiAJCQkJKHN0cmluZy1zdWZmaXgtcCAiXG4iIGJvZHkpKQogCQkJICAg ICIiCiAJCQkgICJcbiIpCi0JCQkoaWYgdXBwZXItY2FzZS1wICIjK0VORF9TUkNcbiIgIiMrZW5k X3NyY1xuIikpKQorCQkJIiMrZW5kX3NyY1xuIikpCiAJKGdvdG8tY2hhciBzdGFydCkKIAkobW92 ZS1lbmQtb2YtbGluZSAxKSkpKSkKIApkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb2Iu ZWwgYi90ZXN0aW5nL2xpc3AvdGVzdC1vYi5lbAppbmRleCA0MmM3N2NhNTYuLjFmYmM0NzE1MSAx MDA2NDQKLS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qtb2IuZWwKKysrIGIvdGVzdGluZy9saXNwL3Rl c3Qtb2IuZWwKQEAgLTI2LDYgKzI2LDQ0IEBACiAocmVxdWlyZSAnb3JnLXRhYmxlKQogKGV2YWwt YW5kLWNvbXBpbGUgKHJlcXVpcmUgJ2NsLWxpYikpCiAKKyhlcnQtZGVmdGVzdCB0ZXN0LW9iL2Rl bWFyY2F0ZS1ibG9jay1zcGxpdCAoKQorICAiVGVzdCBkdXBsaWNhdGlvbiBvZiBoZWFkZXJzIGFu ZCBzd2l0Y2hlcyBpbiBkZW1hcmNhdGlvbiBibG9jayBzcGxpdHRpbmcuIgorICAob3JnLXRlc3Qt d2l0aC10ZW1wLXRleHQgIgorIytoZWFkZXI6IDp2YXIgZWRnZT1cImFsc28gZHVwbGljYXRlZFwi CisjK2hlYWRlcjogOndyYXAgXCJzcmMgYW55LXNwYW5pc2ggLW5cIgorIytiZWdpbl9zcmMgYW55 LWVuZ2xpc2ggLWkgLW4gOnZhciBoZXJlPVwiZHVwbGljYXRlZFwiIDp3cmFwIFwic3JjIGFueS1l bmdsaXNoIC1uXCIKKworYWJvdmUgc3BsaXQKKzxwb2ludD4KK2JlbG93IHNwbGl0CisKKyMrZW5k X3NyYworIgorICAgIChsZXQgKCh3cmFwLXZhbCAic3JjIGFueS1zcGFuaXNoIC1uIikgYWJvdmUg YmVsb3cgYXZhcnMgYnZhcnMpCisgICAgICAob3JnLWJhYmVsLWRlbWFyY2F0ZS1ibG9jaykKKyAg ICAgIDs7IHBvaW50IGlzIG5vdyBiZWZvcmUgIytiZWdpbl9zcmMgb2YgdGhlIGxvd2VyIHNvdXJj ZSBibG9jaworICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgIChvcmctYmFiZWwt bmV4dC1zcmMtYmxvY2spIDs7IHVwcGVyIHNvdXJjZSBibG9jaworICAgICAgKHNldHEgYWJvdmUg KG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8pKQorICAgICAgKHNldHEgYXZhcnMgKG9yZy1i YWJlbC0tZ2V0LXZhcnMgKG50aCAyIGFib3ZlKSkpCisgICAgICAob3JnLWJhYmVsLW5leHQtc3Jj LWJsb2NrKSA7OyBsb3dlciBzb3VyY2UgYmxvY2sKKyAgICAgIChzZXRxIGJlbG93IChvcmctYmFi ZWwtZ2V0LXNyYy1ibG9jay1pbmZvKSkKKyAgICAgIChzZXRxIGJ2YXJzIChvcmctYmFiZWwtLWdl dC12YXJzIChudGggMiBiZWxvdykpKQorICAgICAgOzsgZHVwbGljYXRlZCBtdWx0aS1saW5lIGhl YWRlciBhcmd1bWVudHM6CisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbHNvIGR1cGxpY2F0ZWQi IChjZHIgKGFzc3EgJ2VkZ2UgYXZhcnMpKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbHNv IGR1cGxpY2F0ZWQiIChjZHIgKGFzc3EgJ2VkZ2UgYnZhcnMpKSkpCisgICAgICAoc2hvdWxkIChz dHJpbmc9IHdyYXAtdmFsIChjZHIgKGFzc3EgOndyYXAgKG50aCAyIGFib3ZlKSkpKSkKKyAgICAg IChzaG91bGQgKHN0cmluZz0gd3JhcC12YWwgKGNkciAoYXNzcSA6d3JhcCAobnRoIDIgYmVsb3cp KSkpKQorICAgICAgOzsgZHVwbGljYXRlZCBsYW5ndWFnZSwgb3RoZXIgaGVhZGVyIGFyZ3VtZW50 cywgYW5kIHN3aXRjaGVzOgorICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYW55LWVuZ2xpc2giIChu dGggMCBhYm92ZSkpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYW55LWVuZ2xpc2giIChudGgg MCBiZWxvdykpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYWJvdmUgc3BsaXQiIChvcmctdHJp bSAobnRoIDEgYWJvdmUpKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJiZWxvdyBzcGxpdCIg KG9yZy10cmltIChudGggMSBiZWxvdykpKSkKKyAgICAgIChzaG91bGQgKHN0cmluZz0gImR1cGxp Y2F0ZWQiIChjZHIgKGFzc3EgJ2hlcmUgYXZhcnMpKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9 ICJkdXBsaWNhdGVkIiAoY2RyIChhc3NxICdoZXJlIGJ2YXJzKSkpKQorICAgICAgKHNob3VsZCAo c3RyaW5nPSAiLWkgLW4iIChudGggMyBhYm92ZSkpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAi LWkgLW4iIChudGggMyBiZWxvdykpKSkpKQorCiAoZXJ0LWRlZnRlc3QgdGVzdC1vYi9pbmRlbnRl ZC1jYWNoZWQtb3JnLWJyYWNrZXQtbGluayAoKQogICAiV2hlbiB0aGUgcmVzdWx0IG9mIGEgc291 cmNlIGJsb2NrIGlzIGEgY2FjaGVkIGluZGVudGVkIGxpbmsgaXQKIHNob3VsZCBzdGlsbCByZXR1 cm4gdGhlIGxpbmsuIgotLSAKMi40Mi4wCgo= --=_e0dcc806be1f474df9027ae0f71ed0b7 Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name=patch-demo.org Content-Disposition: attachment; filename=patch-demo.org; size=1027 VHJ5aW5nIHRvIGVkaXQgY29kZSBhcyB5b3VyIGV4YW1wbGUgKEkgbmV2ZXIgZG8gdGhpcyBsaWtl IHRoYXQpCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnJlc3VsdHMgc2lsZW50CiAgKHNldG9wdCBv cmctYWRhcHQtaW5kZW50YXRpb24gdAogICAgICAgICAgb3JnLXNyYy1wcmVzZXJ2ZS1pbmRlbnRh dGlvbiBuaWwKICAgICAgICAgIG9yZy1lZGl0LXNyYy1jb250ZW50LWluZGVudGF0aW9uIDIpCiMr ZW5kX3NyYwoKKioqKioqKiogYmVmb3JlIEMtdSBvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrIHNw bGl0dGluZwoKICAgICAgICAgSSBwdXQgcG9pbnQgYXQgdGhlIGxlZnQgb2YgdGhlIGxhc3QgbGlu ZSBpbiB0aGlzIGJsb2NrIGJlZm9yZSBzcGxpdHRpbmcKICAgICAgICAgIytCRUdJTl9TUkMgZW1h Y3MtbGlzcCAtbiAyMAogICAgICAgICAgIDs7IHRoaXMgZXhwb3J0cyB3aXRoIGxpbmUgbnVtYmVy IDIwCjxwb2ludD4gICAgKG1lc3NhZ2UgIlRoaXMgZXhwb3J0cyB3aXRoIGxpbmUgbnVtYmVyIDIx IikKICAgICAgICAgIytFTkRfU1JDCiAgICAgICAgIEMtdSBDLWMgQy12IGQgZ2V0cyB0aGUgc3Rh cnMgcmlnaHQgYW5kIHRoZSBpbmRlbnRhdGlvbgoKKioqKioqKiogYWZ0ZXIgQy11IG9yZy1iYWJl bC1kZW1hcmNhdGUtYmxvY2sgc3BsaXR0aW5nCgogICAgICAgICBJIHB1dCBwb2ludCBhdCB0aGUg bGVmdCBvZiB0aGUgbGFzdCBsaW5lIGluIHRoaXMgYmxvY2sgYmVmb3JlIHNwbGl0dGluZwogICAg ICAgICAjK2JlZ2luX3NyYyBlbWFjcy1saXNwIC1uIDIwCiAgICAgICAgICAgOzsgdGhpcyBleHBv cnRzIHdpdGggbGluZSBudW1iZXIgMjAKICAgICAgICAgIytlbmRfc3JjCioqKioqKioqCiAgICAg ICAgICMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgLW4gMjAKICAgICAgICAgICAobWVzc2FnZSAiVGhp cyBleHBvcnRzIHdpdGggbGluZSBudW1iZXIgMjEiKQogICAgICAgICAjK2VuZF9zcmMKICAgICAg ICAgQy11IEMtYyBDLXYgZCBnZXRzIHRoZSBzdGFycyByaWdodCBhbmQgdGhlIGluZGVudGF0aW9u Cg== --=_e0dcc806be1f474df9027ae0f71ed0b7--