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 KEwpOi9wlGWAigAAkFu2QA (envelope-from ) for ; Tue, 02 Jan 2024 21:21:04 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id OP02NC9wlGWQcAAAqHPOHw (envelope-from ) for ; Tue, 02 Jan 2024 21:21:03 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=MUkzmdUf; 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=1704226863; 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=hpYQZibz4XpEr3INmdlErrFTv/KSErAqfDNjDSAu0Ek=; b=r615hM/Ewnt47HG+wBKf/EWrcJUGwnwA6LPZ6LuudyCLvp+wjTO/tWroVBDiXhgajb3rzW NzQMCLxzLGiUwZqogtMTiCkEcz+NKmCL5DGUrPK1un4aN8QTJUGgWRcDZMR+WX77GfVhIt ZbjFUtLzHujoYxIJ+htlfUyxDf0yZV0tNXGUjmuPCBQxJVyytT88jMrXPbRtKjena4Xn5U fJPdweAHXNGdWrHEZjkEx7i7EeeMtfEngIvgf1ih3DFaYVrK7R2kOP9Rsh2E91FS7j6gY1 TqkwWDYP5qrbmB1slqJwTa8pSxkMigcnvSimcE5drND7GpOEc/UQcsWbOivIpA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=MUkzmdUf; 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-Seal: i=1; s=key1; d=yhetil.org; t=1704226863; a=rsa-sha256; cv=none; b=nLuf95MCHm2H8pOHxgzHJHkDfF3hYDarRACpciNaI+P+KmVA8Sxxdn1VwsxsxNyHuzxpot LKln+IqgV4VUXCadbakwPiR3WLEu1IPsNduRwMwFm7ElOLHj+PBqEh3/4uM/DIlx2DTyrN HYrJqEAlMFXCwtb03QHDJWGFduW4UZJOouRUBCD9pAWmfwdb6iy40YLwIw8o4smAFUaHga rv5aXZGTYY7IphA4IxdS7Z/hBgi/OmkB4C5G/b781axbLC2UwO/xSX7n3MrhGU+x40+EM3 TKsqxsnJHxZPNyOsQJJHnxqCVi5GBewQJ3/90lbHHhMjZxeeF/88fCmpCNba3Q== 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 53E6E24BD9 for ; Tue, 2 Jan 2024 21:21:02 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rKlFL-0006Pf-Db; Tue, 02 Jan 2024 15:20:20 -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 1rKlFA-0006Hx-6g for emacs-orgmode@gnu.org; Tue, 02 Jan 2024 15:20:09 -0500 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rKlF7-0005g7-0c for emacs-orgmode@gnu.org; Tue, 02 Jan 2024 15:20:07 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 44753240028 for ; Tue, 2 Jan 2024 21:20:01 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1704226801; bh=bRkzCKgjS5RY0JXx6CPvcAoDOZYHM1IYkBGQ2Vv6ceY=; h=MIME-Version:Date:From:To:Cc:Subject:Message-ID:From; b=MUkzmdUfobKAVGTUgH4JFOesasTJ+9v9r35+lcHJGhJ77r+s0fGUe343IDAh2qJ1z 9bvuw9X7CKk6MN52HPNXvp82ktgfLvaJQXPy/t6sBJ+9EH7ua7ezVBHOwzPrk1nahA W4rs31OWYqK0van7JretLWDHpYxJSPNUSnrJiaTR/ISBH0MUrFBQHioOYkteeh7GE2 FST6bsYa4IdGpJhxVYOZ8uI3b7aW3mU8AFhmiUKxYmJnULQodMWTLqR+XiycbTkozQ WdIYuIdGkiT5lrHSe/RRzNiiJMnlMx1T6AxUDVIQ2JV3pJYP3g2PEWaAN6+GvucSI2 Y/JmO0K5vv7rg== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4T4PNJ47P6z9rxF; Tue, 2 Jan 2024 21:20:00 +0100 (CET) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_c8ceaebd1228a80b18827ed4fcd14888" Date: Tue, 02 Jan 2024 20:20:00 +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: <87zfxo3taa.fsf@localhost> References: <7e41f9b6e9026a404e256f33371e974c@posteo.net> <87zfxq78ff.fsf@localhost> <87zfxo3taa.fsf@localhost> Message-ID: Received-SPF: pass client-ip=185.67.36.65; envelope-from=gerard.vermeulen@posteo.net; helo=mout01.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-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -7.37 X-Spam-Score: -7.37 X-Migadu-Queue-Id: 53E6E24BD9 X-Migadu-Scanner: mx10.migadu.com X-TUID: wD2VlpHI3Pi7 --=_c8ceaebd1228a80b18827ed4fcd14888 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 02.01.2024 11:48, Ihor Radchenko wrote: > gerard.vermeulen@posteo.net writes: > [...] > > IMHO, this is a bug. > The current approach with regexp matching in > `org-babel-demarcate-block' > is clearly not accurate. What would be more robust is using > org-element-at-point + org-element-copy + set :value + > org-element-interpret-data to carry over all the affiliated keywords > and > header arguments. > [...] > > (org-babel--get-vars (nth 2 (org-babel-get-src-block-info))) Attached you'll find a new patch trying to implement your suggestions. Interactive splitting by demarcation seems to work quite well (see the before and after splitting snippets in the PS). However, I cannot run the test because org-babel-demarcate-block always errors "org-element--cache: Emergency exit" while the same input works interactively. Could there be a problem of cache synchronization or something like that? Is there something I can do? I also did not yet look into how to propagate a switch like -n10. PS: # begin before splitting snippet #+caption[Demarcation splitting test]: #+caption: Demarcation splitting test. #+header: :var edge="also copied" #+header: :wrap "src any-spanish -n" #+name: lst:test #+begin_src python -i -n :var here="copied" :wrap "src any-english -n" # above-split # below-split #+end_src # end before splitting snippet # begin after splitting snippet #+caption[Demarcation splitting test]: #+caption: Demarcation splitting test. #+header: :var edge="also copied" #+header: :wrap "src any-spanish -n" #+name: lst:test #+begin_src python -i -n :var here="copied" :wrap "src any-english -n" # above-split #+end_src #+header: :var edge="also copied" #+header: :wrap "src any-spanish -n" #+begin_src python -i -n :var here="copied" :wrap "src any-english -n" # below-split #+end_src # end after splitting snippet --=_c8ceaebd1228a80b18827ed4fcd14888 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=5783 RnJvbSBiZmQxNjE1ZTRlMGUwZGFkNjRlODU1OWYzOWNiNjM4ZDZmMmQ5Y2U0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJhcmQgVmVybWV1bGVuIDxnZXJhcmQudmVybWV1bGVuQHBv c3Rlby5uZXQ+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMTk6MjU6MjUgKzAxMDAKU3ViamVjdDog W1BBVENIXSBvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrOiBzcGxpdCB1c2luZyBvcmctZWxlbWVu dCBpbnN0ZWFkIG9mCiByZWdleHAKCiogbGlzcC9vYi1iYWJlbC5lbCAob3JnLWJhYmVsLWRlbWFy Y2F0ZS1ibG9jayk6IERlbGV0ZSB0aGUgY2FwdGlvbiBhbmQKdGhlIG5hbWUgZnJvbSBhIGNvcHkg b2YgKG9yZy1lbGVtZW50LWF0LXBvaW50KSBhbmQgc2V0IGl0cyB2YWx1ZSB0bwp0aGUgYm9keSBp bnNpZGUgdGhlIHNvdXJjZSBibG9jayBhZnRlciBwb2ludC4gIERlbGV0ZSBhbGwgc3VwZXJmbHVv dXMKdGV4dCBhZnRlciBwb2ludCBmcm9tIHRoZSBjdXJyZW50IEVtYWNzIGJ1ZmZlciBhbmQgYWRk IGEgcHJvcGVyCnNlbnRpbmVsIHRvIHRoZSB1cHBlciBzb3VyY2UgYmxvY2suICBJbnNlcnQgdGhl IGxvd2VyIGJsb2NrIGJ5CmFwcGx5aW5nIGBvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YScgdG8g dGhlIG1vZGlmaWVkIGNvcHkuICBMZWF2ZQpwb2ludCBpbiBhIGNvbnZlbmllbnQgcG9zaXRpb24u CiogdGVzdGluZy9saXNwL3Rlc3Qtb2IuZWwgKHRlc3Qtb2IvZGVtYXJjYXRlLWJsb2NrLXNwbGl0 KTogTmV3IHRlc3QKZm9yIGJsb2NrIHNwbGl0dGluZyBieSBkZW1hcmNhdGlvbi4gIEl0IGNoZWNr cyBhbHNvIHRoYXQgdGhlIGxhbmd1YWdlLApzd2l0Y2hlcywgYW5kIGhlYWRlciBhcmd1bWVudHMg YXJlIGR1cGxpY2F0ZWQuCi0tLQogbGlzcC9vYi1jb3JlLmVsICAgICAgICAgfCAzNyArKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB0ZXN0aW5nL2xpc3AvdGVzdC1vYi5lbCB8 IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2Vk LCA0OSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL29i LWNvcmUuZWwgYi9saXNwL29iLWNvcmUuZWwKaW5kZXggZjdlNGUyNTVmLi5kNTQxYWY2MTIgMTAw NjQ0Ci0tLSBhL2xpc3Avb2ItY29yZS5lbAorKysgYi9saXNwL29iLWNvcmUuZWwKQEAgLTIwNjcs MzUgKzIwNjcsMjQgQEAgYmxvY2sgb2YgdGhlIHNhbWUgbGFuZ3VhZ2Ugd2l0aCB0aGUgcHJldmlv dXMuIgogCSAoc3RhcnQgKG9yZy1iYWJlbC13aGVyZS1pcy1zcmMtYmxvY2staGVhZCkpCiAgICAg ICAgICA7OyBgc3RhcnQnIHdpbGwgYmUgbmlsIHdoZW4gd2l0aGluIHNwYWNlIGxpbmVzIGFmdGVy IHNyYyBibG9jay4KIAkgKGJsb2NrIChhbmQgc3RhcnQgKG1hdGNoLXN0cmluZyAwKSkpCi0JICho ZWFkZXJzIChhbmQgc3RhcnQgKG1hdGNoLXN0cmluZyA0KSkpCiAJIChzdGFycyAoY29uY2F0ICht YWtlLXN0cmluZyAob3IgKG9yZy1jdXJyZW50LWxldmVsKSAxKSA/KikgIiAiKSkKIAkgKHVwcGVy LWNhc2UtcCAoYW5kIGJsb2NrCiAJCQkgICAgKGxldCAoY2FzZS1mb2xkLXNlYXJjaCkKIAkJCSAg ICAgIChzdHJpbmctbWF0Y2gtcCAiI1xcK0JFR0lOX1NSQyIgYmxvY2spKSkpKQogICAgIChpZiAo YW5kIGluZm8gc3RhcnQpIDs7IEF0IHNyYyBibG9jaywgYnV0IG5vdCB3aXRoaW4gYmxhbmsgbGlu ZXMgYWZ0ZXIgaXQuCi0gICAgICAgIChtYXBjCi0gICAgICAgICAobGFtYmRhIChwbGFjZSkKLSAg ICAgICAgICAgKHNhdmUtZXhjdXJzaW9uCi0gICAgICAgICAgICAgKGdvdG8tY2hhciBwbGFjZSkK LSAgICAgICAgICAgICAobGV0ICgobGFuZyAobnRoIDAgaW5mbykpCi0gICAgICAgICAgICAgICAg ICAgKGluZGVudCAobWFrZS1zdHJpbmcgKG9yZy1jdXJyZW50LXRleHQtaW5kZW50YXRpb24pID9c cykpKQotCSAgICAgICAod2hlbiAoc3RyaW5nLW1hdGNoICJeW1s6c3BhY2U6XV0qJCIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKGxpbmUtYmVn aW5uaW5nLXBvc2l0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobGluZS1lbmQtcG9zaXRpb24pKSkKLSAgICAgICAgICAgICAgICAgKGRl bGV0ZS1yZWdpb24gKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSAobGluZS1lbmQtcG9zaXRpb24p KSkKLSAgICAgICAgICAgICAgIChpbnNlcnQgKGNvbmNhdAotCQkgICAgICAgIChpZiAobG9va2lu Zy1hdCAiXiIpICIiICJcbiIpCi0JCSAgICAgICAgaW5kZW50IChpZiB1cHBlci1jYXNlLXAgIiMr RU5EX1NSQ1xuIiAiIytlbmRfc3JjXG4iKQotCQkgICAgICAgIChpZiBhcmcgc3RhcnMgaW5kZW50 KSAiXG4iCi0JCSAgICAgICAgaW5kZW50IChpZiB1cHBlci1jYXNlLXAgIiMrQkVHSU5fU1JDICIg IiMrYmVnaW5fc3JjICIpCi0JCSAgICAgICAgbGFuZwotCQkgICAgICAgIChpZiAoPiAobGVuZ3Ro IGhlYWRlcnMpIDEpCi0JCQkgICAgKGNvbmNhdCAiICIgaGVhZGVycykgaGVhZGVycykKLQkJICAg ICAgICAoaWYgKGxvb2tpbmctYXQgIltcblxyXSIpCi0JCQkgICAgIiIKLQkJCSAgKGNvbmNhdCAi XG4iIChtYWtlLXN0cmluZyAoY3VycmVudC1jb2x1bW4pID8gKSkpKSkpKQotCSAgIChtb3ZlLWVu ZC1vZi1saW5lIDIpKQotICAgICAgICAgKHNvcnQgKGlmIChvcmctcmVnaW9uLWFjdGl2ZS1wKSAo bGlzdCAobWFyaykgKHBvaW50KSkgKGxpc3QgKHBvaW50KSkpICMnPikpCisgICAgICAgIChsZXQq ICgoYm9keS1lbmQgKG1hdGNoLWVuZCA1KSkKKyAgICAgICAgICAgICAgIChjb3B5IChvcmctZWxl bWVudC1jb3B5IChvcmctZWxlbWVudC1hdC1wb2ludCkpKQorICAgICAgICAgICAgICAgKGJleW9u ZCAoYXJlZiAocGxpc3QtZ2V0IChjYWRyIGNvcHkpIDpzdGFuZGFyZC1wcm9wZXJ0aWVzKSA0KSkK KyAgICAgICAgICAgICAgIChpbmRlbnQgKG1ha2Utc3RyaW5nIChvcmctY3VycmVudC10ZXh0LWlu ZGVudGF0aW9uKSA/XHMpKSkKKyAgICAgICAgICAocGxpc3QtcHV0IChjYWRyIGNvcHkpIDpjYXB0 aW9uIG5pbCkKKyAgICAgICAgICAocGxpc3QtcHV0IChjYWRyIGNvcHkpIDpuYW1lIG5pbCkKKyAg ICAgICAgICAocGxpc3QtcHV0IChjYWRyIGNvcHkpIDp2YWx1ZSAoYnVmZmVyLXN1YnN0cmluZyAo cG9pbnQpIGJvZHktZW5kKSkKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiAocG9pbnQpIGJleW9u ZCkKKyAgICAgICAgICAoaW5zZXJ0IChjb25jYXQgaW5kZW50IChpZiB1cHBlci1jYXNlLXAgIiMr RU5EX1NSQ1xuIiAiIytlbmRfc3JjXG4iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg YXJnIHN0YXJzIGluZGVudCkgIlxuIikpCisgICAgICAgICAgKGluc2VydCAob3JnLWVsZW1lbnQt aW50ZXJwcmV0LWRhdGEgY29weSkpCisgICAgICAgICAgOzsgR28gYmFjayB0byB0aGUgbG93ZXIg c291cmNlIGJsb2NrIGZvciBgb3JnLW5hcnJvdy10by1lbGVtZW50JzoKKyAgICAgICAgICAocmUt c2VhcmNoLWJhY2t3YXJkIChyeCBib2wgKDErIG5vbmwpKSkpCiAgICAgICAobGV0ICgoc3RhcnQg KHBvaW50KSkKIAkgICAgKGxhbmcgKG9yIChjYXIgaW5mbykgOyBSZXVzZSBsYW5ndWFnZSBmcm9t IHByZXZpb3VzIGJsb2NrLgogICAgICAgICAgICAgICAgICAgICAgIChjb21wbGV0aW5nLXJlYWQK ZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9iLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qt b2IuZWwKaW5kZXggNDJjNzdjYTU2Li5jZmQ4MjVjMTQgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvbGlz cC90ZXN0LW9iLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9iLmVsCkBAIC0yNiw2ICsyNiw0 MiBAQAogKHJlcXVpcmUgJ29yZy10YWJsZSkKIChldmFsLWFuZC1jb21waWxlIChyZXF1aXJlICdj bC1saWIpKQogCisoZXJ0LWRlZnRlc3QgdGVzdC1vYi9kZW1hcmNhdGUtYmxvY2stc3BsaXQgKCkK KyAgIlRlc3QgZHVwbGljYXRpb24gb2YgaGVhZGVycyBhbmQgc3dpdGNoZXMgaW4gZGVtYXJjYXRp b24gYmxvY2sgc3BsaXR0aW5nLiIKKyAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIKKyMraGVh ZGVyOiA6dmFyIGVkZ2U9XCJhbHNvIGR1cGxpY2F0ZWRcIgorIytoZWFkZXI6IDp3cmFwIFwic3Jj IGFueS1zcGFuaXNoIC1uXCIKKyMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgLWkgLW4gOnZhciBoZXJl PVwiZHVwbGljYXRlZFwiIDp3cmFwIFwic3JjIGFueS1lbmdsaXNoIC1uXCIKKworJ2Fib3ZlLXNw bGl0Cis8cG9pbnQ+CisnYmVsb3ctc3BsaXQKKworIytlbmRfc3JjCisiCisgICAgKGxldCAoKHdy YXAtdmFsICJzcmMgYW55LXNwYW5pc2ggLW4iKSBhYm92ZSBiZWxvdyBhdmFycyBidmFycykKKyAg ICAgIDs7IEJVRzogb3JnLWJhYmVsLWRlbWFyY2F0ZS1ibG9jayBlcnJvcnMgIm9yZy1lbGVtZW50 LS1jYWNoZTogRW1lcmdlbmN5IGV4aXQiCisgICAgICAob3JnLWJhYmVsLWRlbWFyY2F0ZS1ibG9j aykKKyAgICAgIChzZXRxIGFib3ZlIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvKSkKKyAg ICAgIChzZXRxIGF2YXJzIChvcmctYmFiZWwtLWdldC12YXJzIChudGggMiBhYm92ZSkpKQorICAg ICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1ibG9jaykKKyAgICAgIChzZXRxIGJlbG93IChvcmctYmFi ZWwtZ2V0LXNyYy1ibG9jay1pbmZvKSkKKyAgICAgIChzZXRxIGJ2YXJzIChvcmctYmFiZWwtLWdl dC12YXJzIChudGggMiBiZWxvdykpKQorICAgICAgOzsgZHVwbGljYXRlZCBtdWx0aS1saW5lIGhl YWRlciBhcmd1bWVudHM6CisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbHNvIGR1cGxpY2F0ZWQi IChjZHIgKGFzc3EgJ2VkZ2UgYXZhcnMpKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbHNv IGR1cGxpY2F0ZWQiIChjZHIgKGFzc3EgJ2VkZ2UgYnZhcnMpKSkpCisgICAgICAoc2hvdWxkIChz dHJpbmc9IHdyYXAtdmFsIChjZHIgKGFzc3EgOndyYXAgKG50aCAyIGFib3ZlKSkpKSkKKyAgICAg IChzaG91bGQgKHN0cmluZz0gd3JhcC12YWwgKGNkciAoYXNzcSA6d3JhcCAobnRoIDIgYmVsb3cp KSkpKQorICAgICAgOzsgZHVwbGljYXRlZCBsYW5ndWFnZSwgb3RoZXIgaGVhZGVyIGFyZ3VtZW50 cywgYW5kIHN3aXRjaGVzOgorICAgICAgKHNob3VsZCAoc3RyaW5nPSAiZW1hY3MtbGlzcCIgKG50 aCAwIGFib3ZlKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJlbWFjcy1saXNwIiAobnRoIDAg YmVsb3cpKSkKKyAgICAgIChzaG91bGQgKHN0cmluZz0gIidhYm92ZS1zcGxpdCIgKG9yZy10cmlt IChudGggMSBhYm92ZSkpKSkKKyAgICAgIChzaG91bGQgKHN0cmluZz0gIidiZWxvdy1zcGxpdCIg KG9yZy10cmltIChudGggMSBiZWxvdykpKSkKKyAgICAgIChzaG91bGQgKHN0cmluZz0gImR1cGxp Y2F0ZWQiIChjZHIgKGFzc3EgJ2hlcmUgYXZhcnMpKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9 ICJkdXBsaWNhdGVkIiAoY2RyIChhc3NxICdoZXJlIGJ2YXJzKSkpKQorICAgICAgKHNob3VsZCAo c3RyaW5nPSAiLWkgLW4iIChudGggMyBhYm92ZSkpKQorICAgICAgKHNob3VsZCAoc3RyaW5nPSAi LWkgLW4iIChudGggMyBiZWxvdykpKSkpKQorCiAoZXJ0LWRlZnRlc3QgdGVzdC1vYi9pbmRlbnRl ZC1jYWNoZWQtb3JnLWJyYWNrZXQtbGluayAoKQogICAiV2hlbiB0aGUgcmVzdWx0IG9mIGEgc291 cmNlIGJsb2NrIGlzIGEgY2FjaGVkIGluZGVudGVkIGxpbmsgaXQKIHNob3VsZCBzdGlsbCByZXR1 cm4gdGhlIGxpbmsuIgotLSAKMi40Mi4wCgo= --=_c8ceaebd1228a80b18827ed4fcd14888--