From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Mason Subject: =?UTF-8?B?UmU6IFN5bWJvbOKAmXMgdmFsdWUgYXMgdmFyaWFibGUgaXMgdm9p?= =?UTF-8?B?ZDogaGFza2VsbC1wcm9tcHQtcmVnZXhw?= Date: Mon, 04 Jun 2018 16:58:45 -0230 Message-ID: References: <87vaayl9bv.fsf@alphaville.usersys.redhat.com> <87r2lml7p9.fsf@alphaville.usersys.redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:44688) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fPvA3-0000lw-79 for emacs-orgmode@gnu.org; Mon, 04 Jun 2018 15:29:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fPvA0-0003yi-2t for emacs-orgmode@gnu.org; Mon, 04 Jun 2018 15:28:59 -0400 Received: from esa01.ucs.mun.ca ([134.153.136.21]:61302) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fPv9z-0003xT-FQ for emacs-orgmode@gnu.org; Mon, 04 Jun 2018 15:28:55 -0400 In-reply-to: <87r2lml7p9.fsf@alphaville.usersys.redhat.com> 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" To: Nick Dokos Cc: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Hello, Nick Dokos writes: > Please provide a backtrace. This source block: #+begin_src haskell :exports results nanmol=[1,1,3,2,1,2,3] ncatmol=[2,1,2,1,2,1,2] #+end_src produces the error in the attached backtrace Steps to reproduce: 1. emacs -Q -l init with init being: ;;;; Org-mode (add-to-list 'load-path "/home/rmason/.emacs.d/org-git/lisp") (add-to-list 'load-path "/home/rmason/.emacs.d/org-git/contrib/lisp") (add-to-list 'load-path "/home/rmason/.emacs.d/elpa/haskell-mode-20180601.143") (org-babel-do-load-languages 'org-babel-load-languages '((shell . t) (emacs-lisp . t) (haskell . t) )) 2. evaluste the source block GNU Emacs 25.3.1 (i386-portbld-freebsd11.1, GTK+ Version 3.22.29) of 2018-04-26 Org mode version 9.1.13 (release_9.1.13-784-ged7d1d @ /home/rmason/.emacs.d/org-git/lisp/) Cheers, Roger --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=haskell_error.debug Content-Transfer-Encoding: base64 RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKGVycm9yICLigJhvcmctYmFiZWwtc2NyaXB0 LWVzY2FwZeKAmSBleHBlY3RzIGEgc3RyaW5nIikKICBzaWduYWwoZXJyb3IgKCLigJhvcmctYmFi ZWwtc2NyaXB0LWVzY2FwZeKAmSBleHBlY3RzIGEgc3RyaW5nIikpCiAgZXJyb3IoImBvcmctYmFi ZWwtc2NyaXB0LWVzY2FwZScgZXhwZWN0cyBhIHN0cmluZyIpCiAgKGlmIChzdHJpbmdwIHN0cikg bmlsIChlcnJvciAiYG9yZy1iYWJlbC1zY3JpcHQtZXNjYXBlJyBleHBlY3RzIGEgc3RyaW5nIikp CiAgb3JnLWJhYmVsLXNjcmlwdC1lc2NhcGUobmlsKQogIChpZiAob3IgKG1lbWJlciAic2NhbGFy IiAtLXBhcmFtcykgKG1lbWJlciAidmVyYmF0aW0iIC0tcGFyYW1zKSAobWVtYmVyICJodG1sIiAt LXBhcmFtcykgKG1lbWJlciAiY29kZSIgLS1wYXJhbXMpIChtZW1iZXIgInBwIiAtLXBhcmFtcykg KG1lbWJlciAiZmlsZSIgLS1wYXJhbXMpIChhbmQgKG9yIChtZW1iZXIgIm91dHB1dCIgLS1wYXJh bXMpIChtZW1iZXIgInJhdyIgLS1wYXJhbXMpIChtZW1iZXIgIm9yZyIgLS1wYXJhbXMpIChtZW1i ZXIgImRyYXdlciIgLS1wYXJhbXMpKSAobm90IChtZW1iZXIgInRhYmxlIiAtLXBhcmFtcykpKSkg cmVzdWx0IChvcmctYmFiZWwtc2NyaXB0LWVzY2FwZSByZXN1bHQpKQogIChpZiAobWVtYmVyICJu b25lIiAtLXBhcmFtcykgbmlsIChpZiAob3IgKG1lbWJlciAic2NhbGFyIiAtLXBhcmFtcykgKG1l bWJlciAidmVyYmF0aW0iIC0tcGFyYW1zKSAobWVtYmVyICJodG1sIiAtLXBhcmFtcykgKG1lbWJl ciAiY29kZSIgLS1wYXJhbXMpIChtZW1iZXIgInBwIiAtLXBhcmFtcykgKG1lbWJlciAiZmlsZSIg LS1wYXJhbXMpIChhbmQgKG9yIChtZW1iZXIgIm91dHB1dCIgLS1wYXJhbXMpIChtZW1iZXIgInJh dyIgLS1wYXJhbXMpIChtZW1iZXIgIm9yZyIgLS1wYXJhbXMpIChtZW1iZXIgImRyYXdlciIgLS1w YXJhbXMpKSAobm90IChtZW1iZXIgInRhYmxlIiAtLXBhcmFtcykpKSkgcmVzdWx0IChvcmctYmFi ZWwtc2NyaXB0LWVzY2FwZSByZXN1bHQpKSkKICAobGV0ICgoLS1wYXJhbXMgKGNkciAoYXNzcSA6 cmVzdWx0LXBhcmFtcyBwYXJhbXMpKSkpIChpZiAobWVtYmVyICJub25lIiAtLXBhcmFtcykgbmls IChpZiAob3IgKG1lbWJlciAic2NhbGFyIiAtLXBhcmFtcykgKG1lbWJlciAidmVyYmF0aW0iIC0t cGFyYW1zKSAobWVtYmVyICJodG1sIiAtLXBhcmFtcykgKG1lbWJlciAiY29kZSIgLS1wYXJhbXMp IChtZW1iZXIgInBwIiAtLXBhcmFtcykgKG1lbWJlciAiZmlsZSIgLS1wYXJhbXMpIChhbmQgKG9y IChtZW1iZXIgIm91dHB1dCIgLS1wYXJhbXMpIChtZW1iZXIgInJhdyIgLS1wYXJhbXMpIChtZW1i ZXIgIm9yZyIgLS1wYXJhbXMpIChtZW1iZXIgImRyYXdlciIgLS1wYXJhbXMpKSAobm90IChtZW1i ZXIgInRhYmxlIiAtLXBhcmFtcykpKSkgcmVzdWx0IChvcmctYmFiZWwtc2NyaXB0LWVzY2FwZSBy ZXN1bHQpKSkpCiAgKGxldCAoKHJlc3VsdCAoY29uZCAoKGVxIHJlc3VsdC10eXBlIChxdW90ZSBv dXRwdXQpKSAobGV0IG5pbCAobWFwY29uY2F0IChmdW5jdGlvbiBpZGVudGl0eSkgKHJldmVyc2Ug Li4uKSAiXG4iKSkpICgoZXEgcmVzdWx0LXR5cGUgKHF1b3RlIHZhbHVlKSkgKGxldCBuaWwgKGNh ciByZXN1bHRzKSkpICh0IG5pbCkpKSkgKGxldCAoKC0tcGFyYW1zIChjZHIgKGFzc3EgOnJlc3Vs dC1wYXJhbXMgcGFyYW1zKSkpKSAoaWYgKG1lbWJlciAibm9uZSIgLS1wYXJhbXMpIG5pbCAoaWYg KG9yIChtZW1iZXIgInNjYWxhciIgLS1wYXJhbXMpIChtZW1iZXIgInZlcmJhdGltIiAtLXBhcmFt cykgKG1lbWJlciAiaHRtbCIgLS1wYXJhbXMpIChtZW1iZXIgImNvZGUiIC0tcGFyYW1zKSAobWVt YmVyICJwcCIgLS1wYXJhbXMpIChtZW1iZXIgImZpbGUiIC0tcGFyYW1zKSAoYW5kIChvciAobWVt YmVyICJvdXRwdXQiIC0tcGFyYW1zKSAobWVtYmVyICJyYXciIC0tcGFyYW1zKSAobWVtYmVyICJv cmciIC0tcGFyYW1zKSAobWVtYmVyICJkcmF3ZXIiIC0tcGFyYW1zKSkgKG5vdCAobWVtYmVyICJ0 YWJsZSIgLS1wYXJhbXMpKSkpIHJlc3VsdCAob3JnLWJhYmVsLXNjcmlwdC1lc2NhcGUgcmVzdWx0 KSkpKSkKICAob3JnLWJhYmVsLXJlYXNzZW1ibGUtdGFibGUgKGxldCAoKHJlc3VsdCAoY29uZCAo KGVxIHJlc3VsdC10eXBlIChxdW90ZSBvdXRwdXQpKSAobGV0IG5pbCAobWFwY29uY2F0IC4uLiAu Li4gIlxuIikpKSAoKGVxIHJlc3VsdC10eXBlIChxdW90ZSB2YWx1ZSkpIChsZXQgbmlsIChjYXIg cmVzdWx0cykpKSAodCBuaWwpKSkpIChsZXQgKCgtLXBhcmFtcyAoY2RyIChhc3NxIDpyZXN1bHQt cGFyYW1zIHBhcmFtcykpKSkgKGlmIChtZW1iZXIgIm5vbmUiIC0tcGFyYW1zKSBuaWwgKGlmIChv ciAobWVtYmVyICJzY2FsYXIiIC0tcGFyYW1zKSAobWVtYmVyICJ2ZXJiYXRpbSIgLS1wYXJhbXMp IChtZW1iZXIgImh0bWwiIC0tcGFyYW1zKSAobWVtYmVyICJjb2RlIiAtLXBhcmFtcykgKG1lbWJl ciAicHAiIC0tcGFyYW1zKSAobWVtYmVyICJmaWxlIiAtLXBhcmFtcykgKGFuZCAob3IgLi4uIC4u LiAuLi4gLi4uKSAobm90IC4uLikpKSByZXN1bHQgKG9yZy1iYWJlbC1zY3JpcHQtZXNjYXBlIHJl c3VsdCkpKSkpIChvcmctYmFiZWwtcGljay1uYW1lIChjZHIgKGFzc3EgOmNvbG5hbWUtbmFtZXMg cGFyYW1zKSkgKGNkciAoYXNzcSA6Y29sbmFtZS1uYW1lcyBwYXJhbXMpKSkgKG9yZy1iYWJlbC1w aWNrLW5hbWUgKGNkciAoYXNzcSA6cm93bmFtZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChhc3NxIDpy b3duYW1lLW5hbWVzIHBhcmFtcykpKSkKICAobGV0KiAoKHNlc3Npb24gKGNkciAoYXNzcSA6c2Vz c2lvbiBwYXJhbXMpKSkgKHJlc3VsdC10eXBlIChjZHIgKGFzc3EgOnJlc3VsdC10eXBlIHBhcmFt cykpKSAoZnVsbC1ib2R5IChvcmctYmFiZWwtZXhwYW5kLWJvZHk6Z2VuZXJpYyBib2R5IHBhcmFt cyAob3JnLWJhYmVsLXZhcmlhYmxlLWFzc2lnbm1lbnRzOmhhc2tlbGwgcGFyYW1zKSkpIChzZXNz aW9uIChvcmctYmFiZWwtaGFza2VsbC1pbml0aWF0ZS1zZXNzaW9uIHNlc3Npb24gcGFyYW1zKSkg KGNvbWludC1wcmVvdXRwdXQtZmlsdGVyLWZ1bmN0aW9ucyAoY29ucyAocXVvdGUgYW5zaS1jb2xv ci1maWx0ZXItYXBwbHkpIGNvbWludC1wcmVvdXRwdXQtZmlsdGVyLWZ1bmN0aW9ucykpIChyYXcg KHByb2duIChpZiAob3JnLWJhYmVsLWNvbWludC1idWZmZXItbGl2ZXAgc2Vzc2lvbikgbmlsIChl cnJvciAiQnVmZmVyICVzIGRvZXMgbm90IGV4aXN0IG9yIGhhcyBubyBwcm9jZXNzIiBzZXNzaW9u KSkgKGxldCAoKHNhdmUtbWF0Y2gtZGF0YS1pbnRlcm5hbCAobWF0Y2gtZGF0YSkpKSAodW53aW5k LXByb3RlY3QgKHByb2duIChzYXZlLWN1cnJlbnQtYnVmZmVyIC4uLiAuLi4pKSAoc2V0LW1hdGNo LWRhdGEgc2F2ZS1tYXRjaC1kYXRhLWludGVybmFsIChxdW90ZSBldmFwb3JhdGUpKSkpKSkgKHJl c3VsdHMgKG1hcGNhciAoZnVuY3Rpb24gb3JnLWJhYmVsLXN0cmlwLXF1b3RlcykgKGNkciAobWVt YmVyIG9yZy1iYWJlbC1oYXNrZWxsLWVvZSAocmV2ZXJzZSAobWFwY2FyIC4uLiByYXcpKSkpKSkp IChvcmctYmFiZWwtcmVhc3NlbWJsZS10YWJsZSAobGV0ICgocmVzdWx0IChjb25kICgoZXEgcmVz dWx0LXR5cGUgLi4uKSAobGV0IG5pbCAuLi4pKSAoKGVxIHJlc3VsdC10eXBlIC4uLikgKGxldCBu aWwgLi4uKSkgKHQgbmlsKSkpKSAobGV0ICgoLS1wYXJhbXMgKGNkciAoYXNzcSA6cmVzdWx0LXBh cmFtcyBwYXJhbXMpKSkpIChpZiAobWVtYmVyICJub25lIiAtLXBhcmFtcykgbmlsIChpZiAob3Ig KG1lbWJlciAic2NhbGFyIiAtLXBhcmFtcykgKG1lbWJlciAidmVyYmF0aW0iIC0tcGFyYW1zKSAo bWVtYmVyICJodG1sIiAtLXBhcmFtcykgKG1lbWJlciAiY29kZSIgLS1wYXJhbXMpIChtZW1iZXIg InBwIiAtLXBhcmFtcykgKG1lbWJlciAiZmlsZSIgLS1wYXJhbXMpIChhbmQgLi4uIC4uLikpIHJl c3VsdCAob3JnLWJhYmVsLXNjcmlwdC1lc2NhcGUgcmVzdWx0KSkpKSkgKG9yZy1iYWJlbC1waWNr LW5hbWUgKGNkciAoYXNzcSA6Y29sbmFtZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChhc3NxIDpjb2xu YW1lLW5hbWVzIHBhcmFtcykpKSAob3JnLWJhYmVsLXBpY2stbmFtZSAoY2RyIChhc3NxIDpyb3du YW1lLW5hbWVzIHBhcmFtcykpIChjZHIgKGFzc3EgOnJvd25hbWUtbmFtZXMgcGFyYW1zKSkpKSkK ICBvcmctYmFiZWwtZXhlY3V0ZTpoYXNrZWxsKCJuYW5tb2w9WzEsMSwzLDIsMSwyLDNdXG5uY2F0 bW9sPVsyLDEsMiwxLDIsMSwyXSIgKCg6Y29sbmFtZS1uYW1lcykgKDpyb3duYW1lLW5hbWVzKSAo OnJlc3VsdC1wYXJhbXMgInJlcGxhY2UiKSAoOnJlc3VsdC10eXBlIC4gdmFsdWUpICg6cmVzdWx0 cyAuICJyZXBsYWNlIikgKDpleHBvcnRzIC4gInJlc3VsdHMiKSAoOnNlc3Npb24gLiAibm9uZSIp ICg6Y2FjaGUgLiAibm8iKSAoOm5vd2ViIC4gIm5vIikgKDpobGluZXMgLiAibm8iKSAoOnRhbmds ZSAuICJubyIpICg6cGFkbGluZXMgLiAibm8iKSkpCiAgZnVuY2FsbChvcmctYmFiZWwtZXhlY3V0 ZTpoYXNrZWxsICJuYW5tb2w9WzEsMSwzLDIsMSwyLDNdXG5uY2F0bW9sPVsyLDEsMiwxLDIsMSwy XSIgKCg6Y29sbmFtZS1uYW1lcykgKDpyb3duYW1lLW5hbWVzKSAoOnJlc3VsdC1wYXJhbXMgInJl cGxhY2UiKSAoOnJlc3VsdC10eXBlIC4gdmFsdWUpICg6cmVzdWx0cyAuICJyZXBsYWNlIikgKDpl eHBvcnRzIC4gInJlc3VsdHMiKSAoOnNlc3Npb24gLiAibm9uZSIpICg6Y2FjaGUgLiAibm8iKSAo Om5vd2ViIC4gIm5vIikgKDpobGluZXMgLiAibm8iKSAoOnRhbmdsZSAuICJubyIpICg6cGFkbGlu ZXMgLiAibm8iKSkpCiAgKGxldCAoKHIgKGZ1bmNhbGwgY21kIGJvZHkgcGFyYW1zKSkpIChpZiAo YW5kIChlcSAoY2RyIChhc3NxIDpyZXN1bHQtdHlwZSBwYXJhbXMpKSAocXVvdGUgdmFsdWUpKSAo b3IgKG1lbWJlciAidmVjdG9yIiByZXN1bHQtcGFyYW1zKSAobWVtYmVyICJ0YWJsZSIgcmVzdWx0 LXBhcmFtcykpIChub3QgKGxpc3RwIHIpKSkgKGxpc3QgKGxpc3QgcikpIHIpKQogIChzZXRxIHJl c3VsdCAobGV0ICgociAoZnVuY2FsbCBjbWQgYm9keSBwYXJhbXMpKSkgKGlmIChhbmQgKGVxIChj ZHIgKGFzc3EgOnJlc3VsdC10eXBlIHBhcmFtcykpIChxdW90ZSB2YWx1ZSkpIChvciAobWVtYmVy ICJ2ZWN0b3IiIHJlc3VsdC1wYXJhbXMpIChtZW1iZXIgInRhYmxlIiByZXN1bHQtcGFyYW1zKSkg KG5vdCAobGlzdHAgcikpKSAobGlzdCAobGlzdCByKSkgcikpKQogIChpZiAobWVtYmVyICJub25l IiByZXN1bHQtcGFyYW1zKSAocHJvZ24gKGZ1bmNhbGwgY21kIGJvZHkgcGFyYW1zKSAobWVzc2Fn ZSAicmVzdWx0IHNpbGVuY2VkIikpIChzZXRxIHJlc3VsdCAobGV0ICgociAoZnVuY2FsbCBjbWQg Ym9keSBwYXJhbXMpKSkgKGlmIChhbmQgKGVxIChjZHIgKGFzc3EgOnJlc3VsdC10eXBlIHBhcmFt cykpIChxdW90ZSB2YWx1ZSkpIChvciAobWVtYmVyICJ2ZWN0b3IiIHJlc3VsdC1wYXJhbXMpICht ZW1iZXIgInRhYmxlIiByZXN1bHQtcGFyYW1zKSkgKG5vdCAobGlzdHAgcikpKSAobGlzdCAobGlz dCByKSkgcikpKSAobGV0ICgoZmlsZSAoY2RyIChhc3NxIDpmaWxlIHBhcmFtcykpKSkgKGlmIGZp bGUgKHByb2duIChpZiAoYW5kIHJlc3VsdCAobm90IChvciAuLi4gLi4uKSkpIChwcm9nbiAobGV0 ICguLi4gLi4uKSAodW53aW5kLXByb3RlY3QgLi4uIC4uLikpKSkgKHNldHEgcmVzdWx0IGZpbGUp KSkgKGxldCAoKHBvc3QgKGNkciAoYXNzcSA6cG9zdCBwYXJhbXMpKSkpIChpZiBwb3N0IChwcm9n biAobGV0ICgoKnRoaXMqIC4uLikpIChzZXRxIHJlc3VsdCAob3JnLWJhYmVsLXJlZi1yZXNvbHZl IHBvc3QpKSAoaWYgZmlsZSAocHJvZ24gLi4uKSkpKSkpIChvcmctYmFiZWwtaW5zZXJ0LXJlc3Vs dCByZXN1bHQgcmVzdWx0LXBhcmFtcyBpbmZvIG5ldy1oYXNoIGxhbmcpKSkKICAobGV0KiAoKGxh bmcgKG50aCAwIGluZm8pKSAocmVzdWx0LXBhcmFtcyAoY2RyIChhc3NxIDpyZXN1bHQtcGFyYW1z IHBhcmFtcykpKSAoYm9keSAobGV0ICgoY29kZXJlZiAobnRoIDYgaW5mbykpIChleHBhbmQgKGlm IChvcmctYmFiZWwtbm93ZWItcCBwYXJhbXMgOmV2YWwpIChvcmctYmFiZWwtZXhwYW5kLW5vd2Vi LXJlZmVyZW5jZXMgaW5mbykgKG50aCAxIGluZm8pKSkpIChpZiAobm90IGNvZGVyZWYpIGV4cGFu ZCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nIChvcmctc3JjLWNvZGVyZWYtcmVnZXhwIGNvZGVy ZWYpICIiIGV4cGFuZCBuaWwgbmlsIDEpKSkpIChkaXIgKGNkciAoYXNzcSA6ZGlyIHBhcmFtcykp KSAoZGVmYXVsdC1kaXJlY3RvcnkgKG9yIChhbmQgZGlyIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5 IChleHBhbmQtZmlsZS1uYW1lIGRpcikpKSBkZWZhdWx0LWRpcmVjdG9yeSkpIChjbWQgKGludGVy biAoY29uY2F0ICJvcmctYmFiZWwtZXhlY3V0ZToiIGxhbmcpKSkgcmVzdWx0KSAoaWYgKGZib3Vu ZHAgY21kKSBuaWwgKGVycm9yICJObyBvcmctYmFiZWwtZXhlY3V0ZSBmdW5jdGlvbiBmb3IgJXMh IiBsYW5nKSkgKG1lc3NhZ2UgImV4ZWN1dGluZyAlcyBjb2RlIGJsb2NrJXMuLi4iIChjYXBpdGFs aXplIGxhbmcpIChsZXQgKChuYW1lIChudGggNCBpbmZvKSkpIChpZiBuYW1lIChmb3JtYXQgIiAo JXMpIiBuYW1lKSAiIikpKSAoaWYgKG1lbWJlciAibm9uZSIgcmVzdWx0LXBhcmFtcykgKHByb2du IChmdW5jYWxsIGNtZCBib2R5IHBhcmFtcykgKG1lc3NhZ2UgInJlc3VsdCBzaWxlbmNlZCIpKSAo c2V0cSByZXN1bHQgKGxldCAoKHIgKGZ1bmNhbGwgY21kIGJvZHkgcGFyYW1zKSkpIChpZiAoYW5k IChlcSAoY2RyIC4uLikgKHF1b3RlIHZhbHVlKSkgKG9yIChtZW1iZXIgInZlY3RvciIgcmVzdWx0 LXBhcmFtcykgKG1lbWJlciAidGFibGUiIHJlc3VsdC1wYXJhbXMpKSAobm90IChsaXN0cCByKSkp IChsaXN0IChsaXN0IHIpKSByKSkpIChsZXQgKChmaWxlIChjZHIgKGFzc3EgOmZpbGUgcGFyYW1z KSkpKSAoaWYgZmlsZSAocHJvZ24gKGlmIChhbmQgcmVzdWx0IChub3QgLi4uKSkgKHByb2duIChs ZXQgLi4uIC4uLikpKSAoc2V0cSByZXN1bHQgZmlsZSkpKSAobGV0ICgocG9zdCAoY2RyIChhc3Nx IDpwb3N0IHBhcmFtcykpKSkgKGlmIHBvc3QgKHByb2duIChsZXQgKC4uLikgKHNldHEgcmVzdWx0 IC4uLikgKGlmIGZpbGUgLi4uKSkpKSkgKG9yZy1iYWJlbC1pbnNlcnQtcmVzdWx0IHJlc3VsdCBy ZXN1bHQtcGFyYW1zIGluZm8gbmV3LWhhc2ggbGFuZykpKSAocnVuLWhvb2tzIChxdW90ZSBvcmct YmFiZWwtYWZ0ZXItZXhlY3V0ZS1ob29rKSkgcmVzdWx0KQogIChjb25kIChjdXJyZW50LWNhY2hl IChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctYmFiZWwtd2hlcmUtaXMtc3JjLWJsb2Nr LXJlc3VsdCBuaWwgaW5mbykpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiAJ IikgKGxldCAoKHJlc3VsdCAob3JnLWJhYmVsLXJlYWQtcmVzdWx0KSkpIChtZXNzYWdlIChyZXBs YWNlLXJlZ2V4cC1pbi1zdHJpbmcgIiUiICIlJSIgKGZvcm1hdCAiJVMiIHJlc3VsdCkpKSByZXN1 bHQpKSkgKChvcmctYmFiZWwtY29uZmlybS1ldmFsdWF0ZSBpbmZvKSAobGV0KiAoKGxhbmcgKG50 aCAwIGluZm8pKSAocmVzdWx0LXBhcmFtcyAoY2RyIChhc3NxIDpyZXN1bHQtcGFyYW1zIHBhcmFt cykpKSAoYm9keSAobGV0ICgoY29kZXJlZiAuLi4pIChleHBhbmQgLi4uKSkgKGlmIChub3QgY29k ZXJlZikgZXhwYW5kIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgLi4uICIiIGV4cGFuZCBuaWwg bmlsIDEpKSkpIChkaXIgKGNkciAoYXNzcSA6ZGlyIHBhcmFtcykpKSAoZGVmYXVsdC1kaXJlY3Rv cnkgKG9yIChhbmQgZGlyIChmaWxlLW5hbWUtYXMtZGlyZWN0b3J5IC4uLikpIGRlZmF1bHQtZGly ZWN0b3J5KSkgKGNtZCAoaW50ZXJuIChjb25jYXQgIm9yZy1iYWJlbC1leGVjdXRlOiIgbGFuZykp KSByZXN1bHQpIChpZiAoZmJvdW5kcCBjbWQpIG5pbCAoZXJyb3IgIk5vIG9yZy1iYWJlbC1leGVj dXRlIGZ1bmN0aW9uIGZvciAlcyEiIGxhbmcpKSAobWVzc2FnZSAiZXhlY3V0aW5nICVzIGNvZGUg YmxvY2slcy4uLiIgKGNhcGl0YWxpemUgbGFuZykgKGxldCAoKG5hbWUgKG50aCA0IGluZm8pKSkg KGlmIG5hbWUgKGZvcm1hdCAiICglcykiIG5hbWUpICIiKSkpIChpZiAobWVtYmVyICJub25lIiBy ZXN1bHQtcGFyYW1zKSAocHJvZ24gKGZ1bmNhbGwgY21kIGJvZHkgcGFyYW1zKSAobWVzc2FnZSAi cmVzdWx0IHNpbGVuY2VkIikpIChzZXRxIHJlc3VsdCAobGV0ICgociAuLi4pKSAoaWYgKGFuZCAu Li4gLi4uIC4uLikgKGxpc3QgLi4uKSByKSkpIChsZXQgKChmaWxlIChjZHIgLi4uKSkpIChpZiBm aWxlIChwcm9nbiAoaWYgLi4uIC4uLikgKHNldHEgcmVzdWx0IGZpbGUpKSkgKGxldCAoKHBvc3Qg Li4uKSkgKGlmIHBvc3QgKHByb2duIC4uLikpKSAob3JnLWJhYmVsLWluc2VydC1yZXN1bHQgcmVz dWx0IHJlc3VsdC1wYXJhbXMgaW5mbyBuZXctaGFzaCBsYW5nKSkpIChydW4taG9va3MgKHF1b3Rl IG9yZy1iYWJlbC1hZnRlci1leGVjdXRlLWhvb2spKSByZXN1bHQpKSkKICAobGV0KiAoKHBhcmFt cyAobnRoIDIgaW5mbykpIChjYWNoZSAobGV0ICgoYyAoY2RyIChhc3NxIDpjYWNoZSBwYXJhbXMp KSkpIChhbmQgKG5vdCBhcmcpIGMgKHN0cmluZz0gInllcyIgYykpKSkgKG5ldy1oYXNoIChhbmQg Y2FjaGUgKG9yZy1iYWJlbC1zaGExLWhhc2ggaW5mbykpKSAob2xkLWhhc2ggKGFuZCBjYWNoZSAo b3JnLWJhYmVsLWN1cnJlbnQtcmVzdWx0LWhhc2gpKSkgKGN1cnJlbnQtY2FjaGUgKGFuZCBuZXct aGFzaCAoZXF1YWwgbmV3LWhhc2ggb2xkLWhhc2gpKSkpIChjb25kIChjdXJyZW50LWNhY2hlIChz YXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctYmFiZWwtd2hlcmUtaXMtc3JjLWJsb2NrLXJl c3VsdCBuaWwgaW5mbykpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiAJIikg KGxldCAoKHJlc3VsdCAob3JnLWJhYmVsLXJlYWQtcmVzdWx0KSkpIChtZXNzYWdlIChyZXBsYWNl LXJlZ2V4cC1pbi1zdHJpbmcgIiUiICIlJSIgKGZvcm1hdCAiJVMiIHJlc3VsdCkpKSByZXN1bHQp KSkgKChvcmctYmFiZWwtY29uZmlybS1ldmFsdWF0ZSBpbmZvKSAobGV0KiAoKGxhbmcgKG50aCAw IGluZm8pKSAocmVzdWx0LXBhcmFtcyAoY2RyIChhc3NxIDpyZXN1bHQtcGFyYW1zIHBhcmFtcykp KSAoYm9keSAobGV0ICguLi4gLi4uKSAoaWYgLi4uIGV4cGFuZCAuLi4pKSkgKGRpciAoY2RyIChh c3NxIDpkaXIgcGFyYW1zKSkpIChkZWZhdWx0LWRpcmVjdG9yeSAob3IgKGFuZCBkaXIgLi4uKSBk ZWZhdWx0LWRpcmVjdG9yeSkpIChjbWQgKGludGVybiAoY29uY2F0ICJvcmctYmFiZWwtZXhlY3V0 ZToiIGxhbmcpKSkgcmVzdWx0KSAoaWYgKGZib3VuZHAgY21kKSBuaWwgKGVycm9yICJObyBvcmct YmFiZWwtZXhlY3V0ZSBmdW5jdGlvbiBmb3IgJXMhIiBsYW5nKSkgKG1lc3NhZ2UgImV4ZWN1dGlu ZyAlcyBjb2RlIGJsb2NrJXMuLi4iIChjYXBpdGFsaXplIGxhbmcpIChsZXQgKChuYW1lIC4uLikp IChpZiBuYW1lIChmb3JtYXQgIiAoJXMpIiBuYW1lKSAiIikpKSAoaWYgKG1lbWJlciAibm9uZSIg cmVzdWx0LXBhcmFtcykgKHByb2duIChmdW5jYWxsIGNtZCBib2R5IHBhcmFtcykgKG1lc3NhZ2Ug InJlc3VsdCBzaWxlbmNlZCIpKSAoc2V0cSByZXN1bHQgKGxldCAoLi4uKSAoaWYgLi4uIC4uLiBy KSkpIChsZXQgKChmaWxlIC4uLikpIChpZiBmaWxlIChwcm9nbiAuLi4gLi4uKSkgKGxldCAoLi4u KSAoaWYgcG9zdCAuLi4pKSAob3JnLWJhYmVsLWluc2VydC1yZXN1bHQgcmVzdWx0IHJlc3VsdC1w YXJhbXMgaW5mbyBuZXctaGFzaCBsYW5nKSkpIChydW4taG9va3MgKHF1b3RlIG9yZy1iYWJlbC1h ZnRlci1leGVjdXRlLWhvb2spKSByZXN1bHQpKSkpCiAgKHByb2duIChsZXQqICgoYyAobnRoY2Ry IDIgaW5mbykpKSAoc2V0Y2FyIGMgKG9yZy1iYWJlbC1wcm9jZXNzLXBhcmFtcyAoY2FyIGMpKSkp IChsZXQqICgocGFyYW1zIChudGggMiBpbmZvKSkgKGNhY2hlIChsZXQgKChjIChjZHIgLi4uKSkp IChhbmQgKG5vdCBhcmcpIGMgKHN0cmluZz0gInllcyIgYykpKSkgKG5ldy1oYXNoIChhbmQgY2Fj aGUgKG9yZy1iYWJlbC1zaGExLWhhc2ggaW5mbykpKSAob2xkLWhhc2ggKGFuZCBjYWNoZSAob3Jn LWJhYmVsLWN1cnJlbnQtcmVzdWx0LWhhc2gpKSkgKGN1cnJlbnQtY2FjaGUgKGFuZCBuZXctaGFz aCAoZXF1YWwgbmV3LWhhc2ggb2xkLWhhc2gpKSkpIChjb25kIChjdXJyZW50LWNhY2hlIChzYXZl LWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctYmFiZWwtd2hlcmUtaXMtc3JjLWJsb2NrLXJlc3Vs dCBuaWwgaW5mbykpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiAJIikgKGxl dCAoKHJlc3VsdCAuLi4pKSAobWVzc2FnZSAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICIlIiAi JSUiIC4uLikpIHJlc3VsdCkpKSAoKG9yZy1iYWJlbC1jb25maXJtLWV2YWx1YXRlIGluZm8pIChs ZXQqICgobGFuZyAobnRoIDAgaW5mbykpIChyZXN1bHQtcGFyYW1zIChjZHIgLi4uKSkgKGJvZHkg KGxldCAuLi4gLi4uKSkgKGRpciAoY2RyIC4uLikpIChkZWZhdWx0LWRpcmVjdG9yeSAob3IgLi4u IGRlZmF1bHQtZGlyZWN0b3J5KSkgKGNtZCAoaW50ZXJuIC4uLikpIHJlc3VsdCkgKGlmIChmYm91 bmRwIGNtZCkgbmlsIChlcnJvciAiTm8gb3JnLWJhYmVsLWV4ZWN1dGUgZnVuY3Rpb24gZm9yICVz ISIgbGFuZykpIChtZXNzYWdlICJleGVjdXRpbmcgJXMgY29kZSBibG9jayVzLi4uIiAoY2FwaXRh bGl6ZSBsYW5nKSAobGV0ICguLi4pIChpZiBuYW1lIC4uLiAiIikpKSAoaWYgKG1lbWJlciAibm9u ZSIgcmVzdWx0LXBhcmFtcykgKHByb2duIChmdW5jYWxsIGNtZCBib2R5IHBhcmFtcykgKG1lc3Nh Z2UgInJlc3VsdCBzaWxlbmNlZCIpKSAoc2V0cSByZXN1bHQgKGxldCAuLi4gLi4uKSkgKGxldCAo Li4uKSAoaWYgZmlsZSAuLi4pIChsZXQgLi4uIC4uLikgKG9yZy1iYWJlbC1pbnNlcnQtcmVzdWx0 IHJlc3VsdCByZXN1bHQtcGFyYW1zIGluZm8gbmV3LWhhc2ggbGFuZykpKSAocnVuLWhvb2tzIChx dW90ZSBvcmctYmFiZWwtYWZ0ZXItZXhlY3V0ZS1ob29rKSkgcmVzdWx0KSkpKSkKICAoaWYgKG9y Zy1iYWJlbC1jaGVjay1ldmFsdWF0ZSBpbmZvKSAocHJvZ24gKGxldCogKChjIChudGhjZHIgMiBp bmZvKSkpIChzZXRjYXIgYyAob3JnLWJhYmVsLXByb2Nlc3MtcGFyYW1zIChjYXIgYykpKSkgKGxl dCogKChwYXJhbXMgKG50aCAyIGluZm8pKSAoY2FjaGUgKGxldCAoKGMgLi4uKSkgKGFuZCAobm90 IGFyZykgYyAoc3RyaW5nPSAieWVzIiBjKSkpKSAobmV3LWhhc2ggKGFuZCBjYWNoZSAob3JnLWJh YmVsLXNoYTEtaGFzaCBpbmZvKSkpIChvbGQtaGFzaCAoYW5kIGNhY2hlIChvcmctYmFiZWwtY3Vy cmVudC1yZXN1bHQtaGFzaCkpKSAoY3VycmVudC1jYWNoZSAoYW5kIG5ldy1oYXNoIChlcXVhbCBu ZXctaGFzaCBvbGQtaGFzaCkpKSkgKGNvbmQgKGN1cnJlbnQtY2FjaGUgKHNhdmUtZXhjdXJzaW9u IChnb3RvLWNoYXIgKG9yZy1iYWJlbC13aGVyZS1pcy1zcmMtYmxvY2stcmVzdWx0IG5pbCBpbmZv KSkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIAkiKSAobGV0ICguLi4pICht ZXNzYWdlIC4uLikgcmVzdWx0KSkpICgob3JnLWJhYmVsLWNvbmZpcm0tZXZhbHVhdGUgaW5mbykg KGxldCogKChsYW5nIC4uLikgKHJlc3VsdC1wYXJhbXMgLi4uKSAoYm9keSAuLi4pIChkaXIgLi4u KSAoZGVmYXVsdC1kaXJlY3RvcnkgLi4uKSAoY21kIC4uLikgcmVzdWx0KSAoaWYgKGZib3VuZHAg Y21kKSBuaWwgKGVycm9yICJObyBvcmctYmFiZWwtZXhlY3V0ZSBmdW5jdGlvbiBmb3IgJXMhIiBs YW5nKSkgKG1lc3NhZ2UgImV4ZWN1dGluZyAlcyBjb2RlIGJsb2NrJXMuLi4iIChjYXBpdGFsaXpl IGxhbmcpIChsZXQgLi4uIC4uLikpIChpZiAobWVtYmVyICJub25lIiByZXN1bHQtcGFyYW1zKSAo cHJvZ24gLi4uIC4uLikgKHNldHEgcmVzdWx0IC4uLikgKGxldCAuLi4gLi4uIC4uLiAuLi4pKSAo cnVuLWhvb2tzIChxdW90ZSBvcmctYmFiZWwtYWZ0ZXItZXhlY3V0ZS1ob29rKSkgcmVzdWx0KSkp KSkpCiAgKGxldCogKChvcmctYmFiZWwtY3VycmVudC1zcmMtYmxvY2stbG9jYXRpb24gKG9yIG9y Zy1iYWJlbC1jdXJyZW50LXNyYy1ibG9jay1sb2NhdGlvbiAobnRoIDUgaW5mbykgKG9yZy1iYWJl bC13aGVyZS1pcy1zcmMtYmxvY2staGVhZCkpKSAoaW5mbyAoaWYgaW5mbyAoY29weS10cmVlIGlu Zm8pIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvKSkpKSAobGV0KiAoKGMgKG50aGNkciAy IGluZm8pKSkgKHNldGNhciBjIChvcmctYmFiZWwtbWVyZ2UtcGFyYW1zIChjYXIgYykgcGFyYW1z KSkpIChpZiAob3JnLWJhYmVsLWNoZWNrLWV2YWx1YXRlIGluZm8pIChwcm9nbiAobGV0KiAoKGMg KG50aGNkciAyIGluZm8pKSkgKHNldGNhciBjIChvcmctYmFiZWwtcHJvY2Vzcy1wYXJhbXMgKGNh ciBjKSkpKSAobGV0KiAoKHBhcmFtcyAobnRoIDIgaW5mbykpIChjYWNoZSAobGV0ICguLi4pIChh bmQgLi4uIGMgLi4uKSkpIChuZXctaGFzaCAoYW5kIGNhY2hlIChvcmctYmFiZWwtc2hhMS1oYXNo IGluZm8pKSkgKG9sZC1oYXNoIChhbmQgY2FjaGUgKG9yZy1iYWJlbC1jdXJyZW50LXJlc3VsdC1o YXNoKSkpIChjdXJyZW50LWNhY2hlIChhbmQgbmV3LWhhc2ggKGVxdWFsIG5ldy1oYXNoIG9sZC1o YXNoKSkpKSAoY29uZCAoY3VycmVudC1jYWNoZSAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hhciAu Li4pIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiAJIikgKGxldCAuLi4gLi4u IHJlc3VsdCkpKSAoKG9yZy1iYWJlbC1jb25maXJtLWV2YWx1YXRlIGluZm8pIChsZXQqICguLi4g Li4uIC4uLiAuLi4gLi4uIC4uLiByZXN1bHQpIChpZiAuLi4gbmlsIC4uLikgKG1lc3NhZ2UgImV4 ZWN1dGluZyAlcyBjb2RlIGJsb2NrJXMuLi4iIC4uLiAuLi4pIChpZiAuLi4gLi4uIC4uLiAuLi4p IChydW4taG9va3MgLi4uKSByZXN1bHQpKSkpKSkpCiAgb3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJs b2NrKG5pbCAoImhhc2tlbGwiICJuYW5tb2w9WzEsMSwzLDIsMSwyLDNdXG5uY2F0bW9sPVsyLDEs MiwxLDIsMSwyXSIgKCg6Y29sbmFtZS1uYW1lcykgKDpyb3duYW1lLW5hbWVzKSAoOnJlc3VsdC1w YXJhbXMgInJlcGxhY2UiKSAoOnJlc3VsdC10eXBlIC4gdmFsdWUpICg6cmVzdWx0cyAuICJyZXBs YWNlIikgKDpleHBvcnRzIC4gInJlc3VsdHMiKSAoOnBhZGxpbmVzIC4gIm5vIikgKDp0YW5nbGUg LiAibm8iKSAoOmhsaW5lcyAuICJubyIpICg6bm93ZWIgLiAibm8iKSAoOmNhY2hlIC4gIm5vIikg KDpzZXNzaW9uIC4gIm5vbmUiKSkgIiIgbmlsIDE0OCAiKHJlZjolcykiKSkKICAoaWYgb3JnLWJh YmVsLW5vLWV2YWwtb24tY3RybC1jLWN0cmwtYyBuaWwgKG9yZy1iYWJlbC1ldmFsLXdpcGUtZXJy b3ItYnVmZmVyKSAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrIGN1cnJlbnQtcHJlZml4LWFy ZyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5mbyBuaWwgY29udGV4dCkpKQogIChsZXQgbmls IChpZiBvcmctYmFiZWwtbm8tZXZhbC1vbi1jdHJsLWMtY3RybC1jIG5pbCAob3JnLWJhYmVsLWV2 YWwtd2lwZS1lcnJvci1idWZmZXIpIChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2sgY3VycmVu dC1wcmVmaXgtYXJnIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvIG5pbCBjb250ZXh0KSkp KQogIChjb25kICgobWVtcSB0eXBlIChxdW90ZSAoc3JjLWJsb2NrIGlubGluZS1zcmMtYmxvY2sp KSkgKGxldCBuaWwgKGlmIG9yZy1iYWJlbC1uby1ldmFsLW9uLWN0cmwtYy1jdHJsLWMgbmlsIChv cmctYmFiZWwtZXZhbC13aXBlLWVycm9yLWJ1ZmZlcikgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1i bG9jayBjdXJyZW50LXByZWZpeC1hcmcgKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8gbmls IGNvbnRleHQpKSkpKSAoKG9yZy1tYXRjaC1saW5lICJbIAldKiQiKSAobGV0IG5pbCAob3IgKHJ1 bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNzIChxdW90ZSBvcmctY3RybC1jLWN0cmwtYy1m aW5hbC1ob29rKSkgKHVzZXItZXJyb3IgKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzICJgXFxbb3Jn LWN0cmwtYy1jdHJsLWNdJyBjYW4gZG8gbm90aGluZyB1c2VmdWwgaGVyZSIpKSkpKSAoKG1lbXEg dHlwZSAocXVvdGUgKGlubGluZS1iYWJlbC1jYWxsIGJhYmVsLWNhbGwpKSkgKGxldCBuaWwgKGxl dCAoKGluZm8gKG9yZy1iYWJlbC1sb2ItZ2V0LWluZm8gY29udGV4dCkpKSAoaWYgaW5mbyAocHJv Z24gKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jayBuaWwgaW5mbykpKSkpKSAoKGVxIHR5cGUg KHF1b3RlIGNsb2NrKSkgKGxldCBuaWwgKG9yZy1jbG9jay11cGRhdGUtdGltZS1tYXliZSkpKSAo KGVxIHR5cGUgKHF1b3RlIGR5bmFtaWMtYmxvY2spKSAobGV0IG5pbCAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBvc3QtYWZmaWxpYXRlZCBjb250ZXh0 KSkgKG9yZy11cGRhdGUtZGJsb2NrKSkpKSAoKGVxIHR5cGUgKHF1b3RlIGZvb3Rub3RlLWRlZmlu aXRpb24pKSAobGV0IG5pbCAoZ290by1jaGFyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cG9zdC1h ZmZpbGlhdGVkIGNvbnRleHQpKSAoY2FsbC1pbnRlcmFjdGl2ZWx5IChxdW90ZSBvcmctZm9vdG5v dGUtYWN0aW9uKSkpKSAoKGVxIHR5cGUgKHF1b3RlIGZvb3Rub3RlLXJlZmVyZW5jZSkpIChsZXQg bmlsIChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0aW9uIG9yZy1mb290bm90ZS1hY3Rpb24pKSkp ICgobWVtcSB0eXBlIChxdW90ZSAoaW5saW5ldGFzayBoZWFkbGluZSkpKSAobGV0IG5pbCAoc2F2 ZS1leGN1cnNpb24gKGdvdG8tY2hhciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNvbnRl eHQpKSAoY2FsbC1pbnRlcmFjdGl2ZWx5IChmdW5jdGlvbiBvcmctc2V0LXRhZ3MtY29tbWFuZCkp KSkpICgoZXEgdHlwZSAocXVvdGUgaXRlbSkpIChsZXQgbmlsIChsZXQqICgoYm94IChvcmctZWxl bWVudC1wcm9wZXJ0eSA6Y2hlY2tib3ggY29udGV4dCkpIChzdHJ1Y3QgKG9yZy1lbGVtZW50LXBy b3BlcnR5IDpzdHJ1Y3R1cmUgY29udGV4dCkpIChvbGQtc3RydWN0IChjb3B5LXRyZWUgc3RydWN0 KSkgKHBhcmVudHMgKG9yZy1saXN0LXBhcmVudHMtYWxpc3Qgc3RydWN0KSkgKHByZXZzIChvcmct bGlzdC1wcmV2cy1hbGlzdCBzdHJ1Y3QpKSAob3JkZXJlZHAgKG9yZy1ub3QtbmlsIChvcmctZW50 cnktZ2V0IG5pbCAiT1JERVJFRCIpKSkpIChvcmctbGlzdC1zZXQtY2hlY2tib3ggKG9yZy1lbGVt ZW50LXByb3BlcnR5IDpiZWdpbiBjb250ZXh0KSBzdHJ1Y3QgKGNvbmQgKChlcXVhbCBhcmcgLi4u KSAiWy1dIikgKChhbmQgLi4uIC4uLikgIlsgXSIpICgob3IgLi4uIC4uLikgbmlsKSAoKGVxIGJv eCAuLi4pICJbIF0iKSAodCAiW1hdIikpKSAob3JnLWxpc3Qtc3RydWN0LWZpeC1pbmQgc3RydWN0 IHBhcmVudHMgMikgKG9yZy1saXN0LXN0cnVjdC1maXgtaXRlbS1lbmQgc3RydWN0KSAob3JnLWxp c3Qtc3RydWN0LWZpeC1idWwgc3RydWN0IHByZXZzKSAob3JnLWxpc3Qtc3RydWN0LWZpeC1pbmQg c3RydWN0IHBhcmVudHMpIChsZXQgKChibG9jay1pdGVtIChvcmctbGlzdC1zdHJ1Y3QtZml4LWJv eCBzdHJ1Y3QgcGFyZW50cyBwcmV2cyBvcmRlcmVkcCkpKSAoaWYgKGFuZCBib3ggKGVxdWFsIHN0 cnVjdCBvbGQtc3RydWN0KSkgKGlmIChlcXVhbCBhcmcgLi4uKSAobWVzc2FnZSAiQ2hlY2tib3hl cyBhbHJlYWR5IHJlc2V0IikgKHVzZXItZXJyb3IgIkNhbm5vdCB0b2dnbGUgdGhpcyBjaGVja2Jv eDogJXMiIC4uLikpIChvcmctbGlzdC1zdHJ1Y3QtYXBwbHktc3RydWN0IHN0cnVjdCBvbGQtc3Ry dWN0KSAob3JnLXVwZGF0ZS1jaGVja2JveC1jb3VudC1tYXliZSkpIChpZiBibG9jay1pdGVtIChw cm9nbiAobWVzc2FnZSAiQ2hlY2tib3hlcyB3ZXJlIHJlbW92ZWQgZHVlIHRvIGVtcHR5IGJveCBh dCBsaW5lICVkIiAuLi4pKSkpKSkpICgoZXEgdHlwZSAocXVvdGUga2V5d29yZCkpIChsZXQgbmls IChsZXQgKChvcmctaW5oaWJpdC1zdGFydHVwLXZpc2liaWxpdHktc3R1ZmYgdCkgKG9yZy1zdGFy dHVwLWFsaWduLWFsbC10YWJsZXMgbmlsKSkgKGlmIChib3VuZHAgKHF1b3RlIG9yZy10YWJsZS1j b29yZGluYXRlLW92ZXJsYXlzKSkgKHByb2duIChtYXBjIChmdW5jdGlvbiBkZWxldGUtb3Zlcmxh eSkgb3JnLXRhYmxlLWNvb3JkaW5hdGUtb3ZlcmxheXMpIChzZXRxIG9yZy10YWJsZS1jb29yZGlu YXRlLW92ZXJsYXlzIG5pbCkpKSAobGV0KiAoKC0taW52aXNpYmxlLXR5cGVzIChxdW90ZSAuLi4p KSAoLS1tYXJrZXJzXD8gKHF1b3RlIHVzZS1tYXJrZXJzKSkgKC0tZGF0YSAobWFwY2FyIC4uLiAu Li4pKSkgKHVud2luZC1wcm90ZWN0IChwcm9nbiAob3JnLW1vZGUtcmVzdGFydCkpIChzYXZlLWV4 Y3Vyc2lvbiAoc2F2ZS1yZXN0cmljdGlvbiAuLi4gLi4uIC4uLikpKSkpIChtZXNzYWdlICJMb2Nh bCBzZXR1cCBoYXMgYmVlbiByZWZyZXNoZWQiKSkpICgoZXEgdHlwZSAocXVvdGUgcGxhaW4tbGlz dCkpIChsZXQgbmlsIChsZXQqICgoYmVnaW4gKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50 cy1iZWdpbiBjb250ZXh0KSkgKHN0cnVjdCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVy ZSBjb250ZXh0KSkgKG9sZC1zdHJ1Y3QgKGNvcHktdHJlZSBzdHJ1Y3QpKSAoZmlyc3QtYm94IChz YXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIGJlZ2luKSAobG9va2luZy1hdCBvcmctbGlzdC1mdWxs LWl0ZW0tcmUpIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAzKSkpIChuZXctYm94IChjb25k ICguLi4gIlstXSIpICguLi4gLi4uKSAoLi4uICJbIF0iKSAodCAiW1hdIikpKSkgKGNvbmQgKGFy ZyAobGV0ICguLi4pICh3aGlsZSAtLWRvbGlzdC10YWlsLS0gLi4uKSkpICgoYW5kIGZpcnN0LWJv eCAoZXEgLi4uIGJlZ2luKSkgKG9yZy1saXN0LXNldC1jaGVja2JveCBiZWdpbiBzdHJ1Y3QgbmV3 LWJveCkpKSAoaWYgKGVxdWFsIChvcmctbGlzdC13cml0ZS1zdHJ1Y3Qgc3RydWN0IChvcmctbGlz dC1wYXJlbnRzLWFsaXN0IHN0cnVjdCkgb2xkLXN0cnVjdCkgb2xkLXN0cnVjdCkgKHByb2duICht ZXNzYWdlICJDYW5ub3QgdXBkYXRlIHRoaXMgY2hlY2tib3giKSkpIChvcmctdXBkYXRlLWNoZWNr Ym94LWNvdW50LW1heWJlKSkpKSAoKG1lbXEgdHlwZSAocXVvdGUgKG5vZGUtcHJvcGVydHkgcHJv cGVydHktZHJhd2VyKSkpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0aW9uIG9y Zy1wcm9wZXJ0eS1hY3Rpb24pKSkpICgoZXEgdHlwZSAocXVvdGUgcmFkaW8tdGFyZ2V0KSkgKGxl dCBuaWwgKGNhbGwtaW50ZXJhY3RpdmVseSAoZnVuY3Rpb24gb3JnLXVwZGF0ZS1yYWRpby10YXJn ZXQtcmVnZXhwKSkpKSAoKGVxIHR5cGUgKHF1b3RlIHN0YXRpc3RpY3MtY29va2llKSkgKGxldCBu aWwgKGNhbGwtaW50ZXJhY3RpdmVseSAoZnVuY3Rpb24gb3JnLXVwZGF0ZS1zdGF0aXN0aWNzLWNv b2tpZXMpKSkpICgobWVtcSB0eXBlIChxdW90ZSAodGFibGUtcm93IHRhYmxlLWNlbGwgdGFibGUp KSkgKGxldCBuaWwgKGlmIChlcSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnR5cGUgY29udGV4dCkg KHF1b3RlIHRhYmxlXC5lbCkpIChtZXNzYWdlICIlcyIgKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlz ICJcXDxvcmctbW9kZS1tYXA+VXNlIGBcXFtvcmctZWRpdC1zcGVjaWFsXScgdG8gZWRpdCB0YWJs ZS5lbCB0YWJsZXMiKSkgKGlmIChvciAoZXEgdHlwZSAocXVvdGUgdGFibGUpKSAoYW5kIChlcSB0 eXBlIC4uLikgKD0gLi4uIC4uLikpKSAoc2F2ZS1leGN1cnNpb24gKGlmIChvcmctYXQtVEJMRk0t cCkgKHByb2duIC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAob3JnLWNhbGwtd2l0aC1hcmcgLi4u IC4uLikgKG9yZ3RibC1zZW5kLXRhYmxlIC4uLikpKSAob3JnLXRhYmxlLW1heWJlLWV2YWwtZm9y bXVsYSkgKGNvbmQgKGFyZyAoY2FsbC1pbnRlcmFjdGl2ZWx5IC4uLikpICgob3JnLXRhYmxlLW1h eWJlLXJlY2FsY3VsYXRlLWxpbmUpKSAodCAob3JnLXRhYmxlLWFsaWduKSkpKSkpKSAoKGVxIHR5 cGUgKHF1b3RlIHRpbWVzdGFtcCkpIChmdW5jYWxsIHBjYXNlLTApKSAoKGVxIHR5cGUgKHF1b3Rl IHBsYW5uaW5nKSkgKGNvbmQgKChvcmctYXQtdGltZXN0YW1wLXAgKHF1b3RlIGxheCkpIChmdW5j YWxsIHBjYXNlLTApKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNzIChxdW90ZSBv cmctY3RybC1jLWN0cmwtYy1maW5hbC1ob29rKSkgKGZ1bmNhbGwgcGNhc2UtMSkpICh0IChmdW5j YWxsIHBjYXNlLTIpKSkpICgobnVsbCB0eXBlKSAoY29uZCAoKG9yZy1hdC1oZWFkaW5nLXApIChs ZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0aW9uIG9yZy1zZXQtdGFncy1jb21tYW5k KSkpKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNzIChxdW90ZSBvcmctY3RybC1j LWN0cmwtYy1maW5hbC1ob29rKSkgKGZ1bmNhbGwgcGNhc2UtMSkpICh0IChmdW5jYWxsIHBjYXNl LTIpKSkpICgocnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MgKHF1b3RlIG9yZy1jdHJs LWMtY3RybC1jLWZpbmFsLWhvb2spKSAoZnVuY2FsbCBwY2FzZS0xKSkgKHQgKGZ1bmNhbGwgcGNh c2UtMikpKQogIChsZXQqICgocGNhc2UtMiAoZnVuY3Rpb24gKGxhbWJkYSBuaWwgKHVzZXItZXJy b3IgKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzICJgXFxbb3JnLWN0cmwtYy1jdHJsLWNdJyBjYW4g ZG8gbm90aGluZyB1c2VmdWwgaGVyZSIpKSkpKSAocGNhc2UtMSAoZnVuY3Rpb24gKGxhbWJkYSBu aWwpKSkgKHBjYXNlLTAgKGZ1bmN0aW9uIChsYW1iZGEgbmlsIChvcmctdGltZXN0YW1wLWNoYW5n ZSAwIChxdW90ZSBkYXkpKSkpKSkgKGNvbmQgKChtZW1xIHR5cGUgKHF1b3RlIChzcmMtYmxvY2sg aW5saW5lLXNyYy1ibG9jaykpKSAobGV0IG5pbCAoaWYgb3JnLWJhYmVsLW5vLWV2YWwtb24tY3Ry bC1jLWN0cmwtYyBuaWwgKG9yZy1iYWJlbC1ldmFsLXdpcGUtZXJyb3ItYnVmZmVyKSAob3JnLWJh YmVsLWV4ZWN1dGUtc3JjLWJsb2NrIGN1cnJlbnQtcHJlZml4LWFyZyAob3JnLWJhYmVsLWdldC1z cmMtYmxvY2staW5mbyBuaWwgY29udGV4dCkpKSkpICgob3JnLW1hdGNoLWxpbmUgIlsgCV0qJCIp IChsZXQgbmlsIChvciAocnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MgKHF1b3RlIG9y Zy1jdHJsLWMtY3RybC1jLWZpbmFsLWhvb2spKSAodXNlci1lcnJvciAoc3Vic3RpdHV0ZS1jb21t YW5kLWtleXMgImBcXFtvcmctY3RybC1jLWN0cmwtY10nIGNhbiBkbyBub3RoaW5nIHVzZWZ1bCBo ZXJlIikpKSkpICgobWVtcSB0eXBlIChxdW90ZSAoaW5saW5lLWJhYmVsLWNhbGwgYmFiZWwtY2Fs bCkpKSAobGV0IG5pbCAobGV0ICgoaW5mbyAob3JnLWJhYmVsLWxvYi1nZXQtaW5mbyBjb250ZXh0 KSkpIChpZiBpbmZvIChwcm9nbiAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrIG5pbCBpbmZv KSkpKSkpICgoZXEgdHlwZSAocXVvdGUgY2xvY2spKSAobGV0IG5pbCAob3JnLWNsb2NrLXVwZGF0 ZS10aW1lLW1heWJlKSkpICgoZXEgdHlwZSAocXVvdGUgZHluYW1pYy1ibG9jaykpIChsZXQgbmls IChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cG9zdC1h ZmZpbGlhdGVkIGNvbnRleHQpKSAob3JnLXVwZGF0ZS1kYmxvY2spKSkpICgoZXEgdHlwZSAocXVv dGUgZm9vdG5vdGUtZGVmaW5pdGlvbikpIChsZXQgbmlsIChnb3RvLWNoYXIgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpwb3N0LWFmZmlsaWF0ZWQgY29udGV4dCkpIChjYWxsLWludGVyYWN0aXZlbHkg KHF1b3RlIG9yZy1mb290bm90ZS1hY3Rpb24pKSkpICgoZXEgdHlwZSAocXVvdGUgZm9vdG5vdGUt cmVmZXJlbmNlKSkgKGxldCBuaWwgKGNhbGwtaW50ZXJhY3RpdmVseSAoZnVuY3Rpb24gb3JnLWZv b3Rub3RlLWFjdGlvbikpKSkgKChtZW1xIHR5cGUgKHF1b3RlIChpbmxpbmV0YXNrIGhlYWRsaW5l KSkpIChsZXQgbmlsIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctZWxlbWVudC1wcm9w ZXJ0eSA6YmVnaW4gY29udGV4dCkpIChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0aW9uIG9yZy1z ZXQtdGFncy1jb21tYW5kKSkpKSkgKChlcSB0eXBlIChxdW90ZSBpdGVtKSkgKGxldCBuaWwgKGxl dCogKChib3ggKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjaGVja2JveCBjb250ZXh0KSkgKHN0cnVj dCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBjb250ZXh0KSkgKG9sZC1zdHJ1Y3Qg KGNvcHktdHJlZSBzdHJ1Y3QpKSAocGFyZW50cyAob3JnLWxpc3QtcGFyZW50cy1hbGlzdCBzdHJ1 Y3QpKSAocHJldnMgKG9yZy1saXN0LXByZXZzLWFsaXN0IHN0cnVjdCkpIChvcmRlcmVkcCAob3Jn LW5vdC1uaWwgLi4uKSkpIChvcmctbGlzdC1zZXQtY2hlY2tib3ggKG9yZy1lbGVtZW50LXByb3Bl cnR5IDpiZWdpbiBjb250ZXh0KSBzdHJ1Y3QgKGNvbmQgKC4uLiAiWy1dIikgKC4uLiAiWyBdIikg KC4uLiBuaWwpICguLi4gIlsgXSIpICh0ICJbWF0iKSkpIChvcmctbGlzdC1zdHJ1Y3QtZml4LWlu ZCBzdHJ1Y3QgcGFyZW50cyAyKSAob3JnLWxpc3Qtc3RydWN0LWZpeC1pdGVtLWVuZCBzdHJ1Y3Qp IChvcmctbGlzdC1zdHJ1Y3QtZml4LWJ1bCBzdHJ1Y3QgcHJldnMpIChvcmctbGlzdC1zdHJ1Y3Qt Zml4LWluZCBzdHJ1Y3QgcGFyZW50cykgKGxldCAoKGJsb2NrLWl0ZW0gLi4uKSkgKGlmIChhbmQg Ym94IC4uLikgKGlmIC4uLiAuLi4gLi4uKSAob3JnLWxpc3Qtc3RydWN0LWFwcGx5LXN0cnVjdCBz dHJ1Y3Qgb2xkLXN0cnVjdCkgKG9yZy11cGRhdGUtY2hlY2tib3gtY291bnQtbWF5YmUpKSAoaWYg YmxvY2staXRlbSAocHJvZ24gLi4uKSkpKSkpICgoZXEgdHlwZSAocXVvdGUga2V5d29yZCkpIChs ZXQgbmlsIChsZXQgKChvcmctaW5oaWJpdC1zdGFydHVwLXZpc2liaWxpdHktc3R1ZmYgdCkgKG9y Zy1zdGFydHVwLWFsaWduLWFsbC10YWJsZXMgbmlsKSkgKGlmIChib3VuZHAgKHF1b3RlIG9yZy10 YWJsZS1jb29yZGluYXRlLW92ZXJsYXlzKSkgKHByb2duIChtYXBjIC4uLiBvcmctdGFibGUtY29v cmRpbmF0ZS1vdmVybGF5cykgKHNldHEgb3JnLXRhYmxlLWNvb3JkaW5hdGUtb3ZlcmxheXMgbmls KSkpIChsZXQqICgoLS1pbnZpc2libGUtdHlwZXMgLi4uKSAoLS1tYXJrZXJzXD8gLi4uKSAoLS1k YXRhIC4uLikpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gLi4uKSAoc2F2ZS1leGN1cnNpb24gLi4u KSkpKSAobWVzc2FnZSAiTG9jYWwgc2V0dXAgaGFzIGJlZW4gcmVmcmVzaGVkIikpKSAoKGVxIHR5 cGUgKHF1b3RlIHBsYWluLWxpc3QpKSAobGV0IG5pbCAobGV0KiAoKGJlZ2luIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6Y29udGVudHMtYmVnaW4gY29udGV4dCkpIChzdHJ1Y3QgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDpzdHJ1Y3R1cmUgY29udGV4dCkpIChvbGQtc3RydWN0IChjb3B5LXRyZWUgc3Ry dWN0KSkgKGZpcnN0LWJveCAoc2F2ZS1leGN1cnNpb24gLi4uIC4uLiAuLi4pKSAobmV3LWJveCAo Y29uZCAuLi4gLi4uIC4uLiAuLi4pKSkgKGNvbmQgKGFyZyAobGV0IC4uLiAuLi4pKSAoKGFuZCBm aXJzdC1ib3ggLi4uKSAob3JnLWxpc3Qtc2V0LWNoZWNrYm94IGJlZ2luIHN0cnVjdCBuZXctYm94 KSkpIChpZiAoZXF1YWwgKG9yZy1saXN0LXdyaXRlLXN0cnVjdCBzdHJ1Y3QgLi4uIG9sZC1zdHJ1 Y3QpIG9sZC1zdHJ1Y3QpIChwcm9nbiAobWVzc2FnZSAiQ2Fubm90IHVwZGF0ZSB0aGlzIGNoZWNr Ym94IikpKSAob3JnLXVwZGF0ZS1jaGVja2JveC1jb3VudC1tYXliZSkpKSkgKChtZW1xIHR5cGUg KHF1b3RlIChub2RlLXByb3BlcnR5IHByb3BlcnR5LWRyYXdlcikpKSAobGV0IG5pbCAoY2FsbC1p bnRlcmFjdGl2ZWx5IChmdW5jdGlvbiBvcmctcHJvcGVydHktYWN0aW9uKSkpKSAoKGVxIHR5cGUg KHF1b3RlIHJhZGlvLXRhcmdldCkpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0 aW9uIG9yZy11cGRhdGUtcmFkaW8tdGFyZ2V0LXJlZ2V4cCkpKSkgKChlcSB0eXBlIChxdW90ZSBz dGF0aXN0aWNzLWNvb2tpZSkpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0aW9u IG9yZy11cGRhdGUtc3RhdGlzdGljcy1jb29raWVzKSkpKSAoKG1lbXEgdHlwZSAocXVvdGUgKHRh YmxlLXJvdyB0YWJsZS1jZWxsIHRhYmxlKSkpIChsZXQgbmlsIChpZiAoZXEgKG9yZy1lbGVtZW50 LXByb3BlcnR5IDp0eXBlIGNvbnRleHQpIChxdW90ZSB0YWJsZVwuZWwpKSAobWVzc2FnZSAiJXMi IChzdWJzdGl0dXRlLWNvbW1hbmQta2V5cyAiXFw8b3JnLW1vZGUtbWFwPlVzZSBgXFxbb3JnLWVk aXQtc3BlY2lhbF0nIHRvIGVkaXQgdGFibGUuZWwgdGFibGVzIikpIChpZiAob3IgKGVxIHR5cGUg Li4uKSAoYW5kIC4uLiAuLi4pKSAoc2F2ZS1leGN1cnNpb24gKGlmIC4uLiAuLi4gLi4uIC4uLiAu Li4pKSAob3JnLXRhYmxlLW1heWJlLWV2YWwtZm9ybXVsYSkgKGNvbmQgKGFyZyAuLi4pICguLi4p ICh0IC4uLikpKSkpKSAoKGVxIHR5cGUgKHF1b3RlIHRpbWVzdGFtcCkpIChmdW5jYWxsIHBjYXNl LTApKSAoKGVxIHR5cGUgKHF1b3RlIHBsYW5uaW5nKSkgKGNvbmQgKChvcmctYXQtdGltZXN0YW1w LXAgKHF1b3RlIGxheCkpIChmdW5jYWxsIHBjYXNlLTApKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11 bnRpbC1zdWNjZXNzIChxdW90ZSBvcmctY3RybC1jLWN0cmwtYy1maW5hbC1ob29rKSkgKGZ1bmNh bGwgcGNhc2UtMSkpICh0IChmdW5jYWxsIHBjYXNlLTIpKSkpICgobnVsbCB0eXBlKSAoY29uZCAo KG9yZy1hdC1oZWFkaW5nLXApIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0aW9u IG9yZy1zZXQtdGFncy1jb21tYW5kKSkpKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNj ZXNzIChxdW90ZSBvcmctY3RybC1jLWN0cmwtYy1maW5hbC1ob29rKSkgKGZ1bmNhbGwgcGNhc2Ut MSkpICh0IChmdW5jYWxsIHBjYXNlLTIpKSkpICgocnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1 Y2Nlc3MgKHF1b3RlIG9yZy1jdHJsLWMtY3RybC1jLWZpbmFsLWhvb2spKSAoZnVuY2FsbCBwY2Fz ZS0xKSkgKHQgKGZ1bmNhbGwgcGNhc2UtMikpKSkKICAobGV0KiAoKGNvbnRleHQgKG9yZy1lbGVt ZW50LWxpbmVhZ2UgKG9yZy1lbGVtZW50LWNvbnRleHQpIChxdW90ZSAoYmFiZWwtY2FsbCBjbG9j ayBkeW5hbWljLWJsb2NrIGZvb3Rub3RlLWRlZmluaXRpb24gZm9vdG5vdGUtcmVmZXJlbmNlIGlu bGluZS1iYWJlbC1jYWxsIGlubGluZS1zcmMtYmxvY2sgaW5saW5ldGFzayBpdGVtIGtleXdvcmQg bm9kZS1wcm9wZXJ0eSBwYXJhZ3JhcGggcGxhaW4tbGlzdCBwbGFubmluZyBwcm9wZXJ0eS1kcmF3 ZXIgcmFkaW8tdGFyZ2V0IHNyYy1ibG9jayBzdGF0aXN0aWNzLWNvb2tpZSB0YWJsZSB0YWJsZS1j ZWxsIHRhYmxlLXJvdyB0aW1lc3RhbXApKSB0KSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgY29u dGV4dCkpKSAoaWYgKGVxIHR5cGUgKHF1b3RlIHBhcmFncmFwaCkpIChwcm9nbiAobGV0ICgocGFy ZW50IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNvbnRleHQpKSkgKGlmIChhbmQgKGVx IChvcmctZWxlbWVudC10eXBlIHBhcmVudCkgKHF1b3RlIGl0ZW0pKSAoPSAobGluZS1iZWdpbm5p bmctcG9zaXRpb24pIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6YmVnaW4gcGFyZW50KSkpIChwcm9n biAoc2V0cSBjb250ZXh0IHBhcmVudCkgKHNldHEgdHlwZSAocXVvdGUgaXRlbSkpKSkpKSkgKGxl dCogKChwY2FzZS0yIChmdW5jdGlvbiAobGFtYmRhIG5pbCAodXNlci1lcnJvciAoc3Vic3RpdHV0 ZS1jb21tYW5kLWtleXMgImBcXFtvcmctY3RybC1jLWN0cmwtY10nIGNhbiBkbyBub3RoaW5nIHVz ZWZ1bCBoZXJlIikpKSkpIChwY2FzZS0xIChmdW5jdGlvbiAobGFtYmRhIG5pbCkpKSAocGNhc2Ut MCAoZnVuY3Rpb24gKGxhbWJkYSBuaWwgKG9yZy10aW1lc3RhbXAtY2hhbmdlIDAgKHF1b3RlIGRh eSkpKSkpKSAoY29uZCAoKG1lbXEgdHlwZSAocXVvdGUgKHNyYy1ibG9jayBpbmxpbmUtc3JjLWJs b2NrKSkpIChsZXQgbmlsIChpZiBvcmctYmFiZWwtbm8tZXZhbC1vbi1jdHJsLWMtY3RybC1jIG5p bCAob3JnLWJhYmVsLWV2YWwtd2lwZS1lcnJvci1idWZmZXIpIChvcmctYmFiZWwtZXhlY3V0ZS1z cmMtYmxvY2sgY3VycmVudC1wcmVmaXgtYXJnIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZv IG5pbCBjb250ZXh0KSkpKSkgKChvcmctbWF0Y2gtbGluZSAiWyAJXSokIikgKGxldCBuaWwgKG9y IChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAocXVvdGUgb3JnLWN0cmwtYy1jdHJs LWMtZmluYWwtaG9vaykpICh1c2VyLWVycm9yIChzdWJzdGl0dXRlLWNvbW1hbmQta2V5cyAiYFxc W29yZy1jdHJsLWMtY3RybC1jXScgY2FuIGRvIG5vdGhpbmcgdXNlZnVsIGhlcmUiKSkpKSkgKCht ZW1xIHR5cGUgKHF1b3RlIChpbmxpbmUtYmFiZWwtY2FsbCBiYWJlbC1jYWxsKSkpIChsZXQgbmls IChsZXQgKChpbmZvIC4uLikpIChpZiBpbmZvIChwcm9nbiAuLi4pKSkpKSAoKGVxIHR5cGUgKHF1 b3RlIGNsb2NrKSkgKGxldCBuaWwgKG9yZy1jbG9jay11cGRhdGUtdGltZS1tYXliZSkpKSAoKGVx IHR5cGUgKHF1b3RlIGR5bmFtaWMtYmxvY2spKSAobGV0IG5pbCAoc2F2ZS1leGN1cnNpb24gKGdv dG8tY2hhciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnBvc3QtYWZmaWxpYXRlZCBjb250ZXh0KSkg KG9yZy11cGRhdGUtZGJsb2NrKSkpKSAoKGVxIHR5cGUgKHF1b3RlIGZvb3Rub3RlLWRlZmluaXRp b24pKSAobGV0IG5pbCAoZ290by1jaGFyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cG9zdC1hZmZp bGlhdGVkIGNvbnRleHQpKSAoY2FsbC1pbnRlcmFjdGl2ZWx5IChxdW90ZSBvcmctZm9vdG5vdGUt YWN0aW9uKSkpKSAoKGVxIHR5cGUgKHF1b3RlIGZvb3Rub3RlLXJlZmVyZW5jZSkpIChsZXQgbmls IChjYWxsLWludGVyYWN0aXZlbHkgKGZ1bmN0aW9uIG9yZy1mb290bm90ZS1hY3Rpb24pKSkpICgo bWVtcSB0eXBlIChxdW90ZSAoaW5saW5ldGFzayBoZWFkbGluZSkpKSAobGV0IG5pbCAoc2F2ZS1l eGN1cnNpb24gKGdvdG8tY2hhciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNvbnRleHQp KSAoY2FsbC1pbnRlcmFjdGl2ZWx5IChmdW5jdGlvbiBvcmctc2V0LXRhZ3MtY29tbWFuZCkpKSkp ICgoZXEgdHlwZSAocXVvdGUgaXRlbSkpIChsZXQgbmlsIChsZXQqICgoYm94IC4uLikgKHN0cnVj dCAuLi4pIChvbGQtc3RydWN0IC4uLikgKHBhcmVudHMgLi4uKSAocHJldnMgLi4uKSAob3JkZXJl ZHAgLi4uKSkgKG9yZy1saXN0LXNldC1jaGVja2JveCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJl Z2luIGNvbnRleHQpIHN0cnVjdCAoY29uZCAuLi4gLi4uIC4uLiAuLi4gLi4uKSkgKG9yZy1saXN0 LXN0cnVjdC1maXgtaW5kIHN0cnVjdCBwYXJlbnRzIDIpIChvcmctbGlzdC1zdHJ1Y3QtZml4LWl0 ZW0tZW5kIHN0cnVjdCkgKG9yZy1saXN0LXN0cnVjdC1maXgtYnVsIHN0cnVjdCBwcmV2cykgKG9y Zy1saXN0LXN0cnVjdC1maXgtaW5kIHN0cnVjdCBwYXJlbnRzKSAobGV0ICguLi4pIChpZiAuLi4g Li4uIC4uLiAuLi4pIChpZiBibG9jay1pdGVtIC4uLikpKSkpICgoZXEgdHlwZSAocXVvdGUga2V5 d29yZCkpIChsZXQgbmlsIChsZXQgKChvcmctaW5oaWJpdC1zdGFydHVwLXZpc2liaWxpdHktc3R1 ZmYgdCkgKG9yZy1zdGFydHVwLWFsaWduLWFsbC10YWJsZXMgbmlsKSkgKGlmIChib3VuZHAgLi4u KSAocHJvZ24gLi4uIC4uLikpIChsZXQqICguLi4gLi4uIC4uLikgKHVud2luZC1wcm90ZWN0IC4u LiAuLi4pKSkgKG1lc3NhZ2UgIkxvY2FsIHNldHVwIGhhcyBiZWVuIHJlZnJlc2hlZCIpKSkgKChl cSB0eXBlIChxdW90ZSBwbGFpbi1saXN0KSkgKGxldCBuaWwgKGxldCogKChiZWdpbiAuLi4pIChz dHJ1Y3QgLi4uKSAob2xkLXN0cnVjdCAuLi4pIChmaXJzdC1ib3ggLi4uKSAobmV3LWJveCAuLi4p KSAoY29uZCAoYXJnIC4uLikgKC4uLiAuLi4pKSAoaWYgKGVxdWFsIC4uLiBvbGQtc3RydWN0KSAo cHJvZ24gLi4uKSkgKG9yZy11cGRhdGUtY2hlY2tib3gtY291bnQtbWF5YmUpKSkpICgobWVtcSB0 eXBlIChxdW90ZSAobm9kZS1wcm9wZXJ0eSBwcm9wZXJ0eS1kcmF3ZXIpKSkgKGxldCBuaWwgKGNh bGwtaW50ZXJhY3RpdmVseSAoZnVuY3Rpb24gb3JnLXByb3BlcnR5LWFjdGlvbikpKSkgKChlcSB0 eXBlIChxdW90ZSByYWRpby10YXJnZXQpKSAobGV0IG5pbCAoY2FsbC1pbnRlcmFjdGl2ZWx5IChm dW5jdGlvbiBvcmctdXBkYXRlLXJhZGlvLXRhcmdldC1yZWdleHApKSkpICgoZXEgdHlwZSAocXVv dGUgc3RhdGlzdGljcy1jb29raWUpKSAobGV0IG5pbCAoY2FsbC1pbnRlcmFjdGl2ZWx5IChmdW5j dGlvbiBvcmctdXBkYXRlLXN0YXRpc3RpY3MtY29va2llcykpKSkgKChtZW1xIHR5cGUgKHF1b3Rl ICh0YWJsZS1yb3cgdGFibGUtY2VsbCB0YWJsZSkpKSAobGV0IG5pbCAoaWYgKGVxIChvcmctZWxl bWVudC1wcm9wZXJ0eSA6dHlwZSBjb250ZXh0KSAocXVvdGUgdGFibGVcLmVsKSkgKG1lc3NhZ2Ug IiVzIiAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMgIlxcPG9yZy1tb2RlLW1hcD5Vc2UgYFxcW29y Zy1lZGl0LXNwZWNpYWxdJyB0byBlZGl0IHRhYmxlLmVsIHRhYmxlcyIpKSAoaWYgKG9yIC4uLiAu Li4pIChzYXZlLWV4Y3Vyc2lvbiAuLi4pIChvcmctdGFibGUtbWF5YmUtZXZhbC1mb3JtdWxhKSAo Y29uZCAuLi4gLi4uIC4uLikpKSkpICgoZXEgdHlwZSAocXVvdGUgdGltZXN0YW1wKSkgKGZ1bmNh bGwgcGNhc2UtMCkpICgoZXEgdHlwZSAocXVvdGUgcGxhbm5pbmcpKSAoY29uZCAoKG9yZy1hdC10 aW1lc3RhbXAtcCAocXVvdGUgbGF4KSkgKGZ1bmNhbGwgcGNhc2UtMCkpICgocnVuLWhvb2std2l0 aC1hcmdzLXVudGlsLXN1Y2Nlc3MgKHF1b3RlIG9yZy1jdHJsLWMtY3RybC1jLWZpbmFsLWhvb2sp KSAoZnVuY2FsbCBwY2FzZS0xKSkgKHQgKGZ1bmNhbGwgcGNhc2UtMikpKSkgKChudWxsIHR5cGUp IChjb25kICgob3JnLWF0LWhlYWRpbmctcCkgKGxldCBuaWwgKGNhbGwtaW50ZXJhY3RpdmVseSAu Li4pKSkgKChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAocXVvdGUgb3JnLWN0cmwt Yy1jdHJsLWMtZmluYWwtaG9vaykpIChmdW5jYWxsIHBjYXNlLTEpKSAodCAoZnVuY2FsbCBwY2Fz ZS0yKSkpKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNzIChxdW90ZSBvcmctY3Ry bC1jLWN0cmwtYy1maW5hbC1ob29rKSkgKGZ1bmNhbGwgcGNhc2UtMSkpICh0IChmdW5jYWxsIHBj YXNlLTIpKSkpKQogIChjb25kICgob3IgKGFuZCAoYm91bmRwIChxdW90ZSBvcmctY2xvY2stb3Zl cmxheXMpKSBvcmctY2xvY2stb3ZlcmxheXMpIG9yZy1vY2N1ci1oaWdobGlnaHRzKSAoaWYgKGJv dW5kcCAocXVvdGUgb3JnLWNsb2NrLW92ZXJsYXlzKSkgKHByb2duIChvcmctY2xvY2stcmVtb3Zl LW92ZXJsYXlzKSkpIChvcmctcmVtb3ZlLW9jY3VyLWhpZ2hsaWdodHMpIChtZXNzYWdlICJUZW1w b3JhcnkgaGlnaGxpZ2h0cy9vdmVybGF5cyByZW1vdmVkIGZyb20gY3VycmVudCBidWZmZXIiKSkg KChhbmQgKGxvY2FsLXZhcmlhYmxlLXAgKHF1b3RlIG9yZy1maW5pc2gtZnVuY3Rpb24pKSAoZmJv dW5kcCBvcmctZmluaXNoLWZ1bmN0aW9uKSkgKGZ1bmNhbGwgb3JnLWZpbmlzaC1mdW5jdGlvbikp ICgob3JnLWJhYmVsLWhhc2gtYXQtcG9pbnQpKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1z dWNjZXNzIChxdW90ZSBvcmctY3RybC1jLWN0cmwtYy1ob29rKSkpICh0IChsZXQqICgoY29udGV4 dCAob3JnLWVsZW1lbnQtbGluZWFnZSAob3JnLWVsZW1lbnQtY29udGV4dCkgKHF1b3RlIChiYWJl bC1jYWxsIGNsb2NrIGR5bmFtaWMtYmxvY2sgZm9vdG5vdGUtZGVmaW5pdGlvbiBmb290bm90ZS1y ZWZlcmVuY2UgaW5saW5lLWJhYmVsLWNhbGwgaW5saW5lLXNyYy1ibG9jayBpbmxpbmV0YXNrIGl0 ZW0ga2V5d29yZCBub2RlLXByb3BlcnR5IHBhcmFncmFwaCBwbGFpbi1saXN0IHBsYW5uaW5nIHBy b3BlcnR5LWRyYXdlciByYWRpby10YXJnZXQgc3JjLWJsb2NrIHN0YXRpc3RpY3MtY29va2llIHRh YmxlIHRhYmxlLWNlbGwgdGFibGUtcm93IHRpbWVzdGFtcCkpIHQpKSAodHlwZSAob3JnLWVsZW1l bnQtdHlwZSBjb250ZXh0KSkpIChpZiAoZXEgdHlwZSAocXVvdGUgcGFyYWdyYXBoKSkgKHByb2du IChsZXQgKChwYXJlbnQgLi4uKSkgKGlmIChhbmQgLi4uIC4uLikgKHByb2duIC4uLiAuLi4pKSkp KSAobGV0KiAoKHBjYXNlLTIgKGZ1bmN0aW9uIChsYW1iZGEgbmlsIC4uLikpKSAocGNhc2UtMSAo ZnVuY3Rpb24gKGxhbWJkYSBuaWwpKSkgKHBjYXNlLTAgKGZ1bmN0aW9uIChsYW1iZGEgbmlsIC4u LikpKSkgKGNvbmQgKChtZW1xIHR5cGUgKHF1b3RlIC4uLikpIChsZXQgbmlsIChpZiBvcmctYmFi ZWwtbm8tZXZhbC1vbi1jdHJsLWMtY3RybC1jIG5pbCAuLi4gLi4uKSkpICgob3JnLW1hdGNoLWxp bmUgIlsgCV0qJCIpIChsZXQgbmlsIChvciAuLi4gLi4uKSkpICgobWVtcSB0eXBlIChxdW90ZSAu Li4pKSAobGV0IG5pbCAobGV0IC4uLiAuLi4pKSkgKChlcSB0eXBlIChxdW90ZSBjbG9jaykpIChs ZXQgbmlsIChvcmctY2xvY2stdXBkYXRlLXRpbWUtbWF5YmUpKSkgKChlcSB0eXBlIChxdW90ZSBk eW5hbWljLWJsb2NrKSkgKGxldCBuaWwgKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4pKSkgKChlcSB0 eXBlIChxdW90ZSBmb290bm90ZS1kZWZpbml0aW9uKSkgKGxldCBuaWwgKGdvdG8tY2hhciAuLi4p IChjYWxsLWludGVyYWN0aXZlbHkgLi4uKSkpICgoZXEgdHlwZSAocXVvdGUgZm9vdG5vdGUtcmVm ZXJlbmNlKSkgKGxldCBuaWwgKGNhbGwtaW50ZXJhY3RpdmVseSAuLi4pKSkgKChtZW1xIHR5cGUg KHF1b3RlIC4uLikpIChsZXQgbmlsIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkpICgoZXEgdHlw ZSAocXVvdGUgaXRlbSkpIChsZXQgbmlsIChsZXQqIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4u LikpKSAoKGVxIHR5cGUgKHF1b3RlIGtleXdvcmQpKSAobGV0IG5pbCAobGV0IC4uLiAuLi4gLi4u KSAobWVzc2FnZSAiTG9jYWwgc2V0dXAgaGFzIGJlZW4gcmVmcmVzaGVkIikpKSAoKGVxIHR5cGUg KHF1b3RlIHBsYWluLWxpc3QpKSAobGV0IG5pbCAobGV0KiAuLi4gLi4uIC4uLiAuLi4pKSkgKCht ZW1xIHR5cGUgKHF1b3RlIC4uLikpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgLi4uKSkp ICgoZXEgdHlwZSAocXVvdGUgcmFkaW8tdGFyZ2V0KSkgKGxldCBuaWwgKGNhbGwtaW50ZXJhY3Rp dmVseSAuLi4pKSkgKChlcSB0eXBlIChxdW90ZSBzdGF0aXN0aWNzLWNvb2tpZSkpIChsZXQgbmls IChjYWxsLWludGVyYWN0aXZlbHkgLi4uKSkpICgobWVtcSB0eXBlIChxdW90ZSAuLi4pKSAobGV0 IG5pbCAoaWYgLi4uIC4uLiAuLi4pKSkgKChlcSB0eXBlIChxdW90ZSB0aW1lc3RhbXApKSAoZnVu Y2FsbCBwY2FzZS0wKSkgKChlcSB0eXBlIChxdW90ZSBwbGFubmluZykpIChjb25kICguLi4gLi4u KSAoLi4uIC4uLikgKHQgLi4uKSkpICgobnVsbCB0eXBlKSAoY29uZCAoLi4uIC4uLikgKC4uLiAu Li4pICh0IC4uLikpKSAoKHJ1bi1ob29rLXdpdGgtYXJncy11bnRpbC1zdWNjZXNzIChxdW90ZSBv cmctY3RybC1jLWN0cmwtYy1maW5hbC1ob29rKSkgKGZ1bmNhbGwgcGNhc2UtMSkpICh0IChmdW5j YWxsIHBjYXNlLTIpKSkpKSkpCiAgb3JnLWN0cmwtYy1jdHJsLWMobmlsKQogIGZ1bmNhbGwtaW50 ZXJhY3RpdmVseShvcmctY3RybC1jLWN0cmwtYyBuaWwpCiAgY2FsbC1pbnRlcmFjdGl2ZWx5KG9y Zy1jdHJsLWMtY3RybC1jIG5pbCBuaWwpCiAgY29tbWFuZC1leGVjdXRlKG9yZy1jdHJsLWMtY3Ry bC1jKQo= --=-=-=--