From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id AEZfCiYYgGYvMgAAqHPOHw:P1 (envelope-from ) for ; Sat, 29 Jun 2024 14:20:22 +0000 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id AEZfCiYYgGYvMgAAqHPOHw (envelope-from ) for ; Sat, 29 Jun 2024 16:20:22 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20230601 header.b=Avn9O0Dm; 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=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1719670822; 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=s/WzFRu3h7MVs2p/ZkspmFRsSbq95ZyqnGE/MqBkPiU=; b=E5pNDUa3vptnV9MAVcLXDRj049M3veZgUNdADfm9C9yqBnGpI7wwVF3BeIj0gzn15c5xKX Cg7JWlCwG7rmQQ/f70csLhMC5J/1DQr3CEaFZI5puoeAK0sNbPfWHlLKdBXlWN1YhaVsO8 a6b7TEtaNVacua2zgCMfUXGTUvQvhWFhfROFt1T4sYugKi3RdfjrblJJ0C2FiFcoxrMj5f 0J/7AmmCVpMVOTgiJTPZfhFIxZvuHyGH+HsIbXkSDccr+vDVqbe84RTEpD+0mVeGU4ud++ oK8EwkCTFBGP6samfEE2EC0P1menepsexZEEtwi0aEA7oLm+PqHm1MnMDaF/LQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20230601 header.b=Avn9O0Dm; 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=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Seal: i=1; s=key1; d=yhetil.org; t=1719670822; a=rsa-sha256; cv=none; b=NBNoc+vqMeJc7alrEWsmdOoeItaQeRsPMSoK9z/SQiV148qf4rOYOg704iUxISdDdUJPdr nX7+xu8xfg4UJydXdk9UL4OTopmCEhSloAlysWFRw2v7EoHYZjGopDO/zVzXZ6Xm200D4k uMLd0nUB6ULAi6e2Z+9QDb5+0GPN61WFyE5TACSOsliUp2pqbJG+NOgOpSOyInyfgScfz0 CMgxDUuWiDwIiBfWdtw1aivhjo1Yhkd08ZfSyJobHOu9ivIpAz9bBB4k1VAXsfmDaGru8q 1OMzvnNDQeWfHlazQw9vdstAH41BEN+YN75fVvDA3eOsx+OMzledv8682FVbiw== 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 B12406DBB0 for ; Sat, 29 Jun 2024 16:20:21 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sNYvM-0005U7-RC; Sat, 29 Jun 2024 10:19:32 -0400 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 1sNYvM-0005Ts-4H for emacs-orgmode@gnu.org; Sat, 29 Jun 2024 10:19:32 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sNYvB-0001gK-11 for emacs-orgmode@gnu.org; Sat, 29 Jun 2024 10:19:31 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-70685ab8fb1so1154203b3a.2 for ; Sat, 29 Jun 2024 07:19:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719670759; x=1720275559; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=0rD2qASNudPwITeMUt2Se7Ga1lKoCy+z0hHlPDPpwIQ=; b=Avn9O0Dm+LfoSF3fTKkw37nHN2OoD0meZvDUxT2FwHVR3XEx6QuSBZh/0tI7eKoafN mJ2pq7OKBtYuwWa2cIRuqm2jC+aTRiJDZjuvp5sVkNW6fruyLyik4vgSXmtFWGzyZonV XKAyUkWiyELHR5gfbBpG+KMjxBHRguodgU/wwXS7Uzx0xeciY8Da5Gg2KFQKOiruh5tc WDQIu6ogQRNC4qiUc9Qd32ggGk3sRIH93x44bov89B9PNn03FuqAdayaTtwJ+MLGTHjV gNytjdj448E3kmy/hVDxv7asT4jBH6B93yoATTRhO6HHBnV/BHbhw+5FRdTH0GZATcXP 8KIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719670759; x=1720275559; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0rD2qASNudPwITeMUt2Se7Ga1lKoCy+z0hHlPDPpwIQ=; b=Xs7y86J2Hz9ZjeBwZYQQHhvt4RYujpLGXmlWNZipkxvnCWT0zKc2x8yuRPuHgZxcd3 N6MwifHvSX3XaqfMAaUr/H7Ke8f6k4BseAgSQOHlThK4K3ymZCs9hkUeKZaYFmxIRV+c sjW1GRd9Rphp1KtPRldNGMaIds2wCqXJzRUj5gegcCyl8jobnxeUG5zHzZ9D4fILKgt8 Kw7199zoCzoxdxxwVd9BGiDT+AQfw/TJcxjZYxXZO6l84CYn1jIEo3c2+5kYSInmeSdf 5sHpNVE9gdu0GXPTruq+8+8MY6LJl/YK/iK4UXB5cr93mxXPeYhwbWwv9hJ5k1Yo49/b zovw== X-Gm-Message-State: AOJu0YwzhUKtZMV90JH7d3NVnkjbHys+HKNOFQLa5VjBF0+U7hOXOkjP mX/FINYjo9D2BmdTJZTBkbn/akK7UUlQbFt5bOohQ7G+DonNVey5c/I/5DU2KxsAntcphqtd+qp qv/glkpntpOgs0odmmojphkaveII= X-Google-Smtp-Source: AGHT+IHzh3C8xacsr9PXDeki0ogxgb3Bx69xXV6iU5vxnpssIIoIR2UZ2MZ79BtwCZ1r13RDnh8voMmMEd+amyEgXjc= X-Received: by 2002:a05:6a20:258c:b0:1be:c4f9:ddd3 with SMTP id adf61e73a8af0-1bef611dcecmr1360720637.24.1719670758872; Sat, 29 Jun 2024 07:19:18 -0700 (PDT) MIME-Version: 1.0 References: <87zfstenxc.fsf@localhost> <87zfriscml.fsf@localhost> <87v824904a.fsf@localhost> <87bk3v78zq.fsf@localhost> <87jziiptoh.fsf@localhost> <87a5jdi29k.fsf@localhost> In-Reply-To: <87a5jdi29k.fsf@localhost> From: Nathan Nichols Date: Sat, 29 Jun 2024 10:19:07 -0400 Message-ID: Subject: Re: [PATCH] Ability to specify :html-head as a function To: Ihor Radchenko Cc: emacs-orgmode@gnu.org Content-Type: multipart/mixed; boundary="000000000000b6cd82061c080cbf" Received-SPF: pass client-ip=2607:f8b0:4864:20::42f; envelope-from=nathannichols454@gmail.com; helo=mail-pf1-x42f.google.com X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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-Queue-Id: B12406DBB0 X-Migadu-Scanner: mx13.migadu.com X-Migadu-Spam-Score: -4.18 X-Spam-Score: -4.18 X-TUID: qlqs0oyzohMX --000000000000b6cd82061c080cbf Content-Type: multipart/alternative; boundary="000000000000b6cd80061c080cbd" --000000000000b6cd80061c080cbd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Ok, here's a patch. Please let me know if this is acceptable or not. On Sat, Jun 22, 2024 at 8:33=E2=80=AFAM Ihor Radchenko wrote: > Nathan Nichols writes: > > >> This looks like a copy-paste of `org-element-normalize-string'. > >> Why not simply calling `org-element-normalize-string'? > > > > I changed it at one point, but then changed it back and didn't realize > that > > it was ultimately unchanged. > > Here's a patch that uses `org-element-normalize-string` instead. > > Thanks! > > > +(defun org-html-normalize-str-or-fn (input &rest trailing) > > + "If INPUT is a string, it is passed to `org-element-normalize-string= '. > > Ideally, the first line of the docstring should fully describe what > function does. > > Maybe you can add something like > > Normalize INPUT function or string. Return a string or nil. > > > +If INPUT is a function, it is applied to arguments TRAILING, and the > result is > > +passed to `org-element-normalize-string'." > > + (let ((s (if (functionp input) (format "%s" (apply input trailing)) > input))) > > + (org-element-normalize-str s))) > ^org-element-normalize-string > > TRAILING name is confusing because it is not what one expects to be a > name of function arguments. Maybe > > (defun org-html-normalize-str-or-fn (input &rest args) > > > Also, you need to update docstrings and type definitions for > `org-html-head' and `org-html-head-extra', update the Org manual, and > announce the new allowed values in etc/ORG-NEWS. > > -- > Ihor Radchenko // yantar92, > Org mode contributor, > Learn more about Org mode at . > Support Org development at , > or support my work at > --000000000000b6cd80061c080cbd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Ok, here's a patch. Please let me know if this is acce= ptable or not.

On Sat, Jun 22, 2024 at 8:33=E2=80=AFAM Ihor Radchenko <= yantar92@posteo.net> wrote:
Nathan Nichols &l= t;nathannic= hols454@gmail.com> writes:

>> This looks like a copy-paste of `org-element-normalize-string'= .
>> Why not simply calling `org-element-normalize-string'?
>
> I changed it at one point, but then changed it back and didn't rea= lize that
> it was ultimately unchanged.
> Here's a patch that uses `org-element-normalize-string` instead.
Thanks!

> +(defun org-html-normalize-str-or-fn (input &rest trailing)
> +=C2=A0 "If INPUT is a string, it is passed to `org-element-norma= lize-string'.

Ideally, the first line of the docstring should fully describe what
function does.

Maybe you can add something like

=C2=A0 =C2=A0Normalize INPUT function or string.=C2=A0 Return a string or n= il.

> +If INPUT is a function, it is applied to arguments TRAILING, and the = result is
> +passed to `org-element-normalize-string'."
> +=C2=A0 (let ((s (if (functionp input) (format "%s" (apply i= nput trailing)) input)))
> +=C2=A0 =C2=A0 (org-element-normalize-str s)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0^org-element-normalize-string

TRAILING name is confusing because it is not what one expects to be a
name of function arguments.=C2=A0 Maybe

=C2=A0 =C2=A0 (defun org-html-normalize-str-or-fn (input &rest args)

Also, you need to update docstrings and type definitions for
`org-html-head' and `org-html-head-extra', update the Org manual, a= nd
announce the new allowed values in etc/ORG-NEWS.

--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,=
or support my work at <https://liberapay.com/yantar92>
--000000000000b6cd80061c080cbd-- --000000000000b6cd82061c080cbf Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Added-ability-to-specify-html-head-as-a-string-or-fu.patch" Content-Disposition: attachment; filename="0001-Added-ability-to-specify-html-head-as-a-string-or-fu.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ly07jp2m0 RnJvbSAzYjNhZDQ1ZjUwNmMzNDQ2ZmRhMGQ3NzAyOTEzZjFiYWRmZDIwZDQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRlIE5pY2hvbHMgPG5hdGhhbm5pY2hvbHM0NTRAZ21haWwu Y29tPgpEYXRlOiBUaHUsIDIwIEp1biAyMDI0IDE0OjI1OjM1IC0wNDAwClN1YmplY3Q6IFtQQVRD SF0gQWRkZWQgYWJpbGl0eSB0byBzcGVjaWZ5IDpodG1sLWhlYWQgYXMgYSBzdHJpbmcgb3IgZnVu Y3Rpb24KCi0tLQogZXRjL09SRy1ORVdTICAgICAgICAgICAgICAgICB8ICA2ICsrKysrKwogbGlz cC9veC1odG1sLmVsICAgICAgICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0KIHRlc3RpbmcvbGlzcC90ZXN0LW94LWh0bWwuZWwgfCAgNiArKysrKysKIDMgZmlsZXMgY2hh bmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ldGMv T1JHLU5FV1MgYi9ldGMvT1JHLU5FV1MKaW5kZXggYjlmNTE2NjdkLi41OWFjZWVhMDIgMTAwNjQ0 Ci0tLSBhL2V0Yy9PUkctTkVXUworKysgYi9ldGMvT1JHLU5FV1MKQEAgLTkyLDcgKzkyLDEzIEBA IFRoaXMgcmVzdWx0cyBpbiBhbiBlcnJvciBzdWNoIGFzOgogUnVudGltZSBlcnJvciBuZWFyIGxp bmUgMjogYXR0ZW1wdCB0byB3cml0ZSBhIHJlYWRvbmx5IGRhdGFiYXNlICg4KQogWyBCYWJlbCBl dmFsdWF0aW9uIGV4aXRlZCB3aXRoIGNvZGUgMSBdCiAjK2VuZF9leGFtcGxlCisqKiogfm9yZy1o dG1sLWhlYWR+IGFuZCB+b3JnLWh0bWwtaGVhZC1leHRyYX4gY2FuIG5vdyBiZSBzcGVjaWZpZWQg YXMgZnVuY3Rpb25zCiAKK1ByZXZpb3VzbHksIH5vcmctaHRtbC1oZWFkfiBhbmQgfm9yZy1odG1s LWhlYWQtZXh0cmF+IGNvdWxkIG9ubHkgYmUKK3NwZWNpZmllZCBkaXJlY3RseSBhcyBzdHJpbmdz LiAgTm93LCB0aGV5IGNhbiBiZSBzZXQgdG8gZnVuY3Rpb25zIHRoYXQKK2FjY2VwdCB0aGUgcHJv amVjdCBwLWxpc3QgYW5kIHJldHVybiBhIHN0cmluZy4gIFRoaXMgbWFrZXMgaXQgcG9zc2libGUK K3RvIGR5bmFtaWNhbGx5IGdlbmVyYXRlIHRoZSBjb250ZW50IG9mIHRoZSByZXN1bHRpbmcgfjxo ZWFkPn4gdGFnIGluCit0aGUgcmVzdWx0aW5nIEhUTUwgZG9jdW1lbnQuCiAKICoqIE1pc2NlbGxh bmVvdXMKICoqKiBUcmFpbGluZyA9LT0gaXMgbm93IGFsbG93ZWQgaW4gcGxhaW4gbGlua3MKZGlm ZiAtLWdpdCBhL2xpc3Avb3gtaHRtbC5lbCBiL2xpc3Avb3gtaHRtbC5lbAppbmRleCBkMTY4N2Nm NWEuLjYxMTliYzgyYSAxMDA2NDQKLS0tIGEvbGlzcC9veC1odG1sLmVsCisrKyBiL2xpc3Avb3gt aHRtbC5lbApAQCAtMTUzMSw3ICsxNTMxLDggQEAgc3R5bGUgaW5mb3JtYXRpb24uIgogVGhpcyB2 YXJpYWJsZSBjYW4gY29udGFpbiB0aGUgZnVsbCBIVE1MIHN0cnVjdHVyZSB0byBwcm92aWRlIGEK IHN0eWxlLCBpbmNsdWRpbmcgdGhlIHN1cnJvdW5kaW5nIEhUTUwgdGFncy4gIFlvdSBjYW4gY29u c2lkZXIKIGluY2x1ZGluZyBkZWZpbml0aW9ucyBmb3IgdGhlIGZvbGxvd2luZyBjbGFzc2VzOiB0 aXRsZSwgdG9kbywKLWRvbmUsIHRpbWVzdGFtcCwgdGltZXN0YW1wLWt3ZCwgdGFnLCB0YXJnZXQu Citkb25lLCB0aW1lc3RhbXAsIHRpbWVzdGFtcC1rd2QsIHRhZywgdGFyZ2V0LiAgQ2FuIGJlIGEg c3RyaW5nLCBvcgorYSBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHByb2plY3QgcC1saXN0IGFu ZCByZXR1cm5zIGEgc3RyaW5nLgogCiBGb3IgZXhhbXBsZSwgYSB2YWxpZCB2YWx1ZSB3b3VsZCBi ZToKIApAQCAtMTU1NiwxOSArMTU1NywyMyBAQCBvciBmb3IgcHVibGljYXRpb24gcHJvamVjdHMg dXNpbmcgdGhlIDpodG1sLWhlYWQgcHJvcGVydHkuIgogICA6Z3JvdXAgJ29yZy1leHBvcnQtaHRt bAogICA6dmVyc2lvbiAiMjQuNCIKICAgOnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI4LjAiKQot ICA6dHlwZSAnc3RyaW5nKQorICA6dHlwZSAnKGNob2ljZSAoc3RyaW5nIDp0YWcgIkxpdGVyYWwg dGV4dCB0byBpbnNlcnQiKQorICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gOnRhZyAiRnVuY3Rp b24gZXZhbHVhdGluZyB0byBhIHN0cmluZyIpKSkKIDs7OyMjI2F1dG9sb2FkCiAocHV0ICdvcmct aHRtbC1oZWFkICdzYWZlLWxvY2FsLXZhcmlhYmxlICdzdHJpbmdwKQogCiAoZGVmY3VzdG9tIG9y Zy1odG1sLWhlYWQtZXh0cmEgIiIKICAgIk1vcmUgaGVhZCBpbmZvcm1hdGlvbiB0byBhZGQgaW4g dGhlIEhUTUwgb3V0cHV0LgogCi1Zb3UgY2FuIHNldCB0aGlzIG9uIGEgcGVyLWZpbGUgYmFzaXMg dXNpbmcgIytIVE1MX0hFQURfRVhUUkE6LAotb3IgZm9yIHB1YmxpY2F0aW9uIHByb2plY3RzIHVz aW5nIHRoZSA6aHRtbC1oZWFkLWV4dHJhIHByb3BlcnR5LiIKK1lvdSBjYW4gc2V0IHRoaXMgb24g YSBwZXItZmlsZSBiYXNpcyB1c2luZyAjK0hUTUxfSEVBRF9FWFRSQTosIG9yCitmb3IgcHVibGlj YXRpb24gcHJvamVjdHMgdXNpbmcgdGhlIDpodG1sLWhlYWQtZXh0cmEgcHJvcGVydHkuCitDYW4g YmUgYSBzdHJpbmcsIG9yIGEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIHRoZSBwcm9qZWN0IHAtbGlz dAorYW5kIHJldHVybnMgYSBzdHJpbmcuIgogICA6Z3JvdXAgJ29yZy1leHBvcnQtaHRtbAogICA6 dmVyc2lvbiAiMjQuNCIKICAgOnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI4LjAiKQotICA6dHlw ZSAnc3RyaW5nKQorICA6dHlwZSAnKGNob2ljZSAoc3RyaW5nIDp0YWcgIkxpdGVyYWwgdGV4dCB0 byBpbnNlcnQiKQorICAgICAgICAgICAgICAgICAoZnVuY3Rpb24gOnRhZyAiRnVuY3Rpb24gZXZh bHVhdGluZyB0byBhIHN0cmluZyIpKSkKIDs7OyMjI2F1dG9sb2FkCiAocHV0ICdvcmctaHRtbC1o ZWFkLWV4dHJhICdzYWZlLWxvY2FsLXZhcmlhYmxlICdzdHJpbmdwKQogCkBAIC0yMDAxLDYgKzIw MDYsMTUgQEAgSU5GTyBpcyBhIHBsaXN0IHVzZWQgYXMgYSBjb21tdW5pY2F0aW9uIGNoYW5uZWwu IgogCQkgIG9yZy1odG1sLW1ldGEtdGFncykpCiAgICAgICAiIikpKSkKIAorKGRlZnVuIG9yZy1o dG1sLW5vcm1hbGl6ZS1zdHItb3ItZm4gKGlucHV0ICZyZXN0IGFyZ3MpCisgICJOb3JtYWxpemUg SU5QVVQgZnVuY3Rpb24gb3Igc3RyaW5nLiAgUmV0dXJuIGEgc3RyaW5nIG9yIG5pbC4KK0lmIElO UFVUIGlzIGEgc3RyaW5nLCBpdCBpcyBwYXNzZWQgdG8KK2BvcmctZWxlbWVudC1ub3JtYWxpemUt c3RyaW5nJy4gIElmIElOUFVUIGlzIGEgZnVuY3Rpb24sIGl0IGlzCithcHBsaWVkIHRvIGFyZ3Vt ZW50cyBBUkdTLCBhbmQgdGhlIHJlc3VsdCBpcyBwYXNzZWQgdG8KK2BvcmctZWxlbWVudC1ub3Jt YWxpemUtc3RyaW5nJy4iCisgIChsZXQgKChzIChpZiAoZnVuY3Rpb25wIGlucHV0KSAoZm9ybWF0 ICIlcyIgKGFwcGx5IGlucHV0IGFyZ3MpKSBpbnB1dCkpKQorICAgIChvcmctZWxlbWVudC1ub3Jt YWxpemUtc3RyaW5nIHMpKSkKKwogKGRlZnVuIG9yZy1odG1sLS1idWlsZC1oZWFkIChpbmZvKQog ICAiUmV0dXJuIGluZm9ybWF0aW9uIGZvciB0aGUgPGhlYWQ+Li48L2hlYWQ+IG9mIHRoZSBIVE1M IG91dHB1dC4KIElORk8gaXMgYSBwbGlzdCB1c2VkIGFzIGEgY29tbXVuaWNhdGlvbiBjaGFubmVs LiIKQEAgLTIwMDgsOCArMjAyMiw4IEBAIElORk8gaXMgYSBwbGlzdCB1c2VkIGFzIGEgY29tbXVu aWNhdGlvbiBjaGFubmVsLiIKICAgIChjb25jYXQKICAgICAod2hlbiAocGxpc3QtZ2V0IGluZm8g Omh0bWwtaGVhZC1pbmNsdWRlLWRlZmF1bHQtc3R5bGUpCiAgICAgICAob3JnLWVsZW1lbnQtbm9y bWFsaXplLXN0cmluZyBvcmctaHRtbC1zdHlsZS1kZWZhdWx0KSkKLSAgICAob3JnLWVsZW1lbnQt bm9ybWFsaXplLXN0cmluZyAocGxpc3QtZ2V0IGluZm8gOmh0bWwtaGVhZCkpCi0gICAgKG9yZy1l bGVtZW50LW5vcm1hbGl6ZS1zdHJpbmcgKHBsaXN0LWdldCBpbmZvIDpodG1sLWhlYWQtZXh0cmEp KQorICAgIChvcmctaHRtbC1ub3JtYWxpemUtc3RyLW9yLWZuIChwbGlzdC1nZXQgaW5mbyA6aHRt bC1oZWFkKSBpbmZvKQorICAgIChvcmctaHRtbC1ub3JtYWxpemUtc3RyLW9yLWZuIChwbGlzdC1n ZXQgaW5mbyA6aHRtbC1oZWFkLWV4dHJhKSBpbmZvKQogICAgICh3aGVuIChhbmQgKHBsaXN0LWdl dCBpbmZvIDpodG1sLWh0bWxpemVkLWNzcy11cmwpCiAJICAgICAgIChlcSBvcmctaHRtbC1odG1s aXplLW91dHB1dC10eXBlICdjc3MpKQogICAgICAgKG9yZy1odG1sLWNsb3NlLXRhZyAibGluayIK ZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW94LWh0bWwuZWwgYi90ZXN0aW5nL2xpc3Av dGVzdC1veC1odG1sLmVsCmluZGV4IDA5NTlkMTQ0MS4uZDA3OWNkMjcxIDEwMDY0NAotLS0gYS90 ZXN0aW5nL2xpc3AvdGVzdC1veC1odG1sLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW94LWh0 bWwuZWwKQEAgLTk5Niw1ICs5OTYsMTEgQEAgZW50aXJlbHkuIgogICAgICAgICAoc2hvdWxkICg9 IDAgKGhvdy1tYW55ICJDcmVhdGVkOiAiKSkpCiAgICAgICAgIChzaG91bGQgKD0gMSAoaG93LW1h bnkgIkF1dGhvcj1Nb25zaWV1ciBPZXVmIikpKSkpKSkKIAorKGVydC1kZWZ0ZXN0IG94LWh0bWwv dGVzdC1ub3JtYWxpemUtc3RyLW9yLWZuICgpCisgIDs7IFRlc3QgY2FzZXMgZm9yIGBvcmctZWxl bWVudC1ub3JtYWxpemUtc3RyLW9yLWZuJworICAoc2hvdWxkIChzdHJpbmc9IChvcmctaHRtbC1u b3JtYWxpemUtc3RyLW9yLWZuIChsYW1iZGEgKF9yZXMpICJhYmNkZWZnIikgbmlsKSAiYWJjZGVm Z1xuIikpCisgIChzaG91bGQgKHN0cmluZz0gKG9yZy1odG1sLW5vcm1hbGl6ZS1zdHItb3ItZm4g ImFiY2RlZmciKSAiYWJjZGVmZ1xuIikpCisgIChzaG91bGQgKD0gKG9yZy1lbGVtZW50LW5vcm1h bGl6ZS1zdHItb3ItZm4gMTIzIG5pbCkgMTIzKSkpCisKIChwcm92aWRlICd0ZXN0LW94LWh0bWwp CiA7OzsgdGVzdC1veC1odG1sLmVsIGVuZHMgaGVyZQotLSAKMi4zNC4xCgo= --000000000000b6cd82061c080cbf--