From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Gustav_Wikstr=F6m?= Subject: Scheduled TODO's with DIARY-STYLE sexp entries breaks agenda Date: Fri, 18 May 2012 11:57:08 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8f2343414f18f004c04c9365 Return-path: Received: from eggs.gnu.org ([208.118.235.92]:58128) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SVJw1-0002Of-S9 for emacs-orgmode@gnu.org; Fri, 18 May 2012 05:57:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SVJvr-0005Qs-Dm for emacs-orgmode@gnu.org; Fri, 18 May 2012 05:57:21 -0400 Received: from mail-yw0-f41.google.com ([209.85.213.41]:34674) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SVJvr-0005Qa-2i for emacs-orgmode@gnu.org; Fri, 18 May 2012 05:57:11 -0400 Received: by yhr47 with SMTP id 47so3280776yhr.0 for ; Fri, 18 May 2012 02:57:08 -0700 (PDT) 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: Org Mode List --e89a8f2343414f18f004c04c9365 Content-Type: text/plain; charset=ISO-8859-1 Hi, I don't know if there is an easy fix for this but it's bugging me so I'll report it to the list. I use a diary-style date as a schedule item and just added a custom agenda function to remove future scheduled todo's. This did not work well. I think it's org-time-string-to-time that cannot handle sexp since it returns the following in a backtrace: error #("Bad timestamp `%%(org-float t 4 2)' The backtrace is attached. Simplified agenda to test the setup with: (setq org-agenda-custom-commands (quote (("R" "Tasks" tags-todo "-CANCELLED" ((org-agenda-todo-ignore-scheduled 'future)))))) Org-mode text that should repoduce this problem given the above agenda: * TODO TestTodo SCHEDULED: <%%(org-float t 4 2)> Try with (org-agenda) -> input "R" Kind regards Gustav --e89a8f2343414f18f004c04c9365 Content-Type: text/plain; charset=US-ASCII; name="Backtrace.txt" Content-Disposition: attachment; filename="Backtrace.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h2d2dzic0 RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKGVycm9yICMoIkJhZCB0aW1lc3RhbXAgYCUl KG9yZy1mbG9hdCB0IDQgMiknCkVycm9yIHdhczogKE5vdCBhIHN0YW5kYXJkIE9yZy1tb2RlIHRp bWUgc3RyaW5nOiAlJShvcmctZmxvYXQgdCA0IDIpKSIgMTUgMzQgKGZhY2Ugb3JnLXNleHAtZGF0 ZSBvcmctY2F0ZWdvcnktcG9zaXRpb24gMzcgb3JnLWNhdGVnb3J5ICMoImluYm94IiAwIDUgKGZv bnRpZmllZCB0IG9yZy1jYXRlZ29yeSAiaW5ib3giIG9yZy1jYXRlZ29yeS1wb3NpdGlvbiAzNyBm YWNlIG9yZy1tZXRhLWxpbmUgZm9udC1sb2NrLWZvbnRpZmllZCB0KSkgZm9udGlmaWVkIHQpKSkK ICBzaWduYWwoZXJyb3IgKCMoIkJhZCB0aW1lc3RhbXAgYCUlKG9yZy1mbG9hdCB0IDQgMiknXG5F cnJvciB3YXM6IChOb3QgYSBzdGFuZGFyZCBPcmctbW9kZSB0aW1lIHN0cmluZzogJSUob3JnLWZs b2F0IHQgNCAyKSkiIDE1IDM0IChmYWNlIG9yZy1zZXhwLWRhdGUgb3JnLWNhdGVnb3J5LXBvc2l0 aW9uIDM3IG9yZy1jYXRlZ29yeSAjKCJpbmJveCIgMCA1IChmb250aWZpZWQgdCBvcmctY2F0ZWdv cnkgImluYm94IiBvcmctY2F0ZWdvcnktcG9zaXRpb24gMzcgZmFjZSBvcmctbWV0YS1saW5lIGZv bnQtbG9jay1mb250aWZpZWQgdCkpIGZvbnRpZmllZCB0KSkpKQogIGVycm9yKCJCYWQgdGltZXN0 YW1wIGAlcyclc1xuRXJyb3Igd2FzOiAlcyIgIygiJSUob3JnLWZsb2F0IHQgNCAyKSIgMCAxOSAo Zm9udGlmaWVkIHQgb3JnLWNhdGVnb3J5ICMoImluYm94IiAwIDUgKGZvbnRpZmllZCB0IG9yZy1j YXRlZ29yeSAiaW5ib3giIG9yZy1jYXRlZ29yeS1wb3NpdGlvbiAzNyBmYWNlIG9yZy1tZXRhLWxp bmUgZm9udC1sb2NrLWZvbnRpZmllZCB0KSkgb3JnLWNhdGVnb3J5LXBvc2l0aW9uIDM3IGZhY2Ug b3JnLXNleHAtZGF0ZSkpICIiICgjKCJOb3QgYSBzdGFuZGFyZCBPcmctbW9kZSB0aW1lIHN0cmlu ZzogJSUob3JnLWZsb2F0IHQgNCAyKSIgMzcgNTYgKGZhY2Ugb3JnLXNleHAtZGF0ZSBvcmctY2F0 ZWdvcnktcG9zaXRpb24gMzcgb3JnLWNhdGVnb3J5ICMoImluYm94IiAwIDUgKGZvbnRpZmllZCB0 IG9yZy1jYXRlZ29yeSAiaW5ib3giIG9yZy1jYXRlZ29yeS1wb3NpdGlvbiAzNyBmYWNlIG9yZy1t ZXRhLWxpbmUgZm9udC1sb2NrLWZvbnRpZmllZCB0KSkgZm9udGlmaWVkIHQpKSkpCiAgKGNvbmRp dGlvbi1jYXNlIGVycmRhdGEgKGFwcGx5IChxdW90ZSBlbmNvZGUtdGltZSkgKG9yZy1wYXJzZS10 aW1lLXN0cmluZyBzKSkgKGVycm9yIChlcnJvciAiQmFkIHRpbWVzdGFtcCBgJXMnJXNcbkVycm9y IHdhczogJXMiIHMgKGlmIChub3QgKGFuZCBidWZmZXIgcG9zKSkgIiIgKGZvcm1hdCAiIGF0ICVk IGluIGJ1ZmZlciBgJXMnIiBwb3MgYnVmZmVyKSkgKGNkciBlcnJkYXRhKSkpKQogIG9yZy10aW1l LXN0cmluZy10by10aW1lKCMoIiUlKG9yZy1mbG9hdCB0IDQgMikiIDAgMTkgKGZvbnRpZmllZCB0 IG9yZy1jYXRlZ29yeSAjKCJpbmJveCIgMCA1IChmb250aWZpZWQgdCBvcmctY2F0ZWdvcnkgImlu Ym94IiBvcmctY2F0ZWdvcnktcG9zaXRpb24gMzcgZmFjZSBvcmctbWV0YS1saW5lIGZvbnQtbG9j ay1mb250aWZpZWQgdCkpIG9yZy1jYXRlZ29yeS1wb3NpdGlvbiAzNyBmYWNlIG9yZy1zZXhwLWRh dGUpKSkKICAodGltZS10by1kYXlzIChvcmctdGltZS1zdHJpbmctdG8tdGltZSB0aW1lc3RhbXAt c3RyaW5nKSkKICAoLSAodGltZS10by1kYXlzIChvcmctdGltZS1zdHJpbmctdG8tdGltZSB0aW1l c3RhbXAtc3RyaW5nKSkgKHRpbWUtdG8tZGF5cyAoY3VycmVudC10aW1lKSkpCiAgb3JnLWRheXMt dG8tdGltZSgjKCIlJShvcmctZmxvYXQgdCA0IDIpIiAwIDE5IChmb250aWZpZWQgdCBvcmctY2F0 ZWdvcnkgIygiaW5ib3giIDAgNSAoZm9udGlmaWVkIHQgb3JnLWNhdGVnb3J5ICJpbmJveCIgb3Jn LWNhdGVnb3J5LXBvc2l0aW9uIDM3IGZhY2Ugb3JnLW1ldGEtbGluZSBmb250LWxvY2stZm9udGlm aWVkIHQpKSBvcmctY2F0ZWdvcnktcG9zaXRpb24gMzcgZmFjZSBvcmctc2V4cC1kYXRlKSkpCiAg KD4gKG9yZy1kYXlzLXRvLXRpbWUgKG1hdGNoLXN0cmluZyAxKSkgMCkKICAoY29uZCAoKGVxIG9y Zy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkIChxdW90ZSBmdXR1cmUpKSAoPiAob3JnLWRh eXMtdG8tdGltZSAobWF0Y2gtc3RyaW5nIDEpKSAwKSkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdu b3JlLXNjaGVkdWxlZCAocXVvdGUgcGFzdCkpICg8PSAob3JnLWRheXMtdG8tdGltZSAobWF0Y2gt c3RyaW5nIDEpKSAwKSkgKChudW1iZXJwIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVk KSAob3JnLWFnZW5kYS10b2RvLWN1c3RvbS1pZ25vcmUtcCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1h Z2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkKSkgKHQpKQogIChhbmQgb3JnLWFnZW5kYS10b2Rv LWlnbm9yZS1zY2hlZHVsZWQgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1zY2hlZHVsZWQtdGltZS1y ZWdleHAgZW5kIHQpIChjb25kICgoZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQg KHF1b3RlIGZ1dHVyZSkpICg+IChvcmctZGF5cy10by10aW1lIChtYXRjaC1zdHJpbmcgMSkpIDAp KSAoKGVxIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkIChxdW90ZSBwYXN0KSkgKDw9 IChvcmctZGF5cy10by10aW1lIChtYXRjaC1zdHJpbmcgMSkpIDApKSAoKG51bWJlcnAgb3JnLWFn ZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQpIChvcmctYWdlbmRhLXRvZG8tY3VzdG9tLWlnbm9y ZS1wIChtYXRjaC1zdHJpbmcgMSkgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQpKSAo dCkpKQogIChvciAoYW5kIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtd2l0aC1kYXRlIChyZS1zZWFy Y2gtZm9yd2FyZCBvcmctdHMtcmVnZXhwIGVuZCB0KSkgKGFuZCBvcmctYWdlbmRhLXRvZG8taWdu b3JlLXNjaGVkdWxlZCAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXNjaGVkdWxlZC10aW1lLXJlZ2V4 cCBlbmQgdCkgKGNvbmQgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCAocXVv dGUgZnV0dXJlKSkgKD4gKG9yZy1kYXlzLXRvLXRpbWUgKG1hdGNoLXN0cmluZyAxKSkgMCkpICgo ZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQgKHF1b3RlIHBhc3QpKSAoPD0gKG9y Zy1kYXlzLXRvLXRpbWUgKG1hdGNoLXN0cmluZyAxKSkgMCkpICgobnVtYmVycCBvcmctYWdlbmRh LXRvZG8taWdub3JlLXNjaGVkdWxlZCkgKG9yZy1hZ2VuZGEtdG9kby1jdXN0b20taWdub3JlLXAg KG1hdGNoLXN0cmluZyAxKSBvcmctYWdlbmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCkpICh0KSkp IChhbmQgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgKHJlLXNlYXJjaC1mb3J3YXJk IG9yZy1kZWFkbGluZS10aW1lLXJlZ2V4cCBlbmQgdCkgKGNvbmQgKChtZW1xIG9yZy1hZ2VuZGEt dG9kby1pZ25vcmUtZGVhZGxpbmVzIChxdW90ZSAodCBhbGwpKSkgdCkgKChlcSBvcmctYWdlbmRh LXRvZG8taWdub3JlLWRlYWRsaW5lcyAocXVvdGUgZmFyKSkgKG5vdCAob3JnLWRlYWRsaW5lLWNs b3NlIChtYXRjaC1zdHJpbmcgMSkpKSkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRs aW5lcyAocXVvdGUgZnV0dXJlKSkgKD4gKG9yZy1kYXlzLXRvLXRpbWUgKG1hdGNoLXN0cmluZyAx KSkgMCkpICgoZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgKHF1b3RlIHBhc3Qp KSAoPD0gKG9yZy1kYXlzLXRvLXRpbWUgKG1hdGNoLXN0cmluZyAxKSkgMCkpICgobnVtYmVycCBv cmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcykgKG9yZy1hZ2VuZGEtdG9kby1jdXN0b20t aWdub3JlLXAgKG1hdGNoLXN0cmluZyAxKSBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5l cykpICh0IChvcmctZGVhZGxpbmUtY2xvc2UgKG1hdGNoLXN0cmluZyAxKSkpKSkgKGFuZCBvcmct YWdlbmRhLXRvZG8taWdub3JlLXRpbWVzdGFtcCAobGV0ICgoYnVmZmVyIChjdXJyZW50LWJ1ZmZl cikpIChyZWdleHAgKGNvbmNhdCBvcmctc2NoZWR1bGVkLXRpbWUtcmVnZXhwICJcXHwiIG9yZy1k ZWFkbGluZS10aW1lLXJlZ2V4cCkpIChzdGFydCAocG9pbnQpKSkgKHdpdGgtdGVtcC1idWZmZXIg KGluc2VydC1idWZmZXItc3Vic3RyaW5nIGJ1ZmZlciBzdGFydCBlbmQpIChnb3RvLWNoYXIgKHBv aW50LW1pbikpICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgcmVnZXhwIGVuZCB0KSAoZGVsZXRl LXJlZ2lvbiAobWF0Y2gtYmVnaW5uaW5nIDApIChtYXRjaC1lbmQgMCkpKSAoZ290by1jaGFyIChw b2ludC1taW4pKSAod2hlbiAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXRzLXJlZ2V4cCBuaWwgdCkg KGNvbmQgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLXRpbWVzdGFtcCAuLi4pICg+IC4uLiAw KSkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLXRpbWVzdGFtcCAuLi4pICg8PSAuLi4gMCkp ICgobnVtYmVycCBvcmctYWdlbmRhLXRvZG8taWdub3JlLXRpbWVzdGFtcCkgKG9yZy1hZ2VuZGEt dG9kby1jdXN0b20taWdub3JlLXAgLi4uIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtdGltZXN0YW1w KSkgKHQpKSkpKSkpCiAgKHNhdmUtZXhjdXJzaW9uIChvciAoYW5kIG9yZy1hZ2VuZGEtdG9kby1p Z25vcmUtd2l0aC1kYXRlIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctdHMtcmVnZXhwIGVuZCB0KSkg KGFuZCBvcmctYWdlbmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCAocmUtc2VhcmNoLWZvcndhcmQg b3JnLXNjaGVkdWxlZC10aW1lLXJlZ2V4cCBlbmQgdCkgKGNvbmQgKChlcSBvcmctYWdlbmRhLXRv ZG8taWdub3JlLXNjaGVkdWxlZCAocXVvdGUgZnV0dXJlKSkgKD4gKG9yZy1kYXlzLXRvLXRpbWUg KG1hdGNoLXN0cmluZyAxKSkgMCkpICgoZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVs ZWQgKHF1b3RlIHBhc3QpKSAoPD0gKG9yZy1kYXlzLXRvLXRpbWUgKG1hdGNoLXN0cmluZyAxKSkg MCkpICgobnVtYmVycCBvcmctYWdlbmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCkgKG9yZy1hZ2Vu ZGEtdG9kby1jdXN0b20taWdub3JlLXAgKG1hdGNoLXN0cmluZyAxKSBvcmctYWdlbmRhLXRvZG8t aWdub3JlLXNjaGVkdWxlZCkpICh0KSkpIChhbmQgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFk bGluZXMgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1kZWFkbGluZS10aW1lLXJlZ2V4cCBlbmQgdCkg KGNvbmQgKChtZW1xIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtZGVhZGxpbmVzIChxdW90ZSAodCBh bGwpKSkgdCkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcyAocXVvdGUgZmFy KSkgKG5vdCAob3JnLWRlYWRsaW5lLWNsb3NlIChtYXRjaC1zdHJpbmcgMSkpKSkgKChlcSBvcmct YWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcyAocXVvdGUgZnV0dXJlKSkgKD4gKG9yZy1kYXlz LXRvLXRpbWUgKG1hdGNoLXN0cmluZyAxKSkgMCkpICgoZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9y ZS1kZWFkbGluZXMgKHF1b3RlIHBhc3QpKSAoPD0gKG9yZy1kYXlzLXRvLXRpbWUgKG1hdGNoLXN0 cmluZyAxKSkgMCkpICgobnVtYmVycCBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcykg KG9yZy1hZ2VuZGEtdG9kby1jdXN0b20taWdub3JlLXAgKG1hdGNoLXN0cmluZyAxKSBvcmctYWdl bmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcykpICh0IChvcmctZGVhZGxpbmUtY2xvc2UgKG1hdGNo LXN0cmluZyAxKSkpKSkgKGFuZCBvcmctYWdlbmRhLXRvZG8taWdub3JlLXRpbWVzdGFtcCAobGV0 ICgoYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpIChyZWdleHAgKGNvbmNhdCBvcmctc2NoZWR1bGVk LXRpbWUtcmVnZXhwICJcXHwiIG9yZy1kZWFkbGluZS10aW1lLXJlZ2V4cCkpIChzdGFydCAocG9p bnQpKSkgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydC1idWZmZXItc3Vic3RyaW5nIGJ1ZmZlciBz dGFydCBlbmQpIChnb3RvLWNoYXIgKHBvaW50LW1pbikpICh3aGlsZSAocmUtc2VhcmNoLWZvcndh cmQgcmVnZXhwIGVuZCB0KSAoZGVsZXRlLXJlZ2lvbiAobWF0Y2gtYmVnaW5uaW5nIDApIChtYXRj aC1lbmQgMCkpKSAoZ290by1jaGFyIChwb2ludC1taW4pKSAod2hlbiAocmUtc2VhcmNoLWZvcndh cmQgb3JnLXRzLXJlZ2V4cCBuaWwgdCkgKGNvbmQgKC4uLiAuLi4pICguLi4gLi4uKSAoLi4uIC4u LikgKHQpKSkpKSkpKQogIChwcm9nbiAoc2V0cSBlbmQgKG9yIGVuZCAoc2F2ZS1leGN1cnNpb24g KG91dGxpbmUtbmV4dC1oZWFkaW5nKSAocG9pbnQpKSkpIChzYXZlLWV4Y3Vyc2lvbiAob3IgKGFu ZCBvcmctYWdlbmRhLXRvZG8taWdub3JlLXdpdGgtZGF0ZSAocmUtc2VhcmNoLWZvcndhcmQgb3Jn LXRzLXJlZ2V4cCBlbmQgdCkpIChhbmQgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQg KHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1zY2hlZHVsZWQtdGltZS1yZWdleHAgZW5kIHQpIChjb25k ICgoZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQgKHF1b3RlIGZ1dHVyZSkpICg+ IChvcmctZGF5cy10by10aW1lIC4uLikgMCkpICgoZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1z Y2hlZHVsZWQgKHF1b3RlIHBhc3QpKSAoPD0gKG9yZy1kYXlzLXRvLXRpbWUgLi4uKSAwKSkgKChu dW1iZXJwIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkKSAob3JnLWFnZW5kYS10b2Rv LWN1c3RvbS1pZ25vcmUtcCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUt c2NoZWR1bGVkKSkgKHQpKSkgKGFuZCBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcyAo cmUtc2VhcmNoLWZvcndhcmQgb3JnLWRlYWRsaW5lLXRpbWUtcmVnZXhwIGVuZCB0KSAoY29uZCAo KG1lbXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgKHF1b3RlIC4uLikpIHQpICgo ZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgKHF1b3RlIGZhcikpIChub3QgKG9y Zy1kZWFkbGluZS1jbG9zZSAuLi4pKSkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRs aW5lcyAocXVvdGUgZnV0dXJlKSkgKD4gKG9yZy1kYXlzLXRvLXRpbWUgLi4uKSAwKSkgKChlcSBv cmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcyAocXVvdGUgcGFzdCkpICg8PSAob3JnLWRh eXMtdG8tdGltZSAuLi4pIDApKSAoKG51bWJlcnAgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFk bGluZXMpIChvcmctYWdlbmRhLXRvZG8tY3VzdG9tLWlnbm9yZS1wIChtYXRjaC1zdHJpbmcgMSkg b3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMpKSAodCAob3JnLWRlYWRsaW5lLWNsb3Nl IChtYXRjaC1zdHJpbmcgMSkpKSkpIChhbmQgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS10aW1lc3Rh bXAgKGxldCAoKGJ1ZmZlciAoY3VycmVudC1idWZmZXIpKSAocmVnZXhwIChjb25jYXQgb3JnLXNj aGVkdWxlZC10aW1lLXJlZ2V4cCAiXFx8IiBvcmctZGVhZGxpbmUtdGltZS1yZWdleHApKSAoc3Rh cnQgKHBvaW50KSkpICh3aXRoLXRlbXAtYnVmZmVyIChpbnNlcnQtYnVmZmVyLXN1YnN0cmluZyBi dWZmZXIgc3RhcnQgZW5kKSAoZ290by1jaGFyIChwb2ludC1taW4pKSAod2hpbGUgKHJlLXNlYXJj aC1mb3J3YXJkIHJlZ2V4cCBlbmQgdCkgKGRlbGV0ZS1yZWdpb24gLi4uIC4uLikpIChnb3RvLWNo YXIgKHBvaW50LW1pbikpICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCBvcmctdHMtcmVnZXhwIG5p bCB0KSAoY29uZCAuLi4gLi4uIC4uLiAuLi4pKSkpKSkpKQogIChpZiAob3Igb3JnLWFnZW5kYS10 b2RvLWlnbm9yZS13aXRoLWRhdGUgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQgb3Jn LWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS10aW1l c3RhbXApIChwcm9nbiAoc2V0cSBlbmQgKG9yIGVuZCAoc2F2ZS1leGN1cnNpb24gKG91dGxpbmUt bmV4dC1oZWFkaW5nKSAocG9pbnQpKSkpIChzYXZlLWV4Y3Vyc2lvbiAob3IgKGFuZCBvcmctYWdl bmRhLXRvZG8taWdub3JlLXdpdGgtZGF0ZSAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXRzLXJlZ2V4 cCBlbmQgdCkpIChhbmQgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQgKHJlLXNlYXJj aC1mb3J3YXJkIG9yZy1zY2hlZHVsZWQtdGltZS1yZWdleHAgZW5kIHQpIChjb25kICgoZXEgb3Jn LWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQgLi4uKSAoPiAuLi4gMCkpICgoZXEgb3JnLWFn ZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQgLi4uKSAoPD0gLi4uIDApKSAoKG51bWJlcnAgb3Jn LWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQpIChvcmctYWdlbmRhLXRvZG8tY3VzdG9tLWln bm9yZS1wIC4uLiBvcmctYWdlbmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCkpICh0KSkpIChhbmQg b3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy1k ZWFkbGluZS10aW1lLXJlZ2V4cCBlbmQgdCkgKGNvbmQgKChtZW1xIG9yZy1hZ2VuZGEtdG9kby1p Z25vcmUtZGVhZGxpbmVzIC4uLikgdCkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRs aW5lcyAuLi4pIChub3QgLi4uKSkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5l cyAuLi4pICg+IC4uLiAwKSkgKChlcSBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcyAu Li4pICg8PSAuLi4gMCkpICgobnVtYmVycCBvcmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5l cykgKG9yZy1hZ2VuZGEtdG9kby1jdXN0b20taWdub3JlLXAgLi4uIG9yZy1hZ2VuZGEtdG9kby1p Z25vcmUtZGVhZGxpbmVzKSkgKHQgKG9yZy1kZWFkbGluZS1jbG9zZSAuLi4pKSkpIChhbmQgb3Jn LWFnZW5kYS10b2RvLWlnbm9yZS10aW1lc3RhbXAgKGxldCAoKGJ1ZmZlciAuLi4pIChyZWdleHAg Li4uKSAoc3RhcnQgLi4uKSkgKHdpdGgtdGVtcC1idWZmZXIgKGluc2VydC1idWZmZXItc3Vic3Ry aW5nIGJ1ZmZlciBzdGFydCBlbmQpIChnb3RvLWNoYXIgLi4uKSAod2hpbGUgLi4uIC4uLikgKGdv dG8tY2hhciAuLi4pICh3aGVuIC4uLiAuLi4pKSkpKSkpKQogICh3aGVuIChvciBvcmctYWdlbmRh LXRvZG8taWdub3JlLXdpdGgtZGF0ZSBvcmctYWdlbmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCBv cmctYWdlbmRhLXRvZG8taWdub3JlLWRlYWRsaW5lcyBvcmctYWdlbmRhLXRvZG8taWdub3JlLXRp bWVzdGFtcCkgKHNldHEgZW5kIChvciBlbmQgKHNhdmUtZXhjdXJzaW9uIChvdXRsaW5lLW5leHQt aGVhZGluZykgKHBvaW50KSkpKSAoc2F2ZS1leGN1cnNpb24gKG9yIChhbmQgb3JnLWFnZW5kYS10 b2RvLWlnbm9yZS13aXRoLWRhdGUgKHJlLXNlYXJjaC1mb3J3YXJkIG9yZy10cy1yZWdleHAgZW5k IHQpKSAoYW5kIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkIChyZS1zZWFyY2gtZm9y d2FyZCBvcmctc2NoZWR1bGVkLXRpbWUtcmVnZXhwIGVuZCB0KSAoY29uZCAoKGVxIG9yZy1hZ2Vu ZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkIChxdW90ZSBmdXR1cmUpKSAoPiAob3JnLWRheXMtdG8t dGltZSAuLi4pIDApKSAoKGVxIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkIChxdW90 ZSBwYXN0KSkgKDw9IChvcmctZGF5cy10by10aW1lIC4uLikgMCkpICgobnVtYmVycCBvcmctYWdl bmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCkgKG9yZy1hZ2VuZGEtdG9kby1jdXN0b20taWdub3Jl LXAgKG1hdGNoLXN0cmluZyAxKSBvcmctYWdlbmRhLXRvZG8taWdub3JlLXNjaGVkdWxlZCkpICh0 KSkpIChhbmQgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgKHJlLXNlYXJjaC1mb3J3 YXJkIG9yZy1kZWFkbGluZS10aW1lLXJlZ2V4cCBlbmQgdCkgKGNvbmQgKChtZW1xIG9yZy1hZ2Vu ZGEtdG9kby1pZ25vcmUtZGVhZGxpbmVzIChxdW90ZSAuLi4pKSB0KSAoKGVxIG9yZy1hZ2VuZGEt dG9kby1pZ25vcmUtZGVhZGxpbmVzIChxdW90ZSBmYXIpKSAobm90IChvcmctZGVhZGxpbmUtY2xv c2UgLi4uKSkpICgoZXEgb3JnLWFnZW5kYS10b2RvLWlnbm9yZS1kZWFkbGluZXMgKHF1b3RlIGZ1 dHVyZSkpICg+IChvcmctZGF5cy10by10aW1lIC4uLikgMCkpICgoZXEgb3JnLWFnZW5kYS10b2Rv LWlnbm9yZS1kZWFkbGluZXMgKHF1b3RlIHBhc3QpKSAoPD0gKG9yZy1kYXlzLXRvLXRpbWUgLi4u KSAwKSkgKChudW1iZXJwIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtZGVhZGxpbmVzKSAob3JnLWFn ZW5kYS10b2RvLWN1c3RvbS1pZ25vcmUtcCAobWF0Y2gtc3RyaW5nIDEpIG9yZy1hZ2VuZGEtdG9k by1pZ25vcmUtZGVhZGxpbmVzKSkgKHQgKG9yZy1kZWFkbGluZS1jbG9zZSAobWF0Y2gtc3RyaW5n IDEpKSkpKSAoYW5kIG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtdGltZXN0YW1wIChsZXQgKChidWZm ZXIgKGN1cnJlbnQtYnVmZmVyKSkgKHJlZ2V4cCAoY29uY2F0IG9yZy1zY2hlZHVsZWQtdGltZS1y ZWdleHAgIlxcfCIgb3JnLWRlYWRsaW5lLXRpbWUtcmVnZXhwKSkgKHN0YXJ0IChwb2ludCkpKSAo d2l0aC10ZW1wLWJ1ZmZlciAoaW5zZXJ0LWJ1ZmZlci1zdWJzdHJpbmcgYnVmZmVyIHN0YXJ0IGVu ZCkgKGdvdG8tY2hhciAocG9pbnQtbWluKSkgKHdoaWxlIChyZS1zZWFyY2gtZm9yd2FyZCByZWdl eHAgZW5kIHQpIChkZWxldGUtcmVnaW9uIC4uLiAuLi4pKSAoZ290by1jaGFyIChwb2ludC1taW4p KSAod2hlbiAocmUtc2VhcmNoLWZvcndhcmQgb3JnLXRzLXJlZ2V4cCBuaWwgdCkgKGNvbmQgLi4u IC4uLiAuLi4gLi4uKSkpKSkpKSkKICBvcmctYWdlbmRhLWNoZWNrLWZvci10aW1lc3RhbXAtYXMt cmVhc29uLXRvLWlnbm9yZS10b2RvLWl0ZW0oKQogIChub3QgKG9yZy1hZ2VuZGEtY2hlY2stZm9y LXRpbWVzdGFtcC1hcy1yZWFzb24tdG8taWdub3JlLXRvZG8taXRlbSkpCiAgKG9yIChub3Qgb3Jn LWFnZW5kYS10YWdzLXRvZG8taG9ub3ItaWdub3JlLW9wdGlvbnMpIChub3QgKG9yZy1hZ2VuZGEt Y2hlY2stZm9yLXRpbWVzdGFtcC1hcy1yZWFzb24tdG8taWdub3JlLXRvZG8taXRlbSkpKQogIChh bmQgKG1lbWJlciB0b2RvIG9yZy1ub3QtZG9uZS1rZXl3b3JkcykgKG9yIChub3Qgb3JnLWFnZW5k YS10YWdzLXRvZG8taG9ub3ItaWdub3JlLW9wdGlvbnMpIChub3QgKG9yZy1hZ2VuZGEtY2hlY2st Zm9yLXRpbWVzdGFtcC1hcy1yZWFzb24tdG8taWdub3JlLXRvZG8taXRlbSkpKSkKICAob3IgKG5v dCB0b2RvLW9ubHkpIChhbmQgKG1lbWJlciB0b2RvIG9yZy1ub3QtZG9uZS1rZXl3b3JkcykgKG9y IChub3Qgb3JnLWFnZW5kYS10YWdzLXRvZG8taG9ub3ItaWdub3JlLW9wdGlvbnMpIChub3QgKG9y Zy1hZ2VuZGEtY2hlY2stZm9yLXRpbWVzdGFtcC1hcy1yZWFzb24tdG8taWdub3JlLXRvZG8taXRl bSkpKSkpCiAgKGFuZCAoYW5kIChvciAobm90IHRvZG8tb25seSkgKG1lbWJlciB0b2RvIG9yZy1u b3QtZG9uZS1rZXl3b3JkcykpIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpKSAoZXZhbCBtYXRj aGVyKSkpIChwcm9nbiAodW5sZXNzIChlcSBhY3Rpb24gKHF1b3RlIHNwYXJzZS10cmVlKSkgKG9y Zy1hZ2VuZGEtc2tpcCkpIHQpIChvciAobm90IHRvZG8tb25seSkgKGFuZCAobWVtYmVyIHRvZG8g b3JnLW5vdC1kb25lLWtleXdvcmRzKSAob3IgKG5vdCBvcmctYWdlbmRhLXRhZ3MtdG9kby1ob25v ci1pZ25vcmUtb3B0aW9ucykgKG5vdCAob3JnLWFnZW5kYS1jaGVjay1mb3ItdGltZXN0YW1wLWFz LXJlYXNvbi10by1pZ25vcmUtdG9kby1pdGVtKSkpKSkgKG9yIChub3QgKG1lbWJlciBvcmctYXJj aGl2ZS10YWcgdGFncy1saXN0KSkgKG9yIChub3Qgb3JnLWFnZW5kYS1za2lwLWFyY2hpdmVkLXRy ZWVzKSAoYW5kIChlcSBhY3Rpb24gKHF1b3RlIGFnZW5kYSkpIG9yZy1hZ2VuZGEtYXJjaGl2ZXMt bW9kZSkpKSkKICAoaWYgKGFuZCAoYW5kIChvciAobm90IHRvZG8tb25seSkgKG1lbWJlciB0b2Rv IG9yZy1ub3QtZG9uZS1rZXl3b3JkcykpIChsZXQgKChjYXNlLWZvbGQtc2VhcmNoIHQpKSAoZXZh bCBtYXRjaGVyKSkpIChwcm9nbiAodW5sZXNzIChlcSBhY3Rpb24gKHF1b3RlIHNwYXJzZS10cmVl KSkgKG9yZy1hZ2VuZGEtc2tpcCkpIHQpIChvciAobm90IHRvZG8tb25seSkgKGFuZCAobWVtYmVy IHRvZG8gb3JnLW5vdC1kb25lLWtleXdvcmRzKSAob3IgKG5vdCBvcmctYWdlbmRhLXRhZ3MtdG9k by1ob25vci1pZ25vcmUtb3B0aW9ucykgKG5vdCAob3JnLWFnZW5kYS1jaGVjay1mb3ItdGltZXN0 YW1wLWFzLXJlYXNvbi10by1pZ25vcmUtdG9kby1pdGVtKSkpKSkgKG9yIChub3QgKG1lbWJlciBv cmctYXJjaGl2ZS10YWcgdGFncy1saXN0KSkgKG9yIChub3Qgb3JnLWFnZW5kYS1za2lwLWFyY2hp dmVkLXRyZWVzKSAoYW5kIChlcSBhY3Rpb24gKHF1b3RlIGFnZW5kYSkpIG9yZy1hZ2VuZGEtYXJj aGl2ZXMtbW9kZSkpKSkgKHByb2duIChjb25kICgoZXEgYWN0aW9uIChxdW90ZSBzcGFyc2UtdHJl ZSkpIChhbmQgb3JnLWhpZ2hsaWdodC1zcGFyc2UtdHJlZS1tYXRjaGVzIChvcmctZ2V0LWhlYWRp bmcpIChtYXRjaC1lbmQgMCkgKG9yZy1oaWdobGlnaHQtbmV3LW1hdGNoIChtYXRjaC1iZWdpbm5p bmcgMSkgKG1hdGNoLWVuZCAxKSkpIChvcmctc2hvdy1jb250ZXh0IChxdW90ZSB0YWdzLXRyZWUp KSkgKChlcSBhY3Rpb24gKHF1b3RlIGFnZW5kYSkpIChzZXRxIHR4dCAob3JnLWFnZW5kYS1mb3Jt YXQtaXRlbSAiIiAoY29uY2F0IChpZiAuLi4gLi4uICIiKSAob3JnLWdldC1oZWFkaW5nKSkgY2F0 ZWdvcnkgdGFncy1saXN0KSBwcmlvcml0eSAob3JnLWdldC1wcmlvcml0eSB0eHQpKSAoZ290by1j aGFyIGxzcG9zKSAoc2V0cSBtYXJrZXIgKG9yZy1hZ2VuZGEtbmV3LW1hcmtlcikpIChvcmctYWRk LXByb3BzIHR4dCBwcm9wcyAocXVvdGUgb3JnLW1hcmtlcikgbWFya2VyIChxdW90ZSBvcmctaGQt bWFya2VyKSBtYXJrZXIgKHF1b3RlIG9yZy1jYXRlZ29yeSkgY2F0ZWdvcnkgKHF1b3RlIHRvZG8t c3RhdGUpIHRvZG8gKHF1b3RlIHByaW9yaXR5KSBwcmlvcml0eSAocXVvdGUgdHlwZSkgInRhZ3Nt YXRjaCIpIChwdXNoIHR4dCBydG4pKSAoKGZ1bmN0aW9ucCBhY3Rpb24pIChzZXRxIG9yZy1tYXAt Y29udGludWUtZnJvbSBuaWwpIChzYXZlLWV4Y3Vyc2lvbiAoc2V0cSBydG4xIChmdW5jYWxsIGFj dGlvbikpIChwdXNoIHJ0bjEgcnRuKSkpICh0IChlcnJvciAiSW52YWxpZCBhY3Rpb24iKSkpICh1 bmxlc3Mgb3JnLXRhZ3MtbWF0Y2gtbGlzdC1zdWJsZXZlbHMgKG9yZy1lbmQtb2Ytc3VidHJlZSB0 KSAoYmFja3dhcmQtY2hhciAxKSkpKQogICh3aGVuIChhbmQgKGFuZCAob3IgKG5vdCB0b2RvLW9u bHkpIChtZW1iZXIgdG9kbyBvcmctbm90LWRvbmUta2V5d29yZHMpKSAobGV0ICgoY2FzZS1mb2xk LXNlYXJjaCB0KSkgKGV2YWwgbWF0Y2hlcikpKSAocHJvZ24gKHVubGVzcyAoZXEgYWN0aW9uIChx dW90ZSBzcGFyc2UtdHJlZSkpIChvcmctYWdlbmRhLXNraXApKSB0KSAob3IgKG5vdCB0b2RvLW9u bHkpIChhbmQgKG1lbWJlciB0b2RvIG9yZy1ub3QtZG9uZS1rZXl3b3JkcykgKG9yIChub3Qgb3Jn LWFnZW5kYS10YWdzLXRvZG8taG9ub3ItaWdub3JlLW9wdGlvbnMpIChub3QgKG9yZy1hZ2VuZGEt Y2hlY2stZm9yLXRpbWVzdGFtcC1hcy1yZWFzb24tdG8taWdub3JlLXRvZG8taXRlbSkpKSkpIChv ciAobm90IChtZW1iZXIgb3JnLWFyY2hpdmUtdGFnIHRhZ3MtbGlzdCkpIChvciAobm90IG9yZy1h Z2VuZGEtc2tpcC1hcmNoaXZlZC10cmVlcykgKGFuZCAoZXEgYWN0aW9uIChxdW90ZSBhZ2VuZGEp KSBvcmctYWdlbmRhLWFyY2hpdmVzLW1vZGUpKSkpIChjb25kICgoZXEgYWN0aW9uIChxdW90ZSBz cGFyc2UtdHJlZSkpIChhbmQgb3JnLWhpZ2hsaWdodC1zcGFyc2UtdHJlZS1tYXRjaGVzIChvcmct Z2V0LWhlYWRpbmcpIChtYXRjaC1lbmQgMCkgKG9yZy1oaWdobGlnaHQtbmV3LW1hdGNoIChtYXRj aC1iZWdpbm5pbmcgMSkgKG1hdGNoLWVuZCAxKSkpIChvcmctc2hvdy1jb250ZXh0IChxdW90ZSB0 YWdzLXRyZWUpKSkgKChlcSBhY3Rpb24gKHF1b3RlIGFnZW5kYSkpIChzZXRxIHR4dCAob3JnLWFn ZW5kYS1mb3JtYXQtaXRlbSAiIiAoY29uY2F0IChpZiAoZXEgb3JnLXRhZ3MtbWF0Y2gtbGlzdC1z dWJsZXZlbHMgLi4uKSAobWFrZS1zdHJpbmcgLi4uIDQ2KSAiIikgKG9yZy1nZXQtaGVhZGluZykp IGNhdGVnb3J5IHRhZ3MtbGlzdCkgcHJpb3JpdHkgKG9yZy1nZXQtcHJpb3JpdHkgdHh0KSkgKGdv dG8tY2hhciBsc3BvcykgKHNldHEgbWFya2VyIChvcmctYWdlbmRhLW5ldy1tYXJrZXIpKSAob3Jn LWFkZC1wcm9wcyB0eHQgcHJvcHMgKHF1b3RlIG9yZy1tYXJrZXIpIG1hcmtlciAocXVvdGUgb3Jn LWhkLW1hcmtlcikgbWFya2VyIChxdW90ZSBvcmctY2F0ZWdvcnkpIGNhdGVnb3J5IChxdW90ZSB0 b2RvLXN0YXRlKSB0b2RvIChxdW90ZSBwcmlvcml0eSkgcHJpb3JpdHkgKHF1b3RlIHR5cGUpICJ0 YWdzbWF0Y2giKSAocHVzaCB0eHQgcnRuKSkgKChmdW5jdGlvbnAgYWN0aW9uKSAoc2V0cSBvcmct bWFwLWNvbnRpbnVlLWZyb20gbmlsKSAoc2F2ZS1leGN1cnNpb24gKHNldHEgcnRuMSAoZnVuY2Fs bCBhY3Rpb24pKSAocHVzaCBydG4xIHJ0bikpKSAodCAoZXJyb3IgIkludmFsaWQgYWN0aW9uIikp KSAodW5sZXNzIG9yZy10YWdzLW1hdGNoLWxpc3Qtc3VibGV2ZWxzIChvcmctZW5kLW9mLXN1YnRy ZWUgdCkgKGJhY2t3YXJkLWNoYXIgMSkpKQogIChjYXRjaCA6c2tpcCAoc2V0cSB0b2RvIChpZiAo bWF0Y2gtZW5kIDEpIChvcmctbWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMikpIHRhZ3MgKGlm IChtYXRjaC1lbmQgNCkgKG9yZy1tYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA0KSkpIChnb3Rv LWNoYXIgKHNldHEgbHNwb3MgKG1hdGNoLWJlZ2lubmluZyAwKSkpIChzZXRxIGxldmVsIChvcmct cmVkdWNlZC1sZXZlbCAoZnVuY2FsbCBvdXRsaW5lLWxldmVsKSkgY2F0ZWdvcnkgKG9yZy1nZXQt Y2F0ZWdvcnkpKSAoc2V0cSBpIGxsYXN0IGxsYXN0IGxldmVsKSAod2hpbGUgKD49IGkgbGV2ZWwp ICh3aGVuIChzZXRxIGVudHJ5IChhc3NvYyBpIHRhZ3MtYWxpc3QpKSAoc2V0cSB0YWdzLWFsaXN0 IChkZWxldGUgZW50cnkgdGFncy1hbGlzdCkpKSAoc2V0cSBpICgxLSBpKSkpICh3aGVuIHRhZ3Mg KHNldHEgdGFncyAob3JnLXNwbGl0LXN0cmluZyB0YWdzICI6IikgdGFncy1hbGlzdCAoY29ucyAo Y29ucyBsZXZlbCB0YWdzKSB0YWdzLWFsaXN0KSkpIChzZXRxIHRhZ3MtbGlzdCAoaWYgb3JnLXVz ZS10YWctaW5oZXJpdGFuY2UgKGFwcGx5IChxdW90ZSBhcHBlbmQpIChtYXBjYXIgKHF1b3RlIGNk cikgKHJldmVyc2UgdGFncy1hbGlzdCkpKSB0YWdzKSBvcmctc2Nhbm5lci10YWdzIHRhZ3MtbGlz dCkgKHdoZW4gb3JnLXVzZS10YWctaW5oZXJpdGFuY2UgKHNldGNkciAoY2FyIHRhZ3MtYWxpc3Qp IChtYXBjYXIgKGxhbWJkYSAoeCkgKHNldHEgeCAoY29weS1zZXF1ZW5jZSB4KSkgKG9yZy1hZGQt cHJvcC1pbmhlcml0ZWQgeCkpIChjZGFyIHRhZ3MtYWxpc3QpKSkpICh3aGVuIChhbmQgdGFncyBv cmctdXNlLXRhZy1pbmhlcml0YW5jZSAob3IgKG5vdCAoZXEgdCBvcmctdXNlLXRhZy1pbmhlcml0 YW5jZSkpIG9yZy10YWdzLWV4Y2x1ZGUtZnJvbS1pbmhlcml0YW5jZSkpIChzZXRjZHIgKGNhciB0 YWdzLWFsaXN0KSAob3JnLXJlbW92ZS11bmluaGVyaXRlZC10YWdzIChjZGFyIHRhZ3MtYWxpc3Qp KSkpICh3aGVuIChhbmQgKGFuZCAob3IgKG5vdCB0b2RvLW9ubHkpIChtZW1iZXIgdG9kbyBvcmct bm90LWRvbmUta2V5d29yZHMpKSAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSkgKGV2YWwgbWF0 Y2hlcikpKSAocHJvZ24gKHVubGVzcyAoZXEgYWN0aW9uIChxdW90ZSBzcGFyc2UtdHJlZSkpIChv cmctYWdlbmRhLXNraXApKSB0KSAob3IgKG5vdCB0b2RvLW9ubHkpIChhbmQgKG1lbWJlciB0b2Rv IG9yZy1ub3QtZG9uZS1rZXl3b3JkcykgKG9yIChub3Qgb3JnLWFnZW5kYS10YWdzLXRvZG8taG9u b3ItaWdub3JlLW9wdGlvbnMpIChub3QgKG9yZy1hZ2VuZGEtY2hlY2stZm9yLXRpbWVzdGFtcC1h cy1yZWFzb24tdG8taWdub3JlLXRvZG8taXRlbSkpKSkpIChvciAobm90IChtZW1iZXIgb3JnLWFy Y2hpdmUtdGFnIHRhZ3MtbGlzdCkpIChvciAobm90IG9yZy1hZ2VuZGEtc2tpcC1hcmNoaXZlZC10 cmVlcykgKGFuZCAoZXEgYWN0aW9uIChxdW90ZSBhZ2VuZGEpKSBvcmctYWdlbmRhLWFyY2hpdmVz LW1vZGUpKSkpIChjb25kICgoZXEgYWN0aW9uIChxdW90ZSBzcGFyc2UtdHJlZSkpIChhbmQgb3Jn LWhpZ2hsaWdodC1zcGFyc2UtdHJlZS1tYXRjaGVzIChvcmctZ2V0LWhlYWRpbmcpIChtYXRjaC1l bmQgMCkgKG9yZy1oaWdobGlnaHQtbmV3LW1hdGNoIChtYXRjaC1iZWdpbm5pbmcgMSkgKG1hdGNo LWVuZCAxKSkpIChvcmctc2hvdy1jb250ZXh0IChxdW90ZSB0YWdzLXRyZWUpKSkgKChlcSBhY3Rp b24gKHF1b3RlIGFnZW5kYSkpIChzZXRxIHR4dCAob3JnLWFnZW5kYS1mb3JtYXQtaXRlbSAiIiAo Y29uY2F0IChpZiAuLi4gLi4uICIiKSAob3JnLWdldC1oZWFkaW5nKSkgY2F0ZWdvcnkgdGFncy1s aXN0KSBwcmlvcml0eSAob3JnLWdldC1wcmlvcml0eSB0eHQpKSAoZ290by1jaGFyIGxzcG9zKSAo c2V0cSBtYXJrZXIgKG9yZy1hZ2VuZGEtbmV3LW1hcmtlcikpIChvcmctYWRkLXByb3BzIHR4dCBw cm9wcyAocXVvdGUgb3JnLW1hcmtlcikgbWFya2VyIChxdW90ZSBvcmctaGQtbWFya2VyKSBtYXJr ZXIgKHF1b3RlIG9yZy1jYXRlZ29yeSkgY2F0ZWdvcnkgKHF1b3RlIHRvZG8tc3RhdGUpIHRvZG8g KHF1b3RlIHByaW9yaXR5KSBwcmlvcml0eSAocXVvdGUgdHlwZSkgInRhZ3NtYXRjaCIpIChwdXNo IHR4dCBydG4pKSAoKGZ1bmN0aW9ucCBhY3Rpb24pIChzZXRxIG9yZy1tYXAtY29udGludWUtZnJv bSBuaWwpIChzYXZlLWV4Y3Vyc2lvbiAoc2V0cSBydG4xIChmdW5jYWxsIGFjdGlvbikpIChwdXNo IHJ0bjEgcnRuKSkpICh0IChlcnJvciAiSW52YWxpZCBhY3Rpb24iKSkpICh1bmxlc3Mgb3JnLXRh Z3MtbWF0Y2gtbGlzdC1zdWJsZXZlbHMgKG9yZy1lbmQtb2Ytc3VidHJlZSB0KSAoYmFja3dhcmQt Y2hhciAxKSkpKQogICh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgcmUgbmlsIHQpIChzZXRxIG9y Zy1tYXAtY29udGludWUtZnJvbSBuaWwpIChjYXRjaCA6c2tpcCAoc2V0cSB0b2RvIChpZiAobWF0 Y2gtZW5kIDEpIChvcmctbWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMikpIHRhZ3MgKGlmICht YXRjaC1lbmQgNCkgKG9yZy1tYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA0KSkpIChnb3RvLWNo YXIgKHNldHEgbHNwb3MgKG1hdGNoLWJlZ2lubmluZyAwKSkpIChzZXRxIGxldmVsIChvcmctcmVk dWNlZC1sZXZlbCAoZnVuY2FsbCBvdXRsaW5lLWxldmVsKSkgY2F0ZWdvcnkgKG9yZy1nZXQtY2F0 ZWdvcnkpKSAoc2V0cSBpIGxsYXN0IGxsYXN0IGxldmVsKSAod2hpbGUgKD49IGkgbGV2ZWwpICh3 aGVuIChzZXRxIGVudHJ5IChhc3NvYyBpIHRhZ3MtYWxpc3QpKSAoc2V0cSB0YWdzLWFsaXN0IChk ZWxldGUgZW50cnkgdGFncy1hbGlzdCkpKSAoc2V0cSBpICgxLSBpKSkpICh3aGVuIHRhZ3MgKHNl dHEgdGFncyAob3JnLXNwbGl0LXN0cmluZyB0YWdzICI6IikgdGFncy1hbGlzdCAoY29ucyAoY29u cyBsZXZlbCB0YWdzKSB0YWdzLWFsaXN0KSkpIChzZXRxIHRhZ3MtbGlzdCAoaWYgb3JnLXVzZS10 YWctaW5oZXJpdGFuY2UgKGFwcGx5IChxdW90ZSBhcHBlbmQpIChtYXBjYXIgKHF1b3RlIGNkcikg KHJldmVyc2UgdGFncy1hbGlzdCkpKSB0YWdzKSBvcmctc2Nhbm5lci10YWdzIHRhZ3MtbGlzdCkg KHdoZW4gb3JnLXVzZS10YWctaW5oZXJpdGFuY2UgKHNldGNkciAoY2FyIHRhZ3MtYWxpc3QpICht YXBjYXIgKGxhbWJkYSAoeCkgKHNldHEgeCAoY29weS1zZXF1ZW5jZSB4KSkgKG9yZy1hZGQtcHJv cC1pbmhlcml0ZWQgeCkpIChjZGFyIHRhZ3MtYWxpc3QpKSkpICh3aGVuIChhbmQgdGFncyBvcmct dXNlLXRhZy1pbmhlcml0YW5jZSAob3IgKG5vdCAoZXEgdCBvcmctdXNlLXRhZy1pbmhlcml0YW5j ZSkpIG9yZy10YWdzLWV4Y2x1ZGUtZnJvbS1pbmhlcml0YW5jZSkpIChzZXRjZHIgKGNhciB0YWdz LWFsaXN0KSAob3JnLXJlbW92ZS11bmluaGVyaXRlZC10YWdzIChjZGFyIHRhZ3MtYWxpc3QpKSkp ICh3aGVuIChhbmQgKGFuZCAob3IgKG5vdCB0b2RvLW9ubHkpIChtZW1iZXIgdG9kbyBvcmctbm90 LWRvbmUta2V5d29yZHMpKSAobGV0ICgoY2FzZS1mb2xkLXNlYXJjaCB0KSkgKGV2YWwgbWF0Y2hl cikpKSAocHJvZ24gKHVubGVzcyAoZXEgYWN0aW9uIChxdW90ZSBzcGFyc2UtdHJlZSkpIChvcmct YWdlbmRhLXNraXApKSB0KSAob3IgKG5vdCB0b2RvLW9ubHkpIChhbmQgKG1lbWJlciB0b2RvIG9y Zy1ub3QtZG9uZS1rZXl3b3JkcykgKG9yIChub3Qgb3JnLWFnZW5kYS10YWdzLXRvZG8taG9ub3It aWdub3JlLW9wdGlvbnMpIChub3QgLi4uKSkpKSAob3IgKG5vdCAobWVtYmVyIG9yZy1hcmNoaXZl LXRhZyB0YWdzLWxpc3QpKSAob3IgKG5vdCBvcmctYWdlbmRhLXNraXAtYXJjaGl2ZWQtdHJlZXMp IChhbmQgKGVxIGFjdGlvbiAuLi4pIG9yZy1hZ2VuZGEtYXJjaGl2ZXMtbW9kZSkpKSkgKGNvbmQg KChlcSBhY3Rpb24gKHF1b3RlIHNwYXJzZS10cmVlKSkgKGFuZCBvcmctaGlnaGxpZ2h0LXNwYXJz ZS10cmVlLW1hdGNoZXMgKG9yZy1nZXQtaGVhZGluZykgKG1hdGNoLWVuZCAwKSAob3JnLWhpZ2hs aWdodC1uZXctbWF0Y2ggKG1hdGNoLWJlZ2lubmluZyAxKSAobWF0Y2gtZW5kIDEpKSkgKG9yZy1z aG93LWNvbnRleHQgKHF1b3RlIHRhZ3MtdHJlZSkpKSAoKGVxIGFjdGlvbiAocXVvdGUgYWdlbmRh KSkgKHNldHEgdHh0IChvcmctYWdlbmRhLWZvcm1hdC1pdGVtICIiIChjb25jYXQgLi4uIC4uLikg Y2F0ZWdvcnkgdGFncy1saXN0KSBwcmlvcml0eSAob3JnLWdldC1wcmlvcml0eSB0eHQpKSAoZ290 by1jaGFyIGxzcG9zKSAoc2V0cSBtYXJrZXIgKG9yZy1hZ2VuZGEtbmV3LW1hcmtlcikpIChvcmct YWRkLXByb3BzIHR4dCBwcm9wcyAocXVvdGUgb3JnLW1hcmtlcikgbWFya2VyIChxdW90ZSBvcmct aGQtbWFya2VyKSBtYXJrZXIgKHF1b3RlIG9yZy1jYXRlZ29yeSkgY2F0ZWdvcnkgKHF1b3RlIHRv ZG8tc3RhdGUpIHRvZG8gKHF1b3RlIHByaW9yaXR5KSBwcmlvcml0eSAocXVvdGUgdHlwZSkgInRh Z3NtYXRjaCIpIChwdXNoIHR4dCBydG4pKSAoKGZ1bmN0aW9ucCBhY3Rpb24pIChzZXRxIG9yZy1t YXAtY29udGludWUtZnJvbSBuaWwpIChzYXZlLWV4Y3Vyc2lvbiAoc2V0cSBydG4xIChmdW5jYWxs IGFjdGlvbikpIChwdXNoIHJ0bjEgcnRuKSkpICh0IChlcnJvciAiSW52YWxpZCBhY3Rpb24iKSkp ICh1bmxlc3Mgb3JnLXRhZ3MtbWF0Y2gtbGlzdC1zdWJsZXZlbHMgKG9yZy1lbmQtb2Ytc3VidHJl ZSB0KSAoYmFja3dhcmQtY2hhciAxKSkpKSAoaWYgb3JnLW1hcC1jb250aW51ZS1mcm9tIChnb3Rv LWNoYXIgb3JnLW1hcC1jb250aW51ZS1mcm9tKSAoYW5kICg9IChwb2ludCkgbHNwb3MpIChlbmQt b2YtbGluZSAxKSkpKQogIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChwb2ludC1taW4pKSAo d2hlbiAoZXEgYWN0aW9uIChxdW90ZSBzcGFyc2UtdHJlZSkpIChvcmctb3ZlcnZpZXcpIChvcmct cmVtb3ZlLW9jY3VyLWhpZ2hsaWdodHMpKSAod2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIG5p bCB0KSAoc2V0cSBvcmctbWFwLWNvbnRpbnVlLWZyb20gbmlsKSAoY2F0Y2ggOnNraXAgKHNldHEg dG9kbyAoaWYgKG1hdGNoLWVuZCAxKSAob3JnLW1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDIp KSB0YWdzIChpZiAobWF0Y2gtZW5kIDQpIChvcmctbWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMg NCkpKSAoZ290by1jaGFyIChzZXRxIGxzcG9zIChtYXRjaC1iZWdpbm5pbmcgMCkpKSAoc2V0cSBs ZXZlbCAob3JnLXJlZHVjZWQtbGV2ZWwgKGZ1bmNhbGwgb3V0bGluZS1sZXZlbCkpIGNhdGVnb3J5 IChvcmctZ2V0LWNhdGVnb3J5KSkgKHNldHEgaSBsbGFzdCBsbGFzdCBsZXZlbCkgKHdoaWxlICg+ PSBpIGxldmVsKSAod2hlbiAoc2V0cSBlbnRyeSAoYXNzb2MgaSB0YWdzLWFsaXN0KSkgKHNldHEg dGFncy1hbGlzdCAoZGVsZXRlIGVudHJ5IHRhZ3MtYWxpc3QpKSkgKHNldHEgaSAoMS0gaSkpKSAo d2hlbiB0YWdzIChzZXRxIHRhZ3MgKG9yZy1zcGxpdC1zdHJpbmcgdGFncyAiOiIpIHRhZ3MtYWxp c3QgKGNvbnMgKGNvbnMgbGV2ZWwgdGFncykgdGFncy1hbGlzdCkpKSAoc2V0cSB0YWdzLWxpc3Qg KGlmIG9yZy11c2UtdGFnLWluaGVyaXRhbmNlIChhcHBseSAocXVvdGUgYXBwZW5kKSAobWFwY2Fy IChxdW90ZSBjZHIpIChyZXZlcnNlIHRhZ3MtYWxpc3QpKSkgdGFncykgb3JnLXNjYW5uZXItdGFn cyB0YWdzLWxpc3QpICh3aGVuIG9yZy11c2UtdGFnLWluaGVyaXRhbmNlIChzZXRjZHIgKGNhciB0 YWdzLWFsaXN0KSAobWFwY2FyIChsYW1iZGEgKHgpIChzZXRxIHggLi4uKSAob3JnLWFkZC1wcm9w LWluaGVyaXRlZCB4KSkgKGNkYXIgdGFncy1hbGlzdCkpKSkgKHdoZW4gKGFuZCB0YWdzIG9yZy11 c2UtdGFnLWluaGVyaXRhbmNlIChvciAobm90IChlcSB0IG9yZy11c2UtdGFnLWluaGVyaXRhbmNl KSkgb3JnLXRhZ3MtZXhjbHVkZS1mcm9tLWluaGVyaXRhbmNlKSkgKHNldGNkciAoY2FyIHRhZ3Mt YWxpc3QpIChvcmctcmVtb3ZlLXVuaW5oZXJpdGVkLXRhZ3MgKGNkYXIgdGFncy1hbGlzdCkpKSkg KHdoZW4gKGFuZCAoYW5kIChvciAobm90IHRvZG8tb25seSkgKG1lbWJlciB0b2RvIG9yZy1ub3Qt ZG9uZS1rZXl3b3JkcykpIChsZXQgKC4uLikgKGV2YWwgbWF0Y2hlcikpKSAocHJvZ24gKHVubGVz cyAoZXEgYWN0aW9uIC4uLikgKG9yZy1hZ2VuZGEtc2tpcCkpIHQpIChvciAobm90IHRvZG8tb25s eSkgKGFuZCAobWVtYmVyIHRvZG8gb3JnLW5vdC1kb25lLWtleXdvcmRzKSAob3IgLi4uIC4uLikp KSAob3IgKG5vdCAobWVtYmVyIG9yZy1hcmNoaXZlLXRhZyB0YWdzLWxpc3QpKSAob3IgKG5vdCBv cmctYWdlbmRhLXNraXAtYXJjaGl2ZWQtdHJlZXMpIChhbmQgLi4uIG9yZy1hZ2VuZGEtYXJjaGl2 ZXMtbW9kZSkpKSkgKGNvbmQgKChlcSBhY3Rpb24gKHF1b3RlIHNwYXJzZS10cmVlKSkgKGFuZCBv cmctaGlnaGxpZ2h0LXNwYXJzZS10cmVlLW1hdGNoZXMgKG9yZy1nZXQtaGVhZGluZykgKG1hdGNo LWVuZCAwKSAob3JnLWhpZ2hsaWdodC1uZXctbWF0Y2ggLi4uIC4uLikpIChvcmctc2hvdy1jb250 ZXh0IChxdW90ZSB0YWdzLXRyZWUpKSkgKChlcSBhY3Rpb24gKHF1b3RlIGFnZW5kYSkpIChzZXRx IHR4dCAob3JnLWFnZW5kYS1mb3JtYXQtaXRlbSAiIiAuLi4gY2F0ZWdvcnkgdGFncy1saXN0KSBw cmlvcml0eSAob3JnLWdldC1wcmlvcml0eSB0eHQpKSAoZ290by1jaGFyIGxzcG9zKSAoc2V0cSBt YXJrZXIgKG9yZy1hZ2VuZGEtbmV3LW1hcmtlcikpIChvcmctYWRkLXByb3BzIHR4dCBwcm9wcyAo cXVvdGUgb3JnLW1hcmtlcikgbWFya2VyIChxdW90ZSBvcmctaGQtbWFya2VyKSBtYXJrZXIgKHF1 b3RlIG9yZy1jYXRlZ29yeSkgY2F0ZWdvcnkgKHF1b3RlIHRvZG8tc3RhdGUpIHRvZG8gKHF1b3Rl IHByaW9yaXR5KSBwcmlvcml0eSAocXVvdGUgdHlwZSkgInRhZ3NtYXRjaCIpIChwdXNoIHR4dCBy dG4pKSAoKGZ1bmN0aW9ucCBhY3Rpb24pIChzZXRxIG9yZy1tYXAtY29udGludWUtZnJvbSBuaWwp IChzYXZlLWV4Y3Vyc2lvbiAoc2V0cSBydG4xIC4uLikgKHB1c2ggcnRuMSBydG4pKSkgKHQgKGVy cm9yICJJbnZhbGlkIGFjdGlvbiIpKSkgKHVubGVzcyBvcmctdGFncy1tYXRjaC1saXN0LXN1Ymxl dmVscyAob3JnLWVuZC1vZi1zdWJ0cmVlIHQpIChiYWNrd2FyZC1jaGFyIDEpKSkpIChpZiBvcmct bWFwLWNvbnRpbnVlLWZyb20gKGdvdG8tY2hhciBvcmctbWFwLWNvbnRpbnVlLWZyb20pIChhbmQg KD0gKHBvaW50KSBsc3BvcykgKGVuZC1vZi1saW5lIDEpKSkpKQogIChsZXQqICgocmUgKGNvbmNh dCAiXiIgKGlmIHN0YXJ0LWxldmVsIChjb25jYXQgIlxcKlxceyIgKG51bWJlci10by1zdHJpbmcg c3RhcnQtbGV2ZWwpICJcXH0gIikgb3JnLW91dGxpbmUtcmVnZXhwKSAiICpcXChcXDxcXCgiICht YXBjb25jYXQgKHF1b3RlIHJlZ2V4cC1xdW90ZSkgb3JnLXRvZG8ta2V5d29yZHMtMSAiXFx8Iikg KG9yZy1yZSAoaWYgdG9kby1vbmx5ICJcXD5cXClcXClbICAgICBdK1xcKC4qP1xcKVxcKDpbWzph bG51bTpdX0AjJTpdKzpcXCk/WyAgXSokIiAiXFw+XFwpXFwpPyAqXFwoW14gXS4qP1xcKVxcKDpb WzphbG51bTpdX0AjJTpdKzpcXCk/WyAgXSokIikpKSkgKHByb3BzIChsaXN0IChxdW90ZSBmYWNl KSAocXVvdGUgZGVmYXVsdCkgKHF1b3RlIGRvbmUtZmFjZSkgKHF1b3RlIG9yZy1hZ2VuZGEtZG9u ZSkgKHF1b3RlIHVuZG9uZS1mYWNlKSAocXVvdGUgZGVmYXVsdCkgKHF1b3RlIG1vdXNlLWZhY2Up IChxdW90ZSBoaWdobGlnaHQpIChxdW90ZSBvcmctbm90LWRvbmUtcmVnZXhwKSBvcmctbm90LWRv bmUtcmVnZXhwIChxdW90ZSBvcmctdG9kby1yZWdleHApIG9yZy10b2RvLXJlZ2V4cCAocXVvdGUg b3JnLWNvbXBsZXgtaGVhZGluZy1yZWdleHApIG9yZy1jb21wbGV4LWhlYWRpbmctcmVnZXhwIChx dW90ZSBoZWxwLWVjaG8pIChmb3JtYXQgIm1vdXNlLTIgb3IgUkVUIGp1bXAgdG8gb3JnIGZpbGUg JXMiIChhYmJyZXZpYXRlLWZpbGUtbmFtZSAob3IgKGJ1ZmZlci1maWxlLW5hbWUgLi4uKSAoYnVm ZmVyLW5hbWUgLi4uKSkpKSkpIChjYXNlLWZvbGQtc2VhcmNoIG5pbCkgKG9yZy1tYXAtY29udGlu dWUtZnJvbSBuaWwpIGxzcG9zIHRhZ3MgdGFncy1saXN0ICh0YWdzLWFsaXN0IChsaXN0IChjb25z IDAgb3JnLWZpbGUtdGFncykpKSAobGxhc3QgMCkgcnRuIHJ0bjEgbGV2ZWwgY2F0ZWdvcnkgaSB0 eHQgdG9kbyBtYXJrZXIgZW50cnkgcHJpb3JpdHkpICh3aGVuIChub3QgKG9yIChtZW1iZXIgYWN0 aW9uIChxdW90ZSAoYWdlbmRhIHNwYXJzZS10cmVlKSkpIChmdW5jdGlvbnAgYWN0aW9uKSkpIChz ZXRxIGFjdGlvbiAobGlzdCAocXVvdGUgbGFtYmRhKSBuaWwgYWN0aW9uKSkpIChzYXZlLWV4Y3Vy c2lvbiAoZ290by1jaGFyIChwb2ludC1taW4pKSAod2hlbiAoZXEgYWN0aW9uIChxdW90ZSBzcGFy c2UtdHJlZSkpIChvcmctb3ZlcnZpZXcpIChvcmctcmVtb3ZlLW9jY3VyLWhpZ2hsaWdodHMpKSAo d2hpbGUgKHJlLXNlYXJjaC1mb3J3YXJkIHJlIG5pbCB0KSAoc2V0cSBvcmctbWFwLWNvbnRpbnVl LWZyb20gbmlsKSAoY2F0Y2ggOnNraXAgKHNldHEgdG9kbyAoaWYgKG1hdGNoLWVuZCAxKSAob3Jn LW1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDIpKSB0YWdzIChpZiAobWF0Y2gtZW5kIDQpIChv cmctbWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgNCkpKSAoZ290by1jaGFyIChzZXRxIGxzcG9z IChtYXRjaC1iZWdpbm5pbmcgMCkpKSAoc2V0cSBsZXZlbCAob3JnLXJlZHVjZWQtbGV2ZWwgKGZ1 bmNhbGwgb3V0bGluZS1sZXZlbCkpIGNhdGVnb3J5IChvcmctZ2V0LWNhdGVnb3J5KSkgKHNldHEg aSBsbGFzdCBsbGFzdCBsZXZlbCkgKHdoaWxlICg+PSBpIGxldmVsKSAod2hlbiAoc2V0cSBlbnRy eSAoYXNzb2MgaSB0YWdzLWFsaXN0KSkgKHNldHEgdGFncy1hbGlzdCAoZGVsZXRlIGVudHJ5IHRh Z3MtYWxpc3QpKSkgKHNldHEgaSAoMS0gaSkpKSAod2hlbiB0YWdzIChzZXRxIHRhZ3MgKG9yZy1z cGxpdC1zdHJpbmcgdGFncyAiOiIpIHRhZ3MtYWxpc3QgKGNvbnMgKGNvbnMgbGV2ZWwgdGFncykg dGFncy1hbGlzdCkpKSAoc2V0cSB0YWdzLWxpc3QgKGlmIG9yZy11c2UtdGFnLWluaGVyaXRhbmNl IChhcHBseSAocXVvdGUgYXBwZW5kKSAobWFwY2FyIC4uLiAuLi4pKSB0YWdzKSBvcmctc2Nhbm5l ci10YWdzIHRhZ3MtbGlzdCkgKHdoZW4gb3JnLXVzZS10YWctaW5oZXJpdGFuY2UgKHNldGNkciAo Y2FyIHRhZ3MtYWxpc3QpIChtYXBjYXIgKGxhbWJkYSAuLi4gLi4uIC4uLikgKGNkYXIgdGFncy1h bGlzdCkpKSkgKHdoZW4gKGFuZCB0YWdzIG9yZy11c2UtdGFnLWluaGVyaXRhbmNlIChvciAobm90 IC4uLikgb3JnLXRhZ3MtZXhjbHVkZS1mcm9tLWluaGVyaXRhbmNlKSkgKHNldGNkciAoY2FyIHRh Z3MtYWxpc3QpIChvcmctcmVtb3ZlLXVuaW5oZXJpdGVkLXRhZ3MgKGNkYXIgdGFncy1hbGlzdCkp KSkgKHdoZW4gKGFuZCAoYW5kIChvciAuLi4gLi4uKSAobGV0IC4uLiAuLi4pKSAocHJvZ24gKHVu bGVzcyAuLi4gLi4uKSB0KSAob3IgKG5vdCB0b2RvLW9ubHkpIChhbmQgLi4uIC4uLikpIChvciAo bm90IC4uLikgKG9yIC4uLiAuLi4pKSkgKGNvbmQgKChlcSBhY3Rpb24gLi4uKSAoYW5kIG9yZy1o aWdobGlnaHQtc3BhcnNlLXRyZWUtbWF0Y2hlcyAuLi4gLi4uIC4uLikgKG9yZy1zaG93LWNvbnRl eHQgLi4uKSkgKChlcSBhY3Rpb24gLi4uKSAoc2V0cSB0eHQgLi4uIHByaW9yaXR5IC4uLikgKGdv dG8tY2hhciBsc3BvcykgKHNldHEgbWFya2VyIC4uLikgKG9yZy1hZGQtcHJvcHMgdHh0IHByb3Bz IC4uLiBtYXJrZXIgLi4uIG1hcmtlciAuLi4gY2F0ZWdvcnkgLi4uIHRvZG8gLi4uIHByaW9yaXR5 IC4uLiAidGFnc21hdGNoIikgKHB1c2ggdHh0IHJ0bikpICgoZnVuY3Rpb25wIGFjdGlvbikgKHNl dHEgb3JnLW1hcC1jb250aW51ZS1mcm9tIG5pbCkgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSAo dCAoZXJyb3IgIkludmFsaWQgYWN0aW9uIikpKSAodW5sZXNzIG9yZy10YWdzLW1hdGNoLWxpc3Qt c3VibGV2ZWxzIChvcmctZW5kLW9mLXN1YnRyZWUgdCkgKGJhY2t3YXJkLWNoYXIgMSkpKSkgKGlm IG9yZy1tYXAtY29udGludWUtZnJvbSAoZ290by1jaGFyIG9yZy1tYXAtY29udGludWUtZnJvbSkg KGFuZCAoPSAocG9pbnQpIGxzcG9zKSAoZW5kLW9mLWxpbmUgMSkpKSkpICh3aGVuIChhbmQgKGVx IGFjdGlvbiAocXVvdGUgc3BhcnNlLXRyZWUpKSAobm90IG9yZy1zcGFyc2UtdHJlZS1vcGVuLWFy Y2hpdmVkLXRyZWVzKSkgKG9yZy1oaWRlLWFyY2hpdmVkLXN1YnRyZWVzIChwb2ludC1taW4pIChw b2ludC1tYXgpKSkgKG5yZXZlcnNlIHJ0bikpCiAgb3JnLXNjYW4tdGFncyhhZ2VuZGEgKGFuZCAo bWVtYmVyIHRvZG8gb3JnLW5vdC1kb25lLWtleXdvcmRzKSAoYW5kIChwcm9nbiAoc2V0cSBvcmct Y2FjaGVkLXByb3BzIG5pbCkgKG5vdCAobWVtYmVyICJDQU5DRUxMRUQiIHRhZ3MtbGlzdCkpKSB0 KSkgKDQpKQogIChzZXRxIHJ0biAob3JnLXNjYW4tdGFncyAocXVvdGUgYWdlbmRhKSBtYXRjaGVy IHRvZG8tb25seSkpCiAgKHNhdmUtcmVzdHJpY3Rpb24gKGlmIG9yZy1hZ2VuZGEtcmVzdHJpY3Qg KG5hcnJvdy10by1yZWdpb24gb3JnLWFnZW5kYS1yZXN0cmljdC1iZWdpbiBvcmctYWdlbmRhLXJl c3RyaWN0LWVuZCkgKHdpZGVuKSkgKHNldHEgcnRuIChvcmctc2Nhbi10YWdzIChxdW90ZSBhZ2Vu ZGEpIG1hdGNoZXIgdG9kby1vbmx5KSkgKHNldHEgcnRuYWxsIChhcHBlbmQgcnRuYWxsIHJ0bikp KQogIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAoaWYgb3JnLWFnZW5kYS1yZXN0 cmljdCAobmFycm93LXRvLXJlZ2lvbiBvcmctYWdlbmRhLXJlc3RyaWN0LWJlZ2luIG9yZy1hZ2Vu ZGEtcmVzdHJpY3QtZW5kKSAod2lkZW4pKSAoc2V0cSBydG4gKG9yZy1zY2FuLXRhZ3MgKHF1b3Rl IGFnZW5kYSkgbWF0Y2hlciB0b2RvLW9ubHkpKSAoc2V0cSBydG5hbGwgKGFwcGVuZCBydG5hbGwg cnRuKSkpKQogIChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVyIGJ1ZmZlcikgKHVubGVz cyAoZXEgbWFqb3ItbW9kZSAocXVvdGUgb3JnLW1vZGUpKSAoZXJyb3IgIkFnZW5kYSBmaWxlICVz IGlzIG5vdCBpbiBgb3JnLW1vZGUnIiBmaWxlKSkgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3Ry aWN0aW9uIChpZiBvcmctYWdlbmRhLXJlc3RyaWN0IChuYXJyb3ctdG8tcmVnaW9uIG9yZy1hZ2Vu ZGEtcmVzdHJpY3QtYmVnaW4gb3JnLWFnZW5kYS1yZXN0cmljdC1lbmQpICh3aWRlbikpIChzZXRx IHJ0biAob3JnLXNjYW4tdGFncyAocXVvdGUgYWdlbmRhKSBtYXRjaGVyIHRvZG8tb25seSkpIChz ZXRxIHJ0bmFsbCAoYXBwZW5kIHJ0bmFsbCBydG4pKSkpKQogICh3aXRoLWN1cnJlbnQtYnVmZmVy IGJ1ZmZlciAodW5sZXNzIChlcSBtYWpvci1tb2RlIChxdW90ZSBvcmctbW9kZSkpIChlcnJvciAi QWdlbmRhIGZpbGUgJXMgaXMgbm90IGluIGBvcmctbW9kZSciIGZpbGUpKSAoc2F2ZS1leGN1cnNp b24gKHNhdmUtcmVzdHJpY3Rpb24gKGlmIG9yZy1hZ2VuZGEtcmVzdHJpY3QgKG5hcnJvdy10by1y ZWdpb24gb3JnLWFnZW5kYS1yZXN0cmljdC1iZWdpbiBvcmctYWdlbmRhLXJlc3RyaWN0LWVuZCkg KHdpZGVuKSkgKHNldHEgcnRuIChvcmctc2Nhbi10YWdzIChxdW90ZSBhZ2VuZGEpIG1hdGNoZXIg dG9kby1vbmx5KSkgKHNldHEgcnRuYWxsIChhcHBlbmQgcnRuYWxsIHJ0bikpKSkpCiAgKGlmIChu b3QgYnVmZmVyKSAoc2V0cSBydG4gKGxpc3QgKGZvcm1hdCAiT1JHLUFHRU5EQS1FUlJPUjogTm8g c3VjaCBvcmctZmlsZSAlcyIgZmlsZSkpIHJ0bmFsbCAoYXBwZW5kIHJ0bmFsbCBydG4pKSAod2l0 aC1jdXJyZW50LWJ1ZmZlciBidWZmZXIgKHVubGVzcyAoZXEgbWFqb3ItbW9kZSAocXVvdGUgb3Jn LW1vZGUpKSAoZXJyb3IgIkFnZW5kYSBmaWxlICVzIGlzIG5vdCBpbiBgb3JnLW1vZGUnIiBmaWxl KSkgKHNhdmUtZXhjdXJzaW9uIChzYXZlLXJlc3RyaWN0aW9uIChpZiBvcmctYWdlbmRhLXJlc3Ry aWN0IChuYXJyb3ctdG8tcmVnaW9uIG9yZy1hZ2VuZGEtcmVzdHJpY3QtYmVnaW4gb3JnLWFnZW5k YS1yZXN0cmljdC1lbmQpICh3aWRlbikpIChzZXRxIHJ0biAob3JnLXNjYW4tdGFncyAocXVvdGUg YWdlbmRhKSBtYXRjaGVyIHRvZG8tb25seSkpIChzZXRxIHJ0bmFsbCAoYXBwZW5kIHJ0bmFsbCBy dG4pKSkpKSkKICAoY2F0Y2ggKHF1b3RlIG5leHRmaWxlKSAob3JnLWNoZWNrLWFnZW5kYS1maWxl IGZpbGUpIChzZXRxIGJ1ZmZlciAoaWYgKGZpbGUtZXhpc3RzLXAgZmlsZSkgKG9yZy1nZXQtYWdl bmRhLWZpbGUtYnVmZmVyIGZpbGUpIChlcnJvciAiTm8gc3VjaCBmaWxlICVzIiBmaWxlKSkpIChp ZiAobm90IGJ1ZmZlcikgKHNldHEgcnRuIChsaXN0IChmb3JtYXQgIk9SRy1BR0VOREEtRVJST1I6 IE5vIHN1Y2ggb3JnLWZpbGUgJXMiIGZpbGUpKSBydG5hbGwgKGFwcGVuZCBydG5hbGwgcnRuKSkg KHdpdGgtY3VycmVudC1idWZmZXIgYnVmZmVyICh1bmxlc3MgKGVxIG1ham9yLW1vZGUgKHF1b3Rl IG9yZy1tb2RlKSkgKGVycm9yICJBZ2VuZGEgZmlsZSAlcyBpcyBub3QgaW4gYG9yZy1tb2RlJyIg ZmlsZSkpIChzYXZlLWV4Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAoaWYgb3JnLWFnZW5kYS1y ZXN0cmljdCAobmFycm93LXRvLXJlZ2lvbiBvcmctYWdlbmRhLXJlc3RyaWN0LWJlZ2luIG9yZy1h Z2VuZGEtcmVzdHJpY3QtZW5kKSAod2lkZW4pKSAoc2V0cSBydG4gKG9yZy1zY2FuLXRhZ3MgKHF1 b3RlIGFnZW5kYSkgbWF0Y2hlciB0b2RvLW9ubHkpKSAoc2V0cSBydG5hbGwgKGFwcGVuZCBydG5h bGwgcnRuKSkpKSkpKQogICh3aGlsZSAoc2V0cSBmaWxlIChwb3AgZmlsZXMpKSAoY2F0Y2ggKHF1 b3RlIG5leHRmaWxlKSAob3JnLWNoZWNrLWFnZW5kYS1maWxlIGZpbGUpIChzZXRxIGJ1ZmZlciAo aWYgKGZpbGUtZXhpc3RzLXAgZmlsZSkgKG9yZy1nZXQtYWdlbmRhLWZpbGUtYnVmZmVyIGZpbGUp IChlcnJvciAiTm8gc3VjaCBmaWxlICVzIiBmaWxlKSkpIChpZiAobm90IGJ1ZmZlcikgKHNldHEg cnRuIChsaXN0IChmb3JtYXQgIk9SRy1BR0VOREEtRVJST1I6IE5vIHN1Y2ggb3JnLWZpbGUgJXMi IGZpbGUpKSBydG5hbGwgKGFwcGVuZCBydG5hbGwgcnRuKSkgKHdpdGgtY3VycmVudC1idWZmZXIg YnVmZmVyICh1bmxlc3MgKGVxIG1ham9yLW1vZGUgKHF1b3RlIG9yZy1tb2RlKSkgKGVycm9yICJB Z2VuZGEgZmlsZSAlcyBpcyBub3QgaW4gYG9yZy1tb2RlJyIgZmlsZSkpIChzYXZlLWV4Y3Vyc2lv biAoc2F2ZS1yZXN0cmljdGlvbiAoaWYgb3JnLWFnZW5kYS1yZXN0cmljdCAobmFycm93LXRvLXJl Z2lvbiBvcmctYWdlbmRhLXJlc3RyaWN0LWJlZ2luIG9yZy1hZ2VuZGEtcmVzdHJpY3QtZW5kKSAo d2lkZW4pKSAoc2V0cSBydG4gKG9yZy1zY2FuLXRhZ3MgLi4uIG1hdGNoZXIgdG9kby1vbmx5KSkg KHNldHEgcnRuYWxsIChhcHBlbmQgcnRuYWxsIHJ0bikpKSkpKSkpCiAgKGxldCogKChvcmctdGFn cy1tYXRjaC1saXN0LXN1YmxldmVscyBvcmctdGFncy1tYXRjaC1saXN0LXN1YmxldmVscykgKGNv bXBsZXRpb24taWdub3JlLWNhc2UgdCkgcnRuIHJ0bmFsbCBmaWxlcyBmaWxlIHBvcyBtYXRjaGVy IGJ1ZmZlcikgKHdoZW4gKGFuZCAoc3RyaW5ncCBtYXRjaCkgKG5vdCAoc3RyaW5nLW1hdGNoICJc XFMtIiBtYXRjaCkpKSAoc2V0cSBtYXRjaCBuaWwpKSAoc2V0cSBtYXRjaGVyIChvcmctbWFrZS10 YWdzLW1hdGNoZXIgbWF0Y2gpIG1hdGNoIChjYXIgbWF0Y2hlcikgbWF0Y2hlciAoY2RyIG1hdGNo ZXIpKSAob3JnLXByZXBhcmUtYWdlbmRhIChjb25jYXQgIlRBR1MgIiBtYXRjaCkpIChzZXRxIG9y Zy1hZ2VuZGEtcXVlcnktc3RyaW5nIG1hdGNoKSAoc2V0cSBvcmctYWdlbmRhLXJlZG8tY29tbWFu ZCAobGlzdCAocXVvdGUgb3JnLXRhZ3MtdmlldykgKGxpc3QgKHF1b3RlIHF1b3RlKSB0b2RvLW9u bHkpIChsaXN0IChxdW90ZSBpZikgKHF1b3RlIGN1cnJlbnQtcHJlZml4LWFyZykgbmlsIChxdW90 ZSBvcmctYWdlbmRhLXF1ZXJ5LXN0cmluZykpKSkgKHNldHEgZmlsZXMgKG9yZy1hZ2VuZGEtZmls ZXMgbmlsIChxdW90ZSBpZm1vZGUpKSBydG5hbGwgbmlsKSAod2hpbGUgKHNldHEgZmlsZSAocG9w IGZpbGVzKSkgKGNhdGNoIChxdW90ZSBuZXh0ZmlsZSkgKG9yZy1jaGVjay1hZ2VuZGEtZmlsZSBm aWxlKSAoc2V0cSBidWZmZXIgKGlmIChmaWxlLWV4aXN0cy1wIGZpbGUpIChvcmctZ2V0LWFnZW5k YS1maWxlLWJ1ZmZlciBmaWxlKSAoZXJyb3IgIk5vIHN1Y2ggZmlsZSAlcyIgZmlsZSkpKSAoaWYg KG5vdCBidWZmZXIpIChzZXRxIHJ0biAobGlzdCAoZm9ybWF0ICJPUkctQUdFTkRBLUVSUk9SOiBO byBzdWNoIG9yZy1maWxlICVzIiBmaWxlKSkgcnRuYWxsIChhcHBlbmQgcnRuYWxsIHJ0bikpICh3 aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlciAodW5sZXNzIChlcSBtYWpvci1tb2RlIChxdW90ZSBv cmctbW9kZSkpIChlcnJvciAiQWdlbmRhIGZpbGUgJXMgaXMgbm90IGluIGBvcmctbW9kZSciIGZp bGUpKSAoc2F2ZS1leGN1cnNpb24gKHNhdmUtcmVzdHJpY3Rpb24gKGlmIG9yZy1hZ2VuZGEtcmVz dHJpY3QgLi4uIC4uLikgKHNldHEgcnRuIC4uLikgKHNldHEgcnRuYWxsIC4uLikpKSkpKSkgKGlm IG9yZy1hZ2VuZGEtb3ZlcnJpZGluZy1oZWFkZXIgKGluc2VydCAob3JnLWFkZC1wcm9wcyAoY29w eS1zZXF1ZW5jZSBvcmctYWdlbmRhLW92ZXJyaWRpbmctaGVhZGVyKSBuaWwgKHF1b3RlIGZhY2Up IChxdW90ZSBvcmctYWdlbmRhLXN0cnVjdHVyZSkpICJcbiIpIChpbnNlcnQgIkhlYWRsaW5lcyB3 aXRoIFRBR1MgbWF0Y2g6ICIpIChhZGQtdGV4dC1wcm9wZXJ0aWVzIChwb2ludC1taW4pICgxLSAo cG9pbnQpKSAobGlzdCAocXVvdGUgZmFjZSkgKHF1b3RlIG9yZy1hZ2VuZGEtc3RydWN0dXJlKSAo cXVvdGUgc2hvcnQtaGVhZGluZykgKGNvbmNhdCAiTWF0Y2g6ICIgbWF0Y2gpKSkgKHNldHEgcG9z IChwb2ludCkpIChpbnNlcnQgbWF0Y2ggIlxuIikgKGFkZC10ZXh0LXByb3BlcnRpZXMgcG9zICgx LSAocG9pbnQpKSAobGlzdCAocXVvdGUgZmFjZSkgKHF1b3RlIG9yZy13YXJuaW5nKSkpIChzZXRx IHBvcyAocG9pbnQpKSAodW5sZXNzIG9yZy1hZ2VuZGEtbXVsdGkgKGluc2VydCAiUHJlc3MgYEMt dSByJyB0byBzZWFyY2ggYWdhaW4gd2l0aCBuZXcgc2VhcmNoIHN0cmluZ1xuIikpIChhZGQtdGV4 dC1wcm9wZXJ0aWVzIHBvcyAoMS0gKHBvaW50KSkgKGxpc3QgKHF1b3RlIGZhY2UpIChxdW90ZSBv cmctYWdlbmRhLXN0cnVjdHVyZSkpKSkgKG9yZy1hZ2VuZGEtbWFyay1oZWFkZXItbGluZSAocG9p bnQtbWluKSkgKHdoZW4gcnRuYWxsIChpbnNlcnQgKG9yZy1maW5hbGl6ZS1hZ2VuZGEtZW50cmll cyBydG5hbGwpICJcbiIpKSAoZ290by1jaGFyIChwb2ludC1taW4pKSAob3Igb3JnLWFnZW5kYS1t dWx0aSAob3JnLWZpdC1hZ2VuZGEtd2luZG93KSkgKGFkZC10ZXh0LXByb3BlcnRpZXMgKHBvaW50 LW1pbikgKHBvaW50LW1heCkgKHF1b3RlIChvcmctYWdlbmRhLXR5cGUgdGFncykpKSAob3JnLWZp bmFsaXplLWFnZW5kYSkgKHNldHEgYnVmZmVyLXJlYWQtb25seSB0KSkKICBvcmctdGFncy12aWV3 KCg0KSAiLUNBTkNFTExFRCIpCiAgKGxldCAoKG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1 bGVkIChxdW90ZSBmdXR1cmUpKSkgKG9yZy10YWdzLXZpZXcgKHF1b3RlICg0KSkgbWF0Y2gpKQog IGV2YWwoKGxldCAoKG9yZy1hZ2VuZGEtdG9kby1pZ25vcmUtc2NoZWR1bGVkIChxdW90ZSBmdXR1 cmUpKSkgKG9yZy10YWdzLXZpZXcgKHF1b3RlICg0KSkgbWF0Y2gpKSkKICBvcmctbGV0KCgob3Jn LWFnZW5kYS10b2RvLWlnbm9yZS1zY2hlZHVsZWQgKHF1b3RlIGZ1dHVyZSkpKSAob3JnLXRhZ3Mt dmlldyAocXVvdGUgKDQpKSBtYXRjaCkpCiAgKGNvbmQgKChlcSB0eXBlIChxdW90ZSBhZ2VuZGEp KSAob3JnLWxldCBscHJvcHMgKHF1b3RlIChvcmctYWdlbmRhLWxpc3QgY3VycmVudC1wcmVmaXgt YXJnKSkpKSAoKGVxIHR5cGUgKHF1b3RlIGFsbHRvZG8pKSAob3JnLWxldCBscHJvcHMgKHF1b3Rl IChvcmctdG9kby1saXN0IGN1cnJlbnQtcHJlZml4LWFyZykpKSkgKChlcSB0eXBlIChxdW90ZSBz ZWFyY2gpKSAob3JnLWxldCBscHJvcHMgKHF1b3RlIChvcmctc2VhcmNoLXZpZXcgY3VycmVudC1w cmVmaXgtYXJnIG1hdGNoIG5pbCkpKSkgKChlcSB0eXBlIChxdW90ZSBzdHVjaykpIChvcmctbGV0 IGxwcm9wcyAocXVvdGUgKG9yZy1hZ2VuZGEtbGlzdC1zdHVjay1wcm9qZWN0cyBjdXJyZW50LXBy ZWZpeC1hcmcpKSkpICgoZXEgdHlwZSAocXVvdGUgdGFncykpIChvcmctbGV0IGxwcm9wcyAocXVv dGUgKG9yZy10YWdzLXZpZXcgY3VycmVudC1wcmVmaXgtYXJnIG1hdGNoKSkpKSAoKGVxIHR5cGUg KHF1b3RlIHRhZ3MtdG9kbykpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy10YWdzLXZpZXcg KHF1b3RlICg0KSkgbWF0Y2gpKSkpICgoZXEgdHlwZSAocXVvdGUgdG9kbykpIChvcmctbGV0IGxw cm9wcyAocXVvdGUgKG9yZy10b2RvLWxpc3QgbWF0Y2gpKSkpICgoZXEgdHlwZSAocXVvdGUgdGFn cy10cmVlKSkgKG9yZy1jaGVjay1mb3Itb3JnLW1vZGUpIChvcmctbGV0IGxwcm9wcyAocXVvdGUg KG9yZy1tYXRjaC1zcGFyc2UtdHJlZSBjdXJyZW50LXByZWZpeC1hcmcgbWF0Y2gpKSkpICgoZXEg dHlwZSAocXVvdGUgdG9kby10cmVlKSkgKG9yZy1jaGVjay1mb3Itb3JnLW1vZGUpIChvcmctbGV0 IGxwcm9wcyAocXVvdGUgKG9yZy1vY2N1ciAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHAg IlsgICBdKiIgKHJlZ2V4cC1xdW90ZSBtYXRjaCkgIlxcPiIpKSkpKSAoKGVxIHR5cGUgKHF1b3Rl IG9jY3VyLXRyZWUpKSAob3JnLWNoZWNrLWZvci1vcmctbW9kZSkgKG9yZy1sZXQgbHByb3BzIChx dW90ZSAob3JnLW9jY3VyIG1hdGNoKSkpKSAoKGZ1bmN0aW9ucCB0eXBlKSAob3JnLWxldCBscHJv cHMgKHF1b3RlIChmdW5jYWxsIHR5cGUgbWF0Y2gpKSkpICgoZmJvdW5kcCB0eXBlKSAob3JnLWxl dCBscHJvcHMgKHF1b3RlIChmdW5jYWxsIHR5cGUgbWF0Y2gpKSkpICh0IChlcnJvciAiSW52YWxp ZCBjdXN0b20gYWdlbmRhIGNvbW1hbmQgdHlwZSAlcyIgdHlwZSkpKQogIChwcm9nbiAoc2V0cSB0 eXBlIChudGggMiBlbnRyeSkgbWF0Y2ggKGV2YWwgKG50aCAzIGVudHJ5KSkgbHByb3BzIChudGgg NCBlbnRyeSkpIChwdXQgKHF1b3RlIG9yZy1hZ2VuZGEtcmVkby1jb21tYW5kKSAocXVvdGUgb3Jn LWxwcm9wcykgbHByb3BzKSAoY29uZCAoKGVxIHR5cGUgKHF1b3RlIGFnZW5kYSkpIChvcmctbGV0 IGxwcm9wcyAocXVvdGUgKG9yZy1hZ2VuZGEtbGlzdCBjdXJyZW50LXByZWZpeC1hcmcpKSkpICgo ZXEgdHlwZSAocXVvdGUgYWxsdG9kbykpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy10b2Rv LWxpc3QgY3VycmVudC1wcmVmaXgtYXJnKSkpKSAoKGVxIHR5cGUgKHF1b3RlIHNlYXJjaCkpIChv cmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy1zZWFyY2gtdmlldyBjdXJyZW50LXByZWZpeC1hcmcg bWF0Y2ggbmlsKSkpKSAoKGVxIHR5cGUgKHF1b3RlIHN0dWNrKSkgKG9yZy1sZXQgbHByb3BzIChx dW90ZSAob3JnLWFnZW5kYS1saXN0LXN0dWNrLXByb2plY3RzIGN1cnJlbnQtcHJlZml4LWFyZykp KSkgKChlcSB0eXBlIChxdW90ZSB0YWdzKSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAob3JnLXRh Z3MtdmlldyBjdXJyZW50LXByZWZpeC1hcmcgbWF0Y2gpKSkpICgoZXEgdHlwZSAocXVvdGUgdGFn cy10b2RvKSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAob3JnLXRhZ3MtdmlldyAocXVvdGUgKDQp KSBtYXRjaCkpKSkgKChlcSB0eXBlIChxdW90ZSB0b2RvKSkgKG9yZy1sZXQgbHByb3BzIChxdW90 ZSAob3JnLXRvZG8tbGlzdCBtYXRjaCkpKSkgKChlcSB0eXBlIChxdW90ZSB0YWdzLXRyZWUpKSAo b3JnLWNoZWNrLWZvci1vcmctbW9kZSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAob3JnLW1hdGNo LXNwYXJzZS10cmVlIGN1cnJlbnQtcHJlZml4LWFyZyBtYXRjaCkpKSkgKChlcSB0eXBlIChxdW90 ZSB0b2RvLXRyZWUpKSAob3JnLWNoZWNrLWZvci1vcmctbW9kZSkgKG9yZy1sZXQgbHByb3BzIChx dW90ZSAob3JnLW9jY3VyIChjb25jYXQgIl4iIG9yZy1vdXRsaW5lLXJlZ2V4cCAiWyAgXSoiIChy ZWdleHAtcXVvdGUgbWF0Y2gpICJcXD4iKSkpKSkgKChlcSB0eXBlIChxdW90ZSBvY2N1ci10cmVl KSkgKG9yZy1jaGVjay1mb3Itb3JnLW1vZGUpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy1v Y2N1ciBtYXRjaCkpKSkgKChmdW5jdGlvbnAgdHlwZSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAo ZnVuY2FsbCB0eXBlIG1hdGNoKSkpKSAoKGZib3VuZHAgdHlwZSkgKG9yZy1sZXQgbHByb3BzIChx dW90ZSAoZnVuY2FsbCB0eXBlIG1hdGNoKSkpKSAodCAoZXJyb3IgIkludmFsaWQgY3VzdG9tIGFn ZW5kYSBjb21tYW5kIHR5cGUgJXMiIHR5cGUpKSkpCiAgKGlmIChvciAoc3ltYm9scCAobnRoIDIg ZW50cnkpKSAoZnVuY3Rpb25wIChudGggMiBlbnRyeSkpKSAocHJvZ24gKHNldHEgdHlwZSAobnRo IDIgZW50cnkpIG1hdGNoIChldmFsIChudGggMyBlbnRyeSkpIGxwcm9wcyAobnRoIDQgZW50cnkp KSAocHV0IChxdW90ZSBvcmctYWdlbmRhLXJlZG8tY29tbWFuZCkgKHF1b3RlIG9yZy1scHJvcHMp IGxwcm9wcykgKGNvbmQgKChlcSB0eXBlIChxdW90ZSBhZ2VuZGEpKSAob3JnLWxldCBscHJvcHMg KHF1b3RlIChvcmctYWdlbmRhLWxpc3QgY3VycmVudC1wcmVmaXgtYXJnKSkpKSAoKGVxIHR5cGUg KHF1b3RlIGFsbHRvZG8pKSAob3JnLWxldCBscHJvcHMgKHF1b3RlIChvcmctdG9kby1saXN0IGN1 cnJlbnQtcHJlZml4LWFyZykpKSkgKChlcSB0eXBlIChxdW90ZSBzZWFyY2gpKSAob3JnLWxldCBs cHJvcHMgKHF1b3RlIChvcmctc2VhcmNoLXZpZXcgY3VycmVudC1wcmVmaXgtYXJnIG1hdGNoIG5p bCkpKSkgKChlcSB0eXBlIChxdW90ZSBzdHVjaykpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9y Zy1hZ2VuZGEtbGlzdC1zdHVjay1wcm9qZWN0cyBjdXJyZW50LXByZWZpeC1hcmcpKSkpICgoZXEg dHlwZSAocXVvdGUgdGFncykpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy10YWdzLXZpZXcg Y3VycmVudC1wcmVmaXgtYXJnIG1hdGNoKSkpKSAoKGVxIHR5cGUgKHF1b3RlIHRhZ3MtdG9kbykp IChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy10YWdzLXZpZXcgKHF1b3RlIC4uLikgbWF0Y2gp KSkpICgoZXEgdHlwZSAocXVvdGUgdG9kbykpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy10 b2RvLWxpc3QgbWF0Y2gpKSkpICgoZXEgdHlwZSAocXVvdGUgdGFncy10cmVlKSkgKG9yZy1jaGVj ay1mb3Itb3JnLW1vZGUpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy1tYXRjaC1zcGFyc2Ut dHJlZSBjdXJyZW50LXByZWZpeC1hcmcgbWF0Y2gpKSkpICgoZXEgdHlwZSAocXVvdGUgdG9kby10 cmVlKSkgKG9yZy1jaGVjay1mb3Itb3JnLW1vZGUpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9y Zy1vY2N1ciAoY29uY2F0ICJeIiBvcmctb3V0bGluZS1yZWdleHAgIlsgICBdKiIgLi4uICJcXD4i KSkpKSkgKChlcSB0eXBlIChxdW90ZSBvY2N1ci10cmVlKSkgKG9yZy1jaGVjay1mb3Itb3JnLW1v ZGUpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgKG9yZy1vY2N1ciBtYXRjaCkpKSkgKChmdW5jdGlv bnAgdHlwZSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAoZnVuY2FsbCB0eXBlIG1hdGNoKSkpKSAo KGZib3VuZHAgdHlwZSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAoZnVuY2FsbCB0eXBlIG1hdGNo KSkpKSAodCAoZXJyb3IgIkludmFsaWQgY3VzdG9tIGFnZW5kYSBjb21tYW5kIHR5cGUgJXMiIHR5 cGUpKSkpIChvcmctYWdlbmRhLXJ1bi1zZXJpZXMgKG50aCAxIGVudHJ5KSAoY2RkciBlbnRyeSkp KQogIChjb25kICgoc2V0cSBlbnRyeSAoYXNzb2Mga2V5cyBvcmctYWdlbmRhLWN1c3RvbS1jb21t YW5kcykpIChpZiAob3IgKHN5bWJvbHAgKG50aCAyIGVudHJ5KSkgKGZ1bmN0aW9ucCAobnRoIDIg ZW50cnkpKSkgKHByb2duIChzZXRxIHR5cGUgKG50aCAyIGVudHJ5KSBtYXRjaCAoZXZhbCAobnRo IDMgZW50cnkpKSBscHJvcHMgKG50aCA0IGVudHJ5KSkgKHB1dCAocXVvdGUgb3JnLWFnZW5kYS1y ZWRvLWNvbW1hbmQpIChxdW90ZSBvcmctbHByb3BzKSBscHJvcHMpIChjb25kICgoZXEgdHlwZSAo cXVvdGUgYWdlbmRhKSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAuLi4pKSkgKChlcSB0eXBlIChx dW90ZSBhbGx0b2RvKSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAuLi4pKSkgKChlcSB0eXBlIChx dW90ZSBzZWFyY2gpKSAob3JnLWxldCBscHJvcHMgKHF1b3RlIC4uLikpKSAoKGVxIHR5cGUgKHF1 b3RlIHN0dWNrKSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAuLi4pKSkgKChlcSB0eXBlIChxdW90 ZSB0YWdzKSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAuLi4pKSkgKChlcSB0eXBlIChxdW90ZSB0 YWdzLXRvZG8pKSAob3JnLWxldCBscHJvcHMgKHF1b3RlIC4uLikpKSAoKGVxIHR5cGUgKHF1b3Rl IHRvZG8pKSAob3JnLWxldCBscHJvcHMgKHF1b3RlIC4uLikpKSAoKGVxIHR5cGUgKHF1b3RlIHRh Z3MtdHJlZSkpIChvcmctY2hlY2stZm9yLW9yZy1tb2RlKSAob3JnLWxldCBscHJvcHMgKHF1b3Rl IC4uLikpKSAoKGVxIHR5cGUgKHF1b3RlIHRvZG8tdHJlZSkpIChvcmctY2hlY2stZm9yLW9yZy1t b2RlKSAob3JnLWxldCBscHJvcHMgKHF1b3RlIC4uLikpKSAoKGVxIHR5cGUgKHF1b3RlIG9jY3Vy LXRyZWUpKSAob3JnLWNoZWNrLWZvci1vcmctbW9kZSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAu Li4pKSkgKChmdW5jdGlvbnAgdHlwZSkgKG9yZy1sZXQgbHByb3BzIChxdW90ZSAuLi4pKSkgKChm Ym91bmRwIHR5cGUpIChvcmctbGV0IGxwcm9wcyAocXVvdGUgLi4uKSkpICh0IChlcnJvciAiSW52 YWxpZCBjdXN0b20gYWdlbmRhIGNvbW1hbmQgdHlwZSAlcyIgdHlwZSkpKSkgKG9yZy1hZ2VuZGEt cnVuLXNlcmllcyAobnRoIDEgZW50cnkpIChjZGRyIGVudHJ5KSkpKSAoKGVxdWFsIGtleXMgIkMi KSAoc2V0cSBvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcyBvcmctYWdlbmRhLWN1c3RvbS1jb21t YW5kcy1vcmlnKSAoY3VzdG9taXplLXZhcmlhYmxlIChxdW90ZSBvcmctYWdlbmRhLWN1c3RvbS1j b21tYW5kcykpKSAoKGVxdWFsIGtleXMgImEiKSAoY2FsbC1pbnRlcmFjdGl2ZWx5IChxdW90ZSBv cmctYWdlbmRhLWxpc3QpKSkgKChlcXVhbCBrZXlzICJzIikgKGNhbGwtaW50ZXJhY3RpdmVseSAo cXVvdGUgb3JnLXNlYXJjaC12aWV3KSkpICgoZXF1YWwga2V5cyAidCIpIChjYWxsLWludGVyYWN0 aXZlbHkgKHF1b3RlIG9yZy10b2RvLWxpc3QpKSkgKChlcXVhbCBrZXlzICJUIikgKG9yZy1jYWxs LXdpdGgtYXJnIChxdW90ZSBvcmctdG9kby1saXN0KSAob3IgYXJnIChxdW90ZSAoNCkpKSkpICgo ZXF1YWwga2V5cyAibSIpIChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy10YWdzLXZpZXcp KSkgKChlcXVhbCBrZXlzICJNIikgKG9yZy1jYWxsLXdpdGgtYXJnIChxdW90ZSBvcmctdGFncy12 aWV3KSAob3IgYXJnIChxdW90ZSAoNCkpKSkpICgoZXF1YWwga2V5cyAiZSIpIChjYWxsLWludGVy YWN0aXZlbHkgKHF1b3RlIG9yZy1zdG9yZS1hZ2VuZGEtdmlld3MpKSkgKChlcXVhbCBrZXlzICI/ IikgKG9yZy10YWdzLXZpZXcgbmlsICIrRkxBR0dFRCIpIChvcmctYWRkLWhvb2sgKHF1b3RlIHBv c3QtY29tbWFuZC1ob29rKSAobGFtYmRhIG5pbCAodW5sZXNzIChjdXJyZW50LW1lc3NhZ2UpIChs ZXQqICgobSAuLi4pIChub3RlIC4uLikpICh3aGVuIG5vdGUgKG1lc3NhZ2UgLi4uKSkpKSkgdCB0 KSkgKChlcXVhbCBrZXlzICJMIikgKHVubGVzcyAoZXEgbWFqb3ItbW9kZSAocXVvdGUgb3JnLW1v ZGUpKSAoZXJyb3IgIlRoaXMgaXMgbm90IGFuIE9yZy1tb2RlIGZpbGUiKSkgKHVubGVzcyByZXN0 cmljdGlvbiAocHV0IChxdW90ZSBvcmctYWdlbmRhLWZpbGVzKSAocXVvdGUgb3JnLXJlc3RyaWN0 KSAobGlzdCBiZm4pKSAob3JnLWNhbGwtd2l0aC1hcmcgKHF1b3RlIG9yZy10aW1lbGluZSkgYXJn KSkpICgoZXF1YWwga2V5cyAiIyIpIChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy1hZ2Vu ZGEtbGlzdC1zdHVjay1wcm9qZWN0cykpKSAoKGVxdWFsIGtleXMgIi8iKSAoY2FsbC1pbnRlcmFj dGl2ZWx5IChxdW90ZSBvcmctb2NjdXItaW4tYWdlbmRhLWZpbGVzKSkpICgoZXF1YWwga2V5cyAi ISIpIChjdXN0b21pemUtdmFyaWFibGUgKHF1b3RlIG9yZy1zdHVjay1wcm9qZWN0cykpKSAodCAo ZXJyb3IgIkludmFsaWQgYWdlbmRhIGtleSIpKSkKICAobGV0KiAoKHByZWZpeC1kZXNjcmlwdGlv bnMgbmlsKSAob3JnLWFnZW5kYS13aW5kb3ctc2V0dXAgKGlmIChlcXVhbCAoYnVmZmVyLW5hbWUp IG9yZy1hZ2VuZGEtYnVmZmVyLW5hbWUpIChxdW90ZSBjdXJyZW50LXdpbmRvdykgb3JnLWFnZW5k YS13aW5kb3ctc2V0dXApKSAob3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMtb3JpZyBvcmctYWdl bmRhLWN1c3RvbS1jb21tYW5kcykgKG9yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzIChkZWxxIG5p bCAobWFwY2FyIChsYW1iZGEgKHgpIChjb25kICguLi4gLi4uIG5pbCkgKC4uLiB4KSAoLi4uIC4u LikgKHQgLi4uKSkpIG9yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzKSkpIChidWYgKGN1cnJlbnQt YnVmZmVyKSkgKGJmbiAoYnVmZmVyLWZpbGUtbmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkpIGVu dHJ5IGtleSB0eXBlIG1hdGNoIGxwcm9wcyBhbnMpICh1bmxlc3Mgb3JnLWFnZW5kYS1vdmVycmlk aW5nLXJlc3RyaWN0aW9uICh1bmxlc3MgKG9yZy1ib3VuZC1hbmQtdHJ1ZS1wIG9yZy1hZ2VuZGEt a2VlcC1yZXN0cmljdGVkLWZpbGUtbGlzdCkgKHB1dCAocXVvdGUgb3JnLWFnZW5kYS1maWxlcykg KHF1b3RlIG9yZy1yZXN0cmljdCkgbmlsKSkgKHNldHEgb3JnLWFnZW5kYS1yZXN0cmljdCBuaWwp IChtb3ZlLW1hcmtlciBvcmctYWdlbmRhLXJlc3RyaWN0LWJlZ2luIG5pbCkgKG1vdmUtbWFya2Vy IG9yZy1hZ2VuZGEtcmVzdHJpY3QtZW5kIG5pbCkpIChwdXQgKHF1b3RlIG9yZy1hZ2VuZGEtcmVk by1jb21tYW5kKSAocXVvdGUgb3JnLWxwcm9wcykgbmlsKSAocHV0IChxdW90ZSBvcmctYWdlbmRh LXJlZG8tY29tbWFuZCkgKHF1b3RlIGxhc3QtYXJncykgbmlsKSAoc2V0cSBvcmctYWdlbmRhLWxh c3QtZGlzcGF0Y2gtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpICh1bmxlc3Mga2V5cyAoc2V0cSBh bnMgKG9yZy1hZ2VuZGEtZ2V0LXJlc3RyaWN0aW9uLWFuZC1jb21tYW5kIHByZWZpeC1kZXNjcmlw dGlvbnMpIGtleXMgKGNhciBhbnMpIHJlc3RyaWN0aW9uIChjZHIgYW5zKSkpICh3aGVuIChhbmQg KG5vdCBvcmctYWdlbmRhLW92ZXJyaWRpbmctcmVzdHJpY3Rpb24pIHJlc3RyaWN0aW9uKSAocHV0 IChxdW90ZSBvcmctYWdlbmRhLWZpbGVzKSAocXVvdGUgb3JnLXJlc3RyaWN0KSAobGlzdCBiZm4p KSAoY29uZCAoKGVxIHJlc3RyaWN0aW9uIChxdW90ZSByZWdpb24pKSAoc2V0cSBvcmctYWdlbmRh LXJlc3RyaWN0IHQpIChtb3ZlLW1hcmtlciBvcmctYWdlbmRhLXJlc3RyaWN0LWJlZ2luIChyZWdp b24tYmVnaW5uaW5nKSkgKG1vdmUtbWFya2VyIG9yZy1hZ2VuZGEtcmVzdHJpY3QtZW5kIChyZWdp b24tZW5kKSkpICgoZXEgcmVzdHJpY3Rpb24gKHF1b3RlIHN1YnRyZWUpKSAoc2F2ZS1leGN1cnNp b24gKHNldHEgb3JnLWFnZW5kYS1yZXN0cmljdCB0KSAob3JnLWJhY2stdG8taGVhZGluZyB0KSAo bW92ZS1tYXJrZXIgb3JnLWFnZW5kYS1yZXN0cmljdC1iZWdpbiAocG9pbnQpKSAobW92ZS1tYXJr ZXIgb3JnLWFnZW5kYS1yZXN0cmljdC1lbmQgKHByb2duIChvcmctZW5kLW9mLXN1YnRyZWUgdCkp KSkpKSkgKGNvbmQgKChzZXRxIGVudHJ5IChhc3NvYyBrZXlzIG9yZy1hZ2VuZGEtY3VzdG9tLWNv bW1hbmRzKSkgKGlmIChvciAoc3ltYm9scCAobnRoIDIgZW50cnkpKSAoZnVuY3Rpb25wIChudGgg MiBlbnRyeSkpKSAocHJvZ24gKHNldHEgdHlwZSAobnRoIDIgZW50cnkpIG1hdGNoIChldmFsIChu dGggMyBlbnRyeSkpIGxwcm9wcyAobnRoIDQgZW50cnkpKSAocHV0IChxdW90ZSBvcmctYWdlbmRh LXJlZG8tY29tbWFuZCkgKHF1b3RlIG9yZy1scHJvcHMpIGxwcm9wcykgKGNvbmQgKChlcSB0eXBl IC4uLikgKG9yZy1sZXQgbHByb3BzIC4uLikpICgoZXEgdHlwZSAuLi4pIChvcmctbGV0IGxwcm9w cyAuLi4pKSAoKGVxIHR5cGUgLi4uKSAob3JnLWxldCBscHJvcHMgLi4uKSkgKChlcSB0eXBlIC4u LikgKG9yZy1sZXQgbHByb3BzIC4uLikpICgoZXEgdHlwZSAuLi4pIChvcmctbGV0IGxwcm9wcyAu Li4pKSAoKGVxIHR5cGUgLi4uKSAob3JnLWxldCBscHJvcHMgLi4uKSkgKChlcSB0eXBlIC4uLikg KG9yZy1sZXQgbHByb3BzIC4uLikpICgoZXEgdHlwZSAuLi4pIChvcmctY2hlY2stZm9yLW9yZy1t b2RlKSAob3JnLWxldCBscHJvcHMgLi4uKSkgKChlcSB0eXBlIC4uLikgKG9yZy1jaGVjay1mb3It b3JnLW1vZGUpIChvcmctbGV0IGxwcm9wcyAuLi4pKSAoKGVxIHR5cGUgLi4uKSAob3JnLWNoZWNr LWZvci1vcmctbW9kZSkgKG9yZy1sZXQgbHByb3BzIC4uLikpICgoZnVuY3Rpb25wIHR5cGUpIChv cmctbGV0IGxwcm9wcyAuLi4pKSAoKGZib3VuZHAgdHlwZSkgKG9yZy1sZXQgbHByb3BzIC4uLikp ICh0IChlcnJvciAiSW52YWxpZCBjdXN0b20gYWdlbmRhIGNvbW1hbmQgdHlwZSAlcyIgdHlwZSkp KSkgKG9yZy1hZ2VuZGEtcnVuLXNlcmllcyAobnRoIDEgZW50cnkpIChjZGRyIGVudHJ5KSkpKSAo KGVxdWFsIGtleXMgIkMiKSAoc2V0cSBvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcyBvcmctYWdl bmRhLWN1c3RvbS1jb21tYW5kcy1vcmlnKSAoY3VzdG9taXplLXZhcmlhYmxlIChxdW90ZSBvcmct YWdlbmRhLWN1c3RvbS1jb21tYW5kcykpKSAoKGVxdWFsIGtleXMgImEiKSAoY2FsbC1pbnRlcmFj dGl2ZWx5IChxdW90ZSBvcmctYWdlbmRhLWxpc3QpKSkgKChlcXVhbCBrZXlzICJzIikgKGNhbGwt aW50ZXJhY3RpdmVseSAocXVvdGUgb3JnLXNlYXJjaC12aWV3KSkpICgoZXF1YWwga2V5cyAidCIp IChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy10b2RvLWxpc3QpKSkgKChlcXVhbCBrZXlz ICJUIikgKG9yZy1jYWxsLXdpdGgtYXJnIChxdW90ZSBvcmctdG9kby1saXN0KSAob3IgYXJnIChx dW90ZSAoNCkpKSkpICgoZXF1YWwga2V5cyAibSIpIChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3Rl IG9yZy10YWdzLXZpZXcpKSkgKChlcXVhbCBrZXlzICJNIikgKG9yZy1jYWxsLXdpdGgtYXJnIChx dW90ZSBvcmctdGFncy12aWV3KSAob3IgYXJnIChxdW90ZSAoNCkpKSkpICgoZXF1YWwga2V5cyAi ZSIpIChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy1zdG9yZS1hZ2VuZGEtdmlld3MpKSkg KChlcXVhbCBrZXlzICI/IikgKG9yZy10YWdzLXZpZXcgbmlsICIrRkxBR0dFRCIpIChvcmctYWRk LWhvb2sgKHF1b3RlIHBvc3QtY29tbWFuZC1ob29rKSAobGFtYmRhIG5pbCAodW5sZXNzIChjdXJy ZW50LW1lc3NhZ2UpIChsZXQqICguLi4gLi4uKSAod2hlbiBub3RlIC4uLikpKSkgdCB0KSkgKChl cXVhbCBrZXlzICJMIikgKHVubGVzcyAoZXEgbWFqb3ItbW9kZSAocXVvdGUgb3JnLW1vZGUpKSAo ZXJyb3IgIlRoaXMgaXMgbm90IGFuIE9yZy1tb2RlIGZpbGUiKSkgKHVubGVzcyByZXN0cmljdGlv biAocHV0IChxdW90ZSBvcmctYWdlbmRhLWZpbGVzKSAocXVvdGUgb3JnLXJlc3RyaWN0KSAobGlz dCBiZm4pKSAob3JnLWNhbGwtd2l0aC1hcmcgKHF1b3RlIG9yZy10aW1lbGluZSkgYXJnKSkpICgo ZXF1YWwga2V5cyAiIyIpIChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy1hZ2VuZGEtbGlz dC1zdHVjay1wcm9qZWN0cykpKSAoKGVxdWFsIGtleXMgIi8iKSAoY2FsbC1pbnRlcmFjdGl2ZWx5 IChxdW90ZSBvcmctb2NjdXItaW4tYWdlbmRhLWZpbGVzKSkpICgoZXF1YWwga2V5cyAiISIpIChj dXN0b21pemUtdmFyaWFibGUgKHF1b3RlIG9yZy1zdHVjay1wcm9qZWN0cykpKSAodCAoZXJyb3Ig IkludmFsaWQgYWdlbmRhIGtleSIpKSkpCiAgKGNhdGNoIChxdW90ZSBleGl0KSAobGV0KiAoKHBy ZWZpeC1kZXNjcmlwdGlvbnMgbmlsKSAob3JnLWFnZW5kYS13aW5kb3ctc2V0dXAgKGlmIChlcXVh bCAoYnVmZmVyLW5hbWUpIG9yZy1hZ2VuZGEtYnVmZmVyLW5hbWUpIChxdW90ZSBjdXJyZW50LXdp bmRvdykgb3JnLWFnZW5kYS13aW5kb3ctc2V0dXApKSAob3JnLWFnZW5kYS1jdXN0b20tY29tbWFu ZHMtb3JpZyBvcmctYWdlbmRhLWN1c3RvbS1jb21tYW5kcykgKG9yZy1hZ2VuZGEtY3VzdG9tLWNv bW1hbmRzIChkZWxxIG5pbCAobWFwY2FyIChsYW1iZGEgKHgpIChjb25kIC4uLiAuLi4gLi4uIC4u LikpIG9yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzKSkpIChidWYgKGN1cnJlbnQtYnVmZmVyKSkg KGJmbiAoYnVmZmVyLWZpbGUtbmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkpIGVudHJ5IGtleSB0 eXBlIG1hdGNoIGxwcm9wcyBhbnMpICh1bmxlc3Mgb3JnLWFnZW5kYS1vdmVycmlkaW5nLXJlc3Ry aWN0aW9uICh1bmxlc3MgKG9yZy1ib3VuZC1hbmQtdHJ1ZS1wIG9yZy1hZ2VuZGEta2VlcC1yZXN0 cmljdGVkLWZpbGUtbGlzdCkgKHB1dCAocXVvdGUgb3JnLWFnZW5kYS1maWxlcykgKHF1b3RlIG9y Zy1yZXN0cmljdCkgbmlsKSkgKHNldHEgb3JnLWFnZW5kYS1yZXN0cmljdCBuaWwpIChtb3ZlLW1h cmtlciBvcmctYWdlbmRhLXJlc3RyaWN0LWJlZ2luIG5pbCkgKG1vdmUtbWFya2VyIG9yZy1hZ2Vu ZGEtcmVzdHJpY3QtZW5kIG5pbCkpIChwdXQgKHF1b3RlIG9yZy1hZ2VuZGEtcmVkby1jb21tYW5k KSAocXVvdGUgb3JnLWxwcm9wcykgbmlsKSAocHV0IChxdW90ZSBvcmctYWdlbmRhLXJlZG8tY29t bWFuZCkgKHF1b3RlIGxhc3QtYXJncykgbmlsKSAoc2V0cSBvcmctYWdlbmRhLWxhc3QtZGlzcGF0 Y2gtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpICh1bmxlc3Mga2V5cyAoc2V0cSBhbnMgKG9yZy1h Z2VuZGEtZ2V0LXJlc3RyaWN0aW9uLWFuZC1jb21tYW5kIHByZWZpeC1kZXNjcmlwdGlvbnMpIGtl eXMgKGNhciBhbnMpIHJlc3RyaWN0aW9uIChjZHIgYW5zKSkpICh3aGVuIChhbmQgKG5vdCBvcmct YWdlbmRhLW92ZXJyaWRpbmctcmVzdHJpY3Rpb24pIHJlc3RyaWN0aW9uKSAocHV0IChxdW90ZSBv cmctYWdlbmRhLWZpbGVzKSAocXVvdGUgb3JnLXJlc3RyaWN0KSAobGlzdCBiZm4pKSAoY29uZCAo KGVxIHJlc3RyaWN0aW9uIChxdW90ZSByZWdpb24pKSAoc2V0cSBvcmctYWdlbmRhLXJlc3RyaWN0 IHQpIChtb3ZlLW1hcmtlciBvcmctYWdlbmRhLXJlc3RyaWN0LWJlZ2luIChyZWdpb24tYmVnaW5u aW5nKSkgKG1vdmUtbWFya2VyIG9yZy1hZ2VuZGEtcmVzdHJpY3QtZW5kIChyZWdpb24tZW5kKSkp ICgoZXEgcmVzdHJpY3Rpb24gKHF1b3RlIHN1YnRyZWUpKSAoc2F2ZS1leGN1cnNpb24gKHNldHEg b3JnLWFnZW5kYS1yZXN0cmljdCB0KSAob3JnLWJhY2stdG8taGVhZGluZyB0KSAobW92ZS1tYXJr ZXIgb3JnLWFnZW5kYS1yZXN0cmljdC1iZWdpbiAocG9pbnQpKSAobW92ZS1tYXJrZXIgb3JnLWFn ZW5kYS1yZXN0cmljdC1lbmQgKHByb2duIC4uLikpKSkpKSAoY29uZCAoKHNldHEgZW50cnkgKGFz c29jIGtleXMgb3JnLWFnZW5kYS1jdXN0b20tY29tbWFuZHMpKSAoaWYgKG9yIChzeW1ib2xwIChu dGggMiBlbnRyeSkpIChmdW5jdGlvbnAgKG50aCAyIGVudHJ5KSkpIChwcm9nbiAoc2V0cSB0eXBl IChudGggMiBlbnRyeSkgbWF0Y2ggKGV2YWwgLi4uKSBscHJvcHMgKG50aCA0IGVudHJ5KSkgKHB1 dCAocXVvdGUgb3JnLWFnZW5kYS1yZWRvLWNvbW1hbmQpIChxdW90ZSBvcmctbHByb3BzKSBscHJv cHMpIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikgKC4uLiAuLi4pICguLi4gLi4uKSAoLi4uIC4u LikgKC4uLiAuLi4pICguLi4gLi4uKSAoLi4uIC4uLiAuLi4pICguLi4gLi4uIC4uLikgKC4uLiAu Li4gLi4uKSAoLi4uIC4uLikgKC4uLiAuLi4pICh0IC4uLikpKSAob3JnLWFnZW5kYS1ydW4tc2Vy aWVzIChudGggMSBlbnRyeSkgKGNkZHIgZW50cnkpKSkpICgoZXF1YWwga2V5cyAiQyIpIChzZXRx IG9yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzIG9yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRzLW9y aWcpIChjdXN0b21pemUtdmFyaWFibGUgKHF1b3RlIG9yZy1hZ2VuZGEtY3VzdG9tLWNvbW1hbmRz KSkpICgoZXF1YWwga2V5cyAiYSIpIChjYWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy1hZ2Vu ZGEtbGlzdCkpKSAoKGVxdWFsIGtleXMgInMiKSAoY2FsbC1pbnRlcmFjdGl2ZWx5IChxdW90ZSBv cmctc2VhcmNoLXZpZXcpKSkgKChlcXVhbCBrZXlzICJ0IikgKGNhbGwtaW50ZXJhY3RpdmVseSAo cXVvdGUgb3JnLXRvZG8tbGlzdCkpKSAoKGVxdWFsIGtleXMgIlQiKSAob3JnLWNhbGwtd2l0aC1h cmcgKHF1b3RlIG9yZy10b2RvLWxpc3QpIChvciBhcmcgKHF1b3RlICg0KSkpKSkgKChlcXVhbCBr ZXlzICJtIikgKGNhbGwtaW50ZXJhY3RpdmVseSAocXVvdGUgb3JnLXRhZ3MtdmlldykpKSAoKGVx dWFsIGtleXMgIk0iKSAob3JnLWNhbGwtd2l0aC1hcmcgKHF1b3RlIG9yZy10YWdzLXZpZXcpIChv ciBhcmcgKHF1b3RlICg0KSkpKSkgKChlcXVhbCBrZXlzICJlIikgKGNhbGwtaW50ZXJhY3RpdmVs eSAocXVvdGUgb3JnLXN0b3JlLWFnZW5kYS12aWV3cykpKSAoKGVxdWFsIGtleXMgIj8iKSAob3Jn LXRhZ3MtdmlldyBuaWwgIitGTEFHR0VEIikgKG9yZy1hZGQtaG9vayAocXVvdGUgcG9zdC1jb21t YW5kLWhvb2spIChsYW1iZGEgbmlsICh1bmxlc3MgKGN1cnJlbnQtbWVzc2FnZSkgKGxldCogLi4u IC4uLikpKSB0IHQpKSAoKGVxdWFsIGtleXMgIkwiKSAodW5sZXNzIChlcSBtYWpvci1tb2RlIChx dW90ZSBvcmctbW9kZSkpIChlcnJvciAiVGhpcyBpcyBub3QgYW4gT3JnLW1vZGUgZmlsZSIpKSAo dW5sZXNzIHJlc3RyaWN0aW9uIChwdXQgKHF1b3RlIG9yZy1hZ2VuZGEtZmlsZXMpIChxdW90ZSBv cmctcmVzdHJpY3QpIChsaXN0IGJmbikpIChvcmctY2FsbC13aXRoLWFyZyAocXVvdGUgb3JnLXRp bWVsaW5lKSBhcmcpKSkgKChlcXVhbCBrZXlzICIjIikgKGNhbGwtaW50ZXJhY3RpdmVseSAocXVv dGUgb3JnLWFnZW5kYS1saXN0LXN0dWNrLXByb2plY3RzKSkpICgoZXF1YWwga2V5cyAiLyIpIChj YWxsLWludGVyYWN0aXZlbHkgKHF1b3RlIG9yZy1vY2N1ci1pbi1hZ2VuZGEtZmlsZXMpKSkgKChl cXVhbCBrZXlzICIhIikgKGN1c3RvbWl6ZS12YXJpYWJsZSAocXVvdGUgb3JnLXN0dWNrLXByb2pl Y3RzKSkpICh0IChlcnJvciAiSW52YWxpZCBhZ2VuZGEga2V5IikpKSkpCiAgb3JnLWFnZW5kYShu aWwpCiAgY2FsbC1pbnRlcmFjdGl2ZWx5KG9yZy1hZ2VuZGEgbmlsIG5pbCkK --e89a8f2343414f18f004c04c9365--