From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Gustav_Wikstr=C3=B6m?= Subject: Re: [RFC] [PATCH] Changes to Tag groups - allow nesting and regexps Date: Thu, 5 Mar 2015 02:08:27 +0100 Message-ID: References: <874mr7pcju.fsf@nicolasgoaziou.fr> <87a90345wl.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7b15ae3996f7b60510803403 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39860) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTKH8-0004Mr-PP for emacs-orgmode@gnu.org; Wed, 04 Mar 2015 20:08:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YTKH7-0000kf-J8 for emacs-orgmode@gnu.org; Wed, 04 Mar 2015 20:08:30 -0500 Received: from mail-pa0-x22c.google.com ([2607:f8b0:400e:c03::22c]:42463) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTKH6-0000kX-Ug for emacs-orgmode@gnu.org; Wed, 04 Mar 2015 20:08:29 -0500 Received: by padfa1 with SMTP id fa1so37958566pad.9 for ; Wed, 04 Mar 2015 17:08:27 -0800 (PST) In-Reply-To: <87a90345wl.fsf@nicolasgoaziou.fr> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: =?UTF-8?Q?Gustav_Wikstr=C3=B6m?= , Org Mode List --047d7b15ae3996f7b60510803403 Content-Type: text/plain; charset=UTF-8 Hi, and thanks for the extensive comments! I've fixed the issues raised (IMO), and new patches are attached. I've added a patch for documentation also. >> ,---- >> | #+TAGS: { group : include1 include2 } >> `---- >> >> will only allow one of the tags on any specific headline. [ ] solves >> this. Note that grouptags doesn't care if { } or [ ] is used. The only >> difference is the exclusiveness. I.e both >> >> ,---- >> | #+TAGS: [ group : include1 include2 ] >> | #+TAGS: { group : include1 include2 } >> `---- >> >> will work. With some limitations on the second example due to the way { >> } works since before. > > OK, but is it really needed? What is the point of having two tags of the > same group (or, if we consider nested group tags, the same set of > siblings) at the same time? I'd say it's an unnecessary limitation if group tags have to be exclusive on a headline. The more general case should be allowed and I can see use-cases for it. If you, for example, want to create a taxonomy of your tags and a part of your taxonomy is this: #+TAGS: [ CS : DB OS Software Versioning Programming BI ] What reason is there for Org mode to limit me to only choosing one of the above? Lets say I find an article on the web and want to create a node in my org-mode repository about it. Maybe linking the article and adding a few thoughts. The fictive article may be called "the importance of good database-design in Business intelligence". It seems two tags of the above would fit just fine; DB & BI. Best regards Gustav --047d7b15ae3996f7b60510803403 Content-Type: application/octet-stream; name="0001-org-Grouptags-not-unique-and-can-contain-regexp.patch" Content-Disposition: attachment; filename="0001-org-Grouptags-not-unique-and-can-contain-regexp.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i6vgd7k20 RnJvbSAyZTI0MWE5MzQ5NDdmMTgwZTNjZmY2YjZkZWM4NTJmM2MwY2Q3NjQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAVVZTZXJ2ZXI+CkRhdGU6IFNhdCwgMjQgSmFuIDIwMTUgMDI6NDc6MjYgKzAxMDAKU3Vi amVjdDogW1BBVENIIDEvNF0gb3JnOiBHcm91cHRhZ3Mgbm90IHVuaXF1ZSBhbmQgY2FuIGNvbnRh aW4gcmVnZXhwCgoqIGxpc3Avb3JnLmVsIChvcmctdGFncy1leHBhbmQpOiBHcm91cHRhZ3MgY2Fu IGhhdmUgcmVndWxhciBleHByZXNzaW9ucyBhcwogICJzdWItdGFncyIuCgogIFRoZSByZWd1bGFy IGV4cHJlc3Npb25zIGluIHRoZSBncm91cCBtdXN0IGJlIG1hcmtlZCB1cCB3aXRoaW4geyB9Lgog IEV4YW1wbGUgdXNlOgoKICA6ICMrVEFHUzogWyBQcm9qZWN0IDoge1BALit9IF0KCiAgU2VhcmNo aW5nIGZvciB0aGUgdGFnIFByb2plY3Qgd2lsbCBub3cgbGlzdCBhbGwgdGFncyBhbHNvIGluY2x1 ZGluZwogIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVzIGZvciBQQC4rLiAgR29vZCBmb3IgZXhh bXBsZSBpZiB0YWdzIGZvciBhCiAgY2VydGFpbiBwcm9qZWN0IGlzIHRhZ2dlZCB3aXRoIGEgY29t bW9uIHByb2plY3QtaWRlbnRpZmllciwKICBpLmUuIFBAMjAxNF9PcmdUYWdzLgoKKiBsaXNwL29y Zy5lbCAob3JnLXRhZy1hbGlzdCkgOiBOZXcgc3ltYm9scyBmb3IgZ3JvdXB0YWdzIHdoZW4gdGhl CiAgdGFncyBpbiB0aGUgZ3JvdXAgZG9uJ3QgaGF2ZSB0byBiZSBkaXN0aW5jdCBvbiBhIGhlYWRp bmcuCgogIEdyb3VwdGFncyBoYWQgdG8gcHJldmlvdXNseSBiZSBkZWZpbmVkIHdpdGggeyB9LiAg VGhpcyBzeW50YXggaXMKICBhbHJlYWR5IHVzZWQgZm9yIGV4Y2x1c2l2ZSB0YWdzIGFuZCBHcm91 cHRhZ3MgbmVlZCB0aGVpciBvd24sCiAgbm9uLWV4Y2x1c2l2ZSBzeW50YXguICBUaGlzIGJlaGF2 aW91ciBpcyBhY2hpZXZlZCB3aXRoIFsgXS4gIE5vdGU6IHsKICB9IGNhbiBzdGlsbCBiZSB1c2Vk IGFsc28gZm9yIEdyb3VwdGFncyBidXQgdGhlbiBvbmx5IG9uZSBvZiB0aGUKICBnaXZlbiB0YWdz IGNhbiBiZSB1c2VkIG9uIHRoZSBoZWFkbGluZSBhdCB0aGUgc2FtZSB0aW1lLiAgRXhhbXBsZToK CiAgWyBncm91cCA6IHN1YjEgc3ViMiBdCgogIEdyb3VwdGFncyBhbHNvIGFyZSBub3QgZmlsdGVy ZWQgd2hlbiBzZXR0aW5nIHVwIHRhZ3MuICBUaGlzIG1lYW5zCiAgdGhleSBjYW4gZXhpc3QgbXVs dGlwbGUgdGltZXMgaW4gb3JnLXRhZy1hbGlzdCBsaXN0LiAgaXQgd2lsbCBiZQogIHVzYWJsZSBp ZiBuZXN0aW5nIG9mIGdyb3VwdGFncyBpcyBldmVyIHRvIGJlY29tZSByZWFsaXR5LgoKICBUaGVy ZSBpcyBhIHNsaWdodGx5IGFubm95aW5nIHNpZGUtZWZmZWN0IHdoZW4gc2V0dGluZyB0YWdzIGlu IHRoYXQgYQogIHRhZyB3aGljaCBpcyBib3RoIGEgcGFydCBvZiBhIGdyb3VwdGFnIGFuZCBhIGdy b3VwdGFnIG9mIGl0J3Mgb3duCiAgd2lsbCBnZXQgbXVsdGlwbGUga2V5LWNob2ljZXMgaW4gdGhl IHNlbGVjdGlvbi1VSS4KCiogbGlzcC9vcmcuZWwgKG9yZy0tc2V0dXAtcHJvY2Vzcy10YWdzKTog QWRhcHRpb24gZm9yIHRoZSBhZGRlZCBzeW50YXgKICBmb3Igbm9uLWRpc3RpbmN0IGdyb3VwdGFn cy4KCiogbGlzcC9vcmcuZWwgKG9yZy1mYXN0LXRhZy1zZWxlY3Rpb24pOiBBZGQgc3VwcG9ydCBm b3IgdGhlIGFkZGVkLAogIG5vbi11bmlxdWUsIGdyb3VwdGFnLXN5bnRheC4KLS0tCiBsaXNwL29y Zy5lbCB8IDE0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwgNDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9vcmcuZWwgYi9saXNwL29yZy5lbAppbmRleCBk MDVhN2I4Li44ZDQ3MTczIDEwMDc1NQotLS0gYS9saXNwL29yZy5lbAorKysgYi9saXNwL29yZy5l bApAQCAtMzQ4MiwxMSArMzQ4MiwxNyBAQCBTZWUgdGhlIG1hbnVhbCBmb3IgZGV0YWlscy4iCiAJ ICAgKGxpc3QgOnRhZyAiU3RhcnQgcmFkaW8gZ3JvdXAiCiAJCSAoY29uc3QgOnN0YXJ0Z3JvdXAp CiAJCSAob3B0aW9uIChzdHJpbmcgOnRhZyAiR3JvdXAgZGVzY3JpcHRpb24iKSkpCisJICAgKGxp c3QgOnRhZyAiU3RhcnQgdGFnIGdyb3VwLCBub24gZGlzdGluY3QiCisJCSAoY29uc3QgOnN0YXJ0 Z3JvdXB0YWcpCisJCSAob3B0aW9uIChzdHJpbmcgOnRhZyAiR3JvdXAgZGVzY3JpcHRpb24iKSkp CiAJICAgKGxpc3QgOnRhZyAiR3JvdXAgdGFncyBkZWxpbWl0ZXIiCiAJCSAoY29uc3QgOmdyb3Vw dGFncykpCiAJICAgKGxpc3QgOnRhZyAiRW5kIHJhZGlvIGdyb3VwIgogCQkgKGNvbnN0IDplbmRn cm91cCkKIAkJIChvcHRpb24gKHN0cmluZyA6dGFnICJHcm91cCBkZXNjcmlwdGlvbiIpKSkKKwkg ICAobGlzdCA6dGFnICJFbmQgdGFnIGdyb3VwLCBub24gZGlzdGluY3QiCisJCSAoY29uc3QgOmVu ZGdyb3VwdGFnKQorCQkgKG9wdGlvbiAoc3RyaW5nIDp0YWcgIkdyb3VwIGRlc2NyaXB0aW9uIikp KQogCSAgIChjb25zdCA6dGFnICJOZXcgbGluZSIgKDpuZXdsaW5lKSkpKSkKIAogKGRlZmN1c3Rv bSBvcmctdGFnLXBlcnNpc3RlbnQtYWxpc3QgbmlsCkBAIC01MjE2LDYgKzUyMjIsOCBAQCBGSUxF VEFHUyBpcyBhIGxpc3Qgb2YgdGFncywgYXMgc3RyaW5ncy4iCiAJCSAgICAoY2FzZSAoY2FyIHRh ZykKIAkJICAgICAgKDpzdGFydGdyb3VwICJ7IikKIAkJICAgICAgKDplbmRncm91cCAifSIpCisJ CSAgICAgICg6c3RhcnRncm91cHRhZyAiWyIpCisJCSAgICAgICg6ZW5kZ3JvdXB0YWcgIl0iKQog CQkgICAgICAoOmdyb3VwdGFncyAiOiIpCiAJCSAgICAgICg6bmV3bGluZSAiXFxuIikKIAkJICAg ICAgKG90aGVyd2lzZSAoY29uY2F0IChjYXIgdGFnKQpAQCAtNTIzNiwxMiArNTI0NCwyMCBAQCBG SUxFVEFHUyBpcyBhIGxpc3Qgb2YgdGFncywgYXMgc3RyaW5ncy4iCiAJICgoZXF1YWwgZSAifSIp CiAJICAocHVzaCAnKDplbmRncm91cCkgb3JnLXRhZy1hbGlzdCkKIAkgIChzZXRxIGdyb3VwLWZs YWcgbmlsKSkKKwkgKChlcXVhbCBlICJbIikKKwkgIChwdXNoICcoOnN0YXJ0Z3JvdXB0YWcpIG9y Zy10YWctYWxpc3QpCisJICAod2hlbiAoZXF1YWwgKG50aCAxIHRhZ3MpICI6IikgKHNldHEgZ3Jv dXAtZmxhZyB0KSkpCisJICgoZXF1YWwgZSAiXSIpCisJICAocHVzaCAnKDplbmRncm91cHRhZykg b3JnLXRhZy1hbGlzdCkKKwkgIChzZXRxIGdyb3VwLWZsYWcgbmlsKSkKIAkgKChlcXVhbCBlICI6 IikKIAkgIChwdXNoICcoOmdyb3VwdGFncykgb3JnLXRhZy1hbGlzdCkKIAkgIChzZXRxIGdyb3Vw LWZsYWcgJ2FwcGVuZCkpCiAJICgoZXF1YWwgZSAiXFxuIikgKHB1c2ggJyg6bmV3bGluZSkgb3Jn LXRhZy1hbGlzdCkpCiAJICgoc3RyaW5nLW1hdGNoCi0JICAgKG9yZy1yZSAiXFxgXFwoW1s6YWxu dW06XV9AIyVdK1xcKVxcKD86KFxcKC5cXCkpXFwpP1xcJyIpIGUpCisJICAgKG9yZy1yZSAoY29u Y2F0ICJcXGBcXChbWzphbG51bTpdX0AjJV0rIgorCQkJICAgIlxcfHsuKz99XFwpIiA7IHJlZ3Vs YXIgZXhwcmVzc2lvbgorCQkJICAgIlxcKD86KFxcKC5cXCkpXFwpP1xcJyIpKSBlKQogCSAgKGxl dCAoKHRhZyAobWF0Y2gtc3RyaW5nIDEgZSkpCiAJCShrZXkgKGFuZCAobWF0Y2gtYmVnaW5uaW5n IDIpCiAJCQkgIChzdHJpbmctdG8tY2hhciAobWF0Y2gtc3RyaW5nIDIgZSkpKSkpCkBAIC01MjQ5 LDcgKzUyNjUsOCBAQCBGSUxFVEFHUyBpcyBhIGxpc3Qgb2YgdGFncywgYXMgc3RyaW5ncy4iCiAJ CSAgIChzZXRjYXIgb3JnLXRhZy1ncm91cHMtYWxpc3QKIAkJCSAgIChhcHBlbmQgKGNhciBvcmct dGFnLWdyb3Vwcy1hbGlzdCkgKGxpc3QgdGFnKSkpKQogCQkgIChncm91cC1mbGFnIChwdXNoIChs aXN0IHRhZykgb3JnLXRhZy1ncm91cHMtYWxpc3QpKSkKLQkgICAgKHVubGVzcyAoYXNzb2MgdGFn IG9yZy10YWctYWxpc3QpCisJICAgIDs7IFB1c2ggYWxsIHRhZ3MgaW4gZ3JvdXBzLCBubyBtYXR0 ZXIgaWYgdGhleSBhbHJlYWR5IGV4aXN0LgorCSAgICAodW5sZXNzIChhbmQgKG5vdCBncm91cC1m bGFnKSAoYXNzb2MgdGFnIG9yZy10YWctYWxpc3QpKQogCSAgICAgIChwdXNoIChjb25zIHRhZyBr ZXkpIG9yZy10YWctYWxpc3QpKSkpKSkpKQogICAoc2V0cSBvcmctdGFnLWFsaXN0IChucmV2ZXJz ZSBvcmctdGFnLWFsaXN0KSkpCiAKQEAgLTE0NTQ4LDMyICsxNDU2NSw2OCBAQCBXaGVuIERPV05D QVNFIGlzIG5vbi1uaWwsIGV4cGFuZCBkb3duY2FzZWQgVEFHUy4iCiAgIChpZiBvcmctZ3JvdXAt dGFncwogICAgICAgKGxldCogKChjYXNlLWZvbGQtc2VhcmNoIHQpCiAJICAgICAoc3RhYmxlIG9y Zy1tb2RlLXN5bnRheC10YWJsZSkKLQkgICAgICh0YWwgKG9yIG9yZy10YWctZ3JvdXBzLWFsaXN0 LWZvci1hZ2VuZGEKLQkJICAgICAgb3JnLXRhZy1ncm91cHMtYWxpc3QpKQotCSAgICAgKHRhbCAo aWYgZG93bmNhc2VkCi0JCSAgICAgIChtYXBjYXIgKGxhbWJkYSh0ZykgKG1hcGNhciAnZG93bmNh c2UgdGcpKSB0YWwpIHRhbCkpCi0JICAgICAodG1sIChtYXBjYXIgJ2NhciB0YWwpKQotCSAgICAg KHJ0bm1hdGNoIG1hdGNoKSBycGwpCi0JOzsgQCBhbmQgXyBhcmUgYWxsb3dlZCBhcyB3b3JkLWNv bXBvbmVudHMgaW4gdGFncworCSAgICAgKHRhZ2dyb3VwcyAob3Igb3JnLXRhZy1ncm91cHMtYWxp c3QtZm9yLWFnZW5kYSBvcmctdGFnLWdyb3Vwcy1hbGlzdCkpCisJICAgICAodGFnZ3JvdXBzIChp ZiBkb3duY2FzZWQgKG1hcGNhciAobGFtYmRhICh0ZykgKG1hcGNhciAjJ2Rvd25jYXNlIHRnKSkK KwkJCQkJICAgICAgdGFnZ3JvdXBzKSB0YWdncm91cHMpKQorCSAgICAgKHRhZ2dyb3Vwcy1rZXlz IChtYXBjYXIgIydjYXIgdGFnZ3JvdXBzKSkKKwkgICAgIChyZXR1cm4tbWF0Y2ggKGlmIGRvd25j YXNlZCAoZG93bmNhc2UgbWF0Y2gpIG1hdGNoKSkKKwkgICAgIChjb3VudCAwKQorCSAgICAgcmVn ZXhwcy1pbi1tYXRjaCB0YWdzLWluLWdyb3VwIHJlZ2V4cC1pbi1ncm91cCByZWdleHAtaW4tZ3Jv dXAtZXNjYXBlZCkKKwk7OyBAIGFuZCBfIGFyZSBhbGxvd2VkIGFzIHdvcmQtY29tcG9uZW50cyBp biB0YWdzLgogCShtb2RpZnktc3ludGF4LWVudHJ5ID9AICJ3IiBzdGFibGUpCiAJKG1vZGlmeS1z eW50YXgtZW50cnkgP18gInciIHN0YWJsZSkKLQkod2hpbGUgKGFuZCB0bWwKKwk7OyBUZW1wb3Jh cmlseSByZXBsYWNlIHJlZ2V4cC1leHByZXNzaW9ucyBpbiB0aGUgbWF0Y2gtZXhwcmVzc2lvbi4K Kwkod2hpbGUgKHN0cmluZy1tYXRjaCAiey4rP30iIHJldHVybi1tYXRjaCkKKwkgIChpbmNmIGNv dW50KQorCSAgKHB1c2ggKG1hdGNoLXN0cmluZyAwIHJldHVybi1tYXRjaCkgcmVnZXhwcy1pbi1t YXRjaCkKKwkgIChzZXRxIHJldHVybi1tYXRjaCAocmVwbGFjZS1tYXRjaCAoZm9ybWF0ICI8JWQ+ IiBjb3VudCkgdCBuaWwgcmV0dXJuLW1hdGNoKSkpCisJKHdoaWxlIChhbmQgdGFnZ3JvdXBzLWtl eXMKIAkJICAgICh3aXRoLXN5bnRheC10YWJsZSBzdGFibGUKIAkJICAgICAgKHN0cmluZy1tYXRj aAogCQkgICAgICAgKGNvbmNhdCAiXFwoPzE6WystXT9cXClcXCg/MjpcXDwiCi0JCQkgICAgICAg KHJlZ2V4cC1vcHQgdG1sKSAiXFw+XFwpIikgcnRubWF0Y2gpKSkKLQkgIChsZXQqICgoZGlyICht YXRjaC1zdHJpbmcgMSBydG5tYXRjaCkpCi0JCSAodGFnIChtYXRjaC1zdHJpbmcgMiBydG5tYXRj aCkpCisJCQkgICAgICAgKHJlZ2V4cC1vcHQgdGFnZ3JvdXBzLWtleXMpICJcXD5cXCkiKSByZXR1 cm4tbWF0Y2gpKSkKKwkgIChsZXQqICgoZGlyIChtYXRjaC1zdHJpbmcgMSByZXR1cm4tbWF0Y2gp KQorCQkgKHRhZyAobWF0Y2gtc3RyaW5nIDIgcmV0dXJuLW1hdGNoKSkKIAkJICh0YWcgKGlmIGRv d25jYXNlZCAoZG93bmNhc2UgdGFnKSB0YWcpKSkKLQkgICAgKHNldHEgdG1sIChkZWxldGUgdGFn IHRtbCkpCi0JICAgICh3aGVuIChub3QgKGdldC10ZXh0LXByb3BlcnR5IDAgJ2dyb3VwdGFnICht YXRjaC1zdHJpbmcgMiBydG5tYXRjaCkpKQotCSAgICAgIChzZXRxIHJwbCAoYXBwZW5kIChvcmct dW5pcXVpZnkgcnBsKSAoYXNzb2MgdGFnIHRhbCkpKQotCSAgICAgIChzZXRxIHJwbCAoY29uY2F0 IGRpciAie1xcPCIgKHJlZ2V4cC1vcHQgcnBsKSAiXFw+fSIpKQotCSAgICAgIChpZiAoc3RyaW5n cCBycGwpIChvcmctYWRkLXByb3BzIHJwbCAnKGdyb3VwdGFnIHQpKSkKLQkgICAgICAoc2V0cSBy dG5tYXRjaCAocmVwbGFjZS1tYXRjaCBycGwgdCB0IHJ0bm1hdGNoKSkpKSkKKwkgICAgKHdoZW4g KG5vdCAoZ2V0LXRleHQtcHJvcGVydHkgMCAnZ3JvdXB0YWcgKG1hdGNoLXN0cmluZyAyIHJldHVy bi1tYXRjaCkpKQorCSAgICAgIChzZXRxIHRhZ3MtaW4tZ3JvdXAgKGFzc29jIHRhZyB0YWdncm91 cHMpKQorCSAgICAgIDs7IEZpbHRlciB0YWctcmVnZXhwcyBmcm9tIHRhZ3MuCisJICAgICAgKHNl dHEgcmVnZXhwLWluLWdyb3VwLWVzY2FwZWQKKwkJICAgIChkZWxxIG5pbCAobWFwY2FyIChsYW1i ZGEgKHgpCisJCQkJCShpZiAoc3RyaW5ncCB4KQorCQkJCQkgICAgKGFuZCAoZXF1YWwgInsiIChz dWJzdHJpbmcgeCAwIDEpKQorCQkJCQkJIChlcXVhbCAifSIgKHN1YnN0cmluZyB4IC0xKSkKKwkJ CQkJCSB4KQorCQkJCQkgIHgpKSB0YWdzLWluLWdyb3VwKSkKKwkJICAgIHJlZ2V4cC1pbi1ncm91 cAorCQkgICAgKG1hcGNhciAobGFtYmRhICh4KQorCQkJICAgICAgKHN1YnN0cmluZyB4IDEgLTEp KSByZWdleHAtaW4tZ3JvdXAtZXNjYXBlZCkKKwkJICAgIHRhZ3MtaW4tZ3JvdXAKKwkJICAgIChk ZWxxIG5pbCAobWFwY2FyIChsYW1iZGEgKHgpCisJCQkJCShpZiAoc3RyaW5ncCB4KQorCQkJCQkg ICAgKGFuZCAobm90IChlcXVhbCAieyIgKHN1YnN0cmluZyB4IDAgMSkpKQorCQkJCQkJIChub3Qg KGVxdWFsICJ9IiAoc3Vic3RyaW5nIHggLTEpKSkKKwkJCQkJCSB4KQorCQkJCQkgICAgICAgICAg ICAgICAgICAgICAgIHgpKSB0YWdzLWluLWdyb3VwKSkpCisJICAgICAgOyBJZiBzaW5nbGUtYXMt bGlzdCwgZG8gbm8gbW9yZSBpbiB0aGUgd2hpbGUtbG9vcC4uLgorCSAgICAgIChpZiAobm90IHNp bmdsZS1hcy1saXN0KQorCQkgIChwcm9nbgorCQkgICAgKGlmIHJlZ2V4cC1pbi1ncm91cAorCQkJ KHNldHEgcmVnZXhwLWluLWdyb3VwIChjb25jYXQgIlxcfCIgKG1hcGNvbmNhdCAnaWRlbnRpdHkg cmVnZXhwLWluLWdyb3VwICJcXHwiKSkpKQorCQkgICAgKHNldHEgdGFncy1pbi1ncm91cCAoY29u Y2F0IGRpciAie1xcPCIgKHJlZ2V4cC1vcHQgdGFncy1pbi1ncm91cCkgcmVnZXhwLWluLWdyb3Vw ICAiXFw+fSIpKQorCQkgICAgKGlmIChzdHJpbmdwIHRhZ3MtaW4tZ3JvdXApIChvcmctYWRkLXBy b3BzIHRhZ3MtaW4tZ3JvdXAgJyhncm91cHRhZyB0KSkpCisJCSAgICAoc2V0cSByZXR1cm4tbWF0 Y2ggKHJlcGxhY2UtbWF0Y2ggdGFncy1pbi1ncm91cCB0IHQgcmV0dXJuLW1hdGNoKSkpCisgCQko c2V0cSB0YWdzLWluLWdyb3VwIChhcHBlbmQgcmVnZXhwLWluLWdyb3VwLWVzY2FwZWQgdGFncy1p bi1ncm91cCkpKSkKKyAJICAgIChzZXRxIHRhZ2dyb3Vwcy1rZXlzIChkZWxldGUgdGFnIHRhZ2dy b3Vwcy1rZXlzKSkpKQorCTs7IEFkZCB0aGUgcmVndWxhciBleHByZXNzaW9ucyBiYWNrIGludG8g dGhlIG1hdGNoLWV4cHJlc3Npb24gYWdhaW4uCisJKHdoaWxlIHJlZ2V4cHMtaW4tbWF0Y2gKKwkg IChzZXRxIHJldHVybi1tYXRjaCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChmb3JtYXQgIjwl ZD4iIGNvdW50KQorCQkJCQkJICAgICAgIChwb3AgcmVnZXhwcy1pbi1tYXRjaCkKKwkJCQkJCSAg ICAgICByZXR1cm4tbWF0Y2ggdCB0KSkKKwkgIChkZWNmIGNvdW50KSkKIAkoaWYgc2luZ2xlLWFz LWxpc3QKLQkgICAgKG9yIChyZXZlcnNlIHJwbCkgKGxpc3QgcnRubWF0Y2gpKQotCSAgcnRubWF0 Y2gpKQorCSAgICAoaWYgdGFncy1pbi1ncm91cCB0YWdzLWluLWdyb3VwIChsaXN0IHJldHVybi1t YXRjaCkpCisJICByZXR1cm4tbWF0Y2gpKQogICAgIChpZiBzaW5nbGUtYXMtbGlzdCAobGlzdCAo aWYgZG93bmNhc2VkIChkb3duY2FzZSBtYXRjaCkgbWF0Y2gpKQogICAgICAgbWF0Y2gpKSkKIApA QCAtMTUwMzMsNyArMTUwODYsNyBAQCBSZXR1cm5zIHRoZSBuZXcgdGFncyBzdHJpbmcsIG9yIG5p bCB0byBub3QgY2hhbmdlIHRoZSBjdXJyZW50IHNldHRpbmdzLiIKIAkgb3Ytc3RhcnQgb3YtZW5k IG92LXByZWZpeAogCSAoZXhpdC1hZnRlci1uZXh0IG9yZy1mYXN0LXRhZy1zZWxlY3Rpb24tc2lu Z2xlLWtleSkKIAkgKGRvbmUta2V5d29yZHMgb3JnLWRvbmUta2V5d29yZHMpCi0JIGdyb3VwcyBp bmdyb3VwKQorCSBncm91cHMgaW5ncm91cCBpbnRhZ2dyb3VwKQogICAgIChzYXZlLWV4Y3Vyc2lv bgogICAgICAgKGJlZ2lubmluZy1vZi1saW5lIDEpCiAgICAgICAoaWYgKGxvb2tpbmctYXQKQEAg LTE1MDY2LDI0ICsxNTExOSwzMyBAQCBSZXR1cm5zIHRoZSBuZXcgdGFncyBzdHJpbmcsIG9yIG5p bCB0byBub3QgY2hhbmdlIHRoZSBjdXJyZW50IHNldHRpbmdzLiIKICAgICAgIChzZXRxIHRibCBm dWxsdGFibGUgY2hhciA/YSBjbnQgMCkKICAgICAgICh3aGlsZSAoc2V0cSBlIChwb3AgdGJsKSkK IAkoY29uZAotCSAoKGVxdWFsIChjYXIgZSkgOnN0YXJ0Z3JvdXApCisJICgoZXEgKGNhciBlKSA6 c3RhcnRncm91cCkKIAkgIChwdXNoICcoKSBncm91cHMpIChzZXRxIGluZ3JvdXAgdCkKLQkgICh3 aGVuIChub3QgKD0gY250IDApKQorCSAgKHVubGVzcyAoemVyb3AgY250KQogCSAgICAoc2V0cSBj bnQgMCkKIAkgICAgKGluc2VydCAiXG4iKSkKIAkgIChpbnNlcnQgKGlmIChjZHIgZSkgKGZvcm1h dCAiJXM6ICIgKGNkciBlKSkgIiIpICJ7ICIpKQotCSAoKGVxdWFsIChjYXIgZSkgOmVuZGdyb3Vw KQorCSAoKGVxIChjYXIgZSkgOmVuZGdyb3VwKQogCSAgKHNldHEgaW5ncm91cCBuaWwgY250IDAp CiAJICAoaW5zZXJ0ICJ9IiAoaWYgKGNkciBlKSAoZm9ybWF0ICIgKCVzKSAiIChjZHIgZSkpICIi KSAiXG4iKSkKKwkgKChlcSAoY2FyIGUpIDpzdGFydGdyb3VwdGFnKQorCSAgKHNldHEgaW50YWdn cm91cCB0KQorCSAgKHVubGVzcyAoemVyb3AgY250KQorCSAgICAoc2V0cSBjbnQgMCkKKwkgICAg KGluc2VydCAiXG4iKSkKKwkgIChpbnNlcnQgIlsgIikpCisJICgoZXEgKGNhciBlKSA6ZW5kZ3Jv dXB0YWcpCisJICAoc2V0cSBpbnRhZ2dyb3VwIG5pbCBjbnQgMCkKKwkgIChpbnNlcnQgIl1cbiIp KQogCSAoKGVxdWFsIGUgJyg6bmV3bGluZSkpCi0JICAod2hlbiAobm90ICg9IGNudCAwKSkKKwkg ICh1bmxlc3MgKHplcm9wIGNudCkKIAkgICAgKHNldHEgY250IDApCiAJICAgIChpbnNlcnQgIlxu IikKIAkgICAgKHNldHEgZSAoY2FyIHRibCkpCiAJICAgICh3aGlsZSAoZXF1YWwgKGNhciB0Ymwp ICcoOm5ld2xpbmUpKQogCSAgICAgIChpbnNlcnQgIlxuIikKIAkgICAgICAoc2V0cSB0YmwgKGNk ciB0YmwpKSkpKQotCSAoKGVxdWFsIGUgJyg6Z3JvdXB0YWdzKSkgbmlsKQorCSAoKGVxdWFsIGUg Jyg6Z3JvdXB0YWdzKSkgKGluc2VydCAiIDogIikpCiAJICh0CiAJICAoc2V0cSB0ZyAoY29weS1z ZXF1ZW5jZSAoY2FyIGUpKSBjMiBuaWwpCiAJICAoaWYgKGNkciBlKQpAQCAtMTUwOTcsMjcgKzE1 MTU5LDI3IEBAIFJldHVybnMgdGhlIG5ldyB0YWdzIHN0cmluZywgb3IgbmlsIHRvIG5vdCBjaGFu Z2UgdGhlIGN1cnJlbnQgc2V0dGluZ3MuIgogCQkgIChzZXRxIGNoYXIgKDErIGNoYXIpKSkKIAkg ICAgICAoc2V0cSBjMiBjMSkpCiAJICAgIChzZXRxIGMgKG9yIGMyIGNoYXIpKSkKLQkgIChpZiBp bmdyb3VwIChwdXNoIHRnIChjYXIgZ3JvdXBzKSkpCisJICAod2hlbiBpbmdyb3VwIChwdXNoIHRn IChjYXIgZ3JvdXBzKSkpCiAJICAoc2V0cSB0ZyAob3JnLWFkZC1wcm9wcyB0ZyBuaWwgJ2ZhY2UK IAkgIAkJCSAgKGNvbmQKIAkgIAkJCSAgICgobm90IChhc3NvYyB0ZyB0YWJsZSkpCiAJICAJCQkg ICAgKG9yZy1nZXQtdG9kby1mYWNlIHRnKSkKIAkgIAkJCSAgICgobWVtYmVyIHRnIGN1cnJlbnQp IGMtZmFjZSkKIAkgIAkJCSAgICgobWVtYmVyIHRnIGluaGVyaXRlZCkgaS1mYWNlKSkpKQotCSAg KGlmIChlcXVhbCAoY2FhciB0YmwpIDpncm91cHRhZ3MpCi0JICAgICAgKG9yZy1hZGQtcHJvcHMg dGcgbmlsICdmYWNlICdvcmctdGFnLWdyb3VwKSkKLQkgIChpZiAoYW5kICg9IGNudCAwKSAobm90 IGluZ3JvdXApKSAoaW5zZXJ0ICIgICIpKQorCSAgKHdoZW4gKGVxdWFsIChjYWFyIHRibCkgOmdy b3VwdGFncykKKwkgICAgKG9yZy1hZGQtcHJvcHMgdGcgbmlsICdmYWNlICdvcmctdGFnLWdyb3Vw KSkKKwkgICh3aGVuIChhbmQgKHplcm9wIGNudCkgKG5vdCBpbmdyb3VwKSAobm90IGludGFnZ3Jv dXApKSAoaW5zZXJ0ICIgIikpCiAJICAoaW5zZXJ0ICJbIiBjICJdICIgdGcgKG1ha2Utc3RyaW5n CiAJCQkJICgtIGZ3aWR0aCA0IChsZW5ndGggdGcpKSA/XCApKQogCSAgKHB1c2ggKGNvbnMgdGcg YykgbnRhYmxlKQotCSAgKHdoZW4gKD0gKHNldHEgY250ICgxKyBjbnQpKSBuY29sKQorCSAgKHdo ZW4gKD0gKGluY2YgY250KSBuY29sKQogCSAgICAoaW5zZXJ0ICJcbiIpCi0JICAgIChpZiBpbmdy b3VwIChpbnNlcnQgIiAgIikpCisJICAgICh3aGVuIChvciBpbmdyb3VwIGludGFnZ3JvdXApIChp bnNlcnQgIiAiKSkKIAkgICAgKHNldHEgY250IDApKSkpKQogICAgICAgKHNldHEgbnRhYmxlIChu cmV2ZXJzZSBudGFibGUpKQogICAgICAgKGluc2VydCAiXG4iKQogICAgICAgKGdvdG8tY2hhciAo cG9pbnQtbWluKSkKLSAgICAgIChpZiAobm90IGV4cGVydCkgKG9yZy1maXQtd2luZG93LXRvLWJ1 ZmZlcikpCisgICAgICAodW5sZXNzIGV4cGVydCAob3JnLWZpdC13aW5kb3ctdG8tYnVmZmVyKSkK ICAgICAgIChzZXRxIHJ0bgogCSAgICAoY2F0Y2ggJ2V4aXQKIAkgICAgICAod2hpbGUgdApAQCAt MTUxNDcsNyArMTUyMDksNyBAQCBSZXR1cm5zIHRoZSBuZXcgdGFncyBzdHJpbmcsIG9yIG5pbCB0 byBub3QgY2hhbmdlIHRoZSBjdXJyZW50IHNldHRpbmdzLiIKIAkJICAoc2V0cSBxdWl0LWZsYWcg dCkpCiAJCSAoKD0gYyA/XCApCiAJCSAgKHNldHEgY3VycmVudCBuaWwpCi0JCSAgKGlmIGV4aXQt YWZ0ZXItbmV4dCAoc2V0cSBleGl0LWFmdGVyLW5leHQgJ25vdykpKQorCQkgICh3aGVuIGV4aXQt YWZ0ZXItbmV4dCAoc2V0cSBleGl0LWFmdGVyLW5leHQgJ25vdykpKQogCQkgKCg9IGMgP1x0KQog CQkgIChjb25kaXRpb24tY2FzZSBuaWwKIAkJICAgICAgKHNldHEgdGcgKG9yZy1pY29tcGxldGlu Zy1yZWFkCkBAIC0xNTE2MSwyOCArMTUyMjMsMjggQEAgUmV0dXJucyB0aGUgbmV3IHRhZ3Mgc3Ry aW5nLCBvciBuaWwgdG8gbm90IGNoYW5nZSB0aGUgY3VycmVudCBzZXR0aW5ncy4iCiAJCSAgICAo aWYgKG1lbWJlciB0ZyBjdXJyZW50KQogCQkJKHNldHEgY3VycmVudCAoZGVsZXRlIHRnIGN1cnJl bnQpKQogCQkgICAgICAocHVzaCB0ZyBjdXJyZW50KSkpCi0JCSAgKGlmIGV4aXQtYWZ0ZXItbmV4 dCAoc2V0cSBleGl0LWFmdGVyLW5leHQgJ25vdykpKQorCQkgICh3aGVuIGV4aXQtYWZ0ZXItbmV4 dCAoc2V0cSBleGl0LWFmdGVyLW5leHQgJ25vdykpKQogCQkgKChzZXRxIGUgKHJhc3NvYyBjIHRv ZG8tdGFibGUpIHRnIChjYXIgZSkpCiAJCSAgKHdpdGgtY3VycmVudC1idWZmZXIgYnVmCiAJCSAg ICAoc2F2ZS1leGN1cnNpb24gKG9yZy10b2RvIHRnKSkpCi0JCSAgKGlmIGV4aXQtYWZ0ZXItbmV4 dCAoc2V0cSBleGl0LWFmdGVyLW5leHQgJ25vdykpKQorCQkgICh3aGVuIGV4aXQtYWZ0ZXItbmV4 dCAoc2V0cSBleGl0LWFmdGVyLW5leHQgJ25vdykpKQogCQkgKChzZXRxIGUgKHJhc3NvYyBjIG50 YWJsZSkgdGcgKGNhciBlKSkKIAkJICAoaWYgKG1lbWJlciB0ZyBjdXJyZW50KQogCQkgICAgICAo c2V0cSBjdXJyZW50IChkZWxldGUgdGcgY3VycmVudCkpCiAJCSAgICAobG9vcCBmb3IgZyBpbiBn cm91cHMgZG8KLQkJCSAgKGlmIChtZW1iZXIgdGcgZykKLQkJCSAgICAgIChtYXBjIChsYW1iZGEg KHgpCi0JCQkJICAgICAgKHNldHEgY3VycmVudCAoZGVsZXRlIHggY3VycmVudCkpKQotCQkJCSAg ICBnKSkpCisJCQkgICh3aGVuIChtZW1iZXIgdGcgZykKKwkJCSAgICAobWFwYyAobGFtYmRhICh4 KQorCQkJCSAgICAoc2V0cSBjdXJyZW50IChkZWxldGUgeCBjdXJyZW50KSkpCisJCQkJICBnKSkp CiAJCSAgICAocHVzaCB0ZyBjdXJyZW50KSkKLQkJICAoaWYgZXhpdC1hZnRlci1uZXh0IChzZXRx IGV4aXQtYWZ0ZXItbmV4dCAnbm93KSkpKQorCQkgICh3aGVuIGV4aXQtYWZ0ZXItbmV4dCAoc2V0 cSBleGl0LWFmdGVyLW5leHQgJ25vdykpKSkKIAogCQk7OyBDcmVhdGUgYSBzb3J0ZWQgbGlzdAog CQkoc2V0cSBjdXJyZW50CiAJCSAgICAgIChzb3J0IGN1cnJlbnQKIAkJCSAgICAobGFtYmRhIChh IGIpCiAJCQkgICAgICAoYXNzb2MgYiAoY2RyIChtZW1xIChhc3NvYyBhIG50YWJsZSkgbnRhYmxl KSkpKSkpCi0JCShpZiAoZXEgZXhpdC1hZnRlci1uZXh0ICdub3cpICh0aHJvdyAnZXhpdCB0KSkK KwkJKHdoZW4gKGVxIGV4aXQtYWZ0ZXItbmV4dCAnbm93KSAodGhyb3cgJ2V4aXQgdCkpCiAJCShn b3RvLWNoYXIgKHBvaW50LW1pbikpCiAJCShiZWdpbm5pbmctb2YtbGluZSAyKQogCQkoZGVsZXRl LXJlZ2lvbiAocG9pbnQpIChwb2ludC1hdC1lb2wpKQotLSAKMS45LjEKCg== --047d7b15ae3996f7b60510803403 Content-Type: application/octet-stream; name="0002-org-agenda-Filtering-in-the-agenda-on-grouptags.patch" Content-Disposition: attachment; filename="0002-org-agenda-Filtering-in-the-agenda-on-grouptags.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i6vgd7kz1 RnJvbSA1Yzg1MTVhNjMzNjc0NDcyMDBiODQzN2QzNGY5NDZiZGY0ODY4YzQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAVVZTZXJ2ZXI+CkRhdGU6IFNhdCwgMjQgSmFuIDIwMTUgMDI6NDc6MzUgKzAxMDAKU3Vi amVjdDogW1BBVENIIDIvNF0gb3JnLWFnZW5kYTogRmlsdGVyaW5nIGluIHRoZSBhZ2VuZGEgb24g Z3JvdXB0YWdzCgpGaWx0ZXJpbmcgaW4gdGhlIGFnZW5kYSBvbiBncm91cHRhZ3MgZmlsdGVyIGFs c28gc3ViY2F0ZWdvcmllcy4KRXhjZXB0aW9uIGlmIGZpbHRlciBpcyBhcHBsaWVkIHdpdGggYSAo ZG91YmxlKSBwcmVmaXgtYXJndW1lbnQuCgpGaWx0ZXJpbmcgaW4gdGhlIGFnZW5kYSBvbiBzdWJj YXRlZ29yaWVzIGRvZXMgbm90IGZpbHRlciB0aGUgImFib3ZlIgpsZXZlbHMgYW55bW9yZS4KCklm IGEgZ3JvdXB0YWcgY29udGFpbnMgYSByZWd1bGFyIGV4cHJlc3Npb24gdGhlIHJlZ3VsYXIgZXhw cmVzc2lvbgppcyBhbHNvIHVzZWQgYXMgYSBmaWx0ZXIuCgoqIGxpc3Avb3JnLWFnZW5kYS5lbCAo b3JnLWFnZW5kYS1maWx0ZXItYnktdGFnKTogaW1wcm92ZWQgVUkgYW5kCiAgcmVmYWN0b3Jpbmcu CgogIE5vdyB1c2VzIHRoZSBhcmd1bWVudCBhcmcgYW5kIG9wdGlvbmFsIGFyZ3VtZW50IGV4Y2x1 ZGUgaW5zdGVhZCBvZgogIHN0cmlwIGFuZCBuYXJyb3cuICBBUkcgYmVjYXVzZSB0aGUgYXJndW1l bnQgaGFzIG11bHRpcGxlIHB1cnBvc2VzCiAgYW5kIG1ha2VzIG1vcmUgc2Vuc2UgdGhhbiBzdHJp cCBub3cuICBUaGUgdGVybSBuYXJyb3dpbmcgaXMgY2hhbmdlZAogIHRvIGV4Y2x1ZGUuCgoqIGxp c3Avb3JnLWFnZW5kYS5lbCAob3JnLWFnZW5kYS1maWx0ZXItYnktdGFnLXJlZmluZSk6IG5hbWUg Y2hhbmdlIGluCiAgYXJndW1lbnQgdG8gbWF0Y2ggb3JnLWFnZW5kYS1maWx0ZXItYnktdGFnLgoK KiBsaXNwL29yZy1hZ2VuZGEuZWwgKG9yZy1hZ2VuZGEtZmlsdGVyLW1ha2UtbWF0Y2hlcik6IG5l dyBvcHRpb25hbAogIGFyZ3VtZW50IEVYUEFORCBhbmQgcmVmYWN0b3JpbmcuCgoqIGxpc3Avb3Jn LWFnZW5kYS5lbCAob3JnLWFnZW5kYS1maWx0ZXItbWFrZS1tYXRjaGVyLXRhZy1leHApOiBuZXcK ICBmdW5jdGlvbiwgcHJldmlvdXNseSBiYWtlZCBpbnRvIG9yZy1hZ2VuZGEtZmlsdGVyLW1ha2Ut bWF0Y2hlci4KCiogbGlzcC9vcmctYWdlbmRhLmVsIChvcmctYWdlbmRhLWZpbHRlci1hcHBseSk6 IE5ldyBvcHRpb25hbCBwYXJhbWV0ZXIKICBFWFBBTkQsIHVzZWQgaW4gY2FsbCB0byBvcmctYWdl bmRhLWZpbHRlci1tYWtlLW1hdGNoZXIuCgoqIGxpc3Avb3JnLWFnZW5kYS5lbCAob3JnLWFnZW5k YS1yZWFwcGx5LWZpbHRlcnMpOiBVc2VzIGFub3RoZXIKICBwYXJhbWV0ZXIgKHRoZSBuZXcgb3B0 aW9uYWwgb25lKSBpbiBjYWxsIHRvIG9yZy1hZ2VuZGEtZmlsdGVyLWFwcGx5LgoKKiBsaXNwL29y Zy1hZ2VuZGEuZWwgKG9yZy1hZ2VuZGEtZmluYWxpemUpOiB1c2Ugb2YgbmV3IHBhcmFtZXRlciBp bgogIGNhbGwgdG8gb3JnLWFnZW5kYS1maWx0ZXItYXBwbHkuCgoqIGxpc3Avb3JnLWFnZW5kYS5l bCAob3JnLWFnZW5kYS1yZWRvKTogVXNlIG9mIG5ldyBwYXJhbWV0ZXIgaW4gY2FsbAogIHRvIG9y Zy1hZ2VuZGEtZmlsdGVyLWFwcGx5LgotLS0KIGxpc3Avb3JnLWFnZW5kYS5lbCB8IDE0NiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2xpc3Avb3JnLWFnZW5kYS5lbCBiL2xpc3Avb3JnLWFnZW5kYS5lbAppbmRleCBiMGUxMjI0Li40 ODJmMmY2IDEwMDY0NAotLS0gYS9saXNwL29yZy1hZ2VuZGEuZWwKKysrIGIvbGlzcC9vcmctYWdl bmRhLmVsCkBAIC0zNzYxLDEwICszNzYxLDEwIEBAIEZJTFRFUi1BTElTVCBpcyBhbiBhbGlzdCBv ZiBmaWx0ZXJzIHdlIG5lZWQgdG8gYXBwbHkgd2hlbgogCSAgKG9yZy1hZ2VuZGEtZmlsdGVyLXRv cC1oZWFkbGluZS1hcHBseQogCSAgIG9yZy1hZ2VuZGEtdG9wLWhlYWRsaW5lLWZpbHRlcikpCiAJ KHdoZW4gb3JnLWFnZW5kYS10YWctZmlsdGVyCi0JICAob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkg b3JnLWFnZW5kYS10YWctZmlsdGVyICd0YWcpKQorCSAgKG9yZy1hZ2VuZGEtZmlsdGVyLWFwcGx5 IG9yZy1hZ2VuZGEtdGFnLWZpbHRlciAndGFnIHQpKQogCSh3aGVuIChnZXQgJ29yZy1hZ2VuZGEt dGFnLWZpbHRlciA6cHJlc2V0LWZpbHRlcikKIAkgIChvcmctYWdlbmRhLWZpbHRlci1hcHBseQot CSAgIChnZXQgJ29yZy1hZ2VuZGEtdGFnLWZpbHRlciA6cHJlc2V0LWZpbHRlcikgJ3RhZykpCisJ ICAgKGdldCAnb3JnLWFnZW5kYS10YWctZmlsdGVyIDpwcmVzZXQtZmlsdGVyKSAndGFnIHQpKQog CSh3aGVuIG9yZy1hZ2VuZGEtY2F0ZWdvcnktZmlsdGVyCiAJICAob3JnLWFnZW5kYS1maWx0ZXIt YXBwbHkgb3JnLWFnZW5kYS1jYXRlZ29yeS1maWx0ZXIgJ2NhdGVnb3J5KSkKIAkod2hlbiAoZ2V0 ICdvcmctYWdlbmRhLWNhdGVnb3J5LWZpbHRlciA6cHJlc2V0LWZpbHRlcikKQEAgLTczMzMsNyAr NzMzMyw3IEBAIGluIHRoZSBhZ2VuZGEuIgogCSAgKGNhdCAob3IgY2F0LWZpbHRlciBjYXQtcHJl c2V0KSkKIAkgIChlZmZvcnQgKG9yIGVmZm9ydC1maWx0ZXIgZWZmb3J0LXByZXNldCkpCiAJICAo cmUgKG9yIHJlLWZpbHRlciByZS1wcmVzZXQpKSkKLSAgICAgICh3aGVuIHRhZyAob3JnLWFnZW5k YS1maWx0ZXItYXBwbHkgdGFnICd0YWcpKQorICAgICAgKHdoZW4gdGFnIChvcmctYWdlbmRhLWZp bHRlci1hcHBseSB0YWcgJ3RhZyB0KSkKICAgICAgICh3aGVuIGNhdCAob3JnLWFnZW5kYS1maWx0 ZXItYXBwbHkgY2F0ICdjYXRlZ29yeSkpCiAgICAgICAod2hlbiBlZmZvcnQgKG9yZy1hZ2VuZGEt ZmlsdGVyLWFwcGx5IGVmZm9ydCAnZWZmb3J0KSkKICAgICAgICh3aGVuIHJlICAob3JnLWFnZW5k YS1maWx0ZXItYXBwbHkgcmUgJ3JlZ2V4cCkpKQpAQCAtNzQ1NSwxMyArNzQ1NSwxNiBAQCBXaXRo IHR3byBwcmVmaXggYXJndW1lbnRzLCByZW1vdmUgdGhlIGVmZm9ydCBmaWx0ZXJzLiIKICAgICAo b3JnLWFnZW5kYS1maWx0ZXItc2hvdy1hbGwtZWZmb3J0KSkKICAgKG9yZy1hZ2VuZGEtZmluYWxp emUpKQogCi0oZGVmdW4gb3JnLWFnZW5kYS1maWx0ZXItYnktdGFnIChzdHJpcCAmb3B0aW9uYWwg Y2hhciBuYXJyb3cpCisoZGVmdW4gb3JnLWFnZW5kYS1maWx0ZXItYnktdGFnIChhcmcgJm9wdGlv bmFsIGNoYXIgZXhjbHVkZSkKICAgIktlZXAgb25seSB0aG9zZSBsaW5lcyBpbiB0aGUgYWdlbmRh IGJ1ZmZlciB0aGF0IGhhdmUgYSBzcGVjaWZpYyB0YWcuCiBUaGUgdGFnIGlzIHNlbGVjdGVkIHdp dGggaXRzIGZhc3Qgc2VsZWN0aW9uIGxldHRlciwgYXMgY29uZmlndXJlZC4KLVdpdGggcHJlZml4 IGFyZ3VtZW50IFNUUklQLCByZW1vdmUgYWxsIGxpbmVzIHRoYXQgZG8gaGF2ZSB0aGUgdGFnLgot QSBsaXNwIGNhbGxlciBjYW4gc3BlY2lmeSBDSEFSLiAgTkFSUk9XIG1lYW5zIHRoYXQgdGhlIG5l dyB0YWcgc2hvdWxkIGJlCi11c2VkIHRvIG5hcnJvdyB0aGUgc2VhcmNoIC0gdGhlIGludGVyYWN0 aXZlIHVzZXIgY2FuIGFsc28gcHJlc3MgYC0nIG9yIGArJwotdG8gc3dpdGNoIHRvIG5hcnJvd2lu Zy4iCitXaXRoIGEgc2luZ2xlIGBDLXUnIHByZWZpeCBBUkcsIGV4Y2x1ZGUgdGhlIGFnZW5kYSBz ZWFyY2guICBXaXRoIGEKK2RvdWJsZSBgQy11JyBwcmVmaXggQVJHLCBmaWx0ZXIgdGhlIGxpdGVy YWwgdGFnLiBJLmUuIGRvbid0IGZpbHRlciBvbgorYWxsIGl0cyBncm91cCBtZW1iZXJzLgorCitB IGxpc3AgY2FsbGVyIGNhbiBzcGVjaWZ5IENIQVIuICBFWENMVURFIG1lYW5zIHRoYXQgdGhlIG5l dyB0YWcgc2hvdWxkIGJlCit1c2VkIHRvIGV4Y2x1ZGUgdGhlIHNlYXJjaCAtIHRoZSBpbnRlcmFj dGl2ZSB1c2VyIGNhbiBhbHNvIHByZXNzIGAtJyBvciBgKycKK3RvIHN3aXRjaCBiZXR3ZWVuIGZp bHRlcmluZyBhbmQgZXhjbHVkaW5nLiIKICAgKGludGVyYWN0aXZlICJQIikKICAgKGxldCogKChh bGlzdCBvcmctdGFnLWFsaXN0LWZvci1hZ2VuZGEpCiAJICh0YWctY2hhcnMgKG1hcGNvbmNhdApA QCAtNzQ2OSwyNCArNzQ3MiwyNSBAQCB0byBzd2l0Y2ggdG8gbmFycm93aW5nLiIKIAkJCQkJICAo Y2RyIHgpKQogCQkJCSAgICAgKGNoYXItdG8tc3RyaW5nIChjZHIgeCkpCiAJCQkJICAgIiIpKQot CQkgICAgIGFsaXN0ICIiKSkKKwkJICAgICBvcmctdGFnLWFsaXN0LWZvci1hZ2VuZGEgIiIpKQor CSAoZXhjbHVkZSAoaWYgZXhjbHVkZSBleGNsdWRlIChlcXVhbCBhcmcgJyg0KSkpKQorCSAoZXhw YW5kIChub3QgKGVxdWFsIGFyZyAnKDE2KSkpKQogCSAoaW5oaWJpdC1yZWFkLW9ubHkgdCkKIAkg KGN1cnJlbnQgb3JnLWFnZW5kYS10YWctZmlsdGVyKQogCSBhIG4gdGFnKQogICAgICh1bmxlc3Mg Y2hhcgotICAgICAgKG1lc3NhZ2UKLSAgICAgICAiJXMgYnkgdGFnIFslcyBdLCBbVEFCXSwgJXNb L106b2ZmLCBbKy1dOm5hcnJvdyIKLSAgICAgICAoaWYgbmFycm93ICJOYXJyb3ciICJGaWx0ZXIi KSB0YWctY2hhcnMKLSAgICAgICAoaWYgb3JnLWFnZW5kYS1hdXRvLWV4Y2x1ZGUtZnVuY3Rpb24g IltSRVRdLCAiICIiKSkKLSAgICAgIChzZXRxIGNoYXIgKHJlYWQtY2hhci1leGNsdXNpdmUpKSkK LSAgICAod2hlbiAobWVtYmVyIGNoYXIgJyg/KyA/LSkpCi0gICAgICA7OyBOYXJyb3dpbmcgZG93 bgotICAgICAgKGNvbmQgKChlcXVhbCBjaGFyID8tKSAoc2V0cSBzdHJpcCB0IG5hcnJvdyB0KSkK LQkgICAgKChlcXVhbCBjaGFyID8rKSAoc2V0cSBzdHJpcCBuaWwgbmFycm93IHQpKSkKLSAgICAg IChtZXNzYWdlCi0gICAgICAgIk5hcnJvdyBieSB0YWcgWyVzIF0sIFtUQUJdLCBbL106b2ZmIiB0 YWctY2hhcnMpCi0gICAgICAoc2V0cSBjaGFyIChyZWFkLWNoYXItZXhjbHVzaXZlKSkpCi0gICAg KHdoZW4gKGVxdWFsIGNoYXIgP1x0KQorICAgICAgKHdoaWxlIChub3QgKG1lbXEgY2hhciAoYXBw ZW5kICcoP1x0ID9cciA/LyA/LiA/XCA/cSkKKwkJCQkgICAgIChzdHJpbmctdG8tbGlzdCB0YWct Y2hhcnMpKSkpCisJKG1lc3NhZ2UKKwkgIiVzIGJ5IHRhZyBbJXMgXSwgW1RBQl0sICVzWy9dOm9m ZiwgWysvLV06ZmlsdGVyL2V4Y2x1ZGUlcywgW3FdOnF1aXQiCisJIChpZiBleGNsdWRlICJFeGNs dWRlIiAiRmlsdGVyIikgdGFnLWNoYXJzCisJIChpZiBvcmctYWdlbmRhLWF1dG8tZXhjbHVkZS1m dW5jdGlvbiAiW1JFVF0sICIgIiIpCisJIChpZiBleHBhbmQgIiIgIiwgbm8gZ3JvdXB0YWcgZXhw YW5kIikpCisJKHNldHEgY2hhciAocmVhZC1jaGFyLWV4Y2x1c2l2ZSkpCisJOzsgRXhjbHVkaW5n IG9yIGZpbHRlcmluZyBkb3duCisJKGNvbmQgKChlcSBjaGFyID8tKSAoc2V0cSBleGNsdWRlIHQp KQorCSAgICAgICgoZXEgY2hhciA/KykgKHNldHEgZXhjbHVkZSBuaWwpKSkpKQorICAgICh3aGVu IChlcSBjaGFyID9cdCkKICAgICAgICh1bmxlc3MgKGxvY2FsLXZhcmlhYmxlLXAgJ29yZy1nbG9i YWwtdGFncy1jb21wbGV0aW9uLXRhYmxlIChjdXJyZW50LWJ1ZmZlcikpCiAJKG9yZy1zZXQtbG9j YWwgJ29yZy1nbG9iYWwtdGFncy1jb21wbGV0aW9uLXRhYmxlCiAJCSAgICAgICAob3JnLWdsb2Jh bC10YWdzLWNvbXBsZXRpb24tdGFibGUpKSkKQEAgLTc0OTQsNyArNzQ5OCw3IEBAIHRvIHN3aXRj aCB0byBuYXJyb3dpbmcuIgogCShzZXRxIHRhZyAob3JnLWljb21wbGV0aW5nLXJlYWQKIAkJICAg IlRhZzogIiBvcmctZ2xvYmFsLXRhZ3MtY29tcGxldGlvbi10YWJsZSkpKSkKICAgICAoY29uZAot ICAgICAoKGVxdWFsIGNoYXIgP1xyKQorICAgICAoKGVxIGNoYXIgP1xyKQogICAgICAgKG9yZy1h Z2VuZGEtZmlsdGVyLXNob3ctYWxsLXRhZykKICAgICAgICh3aGVuIG9yZy1hZ2VuZGEtYXV0by1l eGNsdWRlLWZ1bmN0aW9uCiAJKHNldHEgb3JnLWFnZW5kYS10YWctZmlsdGVyIG5pbCkKQEAgLTc1 MDMsMjUgKzc1MDcsMjYgQEAgdG8gc3dpdGNoIHRvIG5hcnJvd2luZy4iCiAJICAgIChpZiBtb2Rp ZmllcgogCQkocHVzaCBtb2RpZmllciBvcmctYWdlbmRhLXRhZy1maWx0ZXIpKSkpCiAJKGlmIChu b3QgKG51bGwgb3JnLWFnZW5kYS10YWctZmlsdGVyKSkKLQkgICAgKG9yZy1hZ2VuZGEtZmlsdGVy LWFwcGx5IG9yZy1hZ2VuZGEtdGFnLWZpbHRlciAndGFnKSkpKQotICAgICAoKGVxdWFsIGNoYXIg Py8pCisJICAgIChvcmctYWdlbmRhLWZpbHRlci1hcHBseSBvcmctYWdlbmRhLXRhZy1maWx0ZXIg J3RhZyBleHBhbmQpKSkpCisgICAgICgoZXEgY2hhciA/LykKICAgICAgIChvcmctYWdlbmRhLWZp bHRlci1zaG93LWFsbC10YWcpCiAgICAgICAod2hlbiAoZ2V0ICdvcmctYWdlbmRhLXRhZy1maWx0 ZXIgOnByZXNldC1maWx0ZXIpCi0JKG9yZy1hZ2VuZGEtZmlsdGVyLWFwcGx5IG9yZy1hZ2VuZGEt dGFnLWZpbHRlciAndGFnKSkpCi0gICAgICgoZXF1YWwgY2hhciA/LiApCisJKG9yZy1hZ2VuZGEt ZmlsdGVyLWFwcGx5IG9yZy1hZ2VuZGEtdGFnLWZpbHRlciAndGFnIGV4cGFuZCkpKQorICAgICAo KGVxIGNoYXIgPy4gKQogICAgICAgKHNldHEgb3JnLWFnZW5kYS10YWctZmlsdGVyCiAJICAgICht YXBjYXIgKGxhbWJkYSh0YWcpIChjb25jYXQgIisiIHRhZykpCiAJCSAgICAob3JnLWdldC1hdC1i b2wgJ3RhZ3MpKSkKLSAgICAgIChvcmctYWdlbmRhLWZpbHRlci1hcHBseSBvcmctYWdlbmRhLXRh Zy1maWx0ZXIgJ3RhZykpCi0gICAgICgob3IgKGVxdWFsIGNoYXIgP1wgKQorICAgICAgKG9yZy1h Z2VuZGEtZmlsdGVyLWFwcGx5IG9yZy1hZ2VuZGEtdGFnLWZpbHRlciAndGFnIGV4cGFuZCkpCisg ICAgICgoZXEgY2hhciA/cSkpIDtJZiBxLCBhYm9ydCAoZXZlbiBpZiB0aGVyZSBpcyBhIHEta2V5 IGZvciBhIHRhZy4uLikKKyAgICAgKChvciAoZXEgY2hhciA/XCApCiAJICAoc2V0cSBhIChyYXNz b2MgY2hhciBhbGlzdCkpCiAJICAoYW5kIHRhZyAoc2V0cSBhIChjb25zIHRhZyBuaWwpKSkpCiAg ICAgICAob3JnLWFnZW5kYS1maWx0ZXItc2hvdy1hbGwtdGFnKQogICAgICAgKHNldHEgdGFnIChj YXIgYSkpCiAgICAgICAoc2V0cSBvcmctYWdlbmRhLXRhZy1maWx0ZXIKLQkgICAgKGNvbnMgKGNv bmNhdCAoaWYgc3RyaXAgIi0iICIrIikgdGFnKQotCQkgIChpZiBuYXJyb3cgY3VycmVudCBuaWwp KSkKLSAgICAgIChvcmctYWdlbmRhLWZpbHRlci1hcHBseSBvcmctYWdlbmRhLXRhZy1maWx0ZXIg J3RhZykpCisJICAgIChjb25zIChjb25jYXQgKGlmIGV4Y2x1ZGUgIi0iICIrIikgdGFnKQorCQkg IGN1cnJlbnQpKQorICAgICAgKG9yZy1hZ2VuZGEtZmlsdGVyLWFwcGx5IG9yZy1hZ2VuZGEtdGFn LWZpbHRlciAndGFnIGV4cGFuZCkpCiAgICAgICh0IChlcnJvciAiSW52YWxpZCB0YWcgc2VsZWN0 aW9uIGNoYXJhY3RlciAlYyIgY2hhcikpKSkpCiAKIChkZWZ1biBvcmctYWdlbmRhLWdldC1yZXBy ZXNlbnRlZC10YWdzICgpCkBAIC03NTM1LDEzICs3NTQwLDE1IEBAIHRvIHN3aXRjaCB0byBuYXJy b3dpbmcuIgogCSAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICd0YWdzKSkpKQogICAg IHRhZ3MpKQogCi0oZGVmdW4gb3JnLWFnZW5kYS1maWx0ZXItYnktdGFnLXJlZmluZSAoc3RyaXAg Jm9wdGlvbmFsIGNoYXIpCisoZGVmdW4gb3JnLWFnZW5kYS1maWx0ZXItYnktdGFnLXJlZmluZSAo YXJnICZvcHRpb25hbCBjaGFyKQogICAiUmVmaW5lIHRoZSBjdXJyZW50IGZpbHRlci4gIFNlZSBg b3JnLWFnZW5kYS1maWx0ZXItYnktdGFnJy4iCiAgIChpbnRlcmFjdGl2ZSAiUCIpCi0gIChvcmct YWdlbmRhLWZpbHRlci1ieS10YWcgc3RyaXAgY2hhciAncmVmaW5lKSkKKyAgKG9yZy1hZ2VuZGEt ZmlsdGVyLWJ5LXRhZyBhcmcgY2hhciAncmVmaW5lKSkKIAotKGRlZnVuIG9yZy1hZ2VuZGEtZmls dGVyLW1ha2UtbWF0Y2hlciAoZmlsdGVyIHR5cGUpCi0gICJDcmVhdGUgdGhlIGZvcm0gdGhhdCB0 ZXN0cyBhIGxpbmUgZm9yIGFnZW5kYSBmaWx0ZXIuIgorKGRlZnVuIG9yZy1hZ2VuZGEtZmlsdGVy LW1ha2UtbWF0Y2hlciAoZmlsdGVyIHR5cGUgJm9wdGlvbmFsIGV4cGFuZCkKKyAgIkNyZWF0ZSB0 aGUgZm9ybSB0aGF0IHRlc3RzIGEgbGluZSBmb3IgYWdlbmRhIGZpbHRlci4gIE9wdGlvbmFsCith cmd1bWVudCBFWFBBTkQgY2FuIGJlIHVzZWQgZm9yIHRoZSBUWVBFIHRhZyBhbmQgd2lsbCBleHBh bmQgdGhlCit0YWdzIGluIHRoZSBGSUxURVIgaWYgYW55IG9mIHRoZSB0YWdzIGluIEZJTFRFUiBh cmUgZ3JvdXB0YWdzLiIKICAgKGxldCAoZiBmMSkKICAgICAoY29uZAogICAgICA7OyBUYWcgZmls dGVyCkBAIC03NTUxLDI2ICs3NTU4LDExIEBAIHRvIHN3aXRjaCB0byBuYXJyb3dpbmcuIgogCSAg ICAgKGFwcGVuZCAoZ2V0ICdvcmctYWdlbmRhLXRhZy1maWx0ZXIgOnByZXNldC1maWx0ZXIpCiAJ CSAgICAgZmlsdGVyKSkpCiAgICAgICAoZG9saXN0ICh4IGZpbHRlcikKLQkobGV0ICgobmZpbHRl ciAob3JnLWFnZW5kYS1maWx0ZXItZXhwYW5kLXRhZ3MgZmlsdGVyKSkgbmYgbmYxCi0JICAgICAg KGZmdW5jCi0JICAgICAgIChsYW1iZGEgKG5mMCBuZjAxIGZsdHIgbm90Z3JvdXAgb3ApCi0JCSAo ZG9saXN0ICh4IGZsdHIpCi0JCSAgIChpZiAobWVtYmVyIHggJygiLSIgIisiKSkKLQkJICAgICAg IChzZXRxIG5mMDEgKGlmIChlcXVhbCB4ICItIikgJ3RhZ3MgJyhub3QgdGFncykpKQotCQkgICAg IChzZXRxIG5mMDEgKGxpc3QgJ21lbWJlciAoZG93bmNhc2UgKHN1YnN0cmluZyB4IDEpKQotCQkJ CSAgICAgICd0YWdzKSkKLQkJICAgICAod2hlbiAoZXF1YWwgKHN0cmluZy10by1jaGFyIHgpID8t KQotCQkgICAgICAgKHNldHEgbmYwMSAobGlzdCAnbm90IG5mMDEpKQotCQkgICAgICAgKHdoZW4g KG5vdCBub3Rncm91cCkgKHNldHEgb3AgJ2FuZCkpKSkKLQkJICAgKHB1c2ggbmYwMSBuZjApKQot CQkgKGlmIG5vdGdyb3VwCi0JCSAgICAgKHB1c2ggKGNvbnMgJ2FuZCBuZjApIGYpCi0JCSAgIChw dXNoIChjb25zIChvciBvcCAnb3IpIG5mMCkgZikpKSkpCi0JICAoY29uZCAoKGVxdWFsIGZpbHRl ciAnKCIrIikpCi0JCSAoc2V0cSBmIChsaXN0IChsaXN0ICdub3QgJ3RhZ3MpKSkpCi0JCSgoZXF1 YWwgbmZpbHRlciBmaWx0ZXIpCi0JCSAoZnVuY2FsbCBmZnVuYyBmMSBmIGZpbHRlciB0IG5pbCkp Ci0JCSh0IChmdW5jYWxsIGZmdW5jIG5mMSBuZiBuZmlsdGVyIG5pbCBuaWwpKSkpKSkKKwkobGV0 ICgob3AgKHN0cmluZy10by1jaGFyIHgpKSkKKwkgIChpZiBleHBhbmQgKHNldHEgeCAob3JnLWFn ZW5kYS1maWx0ZXItZXhwYW5kLXRhZ3MgKGxpc3QgeCkgdCkpCisJICAgIChzZXRxIHggKGxpc3Qg eCkpKQorCSAgKHNldHEgZjEgKG9yZy1hZ2VuZGEtZmlsdGVyLW1ha2UtbWF0Y2hlci10YWctZXhw IHggb3ApKQorCSAgKHB1c2ggZjEgZikpKSkKICAgICAgOzsgQ2F0ZWdvcnkgZmlsdGVyCiAgICAg ICgoZXEgdHlwZSAnY2F0ZWdvcnkpCiAgICAgICAoc2V0cSBmaWx0ZXIKQEAgLTc2MDMsNiArNzU5 NSwzMiBAQCB0byBzd2l0Y2ggdG8gbmFycm93aW5nLiIKIAkocHVzaCAob3JnLWFnZW5kYS1maWx0 ZXItZWZmb3J0LWZvcm0geCkgZikpKSkKICAgICAoY29ucyAnYW5kIChucmV2ZXJzZSBmKSkpKQog CisoZGVmdW4gb3JnLWFnZW5kYS1maWx0ZXItbWFrZS1tYXRjaGVyLXRhZy1leHAgKHRhZ3Mgb3Ap CisgICJDcmVhdGUgdGhlIGZvcm0gdGhhdCB0ZXN0cyBhIGxpbmUgZm9yIGFnZW5kYSBmaWx0ZXIg Zm9yCit0YWctZXhwcmVzc2lvbnMuICBSZXR1cm4gYSBtYXRjaC1leHByZXNzaW9uIGdpdmVuIFRB R1MuICBPUCBpcyBhbgorb3BlcmF0b3Igb2YgdHlwZSBDSEFSIHRoYXQgYWxsb3dzIHRoZSBmdW5j dGlvbiB0byBzZXQgdGhlIHJpZ2h0Citzd2l0Y2hlcyBpbiB0aGUgcmV0dXJuZWQgZm9ybS4iCisg IChsZXQgKGYgZjEpIDtmID0gcmV0dXJuIGV4cHJlc3Npb24uIGYxID0gd29ya2luZy1hcmVhCisg ICAgKGRvbGlzdCAoeCB0YWdzKQorICAgICAgKGxldCogKCh0YWcgKHN1YnN0cmluZyB4IDEpKQor CSAgICAgKGlzcmVnZXhwIChhbmQgKGVxdWFsICJ7IiAoc3Vic3RyaW5nIHRhZyAwIDEpKQorCQkJ ICAgIChlcXVhbCAifSIgKHN1YnN0cmluZyB0YWcgLTEpKSkpCisJICAgICByZWdleHApCisJKGNv bmQKKwkgKGlzcmVnZXhwCisJICAoc2V0cSByZWdleHAgKHN1YnN0cmluZyB0YWcgMSAtMSkpCisJ ICAoc2V0cSBmMSAobGlzdCAnc3RyaW5nLW1hdGNoIHJlZ2V4cCAnKGFwcGx5ICdjb25jYXQgdGFn cykpKSkKKwkgKHQKKwkgIChzZXRxIGYxIChsaXN0ICdtZW1iZXIgKGRvd25jYXNlIHRhZykgJ3Rh Z3MpKSkpCisJKHdoZW4gKGVxIG9wID8tKQorCSAgICAoc2V0cSBmMSAobGlzdCAnbm90IGYxKSkp KQorICAgICAgKHB1c2ggZjEgZikpCisgICAgOzsgQW55IG9mIHRoZSBleHByZXNzaW9ucyBjYW4g bWF0Y2ggaWYgb3AgPSArCisgICAgOzsgYWxsIG11c3QgbWF0Y2ggaWYgdGhlIG9wZXJhdG9yIGlz IC0uCisgICAgKGlmIChlcSBvcCA/LSkKKwkoY29ucyAnYW5kIGYpCisgICAgICAoY29ucyAnb3Ig ZikpKSkKKwogKGRlZnVuIG9yZy1hZ2VuZGEtZmlsdGVyLWVmZm9ydC1mb3JtIChlKQogICAiUmV0 dXJuIHRoZSBmb3JtIHRvIGNvbXBhcmUgdGhlIGVmZm9ydCBvZiB0aGUgY3VycmVudCBsaW5lIHdp dGggd2hhdCBFIHNheXMuCiBFIGxvb2tzIGxpa2UgXCIrPDI6MjVcIi4iCkBAIC03NjQxLDEyICs3 NjU5LDE0IEBAIFdoZW4gTk8tT1BFUkFUT1IgaXMgbm9uLW5pbCwgZG8gbm90IGFkZCB0aGUgKyBv cGVyYXRvciB0byByZXR1cm5lZCB0YWdzLiIKIAkocmV2ZXJzZSBydG4pKQogICAgIGZpbHRlcikp CiAKLShkZWZ1biBvcmctYWdlbmRhLWZpbHRlci1hcHBseSAoZmlsdGVyIHR5cGUpCi0gICJTZXQg RklMVEVSIGFzIHRoZSBuZXcgYWdlbmRhIGZpbHRlciBhbmQgYXBwbHkgaXQuIgorKGRlZnVuIG9y Zy1hZ2VuZGEtZmlsdGVyLWFwcGx5IChmaWx0ZXIgdHlwZSAmb3B0aW9uYWwgZXhwYW5kKQorICAi U2V0IEZJTFRFUiBhcyB0aGUgbmV3IGFnZW5kYSBmaWx0ZXIgYW5kIGFwcGx5IGl0LiAgT3B0aW9u YWwKK2FyZ3VtZW50IEVYUEFORCBjYW4gYmUgdXNlZCBmb3IgdGhlIFRZUEUgdGFnIGFuZCB3aWxs IGV4cGFuZCB0aGUKK3RhZ3MgaW4gdGhlIEZJTFRFUiBpZiBhbnkgb2YgdGhlIHRhZ3MgaW4gRklM VEVSIGFyZSBncm91cHRhZ3MuIgogICA7OyBEZWFjdGl2YXRlIGBvcmctYWdlbmRhLWVudHJ5LXRl eHQtbW9kZScgd2hlbiBmaWx0ZXJpbmcKICAgKGlmIG9yZy1hZ2VuZGEtZW50cnktdGV4dC1tb2Rl IChvcmctYWdlbmRhLWVudHJ5LXRleHQtbW9kZSkpCiAgIChsZXQgKHRhZ3MgY2F0IHR4dCkKLSAg ICAoc2V0cSBvcmctYWdlbmRhLWZpbHRlci1mb3JtIChvcmctYWdlbmRhLWZpbHRlci1tYWtlLW1h dGNoZXIgZmlsdGVyIHR5cGUpKQorICAgIChzZXRxIG9yZy1hZ2VuZGEtZmlsdGVyLWZvcm0gKG9y Zy1hZ2VuZGEtZmlsdGVyLW1ha2UtbWF0Y2hlciBmaWx0ZXIgdHlwZSBleHBhbmQpKQogICAgIDs7 IE9ubHkgc2V0IGBvcmctYWdlbmRhLWZpbHRlcmVkLWJ5LWNhdGVnb3J5JyB0byB0IHdoZW4gYSB1 bmlxdWUKICAgICA7OyBjYXRlZ29yeSBpcyB1c2VkIGFzIHRoZSBmaWx0ZXI6CiAgICAgKHNldHEg b3JnLWFnZW5kYS1maWx0ZXJlZC1ieS1jYXRlZ29yeQpAQCAtNzY1OCwxMSArNzY3OCw3IEBAIFdo ZW4gTk8tT1BFUkFUT1IgaXMgbm9uLW5pbCwgZG8gbm90IGFkZCB0aGUgKyBvcGVyYXRvciB0byBy ZXR1cm5lZCB0YWdzLiIKICAgICAgICh3aGlsZSAobm90IChlb2JwKSkKIAkoaWYgKG9yZy1nZXQt YXQtYm9sICdvcmctbWFya2VyKQogCSAgICAocHJvZ24KLQkgICAgICAoc2V0cSB0YWdzIDsgdXNl ZCBpbiBldmFsCi0JCSAgICAoYXBwbHkgJ2FwcGVuZAotCQkJICAgKG1hcGNhciAobGFtYmRhIChm KQotCQkJCSAgICAgKG9yZy1hZ2VuZGEtZmlsdGVyLWV4cGFuZC10YWdzIChsaXN0IGYpIHQpKQot CQkJCSAgIChvcmctZ2V0LWF0LWJvbCAndGFncykpKQorCSAgICAgIChzZXRxIHRhZ3MgKG9yZy1n ZXQtYXQtYm9sICd0YWdzKQogCQkgICAgY2F0IChvcmctZ2V0LWF0LWVvbCAnb3JnLWNhdGVnb3J5 IDEpCiAJCSAgICB0eHQgKG9yZy1nZXQtYXQtZW9sICd0eHQgMSkpCiAJICAgICAgKGlmIChub3Qg KGV2YWwgb3JnLWFnZW5kYS1maWx0ZXItZm9ybSkpCkBAIC05OTczLDcgKzk5ODksNyBAQCBjdXJy ZW50IEhIOk1NIHRpbWUuIgogKGRlZnVuIG9yZy1hZ2VuZGEtcmVhcHBseS1maWx0ZXJzICgpCiAg ICJSZS1hcHBseSBhbGwgYWdlbmRhIGZpbHRlcnMuIgogICAobWFwY2FyCi0gICAobGFtYmRhKGYp ICh3aGVuIChjYXIgZikgKG9yZy1hZ2VuZGEtZmlsdGVyLWFwcGx5IChjYXIgZikgKGNhZHIgZikp KSkKKyAgIChsYW1iZGEoZikgKHdoZW4gKGNhciBmKSAob3JnLWFnZW5kYS1maWx0ZXItYXBwbHkg KGNhciBmKSAoY2FkciBmKSB0KSkpCiAgICBgKCgsb3JnLWFnZW5kYS10YWctZmlsdGVyIHRhZykK ICAgICAgKCxvcmctYWdlbmRhLWNhdGVnb3J5LWZpbHRlciBjYXRlZ29yeSkKICAgICAgKCxvcmct YWdlbmRhLXJlZ2V4cC1maWx0ZXIgcmVnZXhwKQotLSAKMS45LjEKCg== --047d7b15ae3996f7b60510803403 Content-Type: application/octet-stream; name="0003-org-Nesting-grouptags.patch" Content-Disposition: attachment; filename="0003-org-Nesting-grouptags.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i6vgd7l52 RnJvbSBlMDQxYTU1MmY0ZDk5ZDUwM2U3MGY4MDhkYmYwMGYwYjE3NTYzNjVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAVVZTZXJ2ZXI+CkRhdGU6IFNhdCwgMjQgSmFuIDIwMTUgMDI6NDc6NDcgKzAxMDAKU3Vi amVjdDogW1BBVENIIDMvNF0gb3JnOiBOZXN0aW5nIGdyb3VwdGFncwoKKiBsaXNwL29yZy5lbCAo b3JnLXRhZ3MtZXhwYW5kKTogTmVzdGluZyBncm91cHRhZ3MuCgogIEFsbG93aW5nIHN1YnRhZ3Mg dG8gYmUgZGVmaW5lZCBhcyBncm91cHMgdGhlbXNlbHZlcy4KCiAgOiAjK1RBR1M6IFsgR3JvdXAg OiBTdWJPbmUoMSkgU3ViVHdvIF0KICA6ICMrVEFHUzogWyBTdWJPbmUgOiBTdWJPbmUxIFN1Yk9u ZTIgXQogIDogIytUQUdTOiBbIFN1YlR3byA6IFN1YlR3bzEgU3ViVHdvMiBdCgogIFNob3VsZCBi ZSBzZWVuIGFzIGEgdHJlZSBvZiB0YWdzOgogIC0gR3JvdXAKICAgIC0gU3ViT25lCiAgICAgIC0g U3ViT25lMQogICAgICAtIFN1Yk9uZTIKICAgIC0gU3ViVHdvCiAgICAgIC0gU3ViVHdvMQogICAg ICAtIFN1YlR3bzIKCiAgU2VhcmNoaW5nIGZvciAiR3JvdXAiIHNob3VsZCByZXR1cm4gYWxsIHRh Z3MgZGVmaW5lZCBhYm92ZS4KLS0tCiBsaXNwL29yZy5lbCB8IDI1ICsrKysrKysrKysrKysrKysr KysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2xpc3Avb3JnLmVsIGIvbGlzcC9vcmcuZWwKaW5kZXggOGQ0NzE3My4u MDQxYzE5MiAxMDA3NTUKLS0tIGEvbGlzcC9vcmcuZWwKKysrIGIvbGlzcC9vcmcuZWwKQEAgLTE0 NTM4LDcgKzE0NTM4LDcgQEAgU2VlIGFsc28gYG9yZy1zY2FuLXRhZ3MnLgogCQkJICBtYXRjaGVy KSkpCiAgICAgKGNvbnMgbWF0Y2gwIG1hdGNoZXIpKSkKIAotKGRlZnVuIG9yZy10YWdzLWV4cGFu ZCAobWF0Y2ggJm9wdGlvbmFsIHNpbmdsZS1hcy1saXN0IGRvd25jYXNlZCkKKyhkZWZ1biBvcmct dGFncy1leHBhbmQgKG1hdGNoICZvcHRpb25hbCBzaW5nbGUtYXMtbGlzdCBkb3duY2FzZWQgdGFn cy1hbHJlYWR5LWV4cGFuZGVkKQogICAiRXhwYW5kIGdyb3VwIHRhZ3MgaW4gTUFUQ0guCiAKIFRo aXMgcmVwbGFjZXMgZXZlcnkgZ3JvdXAgdGFnIGluIE1BVENIIHdpdGggYSByZWdleHAgdGFnIHNl YXJjaC4KQEAgLTE0NTcxLDYgKzE0NTcxLDcgQEAgV2hlbiBET1dOQ0FTRSBpcyBub24tbmlsLCBl eHBhbmQgZG93bmNhc2VkIFRBR1MuIgogCSAgICAgKHRhZ2dyb3Vwcy1rZXlzIChtYXBjYXIgIydj YXIgdGFnZ3JvdXBzKSkKIAkgICAgIChyZXR1cm4tbWF0Y2ggKGlmIGRvd25jYXNlZCAoZG93bmNh c2UgbWF0Y2gpIG1hdGNoKSkKIAkgICAgIChjb3VudCAwKQorCSAgICAgKHdvcmstYWxyZWFkeS1l eHBhbmRlZCB0YWdzLWFscmVhZHktZXhwYW5kZWQpCiAJICAgICByZWdleHBzLWluLW1hdGNoIHRh Z3MtaW4tZ3JvdXAgcmVnZXhwLWluLWdyb3VwIHJlZ2V4cC1pbi1ncm91cC1lc2NhcGVkKQogCTs7 IEAgYW5kIF8gYXJlIGFsbG93ZWQgYXMgd29yZC1jb21wb25lbnRzIGluIHRhZ3MuCiAJKG1vZGlm eS1zeW50YXgtZW50cnkgP0AgInciIHN0YWJsZSkKQEAgLTE0NTg4LDggKzE0NTg5LDI0IEBAIFdo ZW4gRE9XTkNBU0UgaXMgbm9uLW5pbCwgZXhwYW5kIGRvd25jYXNlZCBUQUdTLiIKIAkgIChsZXQq ICgoZGlyIChtYXRjaC1zdHJpbmcgMSByZXR1cm4tbWF0Y2gpKQogCQkgKHRhZyAobWF0Y2gtc3Ry aW5nIDIgcmV0dXJuLW1hdGNoKSkKIAkJICh0YWcgKGlmIGRvd25jYXNlZCAoZG93bmNhc2UgdGFn KSB0YWcpKSkKLQkgICAgKHdoZW4gKG5vdCAoZ2V0LXRleHQtcHJvcGVydHkgMCAnZ3JvdXB0YWcg KG1hdGNoLXN0cmluZyAyIHJldHVybi1tYXRjaCkpKQorCSAgICAodW5sZXNzIChvciAoZ2V0LXRl eHQtcHJvcGVydHkgMCAnZ3JvdXB0YWcgKG1hdGNoLXN0cmluZyAyIHJldHVybi1tYXRjaCkpCisJ CSAgICAgICAgKG1lbWJlciB0YWcgd29yay1hbHJlYWR5LWV4cGFuZGVkKSkKIAkgICAgICAoc2V0 cSB0YWdzLWluLWdyb3VwIChhc3NvYyB0YWcgdGFnZ3JvdXBzKSkKKwkgICAgICAocHVzaCB0YWcg d29yay1hbHJlYWR5LWV4cGFuZGVkKQorCSAgICAgIDs7IFJlY3Vyc2l2ZWx5IGV4cGFuZCBlYWNo IHRhZyBpbiB0aGUgZ3JvdXAsIGlmIHRoZSB0YWcgaGFzbid0CisJICAgICAgOzsgYWxyZWFkeSBi ZWVuIGV4cGFuZGVkLiAgUmVzdG9yZSB0aGUgbWF0Y2gtZGF0YSBhZnRlciBhbGwgcmVjdXJzaXZl IGNhbGxzLgorCSAgICAgIChzYXZlLW1hdGNoLWRhdGEKKwkJICAgIChsZXQgKHRhZ3MtZXhwYW5k ZWQpCisJCSAgICAgIChkb2xpc3QgKHggKGNkciB0YWdzLWluLWdyb3VwKSkKKwkJCShpZiAoYW5k IChtZW1iZXIgeCB0YWdncm91cHMta2V5cykKKwkJCQkgKG5vdCAobWVtYmVyIHggd29yay1hbHJl YWR5LWV4cGFuZGVkKSkpCisJCQkgICAgKHNldHEgdGFncy1leHBhbmRlZCAoZGVsZXRlLWR1cHMK KwkJCQkJCSAoYXBwZW5kIChvcmctdGFncy1leHBhbmQgeCB0IGRvd25jYXNlZCB3b3JrLWFscmVh ZHktZXhwYW5kZWQpCisJCQkJCQkJIHRhZ3MtZXhwYW5kZWQpKSkKKwkJCSAgKHNldHEgdGFncy1l eHBhbmRlZCAoYXBwZW5kIChsaXN0IHgpIHRhZ3MtZXhwYW5kZWQpKSkKKwkJCShzZXRxIHdvcmst YWxyZWFkeS1leHBhbmRlZCAoZGVsZXRlLWR1cHMgKGFwcGVuZCB0YWdzLWV4cGFuZGVkIHdvcmst YWxyZWFkeS1leHBhbmRlZCkpKSkKKwkJICAgICAgKHNldHEgdGFncy1pbi1ncm91cCAoZGVsZXRl LWR1cHMgKGNvbnMgKGNhciB0YWdzLWluLWdyb3VwKQorCQkJCQkJCSAgICAgdGFncy1leHBhbmRl ZCkpKSkpCiAJICAgICAgOzsgRmlsdGVyIHRhZy1yZWdleHBzIGZyb20gdGFncy4KIAkgICAgICAo c2V0cSByZWdleHAtaW4tZ3JvdXAtZXNjYXBlZAogCQkgICAgKGRlbHEgbmlsIChtYXBjYXIgKGxh bWJkYSAoeCkKQEAgLTE0NjA3LDggKzE0NjI0LDggQEAgV2hlbiBET1dOQ0FTRSBpcyBub24tbmls LCBleHBhbmQgZG93bmNhc2VkIFRBR1MuIgogCQkJCQkgICAgKGFuZCAobm90IChlcXVhbCAieyIg KHN1YnN0cmluZyB4IDAgMSkpKQogCQkJCQkJIChub3QgKGVxdWFsICJ9IiAoc3Vic3RyaW5nIHgg LTEpKSkKIAkJCQkJCSB4KQotCQkJCQkgICAgICAgICAgICAgICAgICAgICAgIHgpKSB0YWdzLWlu LWdyb3VwKSkpCi0JICAgICAgOyBJZiBzaW5nbGUtYXMtbGlzdCwgZG8gbm8gbW9yZSBpbiB0aGUg d2hpbGUtbG9vcC4uLgorCQkJCQkgIHgpKSB0YWdzLWluLWdyb3VwKSkpCisJICAgICAgOzsgSWYg c2luZ2xlLWFzLWxpc3QsIGRvIG5vIG1vcmUgaW4gdGhlIHdoaWxlLWxvb3AuCiAJICAgICAgKGlm IChub3Qgc2luZ2xlLWFzLWxpc3QpCiAJCSAgKHByb2duCiAJCSAgICAoaWYgcmVnZXhwLWluLWdy b3VwCi0tIAoxLjkuMQoK --047d7b15ae3996f7b60510803403 Content-Type: application/octet-stream; name="0004-org.texi-Complement-info-for-group-tags.patch" Content-Disposition: attachment; filename="0004-org.texi-Complement-info-for-group-tags.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i6vgd7l93 RnJvbSBkODdmZGM3OWRiMDFkZjY2MmJjZDhjYjZhNDEzNjdkNTA3ZGVmNWM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAVVZTZXJ2ZXI+CkRhdGU6IFRodSwgNSBNYXIgMjAxNSAwMTo0NTo1NyArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNC80XSBvcmcudGV4aTogQ29tcGxlbWVudCBpbmZvIGZvciBncm91cCB0YWdz Cgpncm91cCB0YWdzIGFyZSBtb3JlIGdlbmVyYWwgYW5kIGEgbmFtZS1jaGFuZ2UgKG9yIGFkZGl0 aW9uKSBpcyBtYWRlIGluCnRoZSBtYW51YWw6IHRhZyBncm91cHMgYXJlIG5vdyBjYWxsZWQgdGFn IGhpZXJhcmNoeS4KCkFkZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWRkZWQgdGFnIGhpZXJh cmNoeSBmdW5jdGlvbmFsaXR5IGFuZAp1c2UtY2FzZXMuCi0tLQogZG9jL29yZy50ZXhpIHwgOTkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL29yZy50ZXhpIGIvZG9jL29yZy50ZXhpCmluZGV4IGMwZWE2NjIuLmE0 MGZhOTggMTAwNjQ0Ci0tLSBhL2RvYy9vcmcudGV4aQorKysgYi9kb2Mvb3JnLnRleGkKQEAgLTQz Miw3ICs0MzIsNyBAQCBUYWdzCiAKICogVGFnIGluaGVyaXRhbmNlOjogICAgICAgICAgICAgVGFn cyB1c2UgdGhlIHRyZWUgc3RydWN0dXJlIG9mIHRoZSBvdXRsaW5lCiAqIFNldHRpbmcgdGFnczo6 ICAgICAgICAgICAgICAgIEhvdyB0byBhc3NpZ24gdGFncyB0byBhIGhlYWRsaW5lCi0qIFRhZyBn cm91cHM6OiAgICAgICAgICAgICAgICAgIFVzZSBvbmUgdGFnIHRvIHNlYXJjaCBmb3Igc2V2ZXJh bCB0YWdzCisqIFRhZyBoaWVyYXJjaHk6OiAgICAgICAgICAgICAgIENyZWF0ZSBhIGhpZXJhcmNo eSBvZiB0YWdzCiAqIFRhZyBzZWFyY2hlczo6ICAgICAgICAgICAgICAgIFNlYXJjaGluZyBmb3Ig Y29tYmluYXRpb25zIG9mIHRhZ3MKIAogUHJvcGVydGllcyBhbmQgY29sdW1ucwpAQCAtNDg3Nyw3 ICs0ODc3LDcgQEAgWW91IG1heSBzcGVjaWZ5IHNwZWNpYWwgZmFjZXMgZm9yIHNwZWNpZmljIHRh Z3MgdXNpbmcgdGhlIG9wdGlvbgogQG1lbnUKICogVGFnIGluaGVyaXRhbmNlOjogICAgICAgICAg ICAgVGFncyB1c2UgdGhlIHRyZWUgc3RydWN0dXJlIG9mIHRoZSBvdXRsaW5lCiAqIFNldHRpbmcg dGFnczo6ICAgICAgICAgICAgICAgIEhvdyB0byBhc3NpZ24gdGFncyB0byBhIGhlYWRsaW5lCi0q IFRhZyBncm91cHM6OiAgICAgICAgICAgICAgICAgIFVzZSBvbmUgdGFnIHRvIHNlYXJjaCBmb3Ig c2V2ZXJhbCB0YWdzCisqIFRhZyBoaWVyYXJjaHk6OiAgICAgICAgICAgICAgIENyZWF0ZSBhIGhp ZXJhcmNoeSBvZiB0YWdzCiAqIFRhZyBzZWFyY2hlczo6ICAgICAgICAgICAgICAgIFNlYXJjaGlu ZyBmb3IgY29tYmluYXRpb25zIG9mIHRhZ3MKIEBlbmQgbWVudQogCkBAIC01MTE2LDQxICs1MTE2 LDk4IEBAIGluc3RlYWQgb2YgQGtiZHtDLWMgQy1jfSkuICBJZiB5b3Ugc2V0IHRoZSB2YXJpYWJs ZSB0byB0aGUgdmFsdWUKIEBjb2Rle2V4cGVydH0sIHRoZSBzcGVjaWFsIHdpbmRvdyBpcyBub3Qg ZXZlbiBzaG93biBmb3Igc2luZ2xlLWtleSB0YWcKIHNlbGVjdGlvbiwgaXQgY29tZXMgdXAgb25s eSB3aGVuIHlvdSBwcmVzcyBhbiBleHRyYSBAa2Jke0MtY30uCiAKLUBub2RlIFRhZyBncm91cHMK LUBzZWN0aW9uIFRhZyBncm91cHMKK0Bub2RlIFRhZyBoaWVyYXJjaHkKK0BzZWN0aW9uIFRhZyBo aWVyYXJjaHkKIAogQGNpbmRleCBncm91cCB0YWdzCiBAY2luZGV4IHRhZ3MsIGdyb3VwcwotSW4g YSBzZXQgb2YgbXV0dWFsbHkgZXhjbHVzaXZlIHRhZ3MsIHRoZSBmaXJzdCB0YWcgY2FuIGJlIGRl ZmluZWQgYXMgYQotQGVtcGh7Z3JvdXAgdGFnfS4gIFdoZW4geW91IHNlYXJjaCBmb3IgYSBncm91 cCB0YWcsIGl0IHdpbGwgcmV0dXJuIG1hdGNoZXMKLWZvciBhbGwgbWVtYmVycyBpbiB0aGUgZ3Jv dXAuICBJbiBhbiBhZ2VuZGEgdmlldywgZmlsdGVyaW5nIGJ5IGEgZ3JvdXAgdGFnCi13aWxsIGRp c3BsYXkgaGVhZGxpbmVzIHRhZ2dlZCB3aXRoIGF0IGxlYXN0IG9uZSBvZiB0aGUgbWVtYmVycyBv ZiB0aGUKLWdyb3VwLiAgVGhpcyBtYWtlcyB0YWcgc2VhcmNoZXMgYW5kIGZpbHRlcnMgZXZlbiBt b3JlIGZsZXhpYmxlLgorQGNpbmRleCB0YWcgaGllcmFyY2h5CitUYWdzIGNhbiBiZSBkZWZpbmVk IGluIGhpZXJhcmNoaWVzLiBBIHRhZyBjYW4gYmUgZGVmaW5lZCBhcyBhIEBlbXBoe2dyb3VwCit0 YWd9IGZvciBhIHNldCBvZiBvdGhlciB0YWdzLiAgVGhlIGdyb3VwIHRhZyBjYW4gYmUgc2VlbiBh cyB0aGUgYGBicm9hZGVyCit0ZXJtJycgZm9yIGl0cyBzZXQgb2YgdGFncy4gIERlZmluaW5nIG11 bHRpcGxlIEBlbXBoe2dyb3VwIHRhZ3N9IGFuZCBuZXN0aW5nCit0aGVtIGNyZWF0ZXMgYSB0YWcg aGllcmFyY2h5LgogCi1Zb3UgY2FuIHNldCBncm91cCB0YWdzIGJ5IGluc2VydGluZyBhIGNvbG9u IGJldHdlZW4gdGhlIGdyb3VwIHRhZyBhbmQgb3RoZXIKLXRhZ3MtLS1iZXdhcmUgdGhhdCBhbGwg d2hpdGVzcGFjZXMgYXJlIG1hbmRhdG9yeSBzbyB0aGF0IE9yZyBjYW4gcGFyc2UgdGhpcwotbGlu ZSBjb3JyZWN0bHk6CitPbmUgdXNlLWNhc2UgaXMgdG8gY3JlYXRlIGEgdGF4b25vbXkgb2YgdGVy bXMgKHRhZ3MpIHRoYXQgY2FuIGJlIHVzZWQgdG8KK2NsYXNzaWZ5IG5vZGVzIGluIGEgZG9jdW1l bnQgb3Igc2V0IG9mIGRvY3VtZW50cy4KKworV2hlbiB5b3Ugc2VhcmNoIGZvciBhIGdyb3VwIHRh ZywgaXQgd2lsbCByZXR1cm4gbWF0Y2hlcyBmb3IgYWxsIG1lbWJlcnMgaW4KK3RoZSBncm91cCBh bmQgaXRzIHN1Ymdyb3VwLiAgSW4gYW4gYWdlbmRhIHZpZXcsIGZpbHRlcmluZyBieSBhIGdyb3Vw IHRhZyB3aWxsCitkaXNwbGF5IG9yIGhpZGUgaGVhZGxpbmVzIHRhZ2dlZCB3aXRoIGF0IGxlYXN0 IG9uZSBvZiB0aGUgbWVtYmVycyBvZiB0aGUKK2dyb3VwIG9yIGFueSBvZiBpdHMgc3ViZ3JvdXBz LiAgVGhpcyBtYWtlcyB0YWcgc2VhcmNoZXMgYW5kIGZpbHRlcnMgZXZlbiBtb3JlCitmbGV4aWJs ZS4KKworWW91IGNhbiBzZXQgZ3JvdXAgdGFncyBieSB1c2luZyBicmFja2V0cyBhbmQgaW5zZXJ0 aW5nIGEgY29sb24gYmV0d2VlbiB0aGUKK2dyb3VwIHRhZyBhbmQgaXRzIHJlbGF0ZWQgdGFncy0t LWJld2FyZSB0aGF0IGFsbCB3aGl0ZXNwYWNlcyBhcmUgbWFuZGF0b3J5IHNvCit0aGF0IE9yZyBj YW4gcGFyc2UgdGhpcyBsaW5lIGNvcnJlY3RseToKKworQGV4YW1wbGUKKyMrVEFHUzogWyBHVEQg OiBDb250cm9sIFBlcnNwIF0KK0BlbmQgZXhhbXBsZQorCitJbiB0aGlzIGV4YW1wbGUsIEBzYW1w e0dURH0gaXMgdGhlIEBlbXBoe2dyb3VwIHRhZ30gYW5kIGl0IGlzIHJlbGF0ZWQgdG8gdHdvIG90 aGVyCit0YWdzOiBAc2FtcHtDb250cm9sfSwgQHNhbXB7UGVyc3B9LiAgRGVmaW5pbmcgQHNhbXB7 UGVyc3B9IGFuZCBAc2FtcHtDb250cm9sfQorYXMgZ3JvdXAgdGFncyBjcmVhdGVzIGFuIGhpZXJh cmNoeSBvZiB0YWdzOgogCiBAZXhhbXBsZQotIytUQUdTOiBAeyBAQHJlYWQgOiBAQHJlYWRfYm9v ayBAQHJlYWRfZWJvb2sgQH0KKyMrVEFHUzogWyBQZXJzcCA6IFZpc2lvbiBHb2FsIEFPRiBQcm9q ZWN0IF0KKyMrVEFHUzogWyBDb250cm9sIDogQ29udGV4dCBUYXNrIF0KIEBlbmQgZXhhbXBsZQog Ci1JbiB0aGlzIGV4YW1wbGUsIEBzYW1we0BAcmVhZH0gaXMgYSBAZW1waHtncm91cCB0YWd9IGZv ciBhIHNldCBvZiB0aHJlZQotdGFnczogQHNhbXB7QEByZWFkfSwgQHNhbXB7QEByZWFkX2Jvb2t9 IGFuZCBAc2FtcHtAQHJlYWRfZWJvb2t9LgorVGhhdCBjYW4gY29uY2VwdHVhbGx5IGJlIHNlZW4g YXMgYSBoaWVyYXJjaHkgb2YgdGFnczoKIAotWW91IGNhbiBhbHNvIHVzZSB0aGUgQGNvZGV7Omdy b3VwdGFnc30ga2V5d29yZCBkaXJlY3RseSB3aGVuIHNldHRpbmcKLUBjb2Rle29yZy10YWctYWxp c3R9OgorQGV4YW1wbGUKKy0gR1RECisgIC0gUGVyc3AKKyAgICAtIFZpc2lvbgorICAgIC0gR29h bAorICAgIC0gQU9GCisgICAgLSBQcm9qZWN0CisgIC0gQ29udHJvbAorICAgIC0gQ29udGV4dAor ICAgIC0gVGFzaworQGVuZCBleGFtcGxlCisKK1lvdSBjYW4gdXNlIHRoZSBAY29kZXs6c3RhcnRn cm91cHRhZ30sIEBjb2Rlezpncm91cHRhZ3N9IGFuZAorQGNvZGV7OmVuZGdyb3VwdGFnfSBrZXl3 b3JkIGRpcmVjdGx5IHdoZW4gc2V0dGluZyBAY29kZXtvcmctdGFnLWFsaXN0fQorZGlyZWN0bHk6 CiAKIEBsaXNwCi0oc2V0cSBvcmctdGFnLWFsaXN0ICcoKDpzdGFydGdyb3VwIC4gbmlsKQorKHNl dHEgb3JnLXRhZy1hbGlzdCAnKCg6c3RhcnRncm91cHRhZyAuIG5pbCkKICAgICAgICAgICAgICAg ICAgICAgICAoIkBAcmVhZCIgLiBuaWwpCiAgICAgICAgICAgICAgICAgICAgICAgKDpncm91cHRh Z3MgLiBuaWwpCiAgICAgICAgICAgICAgICAgICAgICAgKCJAQHJlYWRfYm9vayIgLiBuaWwpCiAg ICAgICAgICAgICAgICAgICAgICAgKCJAQHJlYWRfZWJvb2siIC4gbmlsKQotICAgICAgICAgICAg ICAgICAgICAgICg6ZW5kZ3JvdXAgLiBuaWwpKSkKKyAgICAgICAgICAgICAgICAgICAgICAoOmVu ZGdyb3VwdGFnIC4gbmlsKSkpCiBAZW5kIGxpc3AKIAotWW91IGNhbm5vdCBuZXN0IGdyb3VwIHRh Z3Mgb3IgdXNlIGEgZ3JvdXAgdGFnIGFzIGEgdGFnIGluIGFub3RoZXIgZ3JvdXAuCitUaGUgdGFn cyBpbiBhIGdyb3VwIGNhbiBiZSBtdXR1YWxseSBleGNsdXNpdmUgaWYgdXNpbmcgdGhlIHNhbWUg Z3JvdXAgc3ludGF4CithcyBpcyB1c2VkIGZvciBncm91cGluZyBtdXR1YWxseSBleGNsdXNpdmUg dGFncyB0b2dldGhlcjsgdXNpbmcgY3VybHkKK2JyYWNrZXRzLgorCitAZXhhbXBsZQorIytUQUdT OiBAeyBDb250ZXh0IDogQEBIb21lIEBAV29yayBAQENhbGwgQH0KK0BlbmQgZXhhbXBsZQorCitX aGVuIHNldHRpbmcgQGNvZGV7b3JnLXRhZy1hbGlzdH0geW91IGNhbiB1c2UgQGNvZGV7OnN0YXJ0 Z3JvdXB9ICYKK0Bjb2RlezplbmRncm91cH0gaW5zdGVhZCBvZiBAY29kZXs6c3RhcnRncm91cHRh Z30gJiBAY29kZXs6ZW5kZ3JvdXB0YWd9IHRvCittYWtlIHRoZSB0YWdzIG11dHVhbGx5IGV4Y2x1 c2l2ZS4KKworRnVydGhlcm1vcmU7IFRoZSBtZW1iZXJzIG9mIGEgQGVtcGh7Z3JvdXAgdGFnfSBj YW4gYWxzbyBiZSByZWd1bGFyCitleHByZXNzaW9uLCBjcmVhdGluZyB0aGUgcG9zc2liaWxpdHkg b2YgbW9yZSBkeW5hbWljIGFuZCBydWxlLWJhc2VkCit0YWctc3RydWN0dXJlLiAgVGhlIHJlZ3Vs YXIgZXhwcmVzc2lvbnMgaW4gdGhlIGdyb3VwIG11c3QgYmUgbWFya2VkIHVwIHdpdGhpbgorQHsg QH0uICBFeGFtcGxlIHVzZSwgdG8gZXhwYW5kIG9uIHRoZSBleGFtcGxlIGdpdmVuIGFib3ZlOgor CitAZXhhbXBsZQorIytUQUdTOiBbIFZpc2lvbiA6IEB7VkAuK0B9IF0KKyMrVEFHUzogWyBHb2Fs IDogQHtHQC4rQH0gXQorIytUQUdTOiBbIEFPRiA6IEB7QU9GQC4rQH0gXQorIytUQUdTOiBbIFBy b2plY3QgOiBAe1BALitAfSBdCitAZW5kIGV4YW1wbGUKKworU2VhcmNoaW5nIGZvciB0aGUgdGFn IFByb2plY3Qgd2lsbCBub3cgbGlzdCBhbGwgdGFncyBhbHNvIGluY2x1ZGluZyByZWd1bGFyCitl eHByZXNzaW9uIG1hdGNoZXMgZm9yIFBAQC4rLiAgU2ltaWxhciBmb3IgdGFnLXNlYXJjaGVzIG9u IFZpc2lvbiwgR29hbCBhbmQKK0FPRi4gIFRoaXMgY2FuIGJlIGdvb2QgZm9yIGV4YW1wbGUgaWYg dGFncyBmb3IgYSBjZXJ0YWluIHByb2plY3QgaXMgdGFnZ2VkCit3aXRoIGEgY29tbW9uIHByb2pl Y3QtaWRlbnRpZmllciwgaS5lLiBQQEAyMDE0X09yZ1RhZ3MuCiAKIEBraW5kZXggQy1jIEMteCBx CiBAdmluZGV4IG9yZy1ncm91cC10YWdzCkBAIC04MTExLDcgKzgxNjgsNyBAQCBicmFjZXMuICBG b3IgZXhhbXBsZSwKIEBzYW1wezp3b3JrOn0gYW5kIGFueSB0YWcgQGl7c3RhcnRpbmd9IHdpdGgg QHNhbXB7Ym9zc30uCiAKIEBjaW5kZXggZ3JvdXAgdGFncywgYXMgcmVndWxhciBleHByZXNzaW9u cwotR3JvdXAgdGFncyAoQHB4cmVme1RhZyBncm91cHN9KSBhcmUgZXhwYW5kZWQgYXMgcmVndWxh ciBleHByZXNzaW9ucy4gIEUuZy4sCitHcm91cCB0YWdzIChAcHhyZWZ7VGFnIGhpZXJhcmNoeX0p IGFyZSBleHBhbmRlZCBhcyByZWd1bGFyIGV4cHJlc3Npb25zLiAgRS5nLiwKIGlmIEBzYW1wezp3 b3JrOn0gaXMgYSBncm91cCB0YWcgZm9yIHRoZSBncm91cCBAc2FtcHs6d29yazpsYWI6Y29uZjp9 LCB0aGVuCiBzZWFyY2hpbmcgZm9yIEBzYW1we3dvcmt9IHdpbGwgc2VhcmNoIGZvciBAc2FtcHtA e1woPzp3b3JrXHxsYWJcfGNvbmZcKUB9fQogYW5kIHNlYXJjaGluZyBmb3IgQHNhbXB7LXdvcmt9 IHdpbGwgc2VhcmNoIGZvciBhbGwgaGVhZGxpbmVzIGJ1dCB0aG9zZSB3aXRoCi0tIAoxLjkuMQoK --047d7b15ae3996f7b60510803403--