From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id OOHKKvAacWNoKwEAbAwnHQ (envelope-from ) for ; Sun, 13 Nov 2022 17:27:28 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id mHSbKvAacWOayAAAauVa8A (envelope-from ) for ; Sun, 13 Nov 2022 17:27:28 +0100 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 400DE21767 for ; Sun, 13 Nov 2022 17:27:28 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ouFp5-0000Ta-GG; Sun, 13 Nov 2022 11:27:07 -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 1ouFp3-0000TF-6f for emacs-orgmode@gnu.org; Sun, 13 Nov 2022 11:27:05 -0500 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ouFp0-0004XY-OD for emacs-orgmode@gnu.org; Sun, 13 Nov 2022 11:27:04 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1ouFoy-0004ds-Me for emacs-orgmode@gnu.org; Sun, 13 Nov 2022 17:27:00 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [PATCH v2] org-attach.el: ID to path functions may return nil Date: Sun, 13 Nov 2022 23:26:49 +0700 Message-ID: References: <87k084v1wa.fsf@localhost> <871qtxhsm6.fsf@localhost> <87a68ce32u.fsf@localhost> <871qtodygs.fsf@localhost> <87v8qz9zui.fsf@localhost> <35cbf452-c3ed-d97f-db96-dcae57463eff@gmail.com> <87wnbc7ltm.fsf@localhost> <87bksn1nl1.fsf@localhost> <87sfk6zixs.fsf@localhost> <874jwiakpn.fsf@localhost> <87y1sm11aj.fsf@localhost> <87a64zjmz1.fsf@localhost> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------U07zAA3noPaP4C3ayLgIQ6Kr" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Content-Language: en-US In-Reply-To: <87a64zjmz1.fsf@localhost> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 26 X-Spam_score: 2.6 X-Spam_bar: ++ X-Spam_report: (2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-0.001, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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 ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1668356848; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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; bh=bLrJ9aCyeyCxvZhT8Pce0HR92HQiFB2bjI9Nt06BTz0=; b=pudC+U0729Kfvo5yAOo5yEsnKkDfRrFlzL5A5WZ2dJOgpUc2jtXrKO9deF70MYDzD/o2+O tJypCQbLZ1NhWDHHX9jV/HyfZINtlVWDI4EErdwPGhgyWAn8DV4hsBLDlJGGlnvNAChxuH KNC9PvmExFMm7uNEq3Asc7hpxG7+MgcVlxYPwdFO9+AXrusctQOUdxbJkBtXBl5FZhbLKf xJ3RjRu68/HKOMwbhmSrZHUGnM0WhctRRE7Rd8BOVh8RRtf7zjxqvW6uwUsHaGvWwQFdIy wMCU4kQ3d+5AvKL8EMbEjmgsOulcU3G6VtcqQl1wCxOXQgXYyIct8pc3JfxKMg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1668356848; a=rsa-sha256; cv=none; b=tsZiNVhVU4J7Z3TRfaRLUhFfjfMPF/hDLGNHFJuZtf6CPa0udXYHPxm4Kcw1v5HD2UTqPj FD1yt++UPE+6RuDjQt5kqSVQ8bxB+c2KeGd7GHasEWss8tJjTCY15WEf1Uat3jTNh/Z6e8 9yGb242xEKXHKG3iIPbXtE4LuDWWQlvikNV/NeT0CwUoYX3jeOY59WKI/M99azLjkplucX mXf5axUX1m1w3F+U+XBgNuQmMgI5DKO4ryvnSiB7zK1xfSOK3frSOa9kxDBYprNKFEpchZ KwHodnI4q05Gn+ya/Cax66G8tPopeiGf0QOoKBPOOPBFkcFlpEMKjWpWFxFdHw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); 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" X-Migadu-Spam-Score: 4.45 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); 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" X-Migadu-Queue-Id: 400DE21767 X-Spam-Score: 4.45 X-Migadu-Scanner: scn0.migadu.com X-TUID: 02KOgYQDgGVq This is a multi-part message in MIME format. --------------U07zAA3noPaP4C3ayLgIQ6Kr Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/11/2022 14:19, Ihor Radchenko wrote: > Max Nikulin writes: > >> P.S. At first I believed that you have some objections concerning >> changed role of the first function in the list, not just how it is >> documented. > > I had. Most importantly, because we are changing the existing meaning of > `org-attach-id-to-path-function-list'. However, the only scenario where > it actually matters is the bug report at hand. So, there will be no > regression. Since the change relaxes requirements for `org-attach-id-to-path-function-list' members, it should not be a breaking change. I have realized that it allows to mix e.g. UUID and timestamp IDs in the single file and still follow storage policy for each one. Earlier change of `org-id-method' caused subdirs for timestamps created like for UUID or vice versa. Actually with a cumbersome function it was possible earlier as well, but now particular ID to subdir functions may be unaware of other ID methods. > However, please add NEWS entry detailing the change in > `org-attach-id-to-path-function-list' to the next version of the patch. See the attachment. --------------U07zAA3noPaP4C3ayLgIQ6Kr Content-Type: text/x-patch; charset=UTF-8; name="v3-0001-org-attach.el-ID-to-path-functions-may-return-nil.patch" Content-Disposition: attachment; filename*0="v3-0001-org-attach.el-ID-to-path-functions-may-return-nil.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA4YTcxZTYyNjIxNDlmMzUxZGRiOWE1MmQ4ODZkNTkyZGUwNDczNmFlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXggTmlrdWxpbiA8bWFuaWt1bGluQGdtYWlsLmNv bT4KRGF0ZTogTW9uLCA3IE5vdiAyMDIyIDIzOjQ4OjAyICswNzAwClN1YmplY3Q6IFtQQVRD SCB2M10gb3JnLWF0dGFjaC5lbDogSUQgdG8gcGF0aCBmdW5jdGlvbnMgbWF5IHJldHVybiBu aWwKCiogbGlzcC9vcmctYXR0YWNoLmVsIChvcmctYXR0YWNoLWRpci1mcm9tLWlkKTogSWdu b3JlIG5pbCB2YWx1ZXMKcmV0dXJuZWQgYnkgZW50cmllcyBmcm9tIGBvcmctYXR0YWNoLWlk LXRvLXBhdGgtZnVuY3Rpb24tbGlzdCcuCihvcmctYXR0YWNoLWRpci1nZXQtY3JlYXRlKTog U2lnbmFsIGFuIGVycm9yIHN1Z2dlc3RpbmcgY3VzdG9taXphdGlvbgpvZiBgb3JnLWF0dGFj aC1pZC10by1wYXRoLWZ1bmN0aW9uLWxpc3QnIGlmIGFsbCBJRCB0byBwYXRoIGZ1bmN0aW9u cwpyZXR1cm4gbmlsLgoob3JnLWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9uLWxpc3QpOiBB ZGQgdG8gdGhlIGRvY3N0cmluZyBleGFtcGxlcwpob3cgdG8gaGFuZGxlIHVudXN1YWwgSURz Lgoob3JnLWF0dGFjaC1pZC11dWlkLWZvbGRlci1mb3JtYXQsIG9yZy1hdHRhY2gtaWQtdHMt Zm9sZGVyLWZvcm1hdCk6ClJldHVybiBuaWwgaWYgSUQgaXMgdG9vIHNob3J0Lgoob3JnLWF0 dGFjaC1pZC1mYWxsYmFjay1mb2xkZXItZm9ybWF0KTogTmV3IGZ1bmN0aW9uIHRoYXQgbWF5 IGJlIGFkZGVkCmFzIHRoZSBsYXN0IGVsZW1lbnQgb2YgYG9yZy1hdHRhY2gtaWQtcGF0aC1m dW5jdGlvbi1saXN0JyB0byBoYW5kbGUKdW5leHBlY3RlZGx5IHNob3J0IElEcy4KKiBldGMv T1JHLU5FV1M6IEFkdmVydGlzZSB0aGUgY2hhbmdlLgoKRWFybGllciBhbiBvYnNjdXJlIGVy cm9yIGxpa2UgJ29yZy1hdHRhY2gtaWQtdHMtZm9sZGVyLWZvcm1hdDogQXJncyBvdXQKb2Yg cmFuZ2U6ICJmdHQiLCAwLCA2JyB3YXMgc2lnbmFsbGVkIGluIHRoZSBjYXNlIG9mIHVuZXhw ZWN0ZWRseSBzaG9ydApJRC4KClJlcG9ydGVkIGJ5IEphbmVrIEYgPHhlcnVzeEBwbS5tZT4K aHR0cHM6Ly9saXN0Lm9yZ21vZGUub3JnL0tDOFBjeXBKYXBCcEpRdEp4TTBrWDVON1owVEhM MkxxNkVRakJNenB3MS12Z1FmNzJlZ1oySk9JbFRiUFlpcUFWRDRNZFNCaHJoQlpyMllrZjVE TjFtb2NtMUFOdnZ1S0taU2hsa2d6S1lNPUBwbS5tZQotLS0KIGV0Yy9PUkctTkVXUyAgICAg ICB8IDQwICsrKysrKysrKysrKysrKysrKysKIGxpc3Avb3JnLWF0dGFjaC5lbCB8IDk4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2V0Yy9PUkctTkVXUyBiL2V0Yy9PUkctTkVXUwppbmRleCAwNGI1YmU2NGEuLmUwY2Yz ZjJjZSAxMDA2NDQKLS0tIGEvZXRjL09SRy1ORVdTCisrKyBiL2V0Yy9PUkctTkVXUwpAQCAt NjA0LDYgKzYwNCw0NiBAQCBXaXRoIHRoZSBuZXcgY3VzdG9taXphdGlvbiBvcHRpb24gfm9y Zy10ZXhpbmZvLXdpdGgtbGF0ZXh+IHNldCB0byAoaXRzCiBkZWZhdWx0IHZhbHVlKSB+J2Rl dGVjdH4sIGlmIHRoZSBzeXN0ZW0gcnVucyBUZXhpbmZvIDYuOCAoMyBKdWx5IDIwMjEpCiBv ciBuZXdlciwgT3JnIHdpbGwgZXhwb3J0IGFsbCBMYVRlWCBmcmFnbWVudHMgYW5kIGVudmly b25tZW50cyB1c2luZwogVGV4aW5mbyB+QG1hdGh+IGFuZCB+QGRpc3BsYXltYXRofiBjb21t YW5kcyByZXNwZWN0aXZlbHkuCisqKiogTW9yZSBmbGV4aWJsZSB+b3JnLWF0dGFjaC1pZC10 by1wYXRoLWZ1bmN0aW9uLWxpc3R+CisKK0xpc3QgZW50cmllcyBtYXkgcmV0dXJuIG5pbCBp ZiB0aGV5IGFyZSB1bmFibGUgdG8gaGFuZGxlIHBhc3NlZCBJRC4KK1NvIHJlc3BvbnNpYmls aXR5IGlzIHBhc3NlZCB0byB0aGUgbmV4dCBpdGVtIG9mIHRoZSBsaXN0LiAgRGVmYXVsdCBl bnRyaWVzCit+b3JnLWF0dGFjaC1pZC11dWlkLWZvbGRlci1mb3JtYXR+IGFuZCB+b3JnLWF0 dGFjaC1pZC10cy1mb2xkZXItZm9ybWF0fgorbm93IHJldHVybiBuaWwgaW4gdGhlIGNhc2Ug b2YgdG9vIHNob3J0IElELiAgRWFybGllciBpdCBjYXVzZWQgYW4gb2JzY3VyZSBlcnJvci4K K0FmdGVyIHRoZSBjaGFuZ2UsIGVycm9yIHRleHQgc3VnZ2VzdHMgdG8gYWRqdXN0Cit+b3Jn LWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9uLWxpc3R+IHZhbHVlLiAgVGhlIH5vcmctYXR0 YWNoLWRpci1mcm9tLWlkfgorZnVuY3Rpb24gaXMgYWRhcHRlZCB0byBpZ25vcmUgbmlsIHZh bHVlcyBhbmQgdG8gdGFrZSBmaXJzdCBub24tbmlsIHZhbHVlCitpbnN0ZWFkIG9mIHRoZSB2 YWx1ZSByZXR1cm5lZCBieSBmaXJzdCB+b3JnLWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9u LWxpc3R+CitpdGVtLgorCitOZXcgcG9saWN5IGFsbG93cyB0byBtaXggZGlmZmVyZW50IElE IHN0eWxlcyB3aGlsZSBrZWVwaW5nIHN1YmZvbGRlciBsYXlvdXQKK3N1aXRlZCBiZXN0IGZv ciBlYWNoIG9uZS4gIEl0IHJlcXVpcmVzIGN1c3RvbWl6YXRpb24gaG93ZXZlcjoKKworIyti ZWdpbl9leGFtcGxlCisnKAorICA7OyBTcHJlYWQgVVVJRHMgYW5kIE9yZyBpbnRlcm5hbCBJ RHMgb3ZlciBmb2xkZXJzCisgIDs7IHNwbGl0dGluZyBmaXJzdCB0d28gSUQgY2hhcmFjdGVy cy4KKyAgKGxhbWJkYSAoaWQpCisgICAgKGFuZCAob3IgKG9yZy11dWlkZ2VuLXAgaWQpCisJ ICAgICAoc3RyaW5nLW1hdGNoLXAgIlswLTlhLXpdXFx7MTJcXH0iIGlkKSkKKwkgKG9yZy1h dHRhY2gtaWQtdXVpZC1mb2xkZXItZm9ybWF0IGlkKSkpCisgIDs7IEdyb3VwIHRpbWVzdGFw LWJhc2VkIElEcyBieSB5ZWFyLW1vbnRoLgorICAobGFtYmRhIChpZCkKKyAgICAoYW5kIChz dHJpbmctbWF0Y2gtcCAiWzAtOV1cXHs4XFx9VFswLTldXFx7NlxcfVwuWzAtOV1cXHs2XFx9 IiBpZCkpCisgICAgKG9yZy1hdHRhY2gtaWQtdHMtZm9sZGVyLWZvcm1hdCBpZCkpCisgIDs7 IEhhbmRsZSBoYW5kY3JhZnRlZCBJRHMuCisgIChsYW1iZGEgKGlkKSAoZm9ybWF0ICJpbXBv cnRhbnQvJXMvJXMiIChzdWJzdHJpbmcgaWQgMCAxKSBpZCkpCisgIDs7IFN1YmZvbGRlciBs YXlvdXRzIG1heSBiZSBtaXhlZCBmb3IgZWFybGllciBjcmVhdGVkIGF0dGFjaG1lbnRzCisg IDs7IGlmIGBvcmctaWQtbWV0aG9kJyB3YXMgY2hhbmdlZC4KKyAgb3JnLWF0dGFjaC1pZC11 dWlkLWZvbGRlci1mb3JtYXQKKyAgb3JnLWF0dGFjaC1pZC10cy1mb2xkZXItZm9ybWF0KQor IytlbmRfZXhhbXBsZQorCitJZiB5b3UgaGF2ZSAxIG9yIDIgY2hhcmFjdGVycyBsb25nIElE cyBhbmQgeW91IGRvIG5vdCBjYXJlIHdoYXQKK3N1YmRpcnMgYXJlIGNyZWF0ZWQgZm9yIGxv bmdlciBJRHMgKHRoYXQgYXJlIG5laXRoZXIgVVVJRHMgbm9yIHRpbWVzdGFtcC1iYXNlZCkK K3RoZW4geW91IG1heSBqdXN0IGFwcGVuZCB0aGUgfm9yZy1hdHRhY2gtaWQtZmFsbGJhY2st Zm9sZGVyLWZvcm1hdH4KK25ldyBmdW5jdGlvbiB0byB+b3JnLWF0dGFjaC1pZC10by1wYXRo LWZ1bmN0aW9uLWxpc3R+LiAgSXQgZGlyZWN0cyBhdHRhY2htZW50Cit0byB0aGUgSUQgc3Vi Zm9sZGVyIG9mIHRoZSA9X189IGRpcmVjdG9yeS4KIAogKiBWZXJzaW9uIDkuNQogCmRpZmYg LS1naXQgYS9saXNwL29yZy1hdHRhY2guZWwgYi9saXNwL29yZy1hdHRhY2guZWwKaW5kZXgg ZWYxODM0NzRlLi42MzMyMjMzY2QgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWF0dGFjaC5lbAor KysgYi9saXNwL29yZy1hdHRhY2guZWwKQEAgLTE2NiwyNiArMTY2LDU2IEBAIChkZWZ1biBv cmctYXR0YWNoLWlkLXV1aWQtZm9sZGVyLWZvcm1hdCAoaWQpCiAgICJUcmFuc2xhdGUgYW4g VVVJRCBJRCBpbnRvIGEgZm9sZGVyLXBhdGguCiBEZWZhdWx0IGZvcm1hdCBmb3IgaG93IE9y ZyB0cmFuc2xhdGVzIElEIHByb3BlcnRpZXMgdG8gYSBwYXRoIGZvcgogYXR0YWNobWVudHMu ICBVc2VmdWwgaWYgSUQgaXMgZ2VuZXJhdGVkIHdpdGggVVVJRC4iCi0gIChmb3JtYXQgIiVz LyVzIgotCSAgKHN1YnN0cmluZyBpZCAwIDIpCi0JICAoc3Vic3RyaW5nIGlkIDIpKSkKKyAg KGFuZCAoPCAyIChsZW5ndGggaWQpKQorICAgICAgIChmb3JtYXQgIiVzLyVzIgorICAgICAg ICAgICAgICAgKHN1YnN0cmluZyBpZCAwIDIpCisgICAgICAgICAgICAgICAoc3Vic3RyaW5n IGlkIDIpKSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLWlkLXRzLWZvbGRlci1mb3JtYXQgKGlk KQogICAiVHJhbnNsYXRlIGFuIElEIGJhc2VkIG9uIGEgdGltZXN0YW1wIHRvIGEgZm9sZGVy LXBhdGguCiBVc2VmdWwgd2F5IG9mIHRyYW5zbGF0aW9uIGlmIElEIGlzIGdlbmVyYXRlZCBi YXNlZCBvbiBJU084NjAxCiB0aW1lc3RhbXAuICBTcGxpdHMgdGhlIGF0dGFjaG1lbnQgZm9s ZGVyIGhpZXJhcmNoeSBpbnRvCiB5ZWFyLW1vbnRoLCB0aGUgcmVzdC4iCi0gIChmb3JtYXQg IiVzLyVzIgotCSAgKHN1YnN0cmluZyBpZCAwIDYpCi0JICAoc3Vic3RyaW5nIGlkIDYpKSkK KyAgKGFuZCAoPCA2IChsZW5ndGggaWQpKQorICAgICAgIChmb3JtYXQgIiVzLyVzIgorICAg ICAgICAgICAgICAgKHN1YnN0cmluZyBpZCAwIDYpCisgICAgICAgICAgICAgICAoc3Vic3Ry aW5nIGlkIDYpKSkpCisKKyhkZWZ1biBvcmctYXR0YWNoLWlkLWZhbGxiYWNrLWZvbGRlci1m b3JtYXQgKGlkKQorICAiVXNlIFwiX18vSURcIiBmb2xkZXIgcGF0aCBhcyBhIGR1bWIgZmFs bGJhY2suCitNYXkgYmUgYXBwZW5kZWQgdG8gYG9yZy1hdHRhY2gtaWQtcGF0aC1mdW5jdGlv bi1saXN0JwordG8gYXZvaWQgZXJyb3JzIGR1ZSB0byBjdXN0b21pemVkIElEIHZhbHVlcyB0 aGF0IG90aGVyIGZ1bmN0aW9ucworYXJlIHVuYWJsZSB0byBoYW5kbGUuICBBbiBleGFtcGxl IGlzIHRvbyBzaG9ydCBJRCBmb3IKK2BvcmctYXR0YWNoLWlkLXRzLWZvbGRlci1mb3JtYXQn LiAgSG93ZXZlciBpdCBpcyBiZXR0ZXIgdG8gZGVmaW5lCithIG1vcmUgc3BlY2lmaWMgZnVu Y3Rpb24gc3ByZWFkaW5nIGVudHJpZXMgb3ZlciBzdWJmb2xkZXJzLiIKKyAgKGZvcm1hdCAi X18vJXMiIGlkKSkKIAogKGRlZmN1c3RvbSBvcmctYXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rp b24tbGlzdCAnKG9yZy1hdHRhY2gtaWQtdXVpZC1mb2xkZXItZm9ybWF0CiAJCQkJCQkgb3Jn LWF0dGFjaC1pZC10cy1mb2xkZXItZm9ybWF0KQotICAiTGlzdCBvZiBmdW5jdGlvbnMgcGFy c2luZyBhbiBJRCBzdHJpbmcgaW50byBhIGZvbGRlci1wYXRoLgotVGhlIGZpcnN0IGZ1bmN0 aW9uIGluIHRoaXMgbGlzdCBkZWZpbmVzIHRoZSBwcmVmZXJyZWQgZnVuY3Rpb24KLXdoaWNo IHdpbGwgYmUgdXNlZCB3aGVuIGNyZWF0aW5nIG5ldyBhdHRhY2htZW50IGZvbGRlcnMuICBB bGwKLWZ1bmN0aW9ucyBvZiB0aGlzIGxpc3Qgd2lsbCBiZSB0cmllZCB3aGVuIGxvb2tpbmcg Zm9yIGV4aXN0aW5nCi1hdHRhY2htZW50IGZvbGRlcnMgYmFzZWQgb24gSUQuIgorICAiTGlz dCBvZiBmdW5jdGlvbnMgdHJpZWQgdG8gZ2V0IGEgZm9sZGVyIHBhdGggZm9yIGFuIElEIHN0 cmluZy4KK0Z1bmN0aW9ucyBhcmUgY2FsbGVkIGluIG9yZGVyIHRpbGwgc29tZSBvZiB0aGVt IHJldHVybnMgYW4gZXhpc3RpbmcKK2ZvbGRlci4gIElmIG5vIGZvbGRlciBoYXMgYmVlbiBj cmVhdGVkIHlldCBmb3IgdGhlIGdpdmVuIElECit0aGVuIGZpcnN0IHZhbHVlIGRlZmluZXMg Zm9sZGVyIG5hbWUgdGhhdCB3aWxsIGJlIGNyZWF0ZWQKK3RvIHN0b3JlIGFuIGF0dGFjaG1l bnQuICBOaWwgdmFsdWVzIGFyZSBza2lwcGVkLgorCitQcmVmZXJyZWQgc3RvcmFnZSBwb2xp Y3kgZGVwZW5kcyBvbiBgb3JnLWlkLW1ldGhvZCcgYW5kIHNob3VsZCBiZSBjaG9zZW4KK3Rv IGF2b2lkIGV4Y2Vzc2l2ZSBudW1iZXIgb2YgZW50cmllcyBpbiBhIHNpbmdsZSBkaXJlY3Rv cnkuICBMaXN0CitvZiBmdW5jdGlvbnMgYWxsb3dzIHRvIGhhbmRsZSB0aGUgY2FzZSBvZiBt aXhlZCBJRCBzdHlsZXMgYWZ0ZXIKK2NoYW5nZSBvZiBJRCBnZW5lcmF0b3IuCisKK0lmIGZv cm1hdCBvZiBzb21lIElEIHN0cmluZ3MgZGlmZmVycyBmcm9tIGBvcmctaWQtbWV0aG9kJyB5 b3UgbWF5CithZGQgYG9yZy1hdHRhY2gtaWQtZmFsbGJhY2stZm9sZGVyLWZvcm1hdCcgdG8g dGhlIGVuZCBvZiB0aGUgbGlzdC4KK0EgYmV0dGVyIG9wdGlvbiBpcyB0byBrZWVwIGF0dGFj aG1lbnRzIGluc2lkZSBhIGRlZGljYXRlZCBmb2xkZXIuCitBIGZ1bmN0aW9uIGxpa2UgdGhl IGZvbGxvd2luZyBvbmUgbWF5IGJlIGFkZGVkIGFzIGZpcnN0IGVsZW1lbnQKK29mIHRoZSBs aXN0LgorCisgICAgKGRlZnVuIG15L2F0dGFjaC1pZC1jdXN0b20tZm9sZGVyLWZvcm1hdCAo aWQpCisgICAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSkKKwkodW5sZXNzCisJICAg IChvciAob3JnLXV1aWRnZW4tcCBpZCkKKwkJKHN0cmluZy1tYXRjaC1wIFwiWzAtOWEtel1c XFxcPVxcezEyXFxcXH1cIiBpZCkKKyAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAg XCJbMC05XVxcXFw9XFx7OFxcXFx9VFswLTldXFxcXD1cXHs2XFxcXH1cXC5bMC05XVxcXFw9 XFx7NlxcXFx9XCIgaWQpKQorICAgICAgICAgIChmb3JtYXQgXCJpbXBvcnRhbnQvJXMvJXNc IiAoc3Vic3RyaW5nIGlkIDAgMSkgaWQpKSkpIgogICA6Z3JvdXAgJ29yZy1hdHRhY2gKICAg OnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI5LjMiKQogICA6dHlwZSAnKHJlcGVhdCAoZnVu Y3Rpb24gOnRhZyAiRnVuY3Rpb24gd2l0aCBJRCBhcyBpbnB1dCIpKSkKQEAgLTM2MCw3ICsz OTAsNyBAQCAoZGVmdW4gb3JnLWF0dGFjaC1kaXIgKCZvcHRpb25hbCBjcmVhdGUtaWYtbm90 LWV4aXN0cy1wIG5vLWZzLWNoZWNrKQogICAgICAgKG9yZy1hdHRhY2gtY2hlY2stYWJzb2x1 dGUtcGF0aCBhdHRhY2gtZGlyKSkKICAgICAgKChzZXRxIGlkIChvcmctZW50cnktZ2V0IG5p bCAiSUQiIG9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlKSkKICAgICAgIChvcmctYXR0YWNo LWNoZWNrLWFic29sdXRlLXBhdGggbmlsKQotICAgICAgKHNldHEgYXR0YWNoLWRpciAob3Jn LWF0dGFjaC1kaXItZnJvbS1pZCBpZCAndHJ5LWFsbCkpKSkKKyAgICAgIChzZXRxIGF0dGFj aC1kaXIgKG9yZy1hdHRhY2gtZGlyLWZyb20taWQgaWQgJ2V4aXN0aW5nKSkpKQogICAgIChp ZiBuby1mcy1jaGVjawogCWF0dGFjaC1kaXIKICAgICAgICh3aGVuIChhbmQgYXR0YWNoLWRp ciAoZmlsZS1kaXJlY3RvcnktcCBhdHRhY2gtZGlyKSkKQEAgLTM4MSw3ICs0MTEsMTEgQEAg KGRlZnVuIG9yZy1hdHRhY2gtZGlyLWdldC1jcmVhdGUgKCkKIAkgIChzZXRxIGFuc3dlciAo cmVhZC1jaGFyLWV4Y2x1c2l2ZSkpKQogCShjb25kCiAJICgob3IgKGVxIG9yZy1hdHRhY2gt cHJlZmVycmVkLW5ldy1tZXRob2QgJ2lkKSAoZXEgYW5zd2VyID8xKSkKLQkgIChzZXRxIGF0 dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyLWZyb20taWQgKG9yZy1pZC1nZXQgbmlsIHQpKSkp CisJICAobGV0ICgoaWQgKG9yZy1pZC1nZXQgbmlsIHQpKSkKKwkgICAgKG9yIChzZXRxIGF0 dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyLWZyb20taWQgaWQpKQorCQkoZXJyb3IgIkZhaWxl ZCB0byBnZXQgZm9sZGVyIGZvciBpZCAlcywgXAorYWRqdXN0IGBvcmctYXR0YWNoLWlkLXRv LXBhdGgtZnVuY3Rpb24tbGlzdCciCisJCSAgICAgICAgaWQpKSkpCiAJICgob3IgKGVxIG9y Zy1hdHRhY2gtcHJlZmVycmVkLW5ldy1tZXRob2QgJ2RpcikgKGVxIGFuc3dlciA/MikpCiAJ ICAoc2V0cSBhdHRhY2gtZGlyIChvcmctYXR0YWNoLXNldC1kaXJlY3RvcnkpKSkKIAkgKChl cSBvcmctYXR0YWNoLXByZWZlcnJlZC1uZXctbWV0aG9kICduaWwpCkBAIC0zOTIsMjcgKzQy NiwyNSBAQCAoZGVmdW4gb3JnLWF0dGFjaC1kaXItZ2V0LWNyZWF0ZSAoKQogICAgICAgKG1h a2UtZGlyZWN0b3J5IGF0dGFjaC1kaXIgdCkpCiAgICAgYXR0YWNoLWRpcikpCiAKLShkZWZ1 biBvcmctYXR0YWNoLWRpci1mcm9tLWlkIChpZCAgJm9wdGlvbmFsIHRyeS1hbGwpCisoZGVm dW4gb3JnLWF0dGFjaC1kaXItZnJvbS1pZCAoaWQgICZvcHRpb25hbCBleGlzdGluZykKICAg IlJldHVybiBhIGZvbGRlciBwYXRoIGJhc2VkIG9uIGBvcmctYXR0YWNoLWlkLWRpcicgYW5k IElELgotSWYgVFJZLUFMTCBpcyBub24tbmlsLCB0cnkgYWxsIGlkLXRvLXBhdGggZnVuY3Rp b25zIGluCi1gb3JnLWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9uLWxpc3QnIGFuZCByZXR1 cm4gdGhlIGZpcnN0IHBhdGgKLXRoYXQgZXhpc3QgaW4gdGhlIGZpbGVzeXN0ZW0sIG9yIHRo ZSBmaXJzdCBvbmUgaWYgbm9uZSBleGlzdC4KLU90aGVyd2lzZSBvbmx5IHVzZSB0aGUgZmly c3QgZnVuY3Rpb24gaW4gdGhhdCBsaXN0LiIKLSAgKGxldCAoKGF0dGFjaC1kaXItcHJlZmVy cmVkIChleHBhbmQtZmlsZS1uYW1lCi0JCQkgICAgICAgKGZ1bmNhbGwgKGNhciBvcmctYXR0 YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb24tbGlzdCkgaWQpCi0JCQkgICAgICAgKGV4cGFuZC1m aWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1kaXIpKSkpCi0gICAgKGlmIHRyeS1hbGwKLQkobGV0 ICgoYXR0YWNoLWRpciBhdHRhY2gtZGlyLXByZWZlcnJlZCkKLQkgICAgICAoZnVuLWxpc3Qg KGNkciBvcmctYXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb24tbGlzdCkpKQotCSAgKHdoaWxl IChhbmQgZnVuLWxpc3QgKG5vdCAoZmlsZS1kaXJlY3RvcnktcCBhdHRhY2gtZGlyKSkpCi0J ICAgIChzZXRxIGF0dGFjaC1kaXIgKGV4cGFuZC1maWxlLW5hbWUKLQkJCSAgICAgIChmdW5j YWxsIChjYXIgZnVuLWxpc3QpIGlkKQotCQkJICAgICAgKGV4cGFuZC1maWxlLW5hbWUgb3Jn LWF0dGFjaC1pZC1kaXIpKSkKLQkgICAgKHNldHEgZnVuLWxpc3QgKGNkciBmdW4tbGlzdCkp KQotCSAgKGlmIChmaWxlLWRpcmVjdG9yeS1wIGF0dGFjaC1kaXIpCi0JICAgICAgYXR0YWNo LWRpcgotCSAgICBhdHRhY2gtZGlyLXByZWZlcnJlZCkpCi0gICAgICBhdHRhY2gtZGlyLXBy ZWZlcnJlZCkpKQorVHJ5IGlkLXRvLXBhdGggZnVuY3Rpb25zIGluIGBvcmctYXR0YWNoLWlk LXRvLXBhdGgtZnVuY3Rpb24tbGlzdCcKK2lnbm9yaW5nIG5pbHMuICBJZiBFWElTVElORyBp cyBub24tbmlsbCB0aGVuIHJldHVybiB0aGUgZmlyc3QgcGF0aAorZm91bmQgaW4gdGhlIGZp bGVzeXN0ZW0uICBPdGhlcndpc2UgcmV0dXJuIHRoZSBmaXJzdCBub24gbmlsIHZhbHVlLiIK KyAgKGxldCAoKGZ1bi1saXN0IG9yZy1hdHRhY2gtaWQtdG8tcGF0aC1mdW5jdGlvbi1saXN0 KQorICAgICAgICAoYmFzZS1kaXIgKGV4cGFuZC1maWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1k aXIpKQorICAgICAgICBwcmVmZXJyZWQgZmlyc3QpCisgICAgKHdoaWxlIChhbmQgZnVuLWxp c3QKKyAgICAgICAgICAgICAgICAobm90IHByZWZlcnJlZCkpCisgICAgICAobGV0KiAoKG5h bWUgKGZ1bmNhbGwgKGNhciBmdW4tbGlzdCkgaWQpKQorICAgICAgICAgICAgIChjYW5kaWRh dGUgKGFuZCBuYW1lIChleHBhbmQtZmlsZS1uYW1lIG5hbWUgYmFzZS1kaXIpKSkpCisgICAg ICAgIChzZXRxIGZ1bi1saXN0IChjZHIgZnVuLWxpc3QpKQorICAgICAgICAod2hlbiBjYW5k aWRhdGUKKyAgICAgICAgICAoaWYgKG9yIChub3QgZXhpc3RpbmcpIChmaWxlLWRpcmVjdG9y eS1wIGNhbmRpZGF0ZSkpCisgICAgICAgICAgICAgIChzZXRxIHByZWZlcnJlZCBjYW5kaWRh dGUpCisgICAgICAgICAgICAodW5sZXNzIGZpcnN0CisgICAgICAgICAgICAgIChzZXRxIGZp cnN0IGNhbmRpZGF0ZSkpKSkpKQorICAgIChvciBwcmVmZXJyZWQgZmlyc3QpKSkKIAogKGRl ZnVuIG9yZy1hdHRhY2gtY2hlY2stYWJzb2x1dGUtcGF0aCAoZGlyKQogICAiQ2hlY2sgaWYg d2UgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gcm9vdCB0aGUgYXR0YWNobWVudCBkaXJl Y3RvcnkuCi0tIAoyLjI1LjEKCg== --------------U07zAA3noPaP4C3ayLgIQ6Kr--