From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id sBxnNXckL2bWGAAAqHPOHw:P1 (envelope-from ) for ; Mon, 29 Apr 2024 06:39:19 +0200 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 sBxnNXckL2bWGAAAqHPOHw (envelope-from ) for ; Mon, 29 Apr 2024 06:39:19 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Y0tpSviF; dmarc=pass (policy=none) header.from=gmail.com; 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" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1714365559; a=rsa-sha256; cv=none; b=U0ZvCx9bvTSu2SRhqSf8q7sIEHemLN+dbw+FZ9Y+V0jokO7xUy1C/pFMAJ1NDwqU/e87ic oqHq8g3KD0WGFkyji0nVS2f+kRgK11VUnn0xbWKVvzzvc9bwpv74W72rUXF2u1gxa+JqXu K8+7AkWLkcWq0LWYcoTYUXqsPQV31cn2QzHwX+p4d/ay7H+9l1Z4XztXL13f1oczpVTzhW w2XmZy7Gnk72lx+40uPkvv/t8/zzPC3EdupoyqxZnDQXi99e4Z8vmZdC4w7nCIgTGY7mLS rFjZNil1TtnnKJclQxqgLntMI3JhEe+m26J/uPHgU07A3GPWjxMyNRfiNcRuUA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Y0tpSviF; dmarc=pass (policy=none) header.from=gmail.com; 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" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1714365559; 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=8ZQ2F3j6Y1JkdDCXgU3VDO4MNU849Ys7rYAudYxnyoE=; b=fc8ZVAoMflzme1RYLL47SQjI+QJCXCds3/m0HClzncLtFlGzlhReQ3XnNG2UzLEjyjtKAe EhPE8A28WzfRd0IMlI0EJDIqks4wQLPw8dbd9TaDBJ3eMyiWC5KwD0IWbUGd1SxAvxVo1z rjJ1r5dBRMgA9tXtB7ZsIVfImiUim5bH2IR+vV+tB91hf9v+XcHV4Hf8GRJDX0SO31el6F 0Ky+pFTLKJwbtQxX59uAKPM3NrMBsOSwH9VynDAoxaqd7jygq9+C7WR0uNIBasYZ4qHpbH XtH8EPTSxCY8S/+dXnzzzRS4KS7FTA+MpkaLb/0leop7d4nqRnrG3EwtIwxthg== 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 664FD67C8C for ; Mon, 29 Apr 2024 06:39:19 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s1ImA-000341-OZ; Mon, 29 Apr 2024 00:38:07 -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 1s1Ib8-00013t-MN; Mon, 29 Apr 2024 00:26:44 -0400 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s1Ib6-00053K-9K; Mon, 29 Apr 2024 00:26:38 -0400 Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-2a52c544077so2977276a91.1; Sun, 28 Apr 2024 21:26:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714364794; x=1714969594; darn=gnu.org; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=8ZQ2F3j6Y1JkdDCXgU3VDO4MNU849Ys7rYAudYxnyoE=; b=Y0tpSviF8bCzMQxaLJ/wXjxpjYgDP7UXlQwRbj7z1GGVbVvAReTWTD27ojVwo8an4Y 6wTJvEiyCNNUqh7H6ZJW4A5gUcxLIXnS1nQmBM/TuALMb2R8Lt6DdjS3p6NQpcIoAX2R 4r6sCF5mcnCwJGeS/68m3g+In9DmDtW+YfHsLl4nOnsIU+Z46bqCofsJWMxhmmdK7Yem g3wi9ZTCiuT2++ISY+8zOfdD/weOtf9zzz2ClfBb91VzTRkrPlNs6LewvJkgwtjqMXUf nYKk5+UVuBhozBwjOlat8ViuURxbTM5qufg7w1ectDXpTItZ3+YHajf5SB+LBnROrdiy dwbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714364794; x=1714969594; h=in-reply-to:references:cc:to:from:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=8ZQ2F3j6Y1JkdDCXgU3VDO4MNU849Ys7rYAudYxnyoE=; b=tSSLJ7dn0qVjwyl8Cdecvk+fXCtx8KRf5F0Gvv/zFHkTt6IZ06Ohorne5Gy6HtyP8A H6FjhTI5X3Wtq/3vBfk0AavOwBK38PV8kongMaSLjt4jjKaxIJinuY5aK/nSqxLtyTG4 p5MKaHahoRygZkk8sZWDWoV5JF68fzK1rAK0bPFcJDDj8iYkiys669Jr55k2E614kHR/ /6ulOW+zRkvgJHslZWcQhMn5YvvoHLePjqMOZDQmE3Giqf0Xg8rYTFPPv8CJ4eRPLRwe 8v1RPJ1eRDspvtzrsKmZWsmtK2JyoMpfEWGzwg7Umd+iXJBPrGLN/Z59ibIGsKtQxU+R I0vw== X-Forwarded-Encrypted: i=1; AJvYcCU+gt9pwTJpfCsR/4BvlBXPYavzcbI9P4vOxTD5+TTlDB1i3kVkl/bW4K7uNDEVV/r+JjcUk2/8zV3VEYKoY+VuL1cuM5fjijx9r7BRRCi4vYXkjA== X-Gm-Message-State: AOJu0YynRzBqFMzT7WpMDWdsPv0bvErbiPDibyMmVWkVsxMRSeWMnyOk MQ1o3+11AU6uByqckyIOvRuAxil5QcXq3JmVbB8yqtwkjaR29X8E X-Google-Smtp-Source: AGHT+IGUk6ZQbKfpRqOAATMGVfEj7ISx7D1a1OSiSGefIGGcmvK6HEPyFZvRr1W82n5YD5WOQ95efw== X-Received: by 2002:a17:90a:688d:b0:2b1:534f:3bdc with SMTP id a13-20020a17090a688d00b002b1534f3bdcmr2420203pjd.27.1714364793686; Sun, 28 Apr 2024 21:26:33 -0700 (PDT) Received: from [192.168.1.2] ([23.240.98.37]) by smtp.googlemail.com with ESMTPSA id qb13-20020a17090b280d00b002b1581a0fccsm1820315pjb.44.2024.04.28.21.26.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 28 Apr 2024 21:26:33 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------lt5IYTb2UucUb4M12nlx9riM" Message-ID: <0c66ae28-7088-3ac7-be39-7714b8f80455@gmail.com> Date: Sun, 28 Apr 2024 21:26:32 -0700 MIME-Version: 1.0 Subject: Re: Adding custom providers for thingatpt.el (was: [PATCH] Add support for 'thing-at-point' to get URL at point) Content-Language: en-US From: Jim Porter To: Ihor Radchenko , eliz@gnu.org Cc: emacs-devel@gnu.org, emacs-orgmode@gnu.org References: <87leba3ame.fsf@localhost> <88435424-afa3-d7a3-56ff-df9f0a2ca6ba@gmail.com> <875xz39cgp.fsf@localhost> <87ttk6da89.fsf@localhost> <673a0f71-c91f-8461-7388-9efbed6ba24f@gmail.com> In-Reply-To: <673a0f71-c91f-8461-7388-9efbed6ba24f@gmail.com> Received-SPF: pass client-ip=2607:f8b0:4864:20::102d; envelope-from=jporterbugs@gmail.com; helo=mail-pj1-x102d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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: 664FD67C8C X-Migadu-Scanner: mx12.migadu.com X-Migadu-Spam-Score: -7.10 X-Spam-Score: -7.10 X-TUID: c0xEtqQTtGjY This is a multi-part message in MIME format. --------------lt5IYTb2UucUb4M12nlx9riM Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/12/2024 3:30 PM, Jim Porter wrote: > On 4/12/2024 5:41 AM, Ihor Radchenko wrote: >> Jim Porter writes: >> >>> That sounds reasonable enough to me; does anyone else have opinions on >>> this? Otherwise, I'll get to work on a patch (though probably not for a >>> couple weeks). >> >> It has been a while since the last message in this thread. >> Jim, may I know if you had a chance to work on the patch? > > Sorry about that. I'm currently extremely swamped with real life, but > most of that should be wrapped up by the end of the month, at which > point I'll be able to devote some time to Emacs again. Ihor, Eli: What do you think of the attached patch? I added variables to let modes define custom providers for 'bounds-of-thing-at-point' and 'forward-thing'. (Notably, I avoided adding vars for the 'beginning-of-thing' and 'end-of-thing' functions, since those just call 'bounds-of-thing-at-point' anyway.) If this looks like a reasonable way to go, I'll continue work on this patch by adding entries to 'bounds-of-thing-at-point-provider-alist' and 'forward-thing-provider-alist' in the appropriate places (i.e. wherever we already add to 'thing-at-point-provider-alist', like in EWW). --------------lt5IYTb2UucUb4M12nlx9riM Content-Type: text/plain; charset=UTF-8; name="0001-Allow-defining-custom-providers-for-more-thingatpt-f.patch" Content-Disposition: attachment; filename*0="0001-Allow-defining-custom-providers-for-more-thingatpt-f.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhMGVkNjJhYTQyZmE0NzA0MzUxMWJhODE0Y2Y1Y2U4NDE5ZTlkMDNmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMjggQXByIDIwMjQgMjE6MTk6NTMgLTA3MDAKU3ViamVjdDogW1BB VENIXSBBbGxvdyBkZWZpbmluZyBjdXN0b20gcHJvdmlkZXJzIGZvciBtb3JlICJ0aGluZ2F0 cHQiCiBmdW5jdGlvbnMKCiogbGlzcC90aGluZ2F0cHQuZWwgKGJvdW5kcy1vZi10aGluZy1h dC1wb2ludC1wcm92aWRlci1hbGlzdCkKKGZvcndhcmQtdGhpbmctcHJvdmlkZXItYWxpc3Qp OiBOZXcgdmFyaWFibGVzLi4uCihmb3J3YXJkLXRoaW5nLCBib3VuZHMtb2YtdGhpbmctYXQt cG9pbnQpOiAuLi4gdXNlIHRoZW0uCiogdGVzdC9saXNwL3RoaW5nYXRwdC10ZXN0cy5lbCAo dGhpbmctYXQtcG9pbnQtcHJvdmlkZXJzKQooZm9yd2FyZC10aGluZy1wcm92aWRlcnMsIGJv dW5kcy1vZi10aGluZy1hdC1wb2ludC1wcm92aWRlcnMpOiBOZXcKdGVzdHMuCgoqIGV0Yy9O RVdTOiBBbm5vdW5jZSB0aGlzIGNoYW5nZS4KLS0tCiBldGMvTkVXUyAgICAgICAgICAgICAg ICAgICAgIHwgMTggKysrKysrKysrKysrKy0tLS0tCiBsaXNwL3RoaW5nYXRwdC5lbCAgICAg ICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIHRlc3Qv bGlzcC90aGluZ2F0cHQtdGVzdHMuZWwgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2V0Yy9ORVdTIGIvZXRjL05FV1MKaW5kZXggN2VmYjQxMTBi Y2QuLjI0ODBmMGQwOTZkIDEwMDY0NAotLS0gYS9ldGMvTkVXUworKysgYi9ldGMvTkVXUwpA QCAtMTU5MSwxOSArMTU5MSwyNyBAQCBvZiB0aGUgY3VycmVudGx5IGV4aXN0aW5nIGtleWJv YXJkcyBtYWNyb3MgdXNpbmcgdGhlIG5ldyBtb2RlCiBkdXBsaWNhdGluZyB0aGVtLCBkZWxl dGluZyB0aGVtLCBhbmQgZWRpdGluZyB0aGVpciBjb3VudGVycywgZm9ybWF0cywKIGFuZCBr ZXlzLgogCi0qKiBNaXNjZWxsYW5lb3VzCisqKiB0aGluZ2F0cHQuZWwKIAogLS0tCi0qKiog V2VianVtcCBub3cgYXNzdW1lcyBVUklzIGFyZSBIVFRQUyBpbnN0ZWFkIG9mIEhUVFAuCi1G b3IgbGlua3MgaW4gJ3dlYmp1bXAtc2l0ZXMnIHdpdGhvdXQgYW4gZXhwbGljaXQgVVJJIHNj aGVtZSwgaXQgd2FzCi1wcmV2aW91c2x5IGFzc3VtZWQgdGhhdCB0aGV5IHNob3VsZCBiZSBw cmVmaXhlZCB3aXRoICJodHRwOi8vIi4gIFN1Y2gKLVVSSXMgYXJlIG5vdyBwcmVmaXhlZCB3 aXRoICJodHRwczovLyIgaW5zdGVhZC4KKyoqKiBOZXcgdmFyaWFibGVzIGZvciBwcm92aWRp bmcgY3VzdG9tIHRoaW5nYXRwdCBpbXBsZW1lbnRhdGlvbnMuCitUaGUgbmV3IHZhcmlhYmxl cyAnYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50LXByb3ZpZGVyLWFsaXN0JyBhbmQKKydmb3J3 YXJkLXRoaW5nLXByb3ZpZGVyLWFsaXN0JyBub3cgYWxsb3cgZGVmaW5pbmcgY3VzdG9tIGlt cGxlbWVudGF0aW9ucworb2YgJ2JvdW5kcy1vZi10aGluZy1hdC1wb2ludCcgYW5kICdmb3J3 YXJkLXRoaW5nJywgcmVzcGVjdGl2ZWx5LgogCiAtLS0KICoqKiAnYnVnLXJlZmVyZW5jZS1t b2RlJyBub3cgc3VwcG9ydHMgJ3RoaW5nLWF0LXBvaW50Jy4KIE5vdywgY2FsbGluZyAnKHRo aW5nLWF0LXBvaW50ICd1cmwpJyB3aGVuIHBvaW50IGlzIG9uIGEgYnVnIHJlZmVyZW5jZQog d2lsbCByZXR1cm4gdGhlIFVSTCBmb3IgdGhhdCBidWcuCiAKKyoqIE1pc2NlbGxhbmVvdXMK KworLS0tCisqKiogV2VianVtcCBub3cgYXNzdW1lcyBVUklzIGFyZSBIVFRQUyBpbnN0ZWFk IG9mIEhUVFAuCitGb3IgbGlua3MgaW4gJ3dlYmp1bXAtc2l0ZXMnIHdpdGhvdXQgYW4gZXhw bGljaXQgVVJJIHNjaGVtZSwgaXQgd2FzCitwcmV2aW91c2x5IGFzc3VtZWQgdGhhdCB0aGV5 IHNob3VsZCBiZSBwcmVmaXhlZCB3aXRoICJodHRwOi8vIi4gIFN1Y2gKK1VSSXMgYXJlIG5v dyBwcmVmaXhlZCB3aXRoICJodHRwczovLyIgaW5zdGVhZC4KKwogKysrCiAqKiogTmV3IHVz ZXIgb3B0aW9uICdyY2lyYy1sb2ctdGltZS1mb3JtYXQnCiBUaGlzIGFsbG93cyBmb3IgcmNp cmMgbG9ncyB0byB1c2UgYSBjdXN0b20gdGltZXN0YW1wIGZvcm1hdCwgdGhhbiB0aGUKZGlm ZiAtLWdpdCBhL2xpc3AvdGhpbmdhdHB0LmVsIGIvbGlzcC90aGluZ2F0cHQuZWwKaW5kZXgg Nzg5NmFkOTg0ZGYuLmQ1ZjcxZTNjNmE4IDEwMDY0NAotLS0gYS9saXNwL3RoaW5nYXRwdC5l bAorKysgYi9saXNwL3RoaW5nYXRwdC5lbApAQCAtNzUsNiArNzUsMjIgQEAgdGhpbmctYXQt cG9pbnQtcHJvdmlkZXItYWxpc3QKIGBleGlzdGluZy1maWxlbmFtZScsIGB1cmwnLCBgZW1h aWwnLCBgdXVpZCcsIGB3b3JkJywgYHNlbnRlbmNlJywKIGB3aGl0ZXNwYWNlJywgYGxpbmUn LCBgZmFjZScgYW5kIGBwYWdlJy4iKQogCisoZGVmdmFyIGJvdW5kcy1vZi10aGluZy1hdC1w b2ludC1wcm92aWRlci1hbGlzdCBuaWwKKyAgIkFsaXN0IG9mIHByb3ZpZGVycyB0byByZXR1 cm4gdGhlIGJvdW5kcyBvZiBhIFwidGhpbmdcIiBhdCBwb2ludC4KK1RoaXMgdmFyaWFibGUg Y2FuIGJlIHNldCBnbG9iYWxseSwgb3IgYXBwZW5kZWQgdG8gYnVmZmVyLWxvY2FsbHkgYnkK K21vZGVzLCB0byBwcm92aWRlIGZ1bmN0aW9ucyB0aGF0IHdpbGwgcmV0dXJuIHRoZSBib3Vu ZHMgb2YgYSBcInRoaW5nXCIKK2F0IHBvaW50LiAgVGhlIGZpcnN0IHByb3ZpZGVyIGZvciB0 aGUgXCJ0aGluZ1wiIHRoYXQgcmV0dXJucyBhIG5vbi1uaWwKK3ZhbHVlIHdpbnMuICBZb3Ug Y2FuIHVzZSB0aGlzIGluIG11Y2ggdGhlIHNhbWUgd2F5IGFzCitgdGhpbmctYXQtcG9pbnQt cHJvdmlkZXItYWxpc3QnICh3aGljaCBzZWUpLiIpCisKKyhkZWZ2YXIgZm9yd2FyZC10aGlu Zy1wcm92aWRlci1hbGlzdCBuaWwKKyAgIkFsaXN0IG9mIHByb3ZpZGVycyBmb3IgbW92aW5n IGZvcndhcmQgdG8gdGhlIGVuZCBvZiBhIFwidGhpbmdcIi4KK1RoaXMgdmFyaWFibGUgY2Fu IGJlIHNldCBnbG9iYWxseSwgb3IgYXBwZW5kZWQgdG8gYnVmZmVyLWxvY2FsbHkgYnkKK21v ZGVzLCB0byBwcm92aWRlIGZ1bmN0aW9ucyB0aGF0IHdpbGwgbW92ZSBmb3J3YXJkIHRvIHRo ZSBlbmQgb2YgYQorXCJ0aGluZ1wiIGF0IHBvaW50LiAgVGhlIGZpcnN0IHByb3ZpZGVyIGZv ciB0aGUgXCJ0aGluZ1wiIHRoYXQgcmV0dXJucyBhCitub24tbmlsIHZhbHVlIHdpbnMuICBZ b3UgY2FuIHVzZSB0aGlzIGluIG11Y2ggdGhlIHNhbWUgd2F5IGFzCitgdGhpbmctYXQtcG9p bnQtcHJvdmlkZXItYWxpc3QnICh3aGljaCBzZWUpLiIpCisKIDs7IEJhc2ljIG1vdmVtZW50 CiAKIDs7OyMjI2F1dG9sb2FkCkBAIC04NCwxMSArMTAwLDE2IEBAIGZvcndhcmQtdGhpbmcK IFBvc3NpYmlsaXRpZXMgaW5jbHVkZSBgc3ltYm9sJywgYGxpc3QnLCBgc2V4cCcsIGBkZWZ1 bicsIGBudW1iZXInLAogYGZpbGVuYW1lJywgYHVybCcsIGBlbWFpbCcsIGB1dWlkJywgYHdv cmQnLCBgc2VudGVuY2UnLCBgd2hpdGVzcGFjZScsCiBgbGluZScsIGFuZCBgcGFnZScuIgot ICAobGV0ICgoZm9yd2FyZC1vcCAob3IgKGdldCB0aGluZyAnZm9yd2FyZC1vcCkKLQkJCShp bnRlcm4tc29mdCAoZm9ybWF0ICJmb3J3YXJkLSVzIiB0aGluZykpKSkpCi0gICAgKGlmIChm dW5jdGlvbnAgZm9yd2FyZC1vcCkKLQkoZnVuY2FsbCBmb3J3YXJkLW9wIChvciBuIDEpKQot ICAgICAgKGVycm9yICJDYW4ndCBkZXRlcm1pbmUgaG93IHRvIG1vdmUgb3ZlciBhICVzIiB0 aGluZykpKSkKKyAgKHNldHEgbiAob3IgbiAxKSkKKyAgKG9yIChzZXEtc29tZSAobGFtYmRh IChlbHQpCisgICAgICAgICAgICAgICAgICAoYW5kIChlcSAoY2FyIGVsdCkgdGhpbmcpCisg ICAgICAgICAgICAgICAgICAgICAgIChmdW5jYWxsIChjZHIgZWx0KSBuKSkpCisgICAgICAg ICAgICAgICAgZm9yd2FyZC10aGluZy1wcm92aWRlci1hbGlzdCkKKyAgICAgIChsZXQgKChm b3J3YXJkLW9wIChvciAoZ2V0IHRoaW5nICdmb3J3YXJkLW9wKQorCQkJICAgIChpbnRlcm4t c29mdCAoZm9ybWF0ICJmb3J3YXJkLSVzIiB0aGluZykpKSkpCisgICAgICAgIChpZiAoZnVu Y3Rpb25wIGZvcndhcmQtb3ApCisJICAgIChmdW5jYWxsIGZvcndhcmQtb3AgbikKKyAgICAg ICAgICAoZXJyb3IgIkNhbid0IGRldGVybWluZSBob3cgdG8gbW92ZSBvdmVyIGEgJXMiIHRo aW5nKSkpKSkKIAogOzsgR2VuZXJhbCByb3V0aW5lcwogCkBAIC0xMDYsNiArMTI3LDEwIEBA IGJvdW5kcy1vZi10aGluZy1hdC1wb2ludAogUmV0dXJuIGEgY29ucyBjZWxsIChTVEFSVCAu IEVORCkgZ2l2aW5nIHRoZSBzdGFydCBhbmQgZW5kCiBwb3NpdGlvbnMgb2YgdGhlIHRoaW5n IGZvdW5kLiIKICAgKGNvbmQKKyAgICgoc2VxLXNvbWUgKGxhbWJkYSAoZWx0KQorICAgICAg ICAgICAgICAgIChhbmQgKGVxIChjYXIgZWx0KSB0aGluZykKKyAgICAgICAgICAgICAgICAg ICAgIChmdW5jYWxsIChjZHIgZWx0KSkpKQorICAgICAgICAgICAgICAgIGJvdW5kcy1vZi10 aGluZy1hdC1wb2ludC1wcm92aWRlci1hbGlzdCkpCiAgICAoKGdldCB0aGluZyAnYm91bmRz LW9mLXRoaW5nLWF0LXBvaW50KQogICAgIChmdW5jYWxsIChnZXQgdGhpbmcgJ2JvdW5kcy1v Zi10aGluZy1hdC1wb2ludCkpKQogICAgOzsgSWYgdGhlIGJ1ZmZlciBpcyB0b3RhbGx5IGVt cHR5LCBnaXZlIHVwLgpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3RoaW5nYXRwdC10ZXN0cy5l bCBiL3Rlc3QvbGlzcC90aGluZ2F0cHQtdGVzdHMuZWwKaW5kZXggZTUwNzM4ZjExMjIuLjRh YWNkNzc2MTc2IDEwMDY0NAotLS0gYS90ZXN0L2xpc3AvdGhpbmdhdHB0LXRlc3RzLmVsCisr KyBiL3Rlc3QvbGlzcC90aGluZ2F0cHQtdGVzdHMuZWwKQEAgLTI1OCw0ICsyNTgsMzUgQEAg dGVzdC1udW1iZXJzLWhleC1jCiAgIChzaG91bGQgKGVxdWFsICh0ZXN0LS1udW1iZXIgIjB4 ZjAwIiAyKSAzODQwKSkKICAgKHNob3VsZCAoZXF1YWwgKHRlc3QtLW51bWJlciAiMHhmMDAi IDMpIDM4NDApKSkKIAorKGVydC1kZWZ0ZXN0IHRoaW5nLWF0LXBvaW50LXByb3ZpZGVycyAo KQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChzZXRxLWxvY2FsIHRoaW5nLWF0LXBvaW50 LXByb3ZpZGVyLWFsaXN0CisgICAgICAgICAgICAgICAgYCgodXJsIC4gLChsYW1iZGEgKCkg InRlc3QiKSkpKQorICAgIChpbnNlcnQgImhlbGxvIikKKyAgICAoc2hvdWxkIChlcXVhbCAo dGhpbmctYXQtcG9pbnQgJ3VybCkgInRlc3QiKSkKKyAgICAoc2hvdWxkIChlcXVhbCAodGhp bmctYXQtcG9pbnQgJ3dvcmQpICJoZWxsbyIpKSkpCisKKyhlcnQtZGVmdGVzdCBmb3J3YXJk LXRoaW5nLXByb3ZpZGVycyAoKQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChzZXRxLWxv Y2FsIGZvcndhcmQtdGhpbmctcHJvdmlkZXItYWxpc3QKKyAgICAgICAgICAgICAgICBgKCh1 cmwgLiAsKGxhbWJkYSAobikgKGdvdG8tY2hhciA0KSkpKSkKKyAgICAoaW5zZXJ0ICJoZWxs byB0aGVyZSIpCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAoc2hvdWxkIChl cSAoc2F2ZS1leGN1cnNpb24gKGZvcndhcmQtdGhpbmcgJ3VybCkgKHBvaW50KSkgNCkpCisg ICAgKHNob3VsZCAoZXEgKHNhdmUtZXhjdXJzaW9uIChmb3J3YXJkLXRoaW5nICd3b3JkKSAo cG9pbnQpKSA2KSkpKQorCisoZXJ0LWRlZnRlc3QgYm91bmRzLW9mLXRoaW5nLWF0LXBvaW50 LXByb3ZpZGVycyAoKQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChzZXRxLWxvY2FsIGJv dW5kcy1vZi10aGluZy1hdC1wb2ludC1wcm92aWRlci1hbGlzdAorICAgICAgICAgICAgICAg IGAoKHVybCAuICwobGFtYmRhICgpICcoMiAuIDMpKSkpKQorICAgIChpbnNlcnQgImhlbGxv IikKKyAgICA7OyBMb29rIGZvciBhICJVUkwiLCB1c2luZyBvdXIgcHJvdmlkZXIgYWJvdmUu CisgICAgKHNob3VsZCAoZXF1YWwgKGJvdW5kcy1vZi10aGluZy1hdC1wb2ludCAndXJsKSAn KDIgLiAzKSkpCisgICAgKHNob3VsZCAoZXEgKHNhdmUtZXhjdXJzaW9uIChiZWdpbm5pbmct b2YtdGhpbmcgJ3VybCkpIDIpKQorICAgIChzaG91bGQgKGVxIChzYXZlLWV4Y3Vyc2lvbiAo ZW5kLW9mLXRoaW5nICd1cmwpKSAzKSkKKyAgICA7OyBMb29rIGZvciBhIHdvcmQsIHdoaWNo IHNob3VsZCAqbm90KiB1c2Ugb3VyIHByb3ZpZGVyIGFib3ZlLgorICAgIChzaG91bGQgKGVx dWFsIChib3VuZHMtb2YtdGhpbmctYXQtcG9pbnQgJ3dvcmQpICcoMSAuIDYpKSkKKyAgICAo c2hvdWxkIChlcSAoc2F2ZS1leGN1cnNpb24gKGJlZ2lubmluZy1vZi10aGluZyAnd29yZCkp IDEpKQorICAgIChzaG91bGQgKGVxIChzYXZlLWV4Y3Vyc2lvbiAoZW5kLW9mLXRoaW5nICd3 b3JkKSkgNikpKSkKKwogOzs7IHRoaW5nYXRwdC10ZXN0cy5lbCBlbmRzIGhlcmUKLS0gCjIu MjUuMQoK --------------lt5IYTb2UucUb4M12nlx9riM--