From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#51622: 29.0.50; [PATCH v2] Abbreviate remote home directories in `abbreviate-file-name' Date: Sat, 6 Nov 2021 20:30:39 -0700 Message-ID: References: <5ac0b5f3-302c-2f96-771c-8d38088aa573@gmail.com> <87mtmhmh60.fsf@gmx.de> <87a6ihchbo.fsf@gmx.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------0D91A40490F7015C7093F245" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="797"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 51622@debbugs.gnu.org To: Michael Albinus Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Nov 07 04:31:13 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mjYtk-000Acs-OD for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 07 Nov 2021 04:31:12 +0100 Original-Received: from localhost ([::1]:46538 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mjYtj-00020M-Eb for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 06 Nov 2021 23:31:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47038) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjYta-0001zw-Mr for bug-gnu-emacs@gnu.org; Sat, 06 Nov 2021 23:31:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:39873) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mjYta-00047f-Ds for bug-gnu-emacs@gnu.org; Sat, 06 Nov 2021 23:31:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mjYta-0004QM-Aj for bug-gnu-emacs@gnu.org; Sat, 06 Nov 2021 23:31:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 07 Nov 2021 03:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51622 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 51622-submit@debbugs.gnu.org id=B51622.163625585216990 (code B ref 51622); Sun, 07 Nov 2021 03:31:02 +0000 Original-Received: (at 51622) by debbugs.gnu.org; 7 Nov 2021 03:30:52 +0000 Original-Received: from localhost ([127.0.0.1]:51419 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjYtP-0004Pw-GT for submit@debbugs.gnu.org; Sat, 06 Nov 2021 23:30:52 -0400 Original-Received: from mail-pf1-f171.google.com ([209.85.210.171]:38863) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mjYtK-0004Pf-UY for 51622@debbugs.gnu.org; Sat, 06 Nov 2021 23:30:49 -0400 Original-Received: by mail-pf1-f171.google.com with SMTP id g18so7928503pfk.5 for <51622@debbugs.gnu.org>; Sat, 06 Nov 2021 20:30:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:cc:references:from:message-id:date:mime-version :in-reply-to:content-language; bh=3qNf1th59QgRB2AGHD4/cQzMNxMn8wGtjoKP5VgVLmM=; b=Jnm/VKcGrue15I1D4eOOoqCagbBpiaslP8EOYV8jQEmbgbUoemiISdjEqxlTiP1Eye 3raMT+Dxjj8tPwzyDfgGMj3Aq+jUJLDDsWWnb8S1LM1g1m7pqgWq4t2ClxyUY75iRune qa+zqy6q8ANf3oi5DoKgZYsxa4DjFwy2I2bmgT6LqiX2CDWjOD7l58sqFVtle0QjQrLu Z4L8wVyAK9PIgU+mnb4WPqEvlpeGg8QJ0MaPwoNixtdjSCtAk64waIIbcdEbO8YAUsGe QD383VawOgMwoKj2nbmNrK0AbcYiF0W/EKK8r/YH/kKuV2/9RnCqI0vMScV4kNKCZrWd yPtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :mime-version:in-reply-to:content-language; bh=3qNf1th59QgRB2AGHD4/cQzMNxMn8wGtjoKP5VgVLmM=; b=jrJuqcqV0EssrxrrUGmPVwFmkwV2/j+/2nx26zrYC4acOrauFibfW36oX7IQeIDwU2 aTzO8F3uIa502S1YATMC20F32IioVozf/55Q7J8fc42ET7M6y/7krXT7FOdn/ZgJ4O5I beprrNYBq3CgWWHGjODpO3hCK3deMJywQozKNxttCdHWxNaOjqCg/8Hh8XVWKWh6Om0q u/NPd/wxCxhRJVlNcC6zf5x5WMLuF/KXiBIsCh9zM/uFePER93Rrr/mmF9y+WnSIDVa/ WHtbi174LlMWEFYvhoaf0xb/FhDaMXJF2yaIh1iSJYGL4hJlT4m6JMkSIAAxOEfghpo4 9K1Q== X-Gm-Message-State: AOAM5338/PIUn5DtZBEBOAlU97+X5qRQlOyGMuYjRquAOLFB4i0lxqhl SuUKH4mbwtGTRe7dV0tI2zg00NNviY8= X-Google-Smtp-Source: ABdhPJyqogBFEyfyvqOR++CIORJBQu08OcKq7E3JcZA/OE/ArU3LBKgPjGNsOjM2pm4716ixKJtixQ== X-Received: by 2002:a63:7303:: with SMTP id o3mr52364379pgc.108.1636255840902; Sat, 06 Nov 2021 20:30:40 -0700 (PDT) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id i15sm1757781pfu.151.2021.11.06.20.30.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 06 Nov 2021 20:30:40 -0700 (PDT) In-Reply-To: <87a6ihchbo.fsf@gmx.de> Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:219194 Archived-At: This is a multi-part message in MIME format. --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/6/2021 10:41 AM, Michael Albinus wrote: > The general rule is, to keep all this specific handling away from > files.el and companions. Emacs has the concept of file name handlers, > and if there is something to be done special, a file name handler shall > offer an alternative implementation. Thanks for the pointers. I've attached a new version of the patch, along with updated benchmark results. When abbreviating Tramp files, not only is this version faster than my previous patch, it's also 2-4x faster(!) than Emacs trunk. I included a couple of related patches in this series, although I can split them out if it would be easier. The first patch just reorders a couple of Tramp tests that got added in the wrong order previously (I only did this because I wanted to add my new test to the end, and figured it would be simpler to fix the order first). The second patch is the main patch and uses a file name handler as you suggested. Hopefully I got everything right here; I'm not very familiar with these parts of Tramp. The test I added passes for me, though a bunch of the other Tramp tests fail for me (with or without my patches). Finally, since I already had them lying around, I added a few tests for `abbreviate-file-name' for local files. They're pretty simple, but should help catch any regressions in the future. --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="0001-test-lisp-net-tramp-tests.el-Rearrange-tests-to-be-i.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-test-lisp-net-tramp-tests.el-Rearrange-tests-to-be-i.pa"; filename*1="tch" RnJvbSAzMDM4ZjE4MDJlNTNhZmZlOTZjMjQzYTBkYTExYTlkYzQ3ZThjMzRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgNiBOb3YgMjAyMSAxODowMToxMSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMS8zXSA7ICogdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbDogUmVhcnJhbmdlIHRl c3RzIHRvIGJlCiBpbiBvcmRlci4KCi0tLQogdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5l bCB8IDc0ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Rlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgYi90ZXN0L2xpc3AvbmV0L3RyYW1wLXRl c3RzLmVsCmluZGV4IDczN2UyMjA5Y2MuLjNkNmNlOTYzZWUgMTAwNjQ0Ci0tLSBhL3Rlc3Qv bGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL25ldC90cmFtcC10ZXN0 cy5lbApAQCAtNjk5OSw4ICs2OTk5LDQwIEBAIHRyYW1wLXRlc3Q0NC1hc3luY2hyb25vdXMt cmVxdWVzdHMKIDs7ICh0cmFtcC0tdGVzdC0tZGVmdGVzdC1kaXJlY3QtYXN5bmMtcHJvY2Vz cyB0cmFtcC10ZXN0NDQtYXN5bmNocm9ub3VzLXJlcXVlc3RzCiA7OyAgICJDaGVjayBwYXJh bGxlbCBkaXJlY3QgYXN5bmNocm9ub3VzIHJlcXVlc3RzLiIgJ3Vuc3RhYmxlKQogCisoZXJ0 LWRlZnRlc3QgdHJhbXAtdGVzdDQ1LWRpcmVkLWNvbXByZXNzLWZpbGUgKCkKKyAgIkNoZWNr IHRoYXQgVHJhbXAgKHVuKWNvbXByZXNzZXMgbm9ybWFsIGZpbGVzLiIKKyAgKHNraXAtdW5s ZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKKyAgKHNraXAtdW5sZXNzICh0cmFtcC0tdGVz dC1zaC1wKSkKKyAgKGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5IHRyYW1wLXRlc3QtdGVtcG9y YXJ5LWZpbGUtZGlyZWN0b3J5KQorICAgICAgICAodG1wLW5hbWUgKHRyYW1wLS10ZXN0LW1h a2UtdGVtcC1uYW1lKSkpCisgICAgKHdyaXRlLXJlZ2lvbiAiZm9vIiBuaWwgdG1wLW5hbWUp CisgICAgKGRpcmVkIGRlZmF1bHQtZGlyZWN0b3J5KQorICAgIChkaXJlZC1yZXZlcnQpCisg ICAgKGRpcmVkLWdvdG8tZmlsZSB0bXAtbmFtZSkKKyAgICAoc2hvdWxkLW5vdCAoZGlyZWQt Y29tcHJlc3MpKQorICAgIChzaG91bGQgKHN0cmluZz0gKGNvbmNhdCB0bXAtbmFtZSAiLmd6 IikgKGRpcmVkLWdldC1maWxlbmFtZSkpKQorICAgIChzaG91bGQtbm90IChkaXJlZC1jb21w cmVzcykpCisgICAgKHNob3VsZCAoc3RyaW5nPSB0bXAtbmFtZSAoZGlyZWQtZ2V0LWZpbGVu YW1lKSkpCisgICAgKGRlbGV0ZS1maWxlIHRtcC1uYW1lKSkpCisKKyhlcnQtZGVmdGVzdCB0 cmFtcC10ZXN0NDUtZGlyZWQtY29tcHJlc3MtZGlyICgpCisgICJDaGVjayB0aGF0IFRyYW1w ICh1biljb21wcmVzc2VzIGRpcmVjdG9yaWVzLiIKKyAgKHNraXAtdW5sZXNzICh0cmFtcC0t dGVzdC1lbmFibGVkKSkKKyAgKHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1zaC1wKSkKKyAg KGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5IHRyYW1wLXRlc3QtdGVtcG9yYXJ5LWZpbGUtZGly ZWN0b3J5KQorICAgICAgICAodG1wLW5hbWUgKHRyYW1wLS10ZXN0LW1ha2UtdGVtcC1uYW1l KSkpCisgICAgKG1ha2UtZGlyZWN0b3J5IHRtcC1uYW1lKQorICAgIChkaXJlZCBkZWZhdWx0 LWRpcmVjdG9yeSkKKyAgICAoZGlyZWQtcmV2ZXJ0KQorICAgIChkaXJlZC1nb3RvLWZpbGUg dG1wLW5hbWUpCisgICAgKHNob3VsZC1ub3QgKGRpcmVkLWNvbXByZXNzKSkKKyAgICAoc2hv dWxkIChzdHJpbmc9IChjb25jYXQgdG1wLW5hbWUgIi50YXIuZ3oiKSAoZGlyZWQtZ2V0LWZp bGVuYW1lKSkpCisgICAgKHNob3VsZC1ub3QgKGRpcmVkLWNvbXByZXNzKSkKKyAgICAoc2hv dWxkIChzdHJpbmc9IHRtcC1uYW1lIChkaXJlZC1nZXQtZmlsZW5hbWUpKSkKKyAgICAoZGVs ZXRlLWRpcmVjdG9yeSB0bXAtbmFtZSkpKQorCiA7OyBUaGlzIHRlc3QgaXMgaW5zcGlyZWQg YnkgQnVnIzI5MTYzLgotKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0NS1hdXRvLWxvYWQgKCkK KyhlcnQtZGVmdGVzdCB0cmFtcC10ZXN0NDYtYXV0by1sb2FkICgpCiAgICJDaGVjayB0aGF0 IFRyYW1wIGF1dG9sb2FkcyBwcm9wZXJseS4iCiAgIDs7IElmIHdlIHVzZSBhbm90aGVyIHN5 bnRheCBidXQgYGRlZmF1bHQnLCBUcmFtcCBpcyBhbHJlYWR5IGxvYWRlZAogICA7OyBkdWUg dG8gdGhlIGB0cmFtcC1jaGFuZ2Utc3ludGF4JyBjYWxsLgpAQCAtNzAyNSw3ICs3MDU3LDcg QEAgdHJhbXAtdGVzdDQ1LWF1dG8tbG9hZAogCShtYXBjb25jYXQgIydzaGVsbC1xdW90ZS1h cmd1bWVudCBsb2FkLXBhdGggIiAtTCAiKQogCShzaGVsbC1xdW90ZS1hcmd1bWVudCBjb2Rl KSkpKSkpKQogCi0oZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ1LWRlbGF5LWxvYWQgKCkKKyhl cnQtZGVmdGVzdCB0cmFtcC10ZXN0NDYtZGVsYXktbG9hZCAoKQogICAiQ2hlY2sgdGhhdCBU cmFtcCBpcyBsb2FkZWQgbGF6aWx5LCBvbmx5IHdoZW4gbmVlZGVkLiIKICAgOzsgVGhlIGF1 dG9sb2FkZWQgVHJhbXAgb2JqZWN0cyBhcmUgZGlmZmVyZW50IHNpbmNlIEVtYWNzIDI2LjEu ICBXZQogICA7OyBjYW5ub3QgdGVzdCBvbGRlciBFbWFjc2VuLCB0aGVyZWZvcmUuCkBAIC03 MDU4LDcgKzcwOTAsNyBAQCB0cmFtcC10ZXN0NDUtZGVsYXktbG9hZAogCSAgKG1hcGNvbmNh dCAjJ3NoZWxsLXF1b3RlLWFyZ3VtZW50IGxvYWQtcGF0aCAiIC1MICIpCiAJICAoc2hlbGwt cXVvdGUtYXJndW1lbnQgKGZvcm1hdCBjb2RlIHRtKSkpKSkpKSkpCiAKLShlcnQtZGVmdGVz dCB0cmFtcC10ZXN0NDUtcmVjdXJzaXZlLWxvYWQgKCkKKyhlcnQtZGVmdGVzdCB0cmFtcC10 ZXN0NDYtcmVjdXJzaXZlLWxvYWQgKCkKICAgIkNoZWNrIHRoYXQgVHJhbXAgZG9lcyBub3Qg ZmFpbCBkdWUgdG8gcmVjdXJzaXZlIGxvYWQuIgogICAoc2tpcC11bmxlc3MgKHRyYW1wLS10 ZXN0LWVuYWJsZWQpKQogCkBAIC03MDgyLDcgKzcxMTQsNyBAQCB0cmFtcC10ZXN0NDUtcmVj dXJzaXZlLWxvYWQKIAkgIChtYXBjb25jYXQgIydzaGVsbC1xdW90ZS1hcmd1bWVudCBsb2Fk LXBhdGggIiAtTCAiKQogCSAgKHNoZWxsLXF1b3RlLWFyZ3VtZW50IGNvZGUpKSkpKSkpKQog Ci0oZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ1LXJlbW90ZS1sb2FkLXBhdGggKCkKKyhlcnQt ZGVmdGVzdCB0cmFtcC10ZXN0NDYtcmVtb3RlLWxvYWQtcGF0aCAoKQogICAiQ2hlY2sgdGhh dCBUcmFtcCBhdXRvbG9hZHMgaXRzIHBhY2thZ2VzIHdpdGggcmVtb3RlIGBsb2FkLXBhdGgn LiIKICAgOzsgVGhlIGF1dG9sb2FkZWQgVHJhbXAgb2JqZWN0cyBhcmUgZGlmZmVyZW50IHNp bmNlIEVtYWNzIDI2LjEuICBXZQogICA7OyBjYW5ub3QgdGVzdCBvbGRlciBFbWFjc2VuLCB0 aGVyZWZvcmUuCkBAIC03MTExLDcgKzcxNDMsNyBAQCB0cmFtcC10ZXN0NDUtcmVtb3RlLWxv YWQtcGF0aAogCShtYXBjb25jYXQgIydzaGVsbC1xdW90ZS1hcmd1bWVudCBsb2FkLXBhdGgg IiAtTCAiKQogCShzaGVsbC1xdW90ZS1hcmd1bWVudCBjb2RlKSkpKSkpKQogCi0oZXJ0LWRl ZnRlc3QgdHJhbXAtdGVzdDQ2LXVubG9hZCAoKQorKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0 Ny11bmxvYWQgKCkKICAgIkNoZWNrIHRoYXQgVHJhbXAgYW5kIGl0cyBzdWJwYWNrYWdlcyB1 bmxvYWQgY29tcGxldGVseS4KIFNpbmNlIGl0IHVubG9hZHMgVHJhbXAsIGl0IHNoYWxsIGJl IHRoZSBsYXN0IHRlc3QgdG8gcnVuLiIKICAgOnRhZ3MgJyg6ZXhwZW5zaXZlLXRlc3QpCkBA IC03MTY5LDM4ICs3MjAxLDYgQEAgdHJhbXAtdGVzdDQ2LXVubG9hZAogCSAgKGlnbm9yZS1l cnJvcnMgKGFsbC1jb21wbGV0aW9ucyAidHJhbXAiIChzeW1ib2wtdmFsdWUgeCkpKQogCSAg KGVydC1mYWlsIChmb3JtYXQgIkhvb2sgYCVzJyBzdGlsbCBjb250YWlucyBUcmFtcCBmdW5j dGlvbiIgeCkpKSkpKQogCi0oZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ0LWRpcmVkLWNvbXBy ZXNzLWZpbGUgKCkKLSAgIkNoZWNrIHRoYXQgVHJhbXAgKHVuKWNvbXByZXNzZXMgbm9ybWFs IGZpbGVzLiIKLSAgKHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKLSAgKHNr aXAtdW5sZXNzICh0cmFtcC0tdGVzdC1zaC1wKSkKLSAgKGxldCAoKGRlZmF1bHQtZGlyZWN0 b3J5IHRyYW1wLXRlc3QtdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5KQotICAgICAgICAodG1w LW5hbWUgKHRyYW1wLS10ZXN0LW1ha2UtdGVtcC1uYW1lKSkpCi0gICAgKHdyaXRlLXJlZ2lv biAiZm9vIiBuaWwgdG1wLW5hbWUpCi0gICAgKGRpcmVkIGRlZmF1bHQtZGlyZWN0b3J5KQot ICAgIChkaXJlZC1yZXZlcnQpCi0gICAgKGRpcmVkLWdvdG8tZmlsZSB0bXAtbmFtZSkKLSAg ICAoc2hvdWxkLW5vdCAoZGlyZWQtY29tcHJlc3MpKQotICAgIChzaG91bGQgKHN0cmluZz0g KGNvbmNhdCB0bXAtbmFtZSAiLmd6IikgKGRpcmVkLWdldC1maWxlbmFtZSkpKQotICAgIChz aG91bGQtbm90IChkaXJlZC1jb21wcmVzcykpCi0gICAgKHNob3VsZCAoc3RyaW5nPSB0bXAt bmFtZSAoZGlyZWQtZ2V0LWZpbGVuYW1lKSkpCi0gICAgKGRlbGV0ZS1maWxlIHRtcC1uYW1l KSkpCi0KLShlcnQtZGVmdGVzdCB0cmFtcC10ZXN0NDQtZGlyZWQtY29tcHJlc3MtZGlyICgp Ci0gICJDaGVjayB0aGF0IFRyYW1wICh1biljb21wcmVzc2VzIGRpcmVjdG9yaWVzLiIKLSAg KHNraXAtdW5sZXNzICh0cmFtcC0tdGVzdC1lbmFibGVkKSkKLSAgKHNraXAtdW5sZXNzICh0 cmFtcC0tdGVzdC1zaC1wKSkKLSAgKGxldCAoKGRlZmF1bHQtZGlyZWN0b3J5IHRyYW1wLXRl c3QtdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5KQotICAgICAgICAodG1wLW5hbWUgKHRyYW1w LS10ZXN0LW1ha2UtdGVtcC1uYW1lKSkpCi0gICAgKG1ha2UtZGlyZWN0b3J5IHRtcC1uYW1l KQotICAgIChkaXJlZCBkZWZhdWx0LWRpcmVjdG9yeSkKLSAgICAoZGlyZWQtcmV2ZXJ0KQot ICAgIChkaXJlZC1nb3RvLWZpbGUgdG1wLW5hbWUpCi0gICAgKHNob3VsZC1ub3QgKGRpcmVk LWNvbXByZXNzKSkKLSAgICAoc2hvdWxkIChzdHJpbmc9IChjb25jYXQgdG1wLW5hbWUgIi50 YXIuZ3oiKSAoZGlyZWQtZ2V0LWZpbGVuYW1lKSkpCi0gICAgKHNob3VsZC1ub3QgKGRpcmVk LWNvbXByZXNzKSkKLSAgICAoc2hvdWxkIChzdHJpbmc9IHRtcC1uYW1lIChkaXJlZC1nZXQt ZmlsZW5hbWUpKSkKLSAgICAoZGVsZXRlLWRpcmVjdG9yeSB0bXAtbmFtZSkpKQotCiAoZGVm dW4gdHJhbXAtdGVzdC1hbGwgKCZvcHRpb25hbCBpbnRlcmFjdGl2ZSkKICAgIlJ1biBhbGwg dGVzdHMgZm9yIFxcW3RyYW1wXS4KIElmIElOVEVSQUNUSVZFIGlzIG5vbi1uaWwsIHRoZSB0 ZXN0cyBhcmUgcnVuIGludGVyYWN0aXZlbHkuIgotLSAKMi4yNS4xCgo= --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="0002-Support-abbreviating-home-directory-of-Tramp-filenam.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Support-abbreviating-home-directory-of-Tramp-filenam.pa"; filename*1="tch" RnJvbSAxNzIyNDMyZjUwMmM2Mjg2NmVlYjJmMWI2OWY5NWJjM2ZlMDE2Yzc3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgNiBOb3YgMjAyMSAxNzoxOToyOSAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMi8zXSBTdXBwb3J0IGFiYnJldmlhdGluZyBob21lIGRpcmVjdG9yeSBvZiBUcmFtcCBm aWxlbmFtZXMKCiogbGlzcC9maWxlcy5lbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUpOiBDaGVj ayBmb3IgZmlsZSBuYW1lIGhhbmRsZXIuCihmaWxlLW5hbWUtbm9uLXNwZWNpYWwpOgoqIGxp c3AvbmV0L3RyYW1wLmVsICh0cmFtcC1maWxlLW5hbWUtZm9yLW9wZXJhdGlvbik6CiogbGlz cC9uZXQvdHJhbXAtc2guZWwgKHRyYW1wLXNoLWZpbGUtbmFtZS1oYW5kbGVyLWFsaXN0KToK QWRkICdhYmJyZXZpYXRlLWZpbGUtbmFtZScuCih0cmFtcC1zaC1oYW5kbGUtYWJicmV2aWF0 ZS1maWxlLW5hbWUpOiBOZXcgZnVuY3Rpb24uCiogdGVzdC9saXNwL25ldC90cmFtcC10ZXN0 cy5lbCAodHJhbXAtdGVzdDQ2LWFiYnJldmlhdGUtZmlsZS1uYW1lKToKTmV3IHRlc3QuCiog ZG9jL2xpc3ByZWYvZmlsZXMudGV4aSAoTWFnaWMgRmlsZSBOYW1lcyk6IE1lbnRpb24KJ2Fi YnJldmlhdGUtZmlsZS1uYW1lJyBpbiB0aGUgbGlzdCBvZiBtYWdpYyBmaWxlIG5hbWUgaGFu ZGxlcnMuCiogZXRjL05FV1M6IEFubm91bmNlIHRoZSBjaGFuZ2UuCi0tLQogZG9jL2xpc3By ZWYvZmlsZXMudGV4aSAgICAgICB8ICAgNyArLQogZXRjL05FV1MgICAgICAgICAgICAgICAg ICAgICB8ICAgNyArKwogbGlzcC9maWxlcy5lbCAgICAgICAgICAgICAgICB8IDEzOSArKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogbGlzcC9uZXQvdHJhbXAtc2guZWwg ICAgICAgICB8ICA0MCArKysrKysrKystCiBsaXNwL25ldC90cmFtcC5lbCAgICAgICAgICAg IHwgICAyICsKIHRlc3QvbGlzcC9uZXQvdHJhbXAtdGVzdHMuZWwgfCAgMzcgKysrKysrKyst LQogNiBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvZmlsZXMudGV4aSBiL2RvYy9saXNwcmVmL2Zp bGVzLnRleGkKaW5kZXggZGRjMWQwNWMxYy4uOWM1MDM0MWI0OSAxMDA2NDQKLS0tIGEvZG9j L2xpc3ByZWYvZmlsZXMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9maWxlcy50ZXhpCkBAIC0z Mjk1LDggKzMyOTUsOCBAQCBNYWdpYyBGaWxlIE5hbWVzCiAKIEBpZm5vdHRleAogQG5vaW5k ZW50Ci1AY29kZXthY2Nlc3MtZmlsZX0sIEBjb2Rle2FkZC1uYW1lLXRvLWZpbGV9LAotQGNv ZGV7Ynl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFtZX0sQCoKK0Bjb2Rle2FiYnJldmlhdGUt ZmlsZS1uYW1lfSwgQGNvZGV7YWNjZXNzLWZpbGV9LAorQGNvZGV7YWRkLW5hbWUtdG8tZmls ZX0sIEBjb2Rle2J5dGUtY29tcGlsZXItYmFzZS1maWxlLW5hbWV9LEAqCiBAY29kZXtjb3B5 LWRpcmVjdG9yeX0sIEBjb2Rle2NvcHktZmlsZX0sCiBAY29kZXtkZWxldGUtZGlyZWN0b3J5 fSwgQGNvZGV7ZGVsZXRlLWZpbGV9LAogQGNvZGV7ZGlmZi1sYXRlc3QtYmFja3VwLWZpbGV9 LApAQCAtMzM1NSw3ICszMzU1LDggQEAgTWFnaWMgRmlsZSBOYW1lcwogQGlmdGV4CiBAbm9p bmRlbnQKIEBmbHVzaGxlZnQKLUBjb2Rle2FjY2Vzcy1maWxlfSwgQGNvZGV7YWRkLW5hbWUt dG8tZmlsZX0sCitAY29kZXthYmJyZXZpYXRlLWZpbGUtbmFtZX0sIEBjb2Rle2FjY2Vzcy1m aWxlfSwKK0Bjb2Rle2FkZC1uYW1lLXRvLWZpbGV9LAogQGNvZGV7Ynl0ZS1jb21AZGlzY3Jl dGlvbmFyeXt9e317fXBpbGVyLWJhc2UtZmlsZS1uYW1lfSwKIEBjb2Rle2NvcHktZGlyZWN0 b3J5fSwgQGNvZGV7Y29weS1maWxlfSwKIEBjb2Rle2RlbGV0ZS1kaXJlY3Rvcnl9LCBAY29k ZXtkZWxldGUtZmlsZX0sCmRpZmYgLS1naXQgYS9ldGMvTkVXUyBiL2V0Yy9ORVdTCmluZGV4 IDc4Yzg0ODEyNmEuLjA3ODYxY2VlZTUgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBiL2V0 Yy9ORVdTCkBAIC0zNjEsNiArMzYxLDEzIEBAIHRoZSBidWZmZXIgd2lsbCB0YWtlIHlvdSB0 byB0aGF0IGRpcmVjdG9yeS4KIFRoaXMgaXMgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0byBl eHRyYWN0IHRoZSBmaWVsZCBkYXRhIGZyb20KICdleGlmLXBhcnNlLWZpbGUnIGFuZCAnZXhp Zi1wYXJzZS1idWZmZXInLgogCisqKiBUcmFtcAorCisrKysKKyoqKiBUcmFtcCBzdXBwb3J0 cyBhYmJyZXZpYXRpbmcgcmVtb3RlIGhvbWUgZGlyZWN0b3JpZXMgbm93LgorV2hlbiBjYWxs aW5nICdhYmJyZXZpYXRlLWZpbGUtbmFtZScgb24gYSBUcmFtcCBmaWxlbmFtZSwgdGhlIHJl c3VsdAord2lsbCBhYmJyZXZpYXRlIHRoZSBob21lIGRpcmVjdG9yeSB0byAifiIuCisKIAwK ICogTmV3IE1vZGVzIGFuZCBQYWNrYWdlcyBpbiBFbWFjcyAyOS4xCiAKZGlmZiAtLWdpdCBh L2xpc3AvZmlsZXMuZWwgYi9saXNwL2ZpbGVzLmVsCmluZGV4IDNhZjk3MzAzMjYuLmJiODhi M2M1MjQgMTAwNjQ0Ci0tLSBhL2xpc3AvZmlsZXMuZWwKKysrIGIvbGlzcC9maWxlcy5lbApA QCAtMjAxMyw3MyArMjAxMyw3NSBAQCBhYmJyZXZpYXRlLWZpbGUtbmFtZQogc3RhcnRlZCBF bWFjcywgc2V0IGBhYmJyZXZpYXRlZC1ob21lLWRpcicgdG8gbmlsIHNvIGl0IHdpbGwgYmUg cmVjYWxjdWxhdGVkKS4iCiAgIDs7IEdldCByaWQgb2YgdGhlIHByZWZpeGVzIGFkZGVkIGJ5 IHRoZSBhdXRvbW91bnRlci4KICAgKHNhdmUtbWF0Y2gtZGF0YSAgICAgICAgICAgICAgICAg ICAgICA7RklYTUU6IFdoeT8KLSAgICAoaWYgKGFuZCBhdXRvbW91bnQtZGlyLXByZWZpeAot CSAgICAgKHN0cmluZy1tYXRjaCBhdXRvbW91bnQtZGlyLXByZWZpeCBmaWxlbmFtZSkKLQkg ICAgIChmaWxlLWV4aXN0cy1wIChmaWxlLW5hbWUtZGlyZWN0b3J5Ci0JCQkgICAgIChzdWJz dHJpbmcgZmlsZW5hbWUgKDEtIChtYXRjaC1lbmQgMCkpKSkpKQotCShzZXRxIGZpbGVuYW1l IChzdWJzdHJpbmcgZmlsZW5hbWUgKDEtIChtYXRjaC1lbmQgMCkpKSkpCi0gICAgOzsgQXZv aWQgdHJlYXRpbmcgL2hvbWUvZm9vIGFzIC9ob21lL0ZvbyBkdXJpbmcgYH4nIHN1YnN0aXR1 dGlvbi4KLSAgICAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCAoZmlsZS1uYW1lLWNhc2UtaW5z ZW5zaXRpdmUtcCBmaWxlbmFtZSkpKQotICAgICAgOzsgSWYgYW55IGVsdCBvZiBkaXJlY3Rv cnktYWJicmV2LWFsaXN0IG1hdGNoZXMgdGhpcyBuYW1lLAotICAgICAgOzsgYWJicmV2aWF0 ZSBhY2NvcmRpbmdseS4KLSAgICAgIChkb2xpc3QgKGRpci1hYmJyZXYgZGlyZWN0b3J5LWFi YnJldi1hbGlzdCkKLQkoaWYgKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYpIGZpbGVu YW1lKQotCSAgICAoc2V0cSBmaWxlbmFtZQotCQkgIChjb25jYXQgKGNkciBkaXItYWJicmV2 KQotCQkJICAoc3Vic3RyaW5nIGZpbGVuYW1lIChtYXRjaC1lbmQgMCkpKSkpKQotICAgICAg OzsgQ29tcHV0ZSBhbmQgc2F2ZSB0aGUgYWJicmV2aWF0ZWQgaG9tZWRpciBuYW1lLgotICAg ICAgOzsgV2UgZGVmZXIgY29tcHV0aW5nIHRoaXMgdW50aWwgdGhlIGZpcnN0IHRpbWUgaXQn cyBuZWVkZWQsIHRvCi0gICAgICA7OyBnaXZlIHRpbWUgZm9yIGRpcmVjdG9yeS1hYmJyZXYt YWxpc3QgdG8gYmUgc2V0IHByb3Blcmx5LgotICAgICAgOzsgV2UgaW5jbHVkZSBhIHNsYXNo IGF0IHRoZSBlbmQsIHRvIGF2b2lkIHNwdXJpb3VzIG1hdGNoZXMKLSAgICAgIDs7IHN1Y2gg YXMgYC91c3IvZm9vYmFyJyB3aGVuIHRoZSBob21lIGRpciBpcyBgL3Vzci9mb28nLgotICAg ICAgKHVubGVzcyBhYmJyZXZpYXRlZC1ob21lLWRpcgotICAgICAgICAocHV0ICdhYmJyZXZp YXRlZC1ob21lLWRpciAnaG9tZSAoZXhwYW5kLWZpbGUtbmFtZSAifiIpKQotICAgICAgICAo c2V0cSBhYmJyZXZpYXRlZC1ob21lLWRpcgotICAgICAgICAgICAgICAobGV0KiAoKGFiYnJl dmlhdGVkLWhvbWUtZGlyICJcXGBcXCcuIikgO0ltcG9zc2libGUgcmVnZXhwLgotICAgICAg ICAgICAgICAgICAgICAgKHJlZ2V4cAotICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQg IlxcYCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtcXVvdGUKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWJicmV2aWF0ZS1maWxlLW5hbWUKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldCAnYWJicmV2aWF0ZWQtaG9tZS1k aXIgJ2hvbWUpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXCgvXFx8XFwn XFwpIikpKQotICAgICAgICAgICAgICAgIDs7IERlcGVuZGluZyBvbiB3aGV0aGVyIGRlZmF1 bHQtZGlyZWN0b3J5IGRvZXMgb3IKLSAgICAgICAgICAgICAgICA7OyBkb2Vzbid0IGluY2x1 ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIHRoZSB2YWx1ZQotICAgICAgICAgICAgICAgIDs7 IG9mIGFiYnJldmlhdGVkLWhvbWUtZGlyIGNvdWxkIGJlIG11bHRpYnl0ZSBvcgotICAgICAg ICAgICAgICAgIDs7IHVuaWJ5dGUuICBJbiB0aGUgbGF0dGVyIGNhc2UsIHdlIG5lZWQgdG8g ZGVjb2RlCi0gICAgICAgICAgICAgICAgOzsgaXQuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlv biBpcyBjYWxsZWQgZm9yIHRoZQotICAgICAgICAgICAgICAgIDs7IGZpcnN0IHRpbWUgKGZy b20gc3RhcnR1cC5lbCkgd2hlbgotICAgICAgICAgICAgICAgIDs7IGxvY2FsZS1jb2Rpbmct c3lzdGVtIGlzIGFscmVhZHkgc2V0IHVwLgotICAgICAgICAgICAgICAgIChpZiAobXVsdGli eXRlLXN0cmluZy1wIHJlZ2V4cCkKLSAgICAgICAgICAgICAgICAgICAgcmVnZXhwCi0gICAg ICAgICAgICAgICAgICAoZGVjb2RlLWNvZGluZy1zdHJpbmcgcmVnZXhwCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2lu ZG93cy1udCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3V0Zi04Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2Nh bGUtY29kaW5nLXN5c3RlbSkpKSkpKQotCi0gICAgICA7OyBJZiBGSUxFTkFNRSBzdGFydHMg d2l0aCB0aGUgYWJicmV2aWF0ZWQgaG9tZWRpciwKLSAgICAgIDs7IGFuZCB+IGhhc24ndCBj aGFuZ2VkIHNpbmNlIGFiYnJldmlhdGVkLWhvbWUtZGlyIHdhcyBzZXQsCi0gICAgICA7OyBt YWtlIGl0IHN0YXJ0IHdpdGggYH4nIGluc3RlYWQuCi0gICAgICA7OyBJZiB+IGhhcyBjaGFu Z2VkLCB3ZSBpZ25vcmUgYWJicmV2aWF0ZWQtaG9tZS1kaXIgcmF0aGVyIHRoYW4KLSAgICAg IDs7IGludmFsaWRhdGluZyBpdCwgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBhIGNoYW5nZSBp biBIT01FCi0gICAgICA7OyBpcyBsaWtlbHkgdGVtcG9yYXJ5IChlZyBmb3IgdGVzdGluZyku Ci0gICAgICA7OyBGSVhNRSBJcyBpdCBldmVuIHdvcnRoIGNhY2hpbmcgYWJicmV2aWF0ZWQt aG9tZS1kaXI/Ci0gICAgICA7OyBSZWY6IGh0dHBzOi8vZGViYnVncy5nbnUub3JnLzE5NjU3 IzIwCi0gICAgICAobGV0IChtYjEpCi0gICAgICAgIChpZiAoYW5kIChzdHJpbmctbWF0Y2gg YWJicmV2aWF0ZWQtaG9tZS1kaXIgZmlsZW5hbWUpCi0gICAgICAgICAgICAgICAgIChzZXRx IG1iMSAobWF0Y2gtYmVnaW5uaW5nIDEpKQotCSAgICAgICAgIDs7IElmIHRoZSBob21lIGRp ciBpcyBqdXN0IC8sIGRvbid0IGNoYW5nZSBpdC4KLQkgICAgICAgICAobm90IChhbmQgKD0g KG1hdGNoLWVuZCAwKSAxKQotCQkJICAgKD0gKGFyZWYgZmlsZW5hbWUgMCkgPy8pKSkKLQkg ICAgICAgICA7OyBNUy1ET1Mgcm9vdCBkaXJlY3RvcmllcyBjYW4gY29tZSB3aXRoIGEgZHJp dmUgbGV0dGVyOwotCSAgICAgICAgIDs7IE5vdmVsbCBOZXR3YXJlIGFsbG93cyBkcml2ZSBs ZXR0ZXJzIGJleW9uZCBgWjonLgotCSAgICAgICAgIChub3QgKGFuZCAobWVtcSBzeXN0ZW0t dHlwZSAnKG1zLWRvcyB3aW5kb3dzLW50IGN5Z3dpbikpCi0JCQkgICAoc3RyaW5nLW1hdGNo ICJcXGBbYS16QS1gXTovXFwnIiBmaWxlbmFtZSkpKQotICAgICAgICAgICAgICAgICAoZXF1 YWwgKGdldCAnYWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpCi0gICAgICAgICAgICAgICAg ICAgICAgICAoZXhwYW5kLWZpbGUtbmFtZSAifiIpKSkKLQkgICAgKHNldHEgZmlsZW5hbWUK LQkJICAoY29uY2F0ICJ+IgotCQkJICAoc3Vic3RyaW5nIGZpbGVuYW1lIG1iMSkpKSkKLSAg ICAgICAgZmlsZW5hbWUpKSkpCisgICAgKGlmLWxldCogKChoYW5kbGVyIChmaW5kLWZpbGUt bmFtZS1oYW5kbGVyIGZpbGVuYW1lICdhYmJyZXZpYXRlLWZpbGUtbmFtZSkpKQorICAgICAg ICAoZnVuY2FsbCBoYW5kbGVyICdhYmJyZXZpYXRlLWZpbGUtbmFtZSBmaWxlbmFtZSkKKyAg ICAgIChpZiAoYW5kIGF1dG9tb3VudC1kaXItcHJlZml4CisgICAgICAgICAgICAgICAoc3Ry aW5nLW1hdGNoIGF1dG9tb3VudC1kaXItcHJlZml4IGZpbGVuYW1lKQorICAgICAgICAgICAg ICAgKGZpbGUtZXhpc3RzLXAgKGZpbGUtbmFtZS1kaXJlY3RvcnkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGZpbGVuYW1lICgxLSAobWF0Y2gtZW5kIDAp KSkpKSkKKyAgICAgICAgICAoc2V0cSBmaWxlbmFtZSAoc3Vic3RyaW5nIGZpbGVuYW1lICgx LSAobWF0Y2gtZW5kIDApKSkpKQorICAgICAgOzsgQXZvaWQgdHJlYXRpbmcgL2hvbWUvZm9v IGFzIC9ob21lL0ZvbyBkdXJpbmcgYH4nIHN1YnN0aXR1dGlvbi4KKyAgICAgIChsZXQgKChj YXNlLWZvbGQtc2VhcmNoIChmaWxlLW5hbWUtY2FzZS1pbnNlbnNpdGl2ZS1wIGZpbGVuYW1l KSkpCisgICAgICAgIDs7IElmIGFueSBlbHQgb2YgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCBt YXRjaGVzIHRoaXMgbmFtZSwKKyAgICAgICAgOzsgYWJicmV2aWF0ZSBhY2NvcmRpbmdseS4K KyAgICAgICAgKGRvbGlzdCAoZGlyLWFiYnJldiBkaXJlY3RvcnktYWJicmV2LWFsaXN0KQor ICAgICAgICAgIChpZiAoc3RyaW5nLW1hdGNoIChjYXIgZGlyLWFiYnJldikgZmlsZW5hbWUp CisgICAgICAgICAgICAgIChzZXRxIGZpbGVuYW1lCisgICAgICAgICAgICAgICAgICAgIChj b25jYXQgKGNkciBkaXItYWJicmV2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChz dWJzdHJpbmcgZmlsZW5hbWUgKG1hdGNoLWVuZCAwKSkpKSkpCisgICAgICAgIDs7IENvbXB1 dGUgYW5kIHNhdmUgdGhlIGFiYnJldmlhdGVkIGhvbWVkaXIgbmFtZS4KKyAgICAgICAgOzsg V2UgZGVmZXIgY29tcHV0aW5nIHRoaXMgdW50aWwgdGhlIGZpcnN0IHRpbWUgaXQncyBuZWVk ZWQsIHRvCisgICAgICAgIDs7IGdpdmUgdGltZSBmb3IgZGlyZWN0b3J5LWFiYnJldi1hbGlz dCB0byBiZSBzZXQgcHJvcGVybHkuCisgICAgICAgIDs7IFdlIGluY2x1ZGUgYSBzbGFzaCBh dCB0aGUgZW5kLCB0byBhdm9pZCBzcHVyaW91cyBtYXRjaGVzCisgICAgICAgIDs7IHN1Y2gg YXMgYC91c3IvZm9vYmFyJyB3aGVuIHRoZSBob21lIGRpciBpcyBgL3Vzci9mb28nLgorICAg ICAgICAodW5sZXNzIGFiYnJldmlhdGVkLWhvbWUtZGlyCisgICAgICAgICAgKHB1dCAnYWJi cmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUgKGV4cGFuZC1maWxlLW5hbWUgIn4iKSkKKyAgICAg ICAgICAoc2V0cSBhYmJyZXZpYXRlZC1ob21lLWRpcgorICAgICAgICAgICAgICAgIChsZXQq ICgoYWJicmV2aWF0ZWQtaG9tZS1kaXIgIlxcYFxcJy4iKSA7SW1wb3NzaWJsZSByZWdleHAu CisgICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAKKyAgICAgICAgICAgICAgICAgICAg ICAgIChjb25jYXQgIlxcYCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJl Z2V4cC1xdW90ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFiYnJldmlh dGUtZmlsZS1uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdldCAn YWJicmV2aWF0ZWQtaG9tZS1kaXIgJ2hvbWUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIlxcKC9cXHxcXCdcXCkiKSkpCisgICAgICAgICAgICAgICAgICA7OyBEZXBl bmRpbmcgb24gd2hldGhlciBkZWZhdWx0LWRpcmVjdG9yeSBkb2VzIG9yCisgICAgICAgICAg ICAgICAgICA7OyBkb2Vzbid0IGluY2x1ZGUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIHRoZSB2 YWx1ZQorICAgICAgICAgICAgICAgICAgOzsgb2YgYWJicmV2aWF0ZWQtaG9tZS1kaXIgY291 bGQgYmUgbXVsdGlieXRlIG9yCisgICAgICAgICAgICAgICAgICA7OyB1bmlieXRlLiAgSW4g dGhlIGxhdHRlciBjYXNlLCB3ZSBuZWVkIHRvIGRlY29kZQorICAgICAgICAgICAgICAgICAg OzsgaXQuICBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIHRoZQorICAg ICAgICAgICAgICAgICAgOzsgZmlyc3QgdGltZSAoZnJvbSBzdGFydHVwLmVsKSB3aGVuCisg ICAgICAgICAgICAgICAgICA7OyBsb2NhbGUtY29kaW5nLXN5c3RlbSBpcyBhbHJlYWR5IHNl dCB1cC4KKyAgICAgICAgICAgICAgICAgIChpZiAobXVsdGlieXRlLXN0cmluZy1wIHJlZ2V4 cCkKKyAgICAgICAgICAgICAgICAgICAgICByZWdleHAKKyAgICAgICAgICAgICAgICAgICAg KGRlY29kZS1jb2Rpbmctc3RyaW5nIHJlZ2V4cAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGlmIChlcSBzeXN0ZW0tdHlwZSAnd2luZG93cy1udCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXRmLTgKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLWNvZGlu Zy1zeXN0ZW0pKSkpKSkKKworICAgICAgICA7OyBJZiBGSUxFTkFNRSBzdGFydHMgd2l0aCB0 aGUgYWJicmV2aWF0ZWQgaG9tZWRpciwKKyAgICAgICAgOzsgYW5kIH4gaGFzbid0IGNoYW5n ZWQgc2luY2UgYWJicmV2aWF0ZWQtaG9tZS1kaXIgd2FzIHNldCwKKyAgICAgICAgOzsgbWFr ZSBpdCBzdGFydCB3aXRoIGB+JyBpbnN0ZWFkLgorICAgICAgICA7OyBJZiB+IGhhcyBjaGFu Z2VkLCB3ZSBpZ25vcmUgYWJicmV2aWF0ZWQtaG9tZS1kaXIgcmF0aGVyIHRoYW4KKyAgICAg ICAgOzsgaW52YWxpZGF0aW5nIGl0LCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGEgY2hhbmdl IGluIEhPTUUKKyAgICAgICAgOzsgaXMgbGlrZWx5IHRlbXBvcmFyeSAoZWcgZm9yIHRlc3Rp bmcpLgorICAgICAgICA7OyBGSVhNRSBJcyBpdCBldmVuIHdvcnRoIGNhY2hpbmcgYWJicmV2 aWF0ZWQtaG9tZS1kaXI/CisgICAgICAgIDs7IFJlZjogaHR0cHM6Ly9kZWJidWdzLmdudS5v cmcvMTk2NTcjMjAKKyAgICAgICAgKGxldCAobWIxKQorICAgICAgICAgIChpZiAoYW5kIChz dHJpbmctbWF0Y2ggYWJicmV2aWF0ZWQtaG9tZS1kaXIgZmlsZW5hbWUpCisgICAgICAgICAg ICAgICAgICAgKHNldHEgbWIxIChtYXRjaC1iZWdpbm5pbmcgMSkpCisgICAgICAgICAgICAg ICAgICAgOzsgSWYgdGhlIGhvbWUgZGlyIGlzIGp1c3QgLywgZG9uJ3QgY2hhbmdlIGl0Lgor ICAgICAgICAgICAgICAgICAgIChub3QgKGFuZCAoPSAobWF0Y2gtZW5kIDApIDEpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICg9IChhcmVmIGZpbGVuYW1lIDApID8vKSkpCisg ICAgICAgICAgICAgICAgICAgOzsgTVMtRE9TIHJvb3QgZGlyZWN0b3JpZXMgY2FuIGNvbWUg d2l0aCBhIGRyaXZlIGxldHRlcjsKKyAgICAgICAgICAgICAgICAgICA7OyBOb3ZlbGwgTmV0 d2FyZSBhbGxvd3MgZHJpdmUgbGV0dGVycyBiZXlvbmQgYFo6Jy4KKyAgICAgICAgICAgICAg ICAgICAobm90IChhbmQgKG1lbXEgc3lzdGVtLXR5cGUgJyhtcy1kb3Mgd2luZG93cy1udCBj eWd3aW4pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoICJc XGBbYS16QS1gXTovXFwnIiBmaWxlbmFtZSkpKQorICAgICAgICAgICAgICAgICAgIChlcXVh bCAoZ2V0ICdhYmJyZXZpYXRlZC1ob21lLWRpciAnaG9tZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUgIn4iKSkpCisgICAgICAgICAgICAgIChzZXRx IGZpbGVuYW1lCisgICAgICAgICAgICAgICAgICAgIChjb25jYXQgIn4iCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSBtYjEpKSkpCisgICAgICAg ICAgZmlsZW5hbWUpKSkpKQogCiAoZGVmdW4gZmluZC1idWZmZXItdmlzaXRpbmcgKGZpbGVu YW1lICZvcHRpb25hbCBwcmVkaWNhdGUpCiAgICJSZXR1cm4gdGhlIGJ1ZmZlciB2aXNpdGlu ZyBmaWxlIEZJTEVOQU1FIChhIHN0cmluZykuCkBAIC03ODExLDEwICs3ODEzLDExIEBAIGZp bGUtbmFtZS1ub24tc3BlY2lhbAogCTs7IEdldCBhIGxpc3Qgb2YgdGhlIGluZGljZXMgb2Yg dGhlIGFyZ3MgdGhhdCBhcmUgZmlsZSBuYW1lcy4KIAkoZmlsZS1hcmctaW5kaWNlcwogCSAo Y2RyIChvciAoYXNzcSBvcGVyYXRpb24KLQkJCScoOzsgVGhlIGZpcnN0IHNldmVuIGFyZSBz cGVjaWFsIGJlY2F1c2UgdGhleQorCQkJJyg7OyBUaGUgZmlyc3QgZWlnaHQgYXJlIHNwZWNp YWwgYmVjYXVzZSB0aGV5CiAJCQkgIDs7IHJldHVybiBhIGZpbGUgbmFtZS4gIFdlIHdhbnQg dG8gaW5jbHVkZQogCQkJICA7OyB0aGUgLzogaW4gdGhlIHJldHVybiB2YWx1ZS4gIFNvIGp1 c3QKIAkJCSAgOzsgYXZvaWQgc3RyaXBwaW5nIGl0IGluIHRoZSBmaXJzdCBwbGFjZS4KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lKQogICAgICAg ICAgICAgICAgICAgICAgICAgICAoZGlyZWN0b3J5LWZpbGUtbmFtZSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5KQpkaWZmIC0tZ2l0IGEvbGlzcC9uZXQv dHJhbXAtc2guZWwgYi9saXNwL25ldC90cmFtcC1zaC5lbAppbmRleCA2MjkyMTkwOTQwLi4x MTUxY2QyYWU4IDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC1zaC5lbAorKysgYi9saXNw L25ldC90cmFtcC1zaC5lbApAQCAtOTQwLDcgKzk0MCw4IEBAIHRyYW1wLXZjLXJlZ2lzdGVy ZWQtcmVhZC1maWxlLW5hbWVzCiA7OyBOZXcgaGFuZGxlcnMgc2hvdWxkIGJlIGFkZGVkIGhl cmUuCiA7OzsjIyN0cmFtcC1hdXRvbG9hZAogKGRlZmNvbnN0IHRyYW1wLXNoLWZpbGUtbmFt ZS1oYW5kbGVyLWFsaXN0Ci0gICcoKGFjY2Vzcy1maWxlIC4gdHJhbXAtaGFuZGxlLWFjY2Vz cy1maWxlKQorICAnKChhYmJyZXZpYXRlLWZpbGUtbmFtZSAuIHRyYW1wLXNoLWhhbmRsZS1h YmJyZXZpYXRlLWZpbGUtbmFtZSkKKyAgICAoYWNjZXNzLWZpbGUgLiB0cmFtcC1oYW5kbGUt YWNjZXNzLWZpbGUpCiAgICAgKGFkZC1uYW1lLXRvLWZpbGUgLiB0cmFtcC1zaC1oYW5kbGUt YWRkLW5hbWUtdG8tZmlsZSkKICAgICA7OyBgYnl0ZS1jb21waWxlci1iYXNlLWZpbGUtbmFt ZScgcGVyZm9ybWVkIGJ5IGRlZmF1bHQgaGFuZGxlci4KICAgICAoY29weS1kaXJlY3Rvcnkg LiB0cmFtcC1zaC1oYW5kbGUtY29weS1kaXJlY3RvcnkpCkBAIC0xNzk4LDYgKzE3OTksNDMg QEAgdHJhbXAtc2gtaGFuZGxlLWZpbGUtbmFtZS1hbGwtY29tcGxldGlvbnMKIAkgICAgICAg KHB1c2ggKGJ1ZmZlci1zdWJzdHJpbmcgKHBvaW50KSAocG9pbnQtYXQtZW9sKSkgcmVzdWx0 KSkpCiAJICAgcmVzdWx0KSkpKSkpCiAKKyhkZWZ1biB0cmFtcC1zaC1oYW5kbGUtYWJicmV2 aWF0ZS1maWxlLW5hbWUgKGZpbGVuYW1lKQorICAiTGlrZSBgYWJicmV2aWF0ZS1maWxlLW5h bWUnIGZvciBUcmFtcCBmaWxlcy4iCisgIChsZXQgKGhvbWUtZGlyKQorICAgICh3aXRoLXBh cnNlZC10cmFtcC1maWxlLW5hbWUgZmlsZW5hbWUgbmlsCisgICAgICAoc2V0cSBob21lLWRp ciAodHJhbXAtc2gtaGFuZGxlLWV4cGFuZC1maWxlLW5hbWUKKyAgICAgICAgICAgICAgICAg ICAgICAodHJhbXAtbWFrZS10cmFtcC1maWxlLW5hbWUgdiAifiIpKSkpCisgICAgOzsgSWYg YW55IGVsdCBvZiBkaXJlY3RvcnktYWJicmV2LWFsaXN0IG1hdGNoZXMgdGhpcyBuYW1lIG9y IHRoZQorICAgIDs7IGhvbWUgZGlyLCBhYmJyZXZpYXRlIGFjY29yZGluZ2x5LgorICAgIChk b2xpc3QgKGRpci1hYmJyZXYgZGlyZWN0b3J5LWFiYnJldi1hbGlzdCkKKyAgICAgICh3aGVu IChzdHJpbmctbWF0Y2ggKGNhciBkaXItYWJicmV2KSBmaWxlbmFtZSkKKyAgICAgICAgKHNl dHEgZmlsZW5hbWUKKyAgICAgICAgICAgICAgKGNvbmNhdCAoY2RyIGRpci1hYmJyZXYpCisg ICAgICAgICAgICAgICAgICAgICAgKHN1YnN0cmluZyBmaWxlbmFtZSAobWF0Y2gtZW5kIDAp KSkpKQorICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAoY2FyIGRpci1hYmJyZXYpIGhvbWUt ZGlyKQorICAgICAgICAoc2V0cSBob21lLWRpcgorICAgICAgICAgICAgICAoY29uY2F0IChj ZHIgZGlyLWFiYnJldikKKyAgICAgICAgICAgICAgICAgICAgICAoc3Vic3RyaW5nIGhvbWUt ZGlyIChtYXRjaC1lbmQgMCkpKSkpKQorICAgIChsZXQqICgoaG9tZS1kaXItcmVnZXhwCisg ICAgICAgICAgICA7OyBXZSBpbmNsdWRlIGEgc2xhc2ggYXQgdGhlIGVuZCwgdG8gYXZvaWQg c3B1cmlvdXMKKyAgICAgICAgICAgIDs7IG1hdGNoZXMgc3VjaCBhcyBgL3Vzci9mb29iYXIn IHdoZW4gdGhlIGhvbWUgZGlyIGlzCisgICAgICAgICAgICA7OyBgL3Vzci9mb28nLgorICAg ICAgICAgICAgKGNvbmNhdCAiXFxgIiAocmVnZXhwLXF1b3RlIGhvbWUtZGlyKSAiXFwoL1xc fFxcJ1xcKSIpKQorICAgICAgICAgICAoaG9tZS1kaXItcmVnZXhwCisgICAgICAgICAgICA7 OyBUaGUgdmFsdWUgb2YgaG9tZS1kaXItcmVnZXhwIGNvdWxkIGJlIG11bHRpYnl0ZSBvcgor ICAgICAgICAgICAgOzsgdW5pYnl0ZS4gIEluIHRoZSBsYXR0ZXIgY2FzZSwgd2UgbmVlZCB0 byBkZWNvZGUgaXQuCisgICAgICAgICAgICAoaWYgKG11bHRpYnl0ZS1zdHJpbmctcCBob21l LWRpci1yZWdleHApCisgICAgICAgICAgICAgICAgaG9tZS1kaXItcmVnZXhwCisgICAgICAg ICAgICAgIChkZWNvZGUtY29kaW5nLXN0cmluZyBob21lLWRpci1yZWdleHAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRv d3MtbnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3V0Zi04 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZS1jb2Rpbmct c3lzdGVtKSkpKSkKKyAgICAgIChpZiAoc3RyaW5nLW1hdGNoIGhvbWUtZGlyLXJlZ2V4cCBm aWxlbmFtZSkKKyAgICAgICAgICAod2l0aC1wYXJzZWQtdHJhbXAtZmlsZS1uYW1lIGZpbGVu YW1lIG5pbAorICAgICAgICAgICAgKHRyYW1wLW1ha2UtdHJhbXAtZmlsZS1uYW1lCisgICAg ICAgICAgICAgdiAoY29uY2F0ICJ+IiAoc3Vic3RyaW5nIGZpbGVuYW1lIChtYXRjaC1iZWdp bm5pbmcgMSkpKSkpCisgICAgICAgIGZpbGVuYW1lKSkpKQorCiA7OyBjcCwgbXYgYW5kIGxu CiAKIChkZWZ1biB0cmFtcC1zaC1oYW5kbGUtYWRkLW5hbWUtdG8tZmlsZQpkaWZmIC0tZ2l0 IGEvbGlzcC9uZXQvdHJhbXAuZWwgYi9saXNwL25ldC90cmFtcC5lbAppbmRleCBiMTUyNTg0 YzFmLi43NDBjYjIzZWJlIDEwMDY0NAotLS0gYS9saXNwL25ldC90cmFtcC5lbAorKysgYi9s aXNwL25ldC90cmFtcC5lbApAQCAtMjQ5Myw2ICsyNDkzLDggQEAgdHJhbXAtZmlsZS1uYW1l LWZvci1vcGVyYXRpb24KIAkgICAgICBmaWxlLXN5c3RlbS1pbmZvCiAJICAgICAgOzsgRW1h Y3MgMjgrIG9ubHkuCiAJICAgICAgZmlsZS1sb2NrZWQtcCBsb2NrLWZpbGUgbWFrZS1sb2Nr LWZpbGUtbmFtZSB1bmxvY2stZmlsZQorCSAgICAgIDs7IEVtYWNzIDI5KyBvbmx5LgorCSAg ICAgIGFiYnJldmlhdGUtZmlsZS1uYW1lCiAJICAgICAgOzsgVHJhbXAgaW50ZXJuYWwgbWFn aWMgZmlsZSBuYW1lIGZ1bmN0aW9uLgogCSAgICAgIHRyYW1wLXNldC1maWxlLXVpZC1naWQp KQogICAgIChpZiAoZmlsZS1uYW1lLWFic29sdXRlLXAgKG50aCAwIGFyZ3MpKQpkaWZmIC0t Z2l0IGEvdGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9uZXQvdHJh bXAtdGVzdHMuZWwKaW5kZXggM2Q2Y2U5NjNlZS4uNWVlYTAwYzQxZSAxMDA2NDQKLS0tIGEv dGVzdC9saXNwL25ldC90cmFtcC10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvbmV0L3RyYW1w LXRlc3RzLmVsCkBAIC02MTIyLDYgKzYxMjIsMTIgQEAgdHJhbXAtLXRlc3QtZW1hY3MyOC1w CiB2YXJpYWJsZXMsIHNvIHdlIGNoZWNrIHRoZSBFbWFjcyB2ZXJzaW9uIGRpcmVjdGx5LiIK ICAgKD49IGVtYWNzLW1ham9yLXZlcnNpb24gMjgpKQogCisoZGVmdW4gdHJhbXAtLXRlc3Qt ZW1hY3MyOS1wICgpCisgICJDaGVjayBmb3IgRW1hY3MgdmVyc2lvbiA+PSAyOS4xLgorU29t ZSBzZW1hbnRpY3MgaGFzIGJlZW4gY2hhbmdlZCBmb3IgdGhlcmUsIHcvbyBuZXcgZnVuY3Rp b25zIG9yCit2YXJpYWJsZXMsIHNvIHdlIGNoZWNrIHRoZSBFbWFjcyB2ZXJzaW9uIGRpcmVj dGx5LiIKKyAgKD49IGVtYWNzLW1ham9yLXZlcnNpb24gMjkpKQorCiAoZGVmdW4gdHJhbXAt LXRlc3QtYWRiLXAgKCkKICAgIkNoZWNrLCB3aGV0aGVyIHRoZSByZW1vdGUgaG9zdCBydW5z IEFuZHJvaWQuCiBUaGlzIHJlcXVpcmVzIHJlc3RyaWN0aW9ucyBvZiBmaWxlIG5hbWUgc3lu dGF4LiIKQEAgLTcwMzEsOCArNzAzNywyOSBAQCB0cmFtcC10ZXN0NDUtZGlyZWQtY29tcHJl c3MtZGlyCiAgICAgKHNob3VsZCAoc3RyaW5nPSB0bXAtbmFtZSAoZGlyZWQtZ2V0LWZpbGVu YW1lKSkpCiAgICAgKGRlbGV0ZS1kaXJlY3RvcnkgdG1wLW5hbWUpKSkKIAorKGVydC1kZWZ0 ZXN0IHRyYW1wLXRlc3Q0Ni1hYmJyZXZpYXRlLWZpbGUtbmFtZSAoKQorICAiQ2hlY2sgdGhh dCBUcmFtcCBhYmJyZXZpYXRlcyBmaWxlIG5hbWVzIGNvcnJlY3RseS4iCisgIChza2lwLXVu bGVzcyAodHJhbXAtLXRlc3QtZW5hYmxlZCkpCisgIChza2lwLXVubGVzcyAodHJhbXAtLXRl c3QtZW1hY3MyOS1wKSkKKworICAobGV0ICgoaG9tZS1kaXIgKGV4cGFuZC1maWxlLW5hbWUg Ii9tb2NrOmxvY2FsaG9zdDp+IikpKQorICAgIDs7IENoZWNrIGhvbWUtZGlyIGFiYnJldmlh dGlvbi4KKyAgICAoc2hvdWxkIChlcXVhbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNh dCBob21lLWRpciAiL2Zvby9iYXIiKSkKKyAgICAgICAgICAgICAgICAgICAiL21vY2s6bG9j YWxob3N0On4vZm9vL2JhciIpKQorICAgIChzaG91bGQgKGVxdWFsIChhYmJyZXZpYXRlLWZp bGUtbmFtZSAiL21vY2s6bG9jYWxob3N0Oi9ub3doZXJlL3NwZWNpYWwiKQorICAgICAgICAg ICAgICAgICAgICIvbW9jazpsb2NhbGhvc3Q6L25vd2hlcmUvc3BlY2lhbCIpKQorICAgIDs7 IENoZWNrIGBkaXJlY3RvcnktYWJicmV2LWFsaXN0JyBhYmJyZXZpYXRpb24uCisgICAgKGxl dCAoKGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QKKyAgICAgICAgICAgYCgoLChjb25jYXQgIlxc YCIgKHJlZ2V4cC1xdW90ZSBob21lLWRpcikgIi9mb28iKQorICAgICAgICAgICAgICAuICwo Y29uY2F0IGhvbWUtZGlyICIvZiIpKQorICAgICAgICAgICAgICgiXFxgL21vY2s6bG9jYWxo b3N0Oi9ub3doZXJlIiAuICIvbW9jazpsb2NhbGhvc3Q6L253IikpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsIChhYmJyZXZpYXRlLWZpbGUtbmFtZSAoY29uY2F0IGhvbWUtZGlyICIvZm9v L2JhciIpKQorICAgICAgICAgICAgICAgICAgICAgIi9tb2NrOmxvY2FsaG9zdDp+L2YvYmFy IikpCisgICAgICAoc2hvdWxkIChlcXVhbCAoYWJicmV2aWF0ZS1maWxlLW5hbWUgIi9tb2Nr OmxvY2FsaG9zdDovbm93aGVyZS9zcGVjaWFsIikKKyAgICAgICAgICAgICAgICAgICAgICIv bW9jazpsb2NhbGhvc3Q6L253L3NwZWNpYWwiKSkpKSkKKwogOzsgVGhpcyB0ZXN0IGlzIGlu c3BpcmVkIGJ5IEJ1ZyMyOTE2My4KLShlcnQtZGVmdGVzdCB0cmFtcC10ZXN0NDYtYXV0by1s b2FkICgpCisoZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ3LWF1dG8tbG9hZCAoKQogICAiQ2hl Y2sgdGhhdCBUcmFtcCBhdXRvbG9hZHMgcHJvcGVybHkuIgogICA7OyBJZiB3ZSB1c2UgYW5v dGhlciBzeW50YXggYnV0IGBkZWZhdWx0JywgVHJhbXAgaXMgYWxyZWFkeSBsb2FkZWQKICAg OzsgZHVlIHRvIHRoZSBgdHJhbXAtY2hhbmdlLXN5bnRheCcgY2FsbC4KQEAgLTcwNTcsNyAr NzA4NCw3IEBAIHRyYW1wLXRlc3Q0Ni1hdXRvLWxvYWQKIAkobWFwY29uY2F0ICMnc2hlbGwt cXVvdGUtYXJndW1lbnQgbG9hZC1wYXRoICIgLUwgIikKIAkoc2hlbGwtcXVvdGUtYXJndW1l bnQgY29kZSkpKSkpKSkKIAotKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0Ni1kZWxheS1sb2Fk ICgpCisoZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ3LWRlbGF5LWxvYWQgKCkKICAgIkNoZWNr IHRoYXQgVHJhbXAgaXMgbG9hZGVkIGxhemlseSwgb25seSB3aGVuIG5lZWRlZC4iCiAgIDs7 IFRoZSBhdXRvbG9hZGVkIFRyYW1wIG9iamVjdHMgYXJlIGRpZmZlcmVudCBzaW5jZSBFbWFj cyAyNi4xLiAgV2UKICAgOzsgY2Fubm90IHRlc3Qgb2xkZXIgRW1hY3NlbiwgdGhlcmVmb3Jl LgpAQCAtNzA5MCw3ICs3MTE3LDcgQEAgdHJhbXAtdGVzdDQ2LWRlbGF5LWxvYWQKIAkgICht YXBjb25jYXQgIydzaGVsbC1xdW90ZS1hcmd1bWVudCBsb2FkLXBhdGggIiAtTCAiKQogCSAg KHNoZWxsLXF1b3RlLWFyZ3VtZW50IChmb3JtYXQgY29kZSB0bSkpKSkpKSkpKQogCi0oZXJ0 LWRlZnRlc3QgdHJhbXAtdGVzdDQ2LXJlY3Vyc2l2ZS1sb2FkICgpCisoZXJ0LWRlZnRlc3Qg dHJhbXAtdGVzdDQ3LXJlY3Vyc2l2ZS1sb2FkICgpCiAgICJDaGVjayB0aGF0IFRyYW1wIGRv ZXMgbm90IGZhaWwgZHVlIHRvIHJlY3Vyc2l2ZSBsb2FkLiIKICAgKHNraXAtdW5sZXNzICh0 cmFtcC0tdGVzdC1lbmFibGVkKSkKIApAQCAtNzExNCw3ICs3MTQxLDcgQEAgdHJhbXAtdGVz dDQ2LXJlY3Vyc2l2ZS1sb2FkCiAJICAobWFwY29uY2F0ICMnc2hlbGwtcXVvdGUtYXJndW1l bnQgbG9hZC1wYXRoICIgLUwgIikKIAkgIChzaGVsbC1xdW90ZS1hcmd1bWVudCBjb2RlKSkp KSkpKSkKIAotKGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0Ni1yZW1vdGUtbG9hZC1wYXRoICgp CisoZXJ0LWRlZnRlc3QgdHJhbXAtdGVzdDQ3LXJlbW90ZS1sb2FkLXBhdGggKCkKICAgIkNo ZWNrIHRoYXQgVHJhbXAgYXV0b2xvYWRzIGl0cyBwYWNrYWdlcyB3aXRoIHJlbW90ZSBgbG9h ZC1wYXRoJy4iCiAgIDs7IFRoZSBhdXRvbG9hZGVkIFRyYW1wIG9iamVjdHMgYXJlIGRpZmZl cmVudCBzaW5jZSBFbWFjcyAyNi4xLiAgV2UKICAgOzsgY2Fubm90IHRlc3Qgb2xkZXIgRW1h Y3NlbiwgdGhlcmVmb3JlLgpAQCAtNzE0Myw3ICs3MTcwLDcgQEAgdHJhbXAtdGVzdDQ2LXJl bW90ZS1sb2FkLXBhdGgKIAkobWFwY29uY2F0ICMnc2hlbGwtcXVvdGUtYXJndW1lbnQgbG9h ZC1wYXRoICIgLUwgIikKIAkoc2hlbGwtcXVvdGUtYXJndW1lbnQgY29kZSkpKSkpKSkKIAot KGVydC1kZWZ0ZXN0IHRyYW1wLXRlc3Q0Ny11bmxvYWQgKCkKKyhlcnQtZGVmdGVzdCB0cmFt cC10ZXN0NDgtdW5sb2FkICgpCiAgICJDaGVjayB0aGF0IFRyYW1wIGFuZCBpdHMgc3VicGFj a2FnZXMgdW5sb2FkIGNvbXBsZXRlbHkuCiBTaW5jZSBpdCB1bmxvYWRzIFRyYW1wLCBpdCBz aGFsbCBiZSB0aGUgbGFzdCB0ZXN0IHRvIHJ1bi4iCiAgIDp0YWdzICcoOmV4cGVuc2l2ZS10 ZXN0KQotLSAKMi4yNS4xCgo= --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="0003-Add-some-unit-tests-for-abbreviate-file-name.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Add-some-unit-tests-for-abbreviate-file-name.patch" RnJvbSBmOWRhNjhiZDJhZDc3N2E3ZWYzNDVhODY2OGIxZmNlMjg0ZTU5N2RhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgNiBOb3YgMjAyMSAyMDoxNTo1NiAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMy8zXSBBZGQgc29tZSB1bml0IHRlc3RzIGZvciAnYWJicmV2aWF0ZS1maWxlLW5hbWUn CgoqIHRlc3QvbGlzcC9maWxlcy10ZXN0cy5lbCAoZmlsZXMtdGVzdHMtYWJicmV2aWF0ZS1m aWxlLW5hbWUtaG9tZWRpcik6CihmaWxlcy10ZXN0cy1hYmJyZXZpYXRlLWZpbGUtbmFtZS1k aXJlY3RvcnktYWJicmV2LWFsaXN0KToKTmV3IHRlc3RzLgotLS0KIHRlc3QvbGlzcC9maWxl cy10ZXN0cy5lbCB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBm aWxlIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS90ZXN0L2xpc3Av ZmlsZXMtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZmlsZXMtdGVzdHMuZWwKaW5kZXggNGI5ZDRl NDUxNi4uMWFlYThhZjU0ZiAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2ZpbGVzLXRlc3RzLmVs CisrKyBiL3Rlc3QvbGlzcC9maWxlcy10ZXN0cy5lbApAQCAtMTM0Miw2ICsxMzQyLDM5IEBA IGZpbGVzLXRlc3RzLWNvcHktZGlyZWN0b3J5CiAgICAgKHNob3VsZCAoZmlsZS1kaXJlY3Rv cnktcCAoY29uY2F0IChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IGRlc3QyKSAiYSIpKSkKICAg ICAoZGVsZXRlLWRpcmVjdG9yeSBkaXIgJ3JlY3Vyc2l2ZSkpKQogCisoZXJ0LWRlZnRlc3Qg ZmlsZXMtdGVzdHMtYWJicmV2aWF0ZS1maWxlLW5hbWUtaG9tZWRpciAoKQorICA7OyBDaGVj ayBob21lZGlyIGFiYnJldmlhdGlvbi4KKyAgKGxldCogKChob21lZGlyIHRlbXBvcmFyeS1m aWxlLWRpcmVjdG9yeSkKKyAgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50IChjb25zIChm b3JtYXQgIkhPTUU9JXMiIGhvbWVkaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcm9jZXNzLWVudmlyb25tZW50KSkKKyAgICAgICAgIChhYmJyZXZpYXRlZC1o b21lLWRpciBuaWwpKQorICAgIChzaG91bGQgKGVxdWFsICJ+L2Zvby9iYXIiCisgICAgICAg ICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lIChjb25jYXQgaG9tZWRpciAiZm9v L2JhciIpKSkpKQorICA7OyBDaGVjayB0aGF0IGhvbWVkaXIgYWJicmV2aWF0aW9uIGRvZXNu J3Qgb2NjdXIgd2hlbiBob21lZGlyIGlzIGp1c3QgLy4KKyAgKGxldCogKChob21lZGlyICIv IikKKyAgICAgICAgIChwcm9jZXNzLWVudmlyb25tZW50IChjb25zIChmb3JtYXQgIkhPTUU9 JXMiIGhvbWVkaXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9j ZXNzLWVudmlyb25tZW50KSkKKyAgICAgICAgIChhYmJyZXZpYXRlZC1ob21lLWRpciBuaWwp KQorICAgIChzaG91bGQgKGVxdWFsICIvZm9vL2JhciIKKyAgICAgICAgICAgICAgICAgICAo YWJicmV2aWF0ZS1maWxlLW5hbWUgKGNvbmNhdCBob21lZGlyICJmb28vYmFyIikpKSkpKQor CisoZXJ0LWRlZnRlc3QgZmlsZXMtdGVzdHMtYWJicmV2aWF0ZS1maWxlLW5hbWUtZGlyZWN0 b3J5LWFiYnJldi1hbGlzdCAoKQorICAgIDs7IENoZWNrIGBkaXJlY3RvcnktYWJicmV2LWFs aXN0JyBhYmJyZXZpYXRpb24uCisgICAgKGxldCAoKGRpcmVjdG9yeS1hYmJyZXYtYWxpc3Qg JygoIlxcYC9ub3doZXJlL3NwZWNpYWwiIC4gIi9udy9zcCIpKSkpCisgICAgICAoc2hvdWxk IChlcXVhbCAiL253L3NwL2hlcmUiCisgICAgICAgICAgICAgICAgICAgICAoYWJicmV2aWF0 ZS1maWxlLW5hbWUgIi9ub3doZXJlL3NwZWNpYWwvaGVyZSIpKSkpCisgICAgOzsgQ2hlY2sg aG9tZWRpciBhbmQgYGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QnIGFiYnJldmlhdGlvbi4KKyAg ICAobGV0KiAoKGhvbWVkaXIgdGVtcG9yYXJ5LWZpbGUtZGlyZWN0b3J5KQorICAgICAgICAg ICAocHJvY2Vzcy1lbnZpcm9ubWVudCAoY29ucyAoZm9ybWF0ICJIT01FPSVzIiBob21lZGly KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLWVudmly b25tZW50KSkKKyAgICAgICAgICAgKGFiYnJldmlhdGVkLWhvbWUtZGlyIG5pbCkKKyAgICAg ICAgICAgKGRpcmVjdG9yeS1hYmJyZXYtYWxpc3QKKyAgICAgICAgICAgIGAoKCwoY29uY2F0 ICJcXGAiIChyZWdleHAtcXVvdGUgaG9tZWRpcikgIm5vd2hlcmUvc3BlY2lhbCIpCisgICAg ICAgICAgICAgIC4gLChjb25jYXQgaG9tZWRpciAibncvc3AiKSkpKSkKKyAgICAgIChzaG91 bGQgKGVxdWFsICJ+L253L3NwL2hlcmUiCisgICAgICAgICAgICAgICAgICAgICAoYWJicmV2 aWF0ZS1maWxlLW5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAoY29uY2F0IGhvbWVkaXIg Im5vd2hlcmUvc3BlY2lhbC9oZXJlIikpKSkpKQorCiAoZXJ0LWRlZnRlc3QgZmlsZXMtdGVz dHMtYWJicmV2aWF0ZWQtaG9tZS1kaXIgKCkKICAgIlRlc3QgdGhhdCBjaGFuZ2luZyBIT01F IGRvZXMgbm90IGNvbmZ1c2UgYGFiYnJldmlhdGUtZmlsZS1uYW1lJy4KIFNlZSA8aHR0cHM6 Ly9kZWJidWdzLmdudS5vcmcvMTk2NTcjMjA+LiIKLS0gCjIuMjUuMQoK --------------0D91A40490F7015C7093F245 Content-Type: text/plain; charset=UTF-8; name="benchmark-results.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="benchmark-results.txt" KE5vdGU6IGVhY2ggdGVzdCB1c2VzIDEwMDAgaXRlcmF0aW9ucyBvZiBhYmJyZXZpYXRlLWZp bGUtbmFtZS4pCgpWYW5pbGxhIEVtYWNzIDI5LjAuNTA6Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCkVtcHR5IOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkKTG9jYWwgfCBFbGFwc2Vk IHRpbWU6IDAuMDUxMzM2cyAoMC4wMTYxMjVzIGluIDEgR0NzKQpUUkFNUCB8IEVsYXBzZWQg dGltZTogMi4xNzM2MjFzICgwLjUwMTY1M3MgaW4gMzggR0NzKQoKMTAwIGl0ZW1zIGluIOKA mGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKG5vIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNl ZCB0aW1lOiAwLjMxNjAyMXMgKDAuMTMzNTMxcyBpbiAxMCBHQ3MpClRSQU1QIHwgRWxhcHNl ZCB0aW1lOiAyLjQ1OTIxMnMgKDAuNjMzMzczcyBpbiA0OCBHQ3MpCgoxMDAgaXRlbXMgaW4g 4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAoYWxsIG1hdGNoZXMpCkxvY2FsIHwgRWxh cHNlZCB0aW1lOiAwLjUzOTYzNnMgKDAuMzI3NjM3cyBpbiAyNSBHQ3MpClRSQU1QIHwgRWxh cHNlZCB0aW1lOiAyLjQ4NDYyOXMgKDAuNjQyNTk3cyBpbiA0OSBHQ3MpCgo1MDAgaXRlbXMg aW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAobm8gbWF0Y2hlcykKTG9jYWwgfCBF bGFwc2VkIHRpbWU6IDEuMDc1NjUwcyAoMC41MDAwNDNzIGluIDM4IEdDcykKVFJBTVAgfCBF bGFwc2VkIHRpbWU6IDMuMjQxNDE0cyAoMS4wMDYxNDNzIGluIDc2IEdDcykKCjUwMCBpdGVt cyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChhbGwgbWF0Y2hlcykKTG9jYWwg fCBFbGFwc2VkIHRpbWU6IDEuMzAyMjAxcyAoMC42OTYyNDlzIGluIDUzIEdDcykKVFJBTVAg fCBFbGFwc2VkIHRpbWU6IDMuMjYxOTg0cyAoMS4wMTgwOThzIGluIDc3IEdDcykKCgpVcGRh dGVkIFBhdGNoZXM6Ci0tLS0tLS0tLS0tLS0tLS0KCkVtcHR5IOKAmGRpcmVjdG9yeS1hYmJy ZXYtYWxpc3TigJkKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMDUwODYxcyAoMC4wMTMxOThz IGluIDEgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMC41MDU5NDNzICgwLjEyODgxNHMg aW4gOSBHQ3MpCgoxMDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlzdOKAmSAo bm8gbWF0Y2hlcykKTG9jYWwgfCBFbGFwc2VkIHRpbWU6IDAuMzAzMzMycyAoMC4xMjEyMzVz IGluIDkgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMC44MjcwOTZzICgwLjI2MDA3OHMg aW4gMTkgR0NzKQoKMTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkg KGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC41NDMwNzRzICgwLjMzMTcx MnMgaW4gMjUgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMC44MjM0MTFzICgwLjI1Mzc1 N3MgaW4gMTkgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3Ti gJkgKG5vIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjA4ODIzNHMgKDAuNTEx NTA1cyBpbiAzOCBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiAxLjcyMjk0OHMgKDAuNjI5 MzU5cyBpbiA0NyBHQ3MpCgo1MDAgaXRlbXMgaW4g4oCYZGlyZWN0b3J5LWFiYnJldi1hbGlz dOKAmSAoYWxsIG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjMwNjQyN3MgKDAu NzAxOTY1cyBpbiA1MyBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiAxLjc1OTQ1MXMgKDAu NjUzNzAzcyBpbiA0NyBHQ3MpCgoKT3JpZ2luYWwgUGF0Y2hlczoKLS0tLS0tLS0tLS0tLS0t LS0KCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAwLjA3NjYyMHMgKDAuMDEzNDM0cyBpbiAxIEdD cykKVFJBTVAgfCBFbGFwc2VkIHRpbWU6IDMuNTQzMjY2cyAoMC44NjQ3MjlzIGluIDY0IEdD cykKCjEwMCBpdGVtcyBpbiDigJhkaXJlY3RvcnktYWJicmV2LWFsaXN04oCZIChubyBtYXRj aGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC4zNjU0MDJzICgwLjEzMTI5MHMgaW4gMTAg R0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMy43MzY2OTZzICgwLjk1NTQ3NHMgaW4gNzMg R0NzKQoKMTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKGFsbCBt YXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMC42MDgxMjJzICgwLjM0MDY3N3MgaW4g MjYgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogMy44MTg4NjdzICgwLjk1NjM2MXMgaW4g NzMgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkgKG5v IG1hdGNoZXMpCkxvY2FsIHwgRWxhcHNlZCB0aW1lOiAxLjIzMjIyMXMgKDAuNDk5MDk5cyBp biAzOCBHQ3MpClRSQU1QIHwgRWxhcHNlZCB0aW1lOiA0LjU5OTc5OXMgKDEuMzEzNjI5cyBp biAxMDAgR0NzKQoKNTAwIGl0ZW1zIGluIOKAmGRpcmVjdG9yeS1hYmJyZXYtYWxpc3TigJkg KGFsbCBtYXRjaGVzKQpMb2NhbCB8IEVsYXBzZWQgdGltZTogMS40Nzk2MDlzICgwLjcwODkw M3MgaW4gNTQgR0NzKQpUUkFNUCB8IEVsYXBzZWQgdGltZTogNC42NTY5NjNzICgxLjM0NTEy NXMgaW4gMTAxIEdDcykK --------------0D91A40490F7015C7093F245--