From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id OG/pKEpjqF79SAAA0tVLHw (envelope-from ) for ; Tue, 28 Apr 2020 17:09:30 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id +PA9GlNjqF4JLwAAbx9fmQ (envelope-from ) for ; Tue, 28 Apr 2020 17:09:39 +0000 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 DEF01942B89 for ; Tue, 28 Apr 2020 17:08:47 +0000 (UTC) Received: from localhost ([::1]:40400 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTTix-00037Z-OY for larch@yhetil.org; Tue, 28 Apr 2020 13:08:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48742) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jTRfI-0008VY-CT for emacs-orgmode@gnu.org; Tue, 28 Apr 2020 10:56:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jTRfH-0004gL-Eb for emacs-orgmode@gnu.org; Tue, 28 Apr 2020 10:56:52 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]:45870) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jTRfG-0004g5-Uu for emacs-orgmode@gnu.org; Tue, 28 Apr 2020 10:56:51 -0400 Received: by mail-ot1-x333.google.com with SMTP id e20so33064584otk.12 for ; Tue, 28 Apr 2020 07:56:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=qW0cYM9wNu9cVuHnn+ypEcD/YgMKXITultll8CWY4VI=; b=ZBnaqMo4pX9gcH2aNMKzB4LlPXJBnPVZtJ3jBJGLPF6uPSdfxWs4iLuId6vbElIWiB VyNnPuQOZAkFiEXc9TlOtj52tk3jaiaHisfgQUYi30EvCJQ1q0XwDsOEW1rhYuajXWGw perA2oz9Qh+kVeYf6AayMzYQBtWLZ7I2NPWYyCIICMpLVefQymbvvhDC0ffc7haKwCyM T9EBGXbGXR6BEGpQAl/R4geNI2oKBhCdffrgdo3Ml2IsERXfsOBcpw/cL/gmrp8s0ESk 5fwdaZ/pCADZgA3H2SFVkufxzySRvRefzHRqbyhzyW/BA8hSAJW+L1G+NnHMPBiqam19 pZSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=qW0cYM9wNu9cVuHnn+ypEcD/YgMKXITultll8CWY4VI=; b=kpfOv+g5jYWuqEaqZfz0s3O+H7lbWQqziVhWdO28zR/nYaxKaIDm0CqqB3j1mU80Du vsKBc9VACdJYlcWSI6fkA9fAY9QuYP4kSLxcRHiH+mG2PcE17CEDpcd4j+ug7zca2rSb CiO0jz+F5msG3Rk6zdxqfdPvR85QjcQXf7G2quWQvkoBwkjqkCyZVV/mKaVXlmWfHAX5 //VkPQvAJrpzyivYC15a/7gEoBjtrxj4uPgCcN2NDnhvFt3K3Y0a+veXcw/uj1z9ng7C Jp9ptRu9zGT6sW7swWXSGBYymFKk4L1c3G2nkn66AIedJawOTVlLAOEKH4M/eetHZf8E sm9Q== X-Gm-Message-State: AGi0PubIYoZwz6yRq83tsWO839vNaaSZyWzlYa2dJC/ZkoCg1uyr0yfy 5ZgTMdrVnaeA6ECh3kVkEkxIGpfm1y61CsNKyIMfZQ== X-Google-Smtp-Source: APiQypKQviH0oLMHYkC7rKJDby84moFN4KasZT4ozg/0G6kf0WbbiXUheSuRt+YFZuSafam3kIIocFk/bxhqPSBdhdg= X-Received: by 2002:aca:efd4:: with SMTP id n203mr3304597oih.159.1588085808646; Tue, 28 Apr 2020 07:56:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Roland Coeurjoly Date: Tue, 28 Apr 2020 16:56:37 +0200 Message-ID: Subject: Fwd: Support compilation of Haskell in org mode babel blocks. To: emacs-orgmode@gnu.org Content-Type: multipart/mixed; boundary="0000000000007f864605a45b0ae2" Received-SPF: pass client-ip=2607:f8b0:4864:20::333; envelope-from=rolandcoeurjoly@gmail.com; helo=mail-ot1-x333.google.com X-detected-operating-system: by eggs.gnu.org: Error: [-] PROGRAM ABORT : Malformed IPv6 address (bad octet value). Location : parse_addr6(), p0f-client.c:67 X-Received-From: 2607:f8b0:4864:20::333 X-Mailman-Approved-At: Tue, 28 Apr 2020 13:08:18 -0400 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 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" X-Scanner: scn0 X-Spam-Score: 1.19 Authentication-Results: aspmx1.migadu.com; dkim=fail (body hash did not verify) header.d=gmail.com header.s=20161025 header.b=ZBnaqMo4; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Scan-Result: default: False [1.19 / 13.00]; GENERIC_REPUTATION(0.00)[-0.55571463401875]; DWL_DNSWL_FAIL(0.00)[209.51.188.17:server fail]; R_SPF_ALLOW(-0.20)[+ip4:209.51.188.0/24:c]; R_DKIM_REJECT(1.00)[gmail.com:s=20161025]; HAS_ATTACHMENT(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_NONE(0.00)[]; MIME_BASE64_TEXT_BOGUS(1.00)[]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.18), country: US(-0.00), ip: 209.51.188.17(-0.56)]; DKIM_TRACE(0.00)[gmail.com:-]; MIME_BASE64_TEXT(0.10)[]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; MAILLIST(-0.20)[mailman]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_IN_DNSWL_FAIL(0.00)[209.51.188.17:server fail]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~,4:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:22989, ipnet:209.51.188.0/24, country:US]; TAGGED_FROM(0.00)[larch=yhetil.org]; FROM_NEQ_ENVFROM(0.00)[rolandcoeurjoly@gmail.com,emacs-orgmode-bounces@gnu.org]; ARC_NA(0.00)[]; RCVD_COUNT_FIVE(0.00)[6]; URIBL_BLOCKED(0.00)[stackoverflow.com:url,gnu.org:email]; FROM_HAS_DN(0.00)[]; MIME_GOOD(-0.10)[multipart/mixed,multipart/alternative,text/plain,text/x-patch]; PREVIOUSLY_DELIVERED(0.00)[emacs-orgmode@gnu.org]; HAS_LIST_UNSUB(-0.01)[]; RCPT_COUNT_ONE(0.00)[1]; FORGED_SENDER_MAILLIST(0.00)[]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : SPF not aligned (relaxed),none] X-TUID: vTOW7S6Cfyay --0000000000007f864605a45b0ae2 Content-Type: multipart/alternative; boundary="0000000000007f864405a45b0ae0" --0000000000007f864405a45b0ae0 Content-Type: text/plain; charset="UTF-8" ---------- Forwarded message --------- From: Roland Coeurjoly Date: Sat, Apr 25, 2020 at 9:04 PM Subject: Support compilation of Haskell in org mode babel blocks. To: Haskell code can be both compiled (for example with ghc), or interpreted (with ghci). Until now, org babel had only support for interpretation. Haskell is weird in that some code for the interpreter cannot be compiled and viceversa. For example, in ghci (the interpreter) you are required to use let to declare functions . In this patch I add support for compilation with the header argument :compile yes. The function to compile haskell is almost a copy paste of the C funcion in ob-C.el. By default I retain the original behavior, i.e. interpreting the block. I have tested this patch in emacs-27.0.91. It is my first patch to GNU Emacs and I am a newbie with both elisp and haskell. --0000000000007f864405a45b0ae0 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


---------- Forwarded message ---------
From: Roland Coeurjoly <= ;rolandcoeurjoly@gmail.com= >
Date: Sat, Apr 25, 2020 at 9:04 PM
Subject: Support compi= lation of Haskell in org mode babel blocks.
To: <bug-gnu-emacs@gnu.org>


Haskell code can be both compiled (for example with ghc), o= r interpreted (with ghci).

Until now, org babel ha= d only support for interpretation.

Haskell is weir= d in that some code for the interpreter cannot be compiled and viceversa.

In this patch I add support for co= mpilation with the header argument :compile yes.
The function to = compile haskell is almost a copy paste of the C funcion in ob-C.el.

By default I retain the original behavior, i.e. interpret= ing the block.

I have tested this patch in emacs-2= 7.0.91.


It is my first p= atch to GNU Emacs and I am a newbie with both elisp and haskell.
<= /div>
--0000000000007f864405a45b0ae0-- --0000000000007f864605a45b0ae2 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-Haskell-specific-header-argument-compile-to-comp.patch" Content-Disposition: attachment; filename="0001-Add-Haskell-specific-header-argument-compile-to-comp.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k9k1a0r30 RnJvbSAwOTFmNDcwYTI3ODU2MWE2MGZhYzFlZTNlZTY1OGY2ODIzYmMyNTAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2xhbmQgQ29ldXJqb2x5IDxyb2xhbmRjb2V1cmpvbHlAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI1IEFwciAyMDIwIDIwOjM1OjIyICswMjAwClN1YmplY3Q6IFtQ QVRDSF0gQWRkIEhhc2tlbGwgc3BlY2lmaWMgaGVhZGVyIGFyZ3VtZW50IGNvbXBpbGUsIHRvIGNv bXBpbGUKIGluc3RlYWQgb2YgaW50ZXJwcmV0IHRoZSBib2R5IG9mIHNvdXJjZSBibG9jawoKLS0t CiBsaXNwL29yZy9vYi1oYXNrZWxsLmVsIHwgNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL29yZy9vYi1oYXNrZWxsLmVsIGIvbGlzcC9vcmcv b2ItaGFza2VsbC5lbAppbmRleCBlMDA0YTM0MDVlLi5kMzJhMmY3YmMwIDEwMDY0NAotLS0gYS9s aXNwL29yZy9vYi1oYXNrZWxsLmVsCisrKyBiL2xpc3Avb3JnL29iLWhhc2tlbGwuZWwKQEAgLTIz LDEyICsyMywxMyBAQAogCiA7OzsgQ29tbWVudGFyeToKIAotOzsgT3JnLUJhYmVsIHN1cHBvcnQg Zm9yIGV2YWx1YXRpbmcgaGFza2VsbCBzb3VyY2UgY29kZS4gIFRoaXMgb25lIHdpbGwKLTs7IGJl IHNvcnQgb2YgdHJpY2t5IGJlY2F1c2UgaGFza2VsbCBwcm9ncmFtcyBtdXN0IGJlIGNvbXBpbGVk IGJlZm9yZQorOzsgT3JnLUJhYmVsIHN1cHBvcnQgZm9yIGV2YWx1YXRpbmcgSGFza2VsbCBzb3Vy Y2UgY29kZS4KKzs7IEhhc2tlbGwgcHJvZ3JhbXMgbXVzdCBiZSBjb21waWxlZCBiZWZvcmUKIDs7 IHRoZXkgY2FuIGJlIHJ1biwgYnV0IGhhc2tlbGwgY29kZSBjYW4gYWxzbyBiZSBydW4gdGhyb3Vn aCBhbgogOzsgaW50ZXJhY3RpdmUgaW50ZXJwcmV0ZXIuCiA7OwotOzsgRm9yIG5vdyBsZXRzIG9u bHkgYWxsb3cgZXZhbHVhdGlvbiB1c2luZyB0aGUgaGFza2VsbCBpbnRlcnByZXRlci4KKzs7IEJ5 IGRlZmF1bHQgd2UgZXZhbHVhdGUgdXNpbmcgdGhlIEhhc2tlbGwgaW50ZXJwcmV0ZXIuCis7OyBU byB1c2UgdGhlIGNvbXBpbGVyLCBzcGVjaWZ5IDpjb21waWxlIHllcyBpbiB0aGUgaGVhZGVyLgog CiA7OzsgUmVxdWlyZW1lbnRzOgogCkBAIC00Nyw2ICs0OCw3IEBACiAoZGVjbGFyZS1mdW5jdGlv biBydW4taGFza2VsbCAiZXh0OmluZi1oYXNrZWxsIiAoJm9wdGlvbmFsIGFyZykpCiAoZGVjbGFy ZS1mdW5jdGlvbiBpbmZlcmlvci1oYXNrZWxsLWxvYWQtZmlsZQogCQkgICJleHQ6aW5mLWhhc2tl bGwiICgmb3B0aW9uYWwgcmVsb2FkKSkKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbnRyeS1nZXQg Im9yZyIgKHBvbSBwcm9wZXJ0eSAmb3B0aW9uYWwgaW5oZXJpdCBsaXRlcmFsLW5pbCkpCiAKIChk ZWZ2YXIgb3JnLWJhYmVsLXRhbmdsZS1sYW5nLWV4dHMpCiAoYWRkLXRvLWxpc3QgJ29yZy1iYWJl bC10YW5nbGUtbGFuZy1leHRzICcoImhhc2tlbGwiIC4gImhzIikpCkBAIC02MCw4ICs2Miw2NCBA QCBvcmctYmFiZWwtaGFza2VsbC1lb2UKIAogKGRlZnZhciBoYXNrZWxsLXByb21wdC1yZWdleHAp CiAKLShkZWZ1biBvcmctYmFiZWwtZXhlY3V0ZTpoYXNrZWxsIChib2R5IHBhcmFtcykKLSAgIkV4 ZWN1dGUgYSBibG9jayBvZiBIYXNrZWxsIGNvZGUuIgorKGRlZmN1c3RvbSBvcmctYmFiZWwtSGFz a2VsbC1jb21waWxlciAiZ2hjIgorICAiQ29tbWFuZCB1c2VkIHRvIGNvbXBpbGUgYSBIYXNrZWxs IHNvdXJjZSBjb2RlIGZpbGUgaW50byBhbiBleGVjdXRhYmxlLgorTWF5IGJlIGVpdGhlciBhIGNv bW1hbmQgaW4gdGhlIHBhdGgsIGxpa2UgZ2hjCitvciBhbiBhYnNvbHV0ZSBwYXRoIG5hbWUsIGxp a2UgL3Vzci9sb2NhbC9iaW4vZ2hjCitwYXJhbWV0ZXIgbWF5IGJlIHVzZWQsIGxpa2UgZ2hjIC12 IgorICA6Z3JvdXAgJ29yZy1iYWJlbAorICA6dmVyc2lvbiAiMjcuMCIKKyAgOnR5cGUgJ3N0cmlu ZykKKworKGRlZmNvbnN0IG9yZy1iYWJlbC1oZWFkZXItYXJnczpoYXNrZWxsICcoKGNvbXBpbGUg LiA6YW55KSkKKyAgIkhhc2tlbGwtc3BlY2lmaWMgaGVhZGVyIGFyZ3VtZW50cy4iKQorCisoZGVm dW4gb3JnLWJhYmVsLUhhc2tlbGwtZXhlY3V0ZSAoYm9keSBwYXJhbXMpCisgICJUaGlzIGZ1bmN0 aW9uIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBgb3JnLWJhYmVsLWV4ZWN1dGU6aGFza2VsbCci CisgIChsZXQqICgodG1wLXNyYy1maWxlIChvcmctYmFiZWwtdGVtcC1maWxlCisJCQkiSGFza2Vs bC1zcmMtIgorICAgICAgICAgICAgICAgICAgICAgICAgIi5ocyIpKQorICAgICAgICAgKHRtcC1i aW4tZmlsZQorICAgICAgICAgIChvcmctYmFiZWwtcHJvY2Vzcy1maWxlLW5hbWUKKyAgICAgICAg ICAgKG9yZy1iYWJlbC10ZW1wLWZpbGUgIkhhc2tlbGwtYmluLSIgb3JnLWJhYmVsLWV4ZWV4dCkp KQorICAgICAgICAgKGNtZGxpbmUgKGNkciAoYXNzcSA6Y21kbGluZSBwYXJhbXMpKSkKKyAgICAg ICAgIChjbWRsaW5lIChpZiBjbWRsaW5lIChjb25jYXQgIiAiIGNtZGxpbmUpICIiKSkKKyAgICAg ICAgIChmbGFncyAoY2RyIChhc3NxIDpmbGFncyBwYXJhbXMpKSkKKyAgICAgICAgIChmbGFncyAo bWFwY29uY2F0ICdpZGVudGl0eQorCQkgICAgICAgICAgIChpZiAobGlzdHAgZmxhZ3MpIGZsYWdz IChsaXN0IGZsYWdzKSkgIiAiKSkKKyAgICAgICAgIChsaWJzIChvcmctYmFiZWwtcmVhZAorCSAg ICAgICAgKG9yIChjZHIgKGFzc3EgOmxpYnMgcGFyYW1zKSkKKwkgICAgICAgICAgICAob3JnLWVu dHJ5LWdldCBuaWwgImxpYnMiIHQpKQorCSAgICAgICAgbmlsKSkKKyAgICAgICAgIChsaWJzICht YXBjb25jYXQgIydpZGVudGl0eQorCQkgICAgICAgICAgKGlmIChsaXN0cCBsaWJzKSBsaWJzIChs aXN0IGxpYnMpKQorCQkgICAgICAgICAgIiAiKSkpCisgICAgKHdpdGgtdGVtcC1maWxlIHRtcC1z cmMtZmlsZSAoaW5zZXJ0IGJvZHkpKQorICAgIChvcmctYmFiZWwtZXZhbAorICAgICAoZm9ybWF0 ICIlcyAtbyAlcyAlcyAlcyAlcyIKKyAgICAgICAgICAgICBvcmctYmFiZWwtSGFza2VsbC1jb21w aWxlcgorCSAgICAgdG1wLWJpbi1maWxlCisJICAgICBmbGFncworCSAgICAgKG9yZy1iYWJlbC1w cm9jZXNzLWZpbGUtbmFtZSB0bXAtc3JjLWZpbGUpCisJICAgICBsaWJzKSAiIikKKyAgICAobGV0 ICgocmVzdWx0cworCSAgIChvcmctYmFiZWwtZXZhbAorCSAgICAoY29uY2F0IHRtcC1iaW4tZmls ZSBjbWRsaW5lKSAiIikpKQorICAgICAgKHdoZW4gcmVzdWx0cworICAgICAgICAoc2V0cSByZXN1 bHRzIChvcmctdHJpbSAob3JnLXJlbW92ZS1pbmRlbnRhdGlvbiByZXN1bHRzKSkpCisgICAgICAg IChvcmctYmFiZWwtcmVhc3NlbWJsZS10YWJsZQorICAgICAgICAgKG9yZy1iYWJlbC1yZXN1bHQt Y29uZCAoY2RyIChhc3NxIDpyZXN1bHQtcGFyYW1zIHBhcmFtcykpCisJICAgKG9yZy1iYWJlbC1y ZWFkIHJlc3VsdHMgdCkKKwkgICAobGV0ICgodG1wLWZpbGUgKG9yZy1iYWJlbC10ZW1wLWZpbGUg Ikhhc2tlbGwtIikpKQorCSAgICAgKHdpdGgtdGVtcC1maWxlIHRtcC1maWxlIChpbnNlcnQgcmVz dWx0cykpCisJICAgICAob3JnLWJhYmVsLWltcG9ydC1lbGlzcC1mcm9tLWZpbGUgdG1wLWZpbGUp KSkKKyAgICAgICAgIChvcmctYmFiZWwtcGljay1uYW1lCisJICAoY2RyIChhc3NxIDpjb2xuYW1l LW5hbWVzIHBhcmFtcykpIChjZHIgKGFzc3EgOmNvbG5hbWVzIHBhcmFtcykpKQorICAgICAgICAg KG9yZy1iYWJlbC1waWNrLW5hbWUKKwkgIChjZHIgKGFzc3EgOnJvd25hbWUtbmFtZXMgcGFyYW1z KSkgKGNkciAoYXNzcSA6cm93bmFtZXMgcGFyYW1zKSkpKSkKKyAgICAgICkpKQorCisoZGVmdW4g b3JnLWJhYmVsLWludGVycHJldC1IYXNrZWxsIChib2R5IHBhcmFtcykKICAgKHJlcXVpcmUgJ2lu Zi1oYXNrZWxsKQogICAoYWRkLWhvb2sgJ2luZmVyaW9yLWhhc2tlbGwtaG9vawogICAgICAgICAg ICAgKGxhbWJkYSAoKQpAQCAtOTYsNiArMTU0LDE0IEBAIG9yZy1iYWJlbC1leGVjdXRlOmhhc2tl bGwKICAgICAgKG9yZy1iYWJlbC1waWNrLW5hbWUgKGNkciAoYXNzcSA6cm93bmFtZS1uYW1lcyBw YXJhbXMpKQogCQkJICAoY2RyIChhc3NxIDpyb3duYW1lLW5hbWVzIHBhcmFtcykpKSkpKQogCisK KyhkZWZ1biBvcmctYmFiZWwtZXhlY3V0ZTpoYXNrZWxsIChib2R5IHBhcmFtcykKKyAgIkV4ZWN1 dGUgYSBibG9jayBvZiBIYXNrZWxsIGNvZGUuIgorICAoc2V0cSBjb21waWxlIChzdHJpbmc9IChj ZHIgKGFzc3EgOmNvbXBpbGUgcGFyYW1zKSkgInllcyIpKQorICAoaWYgKG5vdCBjb21waWxlKQor ICAgICAgKG9yZy1iYWJlbC1pbnRlcnByZXQtSGFza2VsbCBib2R5IHBhcmFtcykKKyAgICAob3Jn LWJhYmVsLUhhc2tlbGwtZXhlY3V0ZSBib2R5IHBhcmFtcykpKQorCiAoZGVmdW4gb3JnLWJhYmVs LWhhc2tlbGwtaW5pdGlhdGUtc2Vzc2lvbiAoJm9wdGlvbmFsIF9zZXNzaW9uIF9wYXJhbXMpCiAg ICJJbml0aWF0ZSBhIGhhc2tlbGwgc2Vzc2lvbi4KIElmIHRoZXJlIGlzIG5vdCBhIGN1cnJlbnQg aW5mZXJpb3ItcHJvY2Vzcy1idWZmZXIgaW4gU0VTU0lPTgotLSAKMi4yMC4xCgo= --0000000000007f864605a45b0ae2--