From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Re: [BABEL] [BUG] Property ":exports: both" ignored when exporting subtree Date: Mon, 28 Feb 2011 12:12:52 +0100 Message-ID: References: <87tyfp893d.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=00163630f8ddc82934049d55c236 Return-path: Received: from [140.186.70.92] (port=60084 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Pu12B-0000HS-IY for emacs-orgmode@gnu.org; Mon, 28 Feb 2011 06:13:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Pu125-00059s-QX for emacs-orgmode@gnu.org; Mon, 28 Feb 2011 06:12:55 -0500 Received: from mail-qy0-f176.google.com ([209.85.216.176]:35836) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Pu125-00059U-Iy for emacs-orgmode@gnu.org; Mon, 28 Feb 2011 06:12:53 -0500 Received: by qyk30 with SMTP id 30so3333132qyk.0 for ; Mon, 28 Feb 2011 03:12:52 -0800 (PST) In-Reply-To: <87tyfp893d.fsf@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: emacs-orgmode --00163630f8ddc82934049d55c236 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Sun, Feb 27, 2011 at 10:24 PM, Eric Schulte wro= te: > Hi Rainer, > > I tried to reproduce this problem, but it seems to have worked as > expected on my system, specifically when exporting the "Her it does not > work" subtree, I get the following in the resulting .tex file. > > #+begin_src latex > =A0\section*{Her it does not work} > =A0\label{sec-1} > =A0\subsection*{R code graph} > =A0\label{sec-1_1} > > =A0\begin{verbatim} > =A0pdf("pdf1.pdf") > =A0plot(runif(100)) > =A0dev.off() > > =A0cat( > =A0 =A0 =A0"\n|--|--|\n", > =A0 =A0 =A0"|name|[[./pdf1.pdf]]|\n", > =A0 =A0 =A0"|--|--|\n" > =A0 =A0 =A0) > =A0\end{verbatim} > > =A0\begin{verbatim} > =A0 null device > =A0 =A0 =A0 =A0 =A0 =A0 1 > > =A0 |--|--| > =A0 =A0|name|[[./pdf1.pdf]]| > =A0 =A0|--|--| > =A0\end{verbatim} > #+end_src > > Cheers -- Eric > > Rainer M Krug writes: > >> Hi, >> >> When exporting this buffer to pdf, the R code becomes evaluated and >> the code and the result becomes exported; but when I export only the >> "Here it does not work" subtree, the :exports: is ignored and only the >> code is exported; if I export only the "Here it works" subtree, the >> code and result are exported as ":export both" is used as a header >> argument. OK - further test: after an update this morning to Org-mode version 7.4 (release_7.4.553.g83b7) even the export of the whole document top pdf, does not include the graphs. In contrast, when using 7.01g with the same emacs.org file, the export of the complete document includes the graphs, although on 7.01g, no subtree export does include an graph. With Org-mode version 7.4 (release_7.4.553.g83b7), no export of any subtree included any graph. I attach my (longish) emacs.org file ant the init.el, but I do not think there is a problem in there. Cheers, Rainer >> >> Cheers, >> >> Rainer >> >> * Her it does not work >> :PROPERTIES: >> :tangle: no >> :results: output org >> :exports: both >> :END: >> ** R code graph >> #+begin_src R >> =A0 pdf("pdf1.pdf") >> =A0 plot(runif(100)) >> =A0 dev.off() >> >> =A0 cat( >> =A0 =A0 =A0 "\n|--|--|\n", >> =A0 =A0 =A0 "|name|[[./pdf1.pdf]]|\n", >> =A0 =A0 =A0 "|--|--|\n" >> =A0 =A0 =A0 ) >> #+end_src >> >> >> * Here it works >> :PROPERTIES: >> :tangle: no >> :results: output org >> :exports: both >> :END: >> ** R code graph >> #+begin_src R :exports both >> =A0 pdf("pdf1.pdf") >> =A0 plot(runif(100)) >> =A0 dev.off() >> >> =A0 cat( >> =A0 =A0 =A0 "\n|--|--|\n", >> =A0 =A0 =A0 "|name|[[./pdf1.pdf]]|\n", >> =A0 =A0 =A0 "|--|--|\n" >> =A0 =A0 =A0 ) >> #+end_src > --=20 NEW GERMAN FAX NUMBER!!! Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Natural Sciences Building Office Suite 2039 Stellenbosch University Main Campus, Merriman Avenue Stellenbosch South Africa Cell:=A0 =A0 =A0 =A0 =A0=A0 +27 - (0)83 9479 042 Fax:=A0 =A0 =A0 =A0 =A0 =A0 +27 - (0)86 516 2782 Fax:=A0 =A0 =A0 =A0 =A0 =A0 +49 - (0)321 2125 2244 email:=A0 =A0 =A0 =A0 =A0 Rainer@krugs.de Skype:=A0 =A0 =A0 =A0 =A0 RMkrug Google:=A0 =A0 =A0 =A0=A0 R.M.Krug@gmail.com --00163630f8ddc82934049d55c236 Content-Type: text/x-emacs-lisp; charset=US-ASCII; name="init.el" Content-Disposition: attachment; filename="init.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkpah5ve0 Ozs7IGluaXQuZWwgLS0tIFdoZXJlIGFsbCB0aGUgbWFnaWMgYmVnaW5zCjs7Cjs7IFRoaXMgZmls ZSBsb2FkcyBib3RoCjs7IC0gT3JnLW1vZGUgOiBodHRwOi8vb3JnbW9kZS5vcmcvIGFuZAo7OyAt IE9yZy1iYWJlbDogaHR0cDovL29yZ21vZGUub3JnL3dvcmcvb3JnLWNvbnRyaWIvYmFiZWwvb3Jn LWJhYmVsLnBocCNsaWJyYXJ5LW9mLWJhYmVsCjs7Cjs7IEl0IHRoZW4gbG9hZHMgdGhlIHJlc3Qg b2Ygb3VyIEVtYWNzIGluaXRpYWxpemF0aW9uIGZyb20gRW1hY3MgbGlzcAo7OyBlbWJlZGRlZCBp biBsaXRlcmF0ZSBPcmctbW9kZSBmaWxlcy4KCjs7IExvYWQgdXAgT3JnIE1vZGUgYW5kIE9yZyBC YWJlbCBmb3IgZWxpc3AgZW1iZWRkZWQgaW4gT3JnIE1vZGUgZmlsZXMKKGFkZC10by1saXN0ICds b2FkLXBhdGggIn4vLmVtYWNzLmQvb3JnLW1vZGUvbGlzcCIpCihhZGQtdG8tbGlzdCAnbG9hZC1w YXRoICJ+Ly5lbWFjcy5kL29yZy1tb2RlL2NvbnRyaWIvbGlzcCIpCgo7OyBsb2FkIHVwIE9yZy1t b2RlIGFuZCBPcmctYmFiZWwKKHJlcXVpcmUgJ29yZy1pbnN0YWxsKQoKOzsgbG9hZCB1cCB0aGUg bWFpbiBmaWxlCihvcmctYmFiZWwtbG9hZC1maWxlICJ+Ly5lbWFjcy5kL2VtYWNzLm9yZyIpCgoo Y3VzdG9tLXNldC12YXJpYWJsZXMKICA7OyBjdXN0b20tc2V0LXZhcmlhYmxlcyB3YXMgYWRkZWQg YnkgQ3VzdG9tLgogIDs7IElmIHlvdSBlZGl0IGl0IGJ5IGhhbmQsIHlvdSBjb3VsZCBtZXNzIGl0 IHVwLCBzbyBiZSBjYXJlZnVsLgogIDs7IFlvdXIgaW5pdCBmaWxlIHNob3VsZCBjb250YWluIG9u bHkgb25lIHN1Y2ggaW5zdGFuY2UuCiAgOzsgSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSwgdGhl eSB3b24ndCB3b3JrIHJpZ2h0LgogJyhtYXJrY2hhcnMtZ2xvYmFsLW1vZGUgbmlsKQogJyhvcmct YWdlbmRhLWZpbGVzIG5pbCkKICcob3JnLWNhcHR1cmUtdGVtcGxhdGVzIChxdW90ZSAoKCJ0IiAi VG9kbyIgZW50cnkgKGZpbGUraGVhZGxpbmUgIn4vRG9jdW1lbnRzL29yZ2ZpbGVzL25vdGVzLm9y ZyIgIlRhc2tzIikgIiogVE9ETyAlVQogJT8KICAlaQogICVhIikgKCJqIiAiSm91cm5hbCIgZW50 cnkgKGZpbGUraGVhZGxpbmUgIn4vRG9jdW1lbnRzL29yZ2ZpbGVzLy9ub3Rlcy5vcmciICIiKSAi KiAlVSAlPwoKICAlaQogICVhIikgKCJpIiAiSWRlYSIgZW50cnkgKGZpbGUraGVhZGxpbmUgIn4v RG9jdW1lbnRzL29yZ2ZpbGVzLy9ub3Rlcy5vcmciICJOZXcgSWRlYXMiKSAiKiAlXntUaXRsZX0K ICAlaQogICVhIikgKCJyIiAiUmVmZXJlbmNlIE1hdGVyaWFsIiBlbnRyeSAoZmlsZStoZWFkbGlu ZSAifi9Eb2N1bWVudHMvb3JnZmlsZXMvLi9ub3Rlcy5vcmciICJSZWZlcmVuY2UiKSAiKiU/ICUm JV5nIikgKCJxIiAiUXVlc3Rpb24gdG8gYmUgYWRkcmVzc2VkIiBlbnRyeSAoaWQgIlFVRVNUSU9O UyIpICIqICU/Ci0gZmlsZSAgICAgOjogJShidWZmZXItZmlsZS1uYW1lIChvcmctY2FwdHVyZS1n ZXQgOm9yaWdpbmFsLWJ1ZmZlcikpCi0gcmV2aXNpb24gOjogJSh2Yy13b3JraW5nLXJldmlzaW9u IChidWZmZXItZmlsZS1uYW1lIChvcmctY2FwdHVyZS1nZXQgOm9yaWdpbmFsLWJ1ZmZlcikpKQot IHN0YXRlICAgIDo6ICUoc3ltYm9sLW5hbWUgKHZjLXN0YXRlIChidWZmZXItZmlsZS1uYW1lIChv cmctY2FwdHVyZS1nZXQgOm9yaWdpbmFsLWJ1ZmZlcikpKSkKLSBsaW5rICAgICA6OiAlYSAKLSBh dXRob3IgICA6OiBSYWluZXIgTSBLcnVnLCBlbWFpbDogUmFpbmVyQGtydWdzLmRlIikgKCJjIiAi Q2hhbmdlcyB0byBiZSBsb2dnZWQgZm9yIGNoYW5nZSBsb2ciIGVudHJ5IChmaWxlK2hlYWRsaW5l ICIiICIiKSAiKiAlVCAlPyAKLSBmaWxlICAgICA6OiAlKGJ1ZmZlci1maWxlLW5hbWUgKG9yZy1j YXB0dXJlLWdldCA6b3JpZ2luYWwtYnVmZmVyKSkKLSByZXZpc2lvbiA6OiAlKHZjLXdvcmtpbmct cmV2aXNpb24gKGJ1ZmZlci1maWxlLW5hbWUgKG9yZy1jYXB0dXJlLWdldCA6b3JpZ2luYWwtYnVm ZmVyKSkpCi0gc3RhdGUgICAgOjogJShzeW1ib2wtbmFtZSAodmMtc3RhdGUgKGJ1ZmZlci1maWxl LW5hbWUgKG9yZy1jYXB0dXJlLWdldCA6b3JpZ2luYWwtYnVmZmVyKSkpKQotIGxpbmsgICAgIDo6 ICVhIAotIGF1dGhvciAgIDo6IFJhaW5lciBNIEtydWcsIGVtYWlsOiBSYWluZXJAa3J1Z3MuZGUg JW4iKSkpKQopCihjdXN0b20tc2V0LWZhY2VzCiAgOzsgY3VzdG9tLXNldC1mYWNlcyB3YXMgYWRk ZWQgYnkgQ3VzdG9tLgogIDs7IElmIHlvdSBlZGl0IGl0IGJ5IGhhbmQsIHlvdSBjb3VsZCBtZXNz IGl0IHVwLCBzbyBiZSBjYXJlZnVsLgogIDs7IFlvdXIgaW5pdCBmaWxlIHNob3VsZCBjb250YWlu IG9ubHkgb25lIHN1Y2ggaW5zdGFuY2UuCiAgOzsgSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSwg dGhleSB3b24ndCB3b3JrIHJpZ2h0LgogJyhtYXJrY2hhcnMtaGVhdnkgKCh0ICg6YmFja2dyb3Vu ZCAicmVkIiA6dW5kZXJsaW5lICJtYWdlbnRhIikpKSkKICcobWFya2NoYXJzLWxpZ2h0ICgodCAo OmJhY2tncm91bmQgInJlZCIgOnVuZGVybGluZSAibGlnaHQgYmx1ZSIpKSkpKQo= --00163630f8ddc82934049d55c236 Content-Type: application/octet-stream; name="emacs.org" Content-Disposition: attachment; filename="emacs.org" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkpahoom1 IytUSVRMRTogLmVtYWNzIGZpbGUgCiMrQVVUSE9SOiAgICBSYWluZXIgTSBLcnVnCiMrRU1BSUw6 ICAgICBya3J1Z0BlY29sbW9kCiMrREFURTogICAgICAyMDEwLTA5LTE3IEZyaQojK0RFU0NSSVBU SU9OOiAKIytLRVlXT1JEUzogCiMrTEFOR1VBR0U6ICBlbgojK09QVElPTlM6ICAgSDozIG51bTp0 IHRvYzp0IFxuOm5pbCBAOnQgOjp0IHw6dCBeOm5pbCAtOnQgZjp0ICo6dCA8OnQKIytPUFRJT05T OiAgIFRlWDp0IExhVGVYOnQgc2tpcDpuaWwgZDpuaWwgdG9kbzp0IHByaTpuaWwgdGFnczpub3Qt aW4tdG9jCiMrSU5GT0pTX09QVDogdmlldzpuaWwgdG9jOm5pbCBsdG9jOnQgbW91c2U6dW5kZXJs aW5lIGJ1dHRvbnM6MCBwYXRoOmh0dHA6Ly9vcmdtb2RlLm9yZy9vcmctaW5mby5qcwojK0VYUE9S VF9TRUxFQ1RfVEFHUzogZXhwb3J0CiMrRVhQT1JUX0VYQ0xVREVfVEFHUzogbm9leHBvcnQKIytM SU5LX1VQOiAgIAojK0xJTktfSE9NRTogCiMrWFNMVDogCiMjK09QVElPTlM6IHRvYzpuaWwgbnVt Om5pbCBeOm5pbAoKKiBHZW5lcmFsIHNldHRpbmdzCioqIFNhdmUgZGVza3RvcAojK2JlZ2luX3Ny YyBlbWFjcy1saXNwCihkZXNrdG9wLXNhdmUtbW9kZSAxKQojK2VuZF9zcmMKKiogRG8gbm90IHNo b3cgZm9udCBsb2NraW5nIG1lc3NhZ2VzCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAnKGZvbnQt bG9jay12ZXJib3NlIG5pbCkKIytlbmRfc3JjCioqIENPTU1FTlQgQXV0b3NhdmUgZGVza3RvcCBl dmVyeSBob3VyCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnRhbmdsZSBubwogIChydW4tYXQtdGlt ZSAiMDA6NTkiIDM2MDAgJ29yZy1zYXZlLWFsbC1vcmctYnVmZmVycykKIytlbmRfc3JjCioqIFNl YXJjaCBwYXRoIGRlZmluaXRpb25zCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAoYWRkLXRvLWxp c3QgJ2xvYWQtcGF0aCAifi8uZW1hY3MuZC9zaXRlLWxpc3AiKQojK2VuZF9zcmMKKiBDT01NRU5U IExvYWQgbWFya2NoYXJzCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnRhbmdsZSBubwogIChsb2Fk ICJ+Ly5lbWFjcy5kL254aHRtbC9hdXRvc3RhcnQuZWwiKQogIAojK2VuZF9zcmMKKiBDT01NRU5U IENFREVUCiAgU2VlIGNlZGV0L2NvbW1vbi9jZWRldC5pbmZvIGZvciBjb25maWd1cmF0aW9uIGRl dGFpbHMuCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnRhbmdsZSBubwogICAoYWRkLXRvLWxpc3Qg J2xvYWQtcGF0aCAifi8uZW1hY3MuZC9jZWRldCIpCiAgIChsb2FkLWZpbGUgIn4vLmVtYWNzLmQv Y2VkZXQvY29tbW9uL2NlZGV0LmVsIikKIytlbmRfc3JjCiAgT3B0aW9uYWwgb3RoZXIgb3B0aW9u cwojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDp0YW5nbGUgbm8KICA7OyBFbmFibGUgRURFIChQcm9q ZWN0IE1hbmFnZW1lbnQpIGZlYXR1cmVzCiAgKGdsb2JhbC1lZGUtbW9kZSAxKQoKICA7OyBFbmFi bGUgRURFIGZvciBhIHByZS1leGlzdGluZyBDKysgcHJvamVjdAogIDs7IChlZGUtY3BwLXJvb3Qt cHJvamVjdCAiTkFNRSIgOmZpbGUgIn4vbXlwcm9qZWN0L01ha2VmaWxlIikKCgogIDs7IEVuYWJs aW5nIFNlbWFudGljIChjb2RlLXBhcnNpbmcsIHNtYXJ0IGNvbXBsZXRpb24pIGZlYXR1cmVzCiAg OzsgU2VsZWN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOgoKICA7OyAqIFRoaXMgZW5hYmxlcyB0aGUg ZGF0YWJhc2UgYW5kIGlkbGUgcmVwYXJzZSBlbmdpbmVzCiAgOyAoc2VtYW50aWMtbG9hZC1lbmFi bGUtbWluaW11bS1mZWF0dXJlcykKCiAgOzsgKiBUaGlzIGVuYWJsZXMgc29tZSB0b29scyB1c2Vm dWwgZm9yIGNvZGluZywgc3VjaCBhcyBzdW1tYXJ5IG1vZGUKICA7OyAgIGltZW51IHN1cHBvcnQs IGFuZCB0aGUgc2VtYW50aWMgbmF2aWdhdG9yCiAgOyAoc2VtYW50aWMtbG9hZC1lbmFibGUtY29k ZS1oZWxwZXJzKQoKICA7OyAqIFRoaXMgZW5hYmxlcyBldmVuIG1vcmUgY29kaW5nIHRvb2xzIHN1 Y2ggYXMgaW50ZWxsaXNlbnNlIG1vZGUKICA7OyAgIGRlY29yYXRpb24gbW9kZSwgYW5kIHN0aWNr eWZ1bmMgbW9kZSAocGx1cyByZWd1bGFyIGNvZGUgaGVscGVycykKICA7OyAoc2VtYW50aWMtbG9h ZC1lbmFibGUtZ2F1ZHktY29kZS1oZWxwZXJzKQoKICA7OyAqIFRoaXMgZW5hYmxlcyB0aGUgdXNl IG9mIEV4dWJlcmVudCBjdGFncyBpZiB5b3UgaGF2ZSBpdCBpbnN0YWxsZWQuCiAgOzsgICBJZiB5 b3UgdXNlIEMrKyB0ZW1wbGF0ZXMgb3IgYm9vc3QsIHlvdSBzaG91bGQgTk9UIGVuYWJsZSBpdC4K ICA7OyAoc2VtYW50aWMtbG9hZC1lbmFibGUtYWxsLWV4dWJlcmVudC1jdGFncy1zdXBwb3J0KQoK ICA7OyBFbmFibGUgU1JlY29kZSAoVGVtcGxhdGUgbWFuYWdlbWVudCkgbWlub3ItbW9kZS4KICAo Z2xvYmFsLXNyZWNvZGUtbWlub3ItbW9kZSAxKQojK2VuZF9zcmMKKiBDT01NRU5UIEVjYiAKIyti ZWdpbl9zcmMgZW1hY3MtbGlzcCA6dGFuZ2xlIG5vCiAgKGFkZC10by1saXN0ICdsb2FkLXBhdGgg In4vLmVtYWNzLmQvZWNiIikKICAocmVxdWlyZSAnZWNiLWF1dG9sb2FkcykKICAoc2V0cSBlY2It bGF5b3V0LW5hbWUgImxlZnQzIikKICAoc2V0cSBlY2ItbGF5b3V0LXdpbmRvdy1zaXplcyAocXVv dGUgKCgibGVmdDgiICgwLjIzMDc2OTIzMDc2OTIzMDc4IC4gMC4yMzMzMzMzMzMzMzMzMzMzNCkg KDAuMjMwNzY5MjMwNzY5MjMwNzggLiAwLjI1KSAoMC4yMzA3NjkyMzA3NjkyMzA3OCAuIDAuMjgz MzMzMzMzMzMzMzMzMykgKDAuMjMwNzY5MjMwNzY5MjMwNzggLiAwLjIxNjY2NjY2NjY2NjY2NjY3 KSkgKCJsZWZ0MyIgKDAuMjIxNjIxNjIxNjIxNjIxNjMgLiAwLjEwMzQ0ODI3NTg2MjA2ODk2KSAo MC4yMjE2MjE2MjE2MjE2MjE2MyAuIDAuNDY1NTE3MjQxMzc5MzEwMzMpICgwLjIyMTYyMTYyMTYy MTYyMTYzIC4gMC40MTM3OTMxMDM0NDgyNzU4NikpKSkpCiAgKHNldHEgZWNiLW9wdGlvbnMtdmVy c2lvbiAiMi4zMiIpCiAgKHNldHEgZWNiLXRvZ2dsZS1sYXlvdXQtc2VxdWVuY2UgKHF1b3RlICgi bGVmdDkiICJsZWZ0MTQiICJsZWZ0MyIpKSkKIytlbmRfc3JjCiogRVNTCioqIExvYWQgZXNzCiMr YmVnaW5fc3JjIGVtYWNzLWxpc3AKICAoYWRkLXRvLWxpc3QgJ2xvYWQtcGF0aCAifi8uZW1hY3Mu ZC9lc3MiKQogIChsb2FkICJ+Ly5lbWFjcy5kL2Vzcy9saXNwL2Vzcy1zaXRlIikKICAocmVxdWly ZSAnZXNzLXNpdGUpCiMrZW5kX3NyYwoqKiBFU1MgaGVscAoqKioga2lsbCAiYm9ndXMiIGhlbHAg YnVmZmVycwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKHNldHEgZXNzLWhlbHAta2lsbC1ib2d1 cy1idWZmZXJzIHQpCiMrZW5kX3NyYyAKKioqIGFsbCBoZWxwIGluIG9uZSB3aW5kb3cgYW5kIGlu IG93biBmcmFtZQojK2JlZ2luX3NyYyBlbWFjcy1saXNwCihzZXRxIGVzcy1oZWxwLW93bi1mcmFt ZSAnb25lKQojK2VuZF9zcmMgCgoqKiBBZGQgaGlnaGxpZ2h0aW5nIGZvciBjZXJ0YWluIGtleXdv cmRzCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAoZm9udC1sb2NrLWFkZC1rZXl3b3JkcyAnZXNz LW1vZGUKICAgJygoIlxcPFxcKEZJWE1FXFx8VE9ET1xcfENPTU1FTlRcXHxET05FXFx8Q0hBTkdF U1xcfEZJWEVEXFwpXFw+IiAxIGZvbnQtbG9jay13YXJuaW5nLWZhY2UgcHJlcGVuZCkpKQojK2Vu ZF9zcmMKKiogRnVydGhlciBjdXN0b21pc2F0aW9ucwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAg KHNldHEgaW5mZXJpb3ItUi1hcmdzICItLXZhbmlsbGEiKQogIChzZXRxIGVzcy1ldmFsLXZpc2li bHktcCBuaWwpCiAgKHNldHEgaW5mZXJpb3ItZXNzLXNhbWUtd2luZG93IHQpCiAgKHNldHEgaW5m ZXJpb3ItZXNzLWNsaWVudC1jb21tYW5kICJJbml0aWFsIikKICAoc2V0cSBpbmZlcmlvci1lc3Mt b3duLWZyYW1lIG5pbCkKICAoc2V0cSBlc3MtYXNrLWZvci1lc3MtZGlyZWN0b3J5IG5pbCkKIytl bmRfc3JjCioqIHItdXRpbHMKIytiZWdpbl9zcmMgZW1hY3MtbGlzcAogICAocmVxdWlyZSAnci11 dGlscykKIytlbmRfc3JjCioqIFItb2JqZWN0IHRvb2x0aXBzCmJhc2VkIG9uIFtbaHR0cDovL2Js b2dpc3RpY3JlZmxlY3Rpb25zLndvcmRwcmVzcy5jb20vMjAwOS8xMC8wMS9yLW9iamVjdC10b29s dGlwcy1pbi1lc3MvXV0KSGVyZSBhcmUgdGhlIGNvbW1lbnRzIGFzIG9uIHRoZSB3ZWJzaXRlOgo7 OyBlc3MtUi1vYmplY3QtdG9vbHRpcC5lbAo7OyAKOzsgSSBoYXZlIGRlZmluZWQgYSBmdW5jdGlv biwgZXNzLVItb2JqZWN0LXRvb2x0aXAsIHRoYXQgd2hlbgo7OyBpbnZva2VkLCB3aWxsIHJldHVy biBhIHRvb2x0aXAgd2l0aCBzb21lIGluZm9ybWF0aW9uIGFib3V0Cjs7IHRoZSBvYmplY3QgYXQg cG9pbnQuICBUaGUgaW5mb3JtYXRpb24gcmV0dXJuZWQgaXMKOzsgZGV0ZXJtaW5lZCBieSB3aGlj aCBSIGZ1bmN0aW9uIGlzIGNhbGxlZC4gIFRoaXMgaXMgY29udHJvbGxlZAo7OyBieSBhbiBhbGlz dCwgY2FsbGVkIGVzcy1SLW9iamVjdC10b29sdGlwLWFsaXN0LiAgVGhlIGRlZmF1bHQgaXMKOzsg Z2l2ZW4gYmVsb3cuICBUaGUga2V5cyBhcmUgdGhlIGNsYXNzZXMgb2YgUiBvYmplY3QgdGhhdCB3 aWxsCjs7IHVzZSB0aGUgYXNzb2NpYXRlZCBmdW5jdGlvbi4gIEZvciBleGFtcGxlLCB3aGVuIHRo ZSBmdW5jdGlvbgo7OyBpcyBjYWxsZWQgd2hpbGUgcG9pbnQgaXMgb24gYSBmYWN0b3Igb2JqZWN0 LCBhIHRhYmxlIG9mIHRoYXQKOzsgZmFjdG9yIHdpbGwgYmUgc2hvd24gaW4gdGhlIHRvb2x0aXAu ICBUaGUgb2JqZWN0cyBtdXN0IG9mIGNvdXJzZQo7OyBleGlzdCBpbiB0aGUgYXNzb2NpYXRlZCBp bmZlcmlvciBSIHByb2Nlc3MgZm9yIHRoaXMgdG8gd29yay4KOzsgVGhlIHNwZWNpYWwga2V5ICJv dGhlciIgaW4gdGhlIGFsaXN0IGRlZmluZXMgd2hpY2ggZnVuY3Rpb24KOzsgdG8gY2FsbCB3aGVu IHRoZSBjbGFzcyBpcyBub3QgbWFjaGVkIGluIHRoZSBhbGlzdC4gIEJ5IGRlZmF1bHQsCjs7IHRo ZSBzdHIgZnVuY3Rpb24gaXMgY2FsbGVkLCB3aGljaCBpcyBhY3R1YWxseSBhIGZhaXJseSB1c2Vm dWwKOzsgZGVmYXVsdCBmb3IgZGF0YS5mcmFtZSBhbmQgZnVuY3Rpb24gb2JqZWN0cy4KOzsgCjs7 IFRoZSBsYXN0IGxpbmUgb2YgdGhpcyBmaWxlIHNob3dzIG15IGRlZmF1bHQga2V5YmluZGluZy4K OzsgSSBzaW1wbHkgc2F2ZSB0aGlzIGZpbGUgaW4gYSBkaXJlY3RvcnkgaW4gbXkgbG9hZC1wYXRo Cjs7IGFuZCB0aGVuIHBsYWNlIChyZXF1aXJlICdlc3MtUi1vYmplY3QtdG9vbHRpcCkgaW4gbXkg LmVtYWNzCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICA7OyB0aGUgYWxpc3QKICAoc2V0cSBlc3Mt Ui1vYmplY3QtdG9vbHRpcC1hbGlzdAogICAgICAgICcoKG51bWVyaWMgICAgLiAic3VtbWFyeSIp CiAgICAgICAgICAoZmFjdG9yICAgICAuICJ0YWJsZSIpCiAgICAgICAgICAoaW50ZWdlciAgICAu ICJzdW1tYXJ5IikKICAgICAgICAgIChsbSAgICAgICAgIC4gInN1bW1hcnkiKQogICAgICAgICAg KG90aGVyICAgICAgLiAic3RyIikpKQogIAogIChkZWZ1biBlc3MtUi1vYmplY3QtdG9vbHRpcCAo KQogICAgIkdldCBpbmZvIGZvciBvYmplY3QgYXQgcG9pbnQsIGFuZCBkaXNwbGF5IGl0IGluIGEg dG9vbHRpcC4iCiAgICAoaW50ZXJhY3RpdmUpCiAgICAobGV0ICgob2JqbmFtZSAoY3VycmVudC13 b3JkKSkKICAgICAgICAgIChjdXJidWYgKGN1cnJlbnQtYnVmZmVyKSkKICAgICAgICAgICh0bXBi dWYgKGdldC1idWZmZXItY3JlYXRlICIqKmVzcy1SLW9iamVjdC10b29sdGlwKioiKSkpCiAgICAg IChpZiBvYmpuYW1lCiAgICAgICAgICAocHJvZ24KICAgICAgICAgICAgKGVzcy1jb21tYW5kIChj b25jYXQgImNsYXNzKCIgb2JqbmFtZSAiKVxuIikgIHRtcGJ1ZiApCiAgICAgICAgICAgIChzZXQt YnVmZmVyIHRtcGJ1ZikKICAgICAgICAgICAgKGxldCAoKGJzIChidWZmZXItc3RyaW5nKSkpCiAg ICAgICAgICAgICAgKGlmIChub3Qoc3RyaW5nLW1hdGNoICJcKG9iamVjdCAuKiBub3QgZm91bmRc KVx8dW5leHBlY3RlZCIgYnMpKQogICAgICAgICAgICAgICAgICAobGV0KiAoKG9iamNscyAoYnVm ZmVyLXN1YnN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCsgMiAoc3Ry aW5nLW1hdGNoICJcIi4qXCIiIGJzKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICgtIChwb2ludC1tYXgpIDIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIChteWZ1biAoY2Ry KGFzc29jLXN0cmluZyBvYmpjbHMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBlc3MtUi1vYmplY3QtdG9vbHRpcC1hbGlzdCkpKSkKICAgICAgICAgICAg ICAgICAgICAocHJvZ24KICAgICAgICAgICAgICAgICAgICAgIChpZiAoZXEgbXlmdW4gbmlsKQog ICAgICAgICAgICAgICAgICAgICAgICAgIChzZXRxIG15ZnVuCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNkcihhc3NvYy1zdHJpbmcgIm90aGVyIgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzcy1SLW9iamVjdC10b29sdGlwLWFsaXN0 KSkpKQogICAgICAgICAgICAgICAgICAgICAgKGVzcy1jb21tYW5kIChjb25jYXQgbXlmdW4gIigi IG9iam5hbWUgIilcbiIpIHRtcGJ1ZikKICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChicyAo YnVmZmVyLXN0cmluZykpKQogICAgICAgICAgICAgICAgICAgICAgICAocHJvZ24KICAgICAgICAg ICAgICAgICAgICAgICAgICAoc2V0LWJ1ZmZlciBjdXJidWYpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgKHRvb2x0aXAtc2hvdy1hdC1wb2ludCBicyAwIDMwKSkpKSkpKSkpCiAgICAgIChraWxs LWJ1ZmZlciB0bXBidWYpKSkKICAKICA7OyBrZXkgbWFwIGZvciBSIGZpbGVzIGFuZCBpbmZlcmlv ciBtb2RlCiAgKGRlZmluZS1rZXkgZXNzLW1vZGUtbWFwICJcQy1jXEMtZyIgJ2Vzcy1SLW9iamVj dC10b29sdGlwKQogIChkZWZpbmUta2V5IGluZmVyaW9yLWVzcy1tb2RlLW1hcCAiXEMtY1xDLWci ICdlc3MtUi1vYmplY3QtdG9vbHRpcCkKICAKICAocHJvdmlkZSAnZXNzLVItb2JqZWN0LXRvb2x0 aXApCiMrZW5kX3NyYwoqKiBTaGlmdCBFbnRlcgpGcm9tIFtbaHR0cDovL3d3dy5lbWFjc3dpa2ku b3JnL2VtYWNzL0VTU1NoaWZ0RW50ZXJdXQotIGlmIFIgaWYgbm90IHJ1bm5pbmcsIGl0IHN0YXJ0 cyBhdXRvbWF0aWNhbGx5IGFuZCBvcGVucyBhbiBpbmZlcmlvciBmcmFtZQotIGlmIHRoZSByZWdp b24gaXMgYWN0aXZlLCBldmFsdWF0ZXMgdGhlIHJlZ2lvbgotIG90aGVyd2lzZSwgaXQgcnVucyB0 aGUgY3VycmVudCBsaW5lCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3BzCiAgKHNldHEgZXNzLWFzay1m b3ItZXNzLWRpcmVjdG9yeSBuaWwpCiAgKHNldHEgZXNzLWxvY2FsLXByb2Nlc3MtbmFtZSAiUiIp CiAgKHNldHEgYW5zaS1jb2xvci1mb3ItY29taW50LW1vZGUgJ2ZpbHRlcikKICAoc2V0cSBjb21p bnQtcHJvbXB0LXJlYWQtb25seSB0KQogIChzZXRxIGNvbWludC1zY3JvbGwtdG8tYm90dG9tLW9u LWlucHV0IHQpCiAgKHNldHEgY29taW50LXNjcm9sbC10by1ib3R0b20tb24tb3V0cHV0IHQpCiAg KHNldHEgY29taW50LW1vdmUtcG9pbnQtZm9yLW91dHB1dCB0KQogIChkZWZ1biBteS1lc3Mtc3Rh cnQtUiAoKQogICAgKGludGVyYWN0aXZlKQogICAgKGlmIChub3QgKG1lbWJlciAiKlIqIiAobWFw Y2FyIChmdW5jdGlvbiBidWZmZXItbmFtZSkgKGJ1ZmZlci1saXN0KSkpKQogICAgICAocHJvZ24K CShkZWxldGUtb3RoZXItd2luZG93cykKCShzZXRxIHcxIChzZWxlY3RlZC13aW5kb3cpKQoJKHNl dHEgdzFuYW1lIChidWZmZXItbmFtZSkpCgkoc2V0cSB3MiAoc3BsaXQtd2luZG93IHcxKSkKCShS KQoJKHNldC13aW5kb3ctYnVmZmVyIHcyICIqUioiKQoJKHNldC13aW5kb3ctYnVmZmVyIHcxIHcx bmFtZSkpKSkKICAoZGVmdW4gbXktZXNzLWV2YWwgKCkKICAgIChpbnRlcmFjdGl2ZSkKICAgICht eS1lc3Mtc3RhcnQtUikKICAgIChpZiAoYW5kIHRyYW5zaWVudC1tYXJrLW1vZGUgbWFyay1hY3Rp dmUpCgkoY2FsbC1pbnRlcmFjdGl2ZWx5ICdlc3MtZXZhbC1yZWdpb24pCiAgICAgIChjYWxsLWlu dGVyYWN0aXZlbHkgJ2Vzcy1ldmFsLWxpbmUtYW5kLXN0ZXApKSkKICAoYWRkLWhvb2sgJ2Vzcy1t b2RlLWhvb2sKCSAgICAnKGxhbWJkYSgpCgkgICAgICAgKGxvY2FsLXNldC1rZXkgWyhzaGlmdCBy ZXR1cm4pXSAnbXktZXNzLWV2YWwpKSkKICAoYWRkLWhvb2sgJ2luZmVyaW9yLWVzcy1tb2RlLWhv b2sKCSAgICAnKGxhbWJkYSgpCgkgICAgICAgKGxvY2FsLXNldC1rZXkgW0MtdXBdICdjb21pbnQt cHJldmlvdXMtaW5wdXQpCgkgICAgICAgKGxvY2FsLXNldC1rZXkgW0MtZG93bl0gJ2NvbWludC1u ZXh0LWlucHV0KSkpCiAgKHJlcXVpcmUgJ2Vzcy1zaXRlKQojK2VuZF9zcmMKKiogaGlkZXNob3cK ICBoaWRlc2hvdy1vcmcgKGh0dHA6Ly9naXRodWIuY29tL3NlY2VsaXMvaGlkZXNob3ctb3JnL3Ry ZWUvbWFzdGVyKQojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKHJlcXVpcmUgJ2hpZGVzaG93KQog IChyZXF1aXJlICdoaWRlc2hvdy1vcmcpCiAgKGFkZC10by1saXN0ICdocy1zcGVjaWFsLW1vZGVz LWFsaXN0CiAgICAgICAgICAgICAgICcoZXNzLW1vZGUgInsiICJ9IiAiL1sqL10iIG5pbAogICAg ICAgICAgICAgICAgICAgICAgICAgIGhzLWMtbGlrZS1hZGp1c3QtYmxvY2stYmVnaW5uaW5nKSkK ICAoZ2xvYmFsLXNldC1rZXkgIlxDLWNoIiAnaHMtb3JnL21pbm9yLW1vZGUpIDs7IHRvZ2dsZXMg aGlkZXNob3ctb3JnCiAgOzsgKGFkZC1ob29rICdlc3MtbW9kZS1ob29rICdocy1vcmcvbWlub3It bW9kZSkgOzsgc3RhcnRzIGZvciBFU1MgZmlsZXMKICAoYWRkLWhvb2sgJ2Vzcy1tb2RlLWhvb2sg JyhsYW1iZGEgKCkgKGhzLW9yZy9taW5vci1tb2RlIDEpKSkKIytlbmRfc3JjCioqIEFkZGl0aW9u YWwgc3ludGF4IGhpZ2hsaWdodGluZwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKGFkZC1ob29r ICdlc3MtbW9kZS1ob29rCiAgICAgICAgICAgICcobGFtYmRhKCkKICAgICAgICAgICAgICAgKGZv bnQtbG9jay1hZGQta2V5d29yZHMgbmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICcoKCJcXDxcXChpZlxcfGZvclxcfGZ1bmN0aW9uXFx8cmV0dXJuXFwpXFw+W1xuWzpi bGFuazpdXSooIiAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv bnQtbG9jay1rZXl3b3JkLWZhY2UpIDsgbXVzdCBnbyBmaXJzdCB0byBvdmVycmlkZSBoaWdobGln aHRpbmcgYmVsb3cKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIlxc PFxcKFsuQS1aYS16XVsuX0EtWmEtejAtOV0qXFwpW1xuWzpibGFuazpdXSooIiAxCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtbG9jay1mdW5jdGlvbi1uYW1l LWZhY2UpIDsgaGlnaGxpZ2h0IGZ1bmN0aW9uIG5hbWVzCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCJcXChbKCxdXFx8W1xuWzpibGFuazpdXSpcXClcXChbLkEtWmEt el1bLl9BLVphLXowLTldKlxcKVtcbls6Ymxhbms6XV0qPVtePV0iIDIKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1sb2NrLXJlZmVyZW5jZS1mYWNlKSA7aGln aGxpZ2h0IGFyZ3VtZW50IG5hbWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKSkKICAgICAgICAgICAgICAgKSkKIytlbmRfc3JjCioqIGhpZGVzaG93IGZvciBFU1MK IytiZWdpbl9zcmMgZW1hY3MtbGlzcAogIChhdXRvbG9hZCAnaGlkZXNob3d2aXMtZW5hYmxlICJo aWRlc2hvd3ZpcyIgIkhpZ2hsaWdodCBmb2xkYWJsZSByZWdpb25zIikKICAoZG9saXN0IChob29r IChsaXN0ICdlbWFjcy1saXNwLW1vZGUtaG9vawogICdlc3MtbW9kZS1ob29rKSkKICAoYWRkLWhv b2sgaG9vayAnaGlkZXNob3d2aXMtZW5hYmxlKSkKICAoc2V0cSBocy1zcGVjaWFsLW1vZGVzLWFs aXN0CiAgKGNvbnMgJyhlc3MtbW9kZSAieyIgIn0iICIjIiBuaWwgbmlsKSBocy1zcGVjaWFsLW1v ZGVzLWFsaXN0KSkKCiAgKGRlZmluZS1mcmluZ2UtYml0bWFwICdocy1tYXJrZXIgWzAgMjQgMjQg MTI2IDEyNiAyNCAyNCAwXSkKCiAgKGRlZmN1c3RvbSBocy1mcmluZ2UtZmFjZSAnaHMtZnJpbmdl LWZhY2UKICAiKlNwZWNpZnkgZmFjZSB1c2VkIHRvIGhpZ2hsaWdodCB0aGUgZnJpbmdlIG9uIGhp ZGRlbiByZWdpb25zLiIKICA6dHlwZSAnZmFjZQogIDpncm91cCAnaGlkZXNob3cpCgogIChkZWZm YWNlIGhzLWZyaW5nZS1mYWNlCiAgJygodCAoOmZvcmVncm91bmQgIiM4ODgiIDpib3ggKDpsaW5l LXdpZHRoIDIgOmNvbG9yICJncmV5NzUiIDpzdHlsZSByZWxlYXNlZC1idXR0b24pKSkpCiAgIkZh Y2UgdXNlZCB0byBoaWdobGlnaHQgdGhlIGZyaW5nZSBvbiBmb2xkZWQgcmVnaW9ucyIKICA6Z3Jv dXAgJ2hpZGVzaG93KQoKICAoZGVmY3VzdG9tIGhzLWZhY2UgJ2hzLWZhY2UKICAiKlNwZWNpZnkg dGhlIGZhY2UgdG8gdG8gdXNlIGZvciB0aGUgaGlkZGVuIHJlZ2lvbiBpbmRpY2F0b3IiCiAgOnR5 cGUgJ2ZhY2UKICA6Z3JvdXAgJ2hpZGVzaG93KQoKICAoZGVmZmFjZSBocy1mYWNlCiAgJygodCAo OmJhY2tncm91bmQgIiNmZjgiIDpib3ggdCkpKQogICJGYWNlIHRvIGhpZ2h0bGlnaHQgdGhlIC4u LiBhcmVhIG9mIGhpZGRlbiByZWdpb25zIgogIDpncm91cCAnaGlkZXNob3cpCgogIChkZWZ1biBk aXNwbGF5LWNvZGUtbGluZS1jb3VudHMgKG92KQogICh3aGVuIChlcSAnY29kZSAob3ZlcmxheS1n ZXQgb3YgJ2hzKSkKICAobGV0KiAoKG1hcmtlci1zdHJpbmcgIipmcmluZ2UtZHVtbXkqIikKICAo bWFya2VyLWxlbmd0aCAobGVuZ3RoIG1hcmtlci1zdHJpbmcpKQogIChkaXNwbGF5LXN0cmluZyAo Zm9ybWF0ICIoJWQpLi4uIiAoY291bnQtbGluZXMgKG92ZXJsYXktc3RhcnQgb3YpIChvdmVybGF5 LWVuZCBvdikpKSkKICApCiAgKG92ZXJsYXktcHV0IG92ICdoZWxwLWVjaG8gIkhpZGRlbnQgdGV4 dC4gQy1jLD0gdG8gc2hvdyIpCiAgKHB1dC10ZXh0LXByb3BlcnR5IDAgbWFya2VyLWxlbmd0aCAn ZGlzcGxheSAobGlzdCAnbGVmdC1mcmluZ2UgJ2hzLW1hcmtlciAnaHMtZnJpbmdlLWZhY2UpIG1h cmtlci1zdHJpbmcpCiAgKG92ZXJsYXktcHV0IG92ICdiZWZvcmUtc3RyaW5nIG1hcmtlci1zdHJp bmcpCiAgKHB1dC10ZXh0LXByb3BlcnR5IDAgKGxlbmd0aCBkaXNwbGF5LXN0cmluZykgJ2ZhY2Ug J2hzLWZhY2UgZGlzcGxheS1zdHJpbmcpCiAgKG92ZXJsYXktcHV0IG92ICdkaXNwbGF5IGRpc3Bs YXktc3RyaW5nKQogICkpKQoKICAoc2V0cSBocy1zZXQtdXAtb3ZlcmxheSAnZGlzcGxheS1jb2Rl LWxpbmUtY291bnRzKQojK2VuZF9zcmMKCioqIGVsZG9jCmh0dHBzOi8vc3RhdC5ldGh6LmNoL3Bp cGVybWFpbC9lc3MtaGVscC8yMDEwLUp1bmUvMDA2MTc2Lmh0bWwgZm9yIGRldGFpbHMKIytiZWdp bl9zcmMgZW1hY3MtbGlzcAogIChyZXF1aXJlICdlc3MtZWxkb2MpCiMrZW5kX3NyYwoqKiBDT01N RU5UIFRPRE8gU3ludGF4IGhpZ2hsaWdodGluZyBmb3IgZnVuY3Rpb25zIGluIFIgTk9UIFdPUktJ TkcKICBiYXNlZCBvbiBodHRwczovL21haWwuZ29vZ2xlLmNvbS9tYWlsLyNsYWJlbC9MaXN0cyUy RkVTUy8xMjUxMzFlZDI0Njg4OTcwCiAgVGhlIGZvbGxvd2luZyBjb2RlIG5lZWRzIHRvIGJlIHJ1 biBpbiBSOgogIAogIG9iaiA8LSBkby5jYWxsKCJjIiwgc2FwcGx5KGMoInBhY2thZ2U6YmFzZSIs ICJwYWNrYWdlOnN0YXRzIiwKICAicGFja2FnZTp1dGlscyIpLCBvYmplY3RzLCBhbGwubmFtZXM9 VFJVRSkpCiAgcmUgPC0gIiheW14uWzphbHBoYTpdWzpkaWdpdDpdXXw8LXxfXykiICAjIHRvIHJl bW92ZSAid2VpcmQiIGZ1bmN0aW9ucwogIG9iaiA8LSBvYmpbLWdyZXAocmUsIG9iaildCiAgZnBh dGggPC0gZmlsZS5wYXRoKFN5cy5nZXRlbnYoIkhPTUUiKSwgIi5lbWFjcy5kIiwgIlItZnVuY3Rp b24tbmFtZXMudHh0IikKICB3cml0ZS50YWJsZShvYmosIGZwYXRoLCBxdW90ZT1GQUxTRSwgcm93 Lm5hbWVzPUZBTFNFLCBjb2wubmFtZXM9RkFMU0UpCiAgCiAgUmVhZCBhIHdob2xlIGZpbGUgaW50 byBsaXN0IG9mIGxpbmVzCiAgQXV0aG9yOiBYYWggTGVlCiAgc2VlIGh0dHA6Ly94YWhsZWUub3Jn L2VtYWNzL2VsaXNwX3Byb2Nlc3NfbGluZXMuaHRtbAojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDp0 YW5nbGUgbm8KICAoZGVmdW4gcmVhZC1saW5lcyAoZmlsZSkKICAiUmV0dXJuIGEgbGlzdCBvZiBs aW5lcyBpbiBGSUxFLiIKICAod2l0aC10ZW1wLWJ1ZmZlcgogIChpbnNlcnQtZmlsZS1jb250ZW50 cyBmaWxlKQogIChzcGxpdC1zdHJpbmcKICAoYnVmZmVyLXN0cmluZykgIlxuIiB0KQogICkKICAp CgogIChhZGQtaG9vayAnZXNzLW1vZGUtaG9vawogICcobGFtYmRhKCkKICAoc2V0cSBlc3MtbXkt ZXh0cmEtUi1mdW5jdGlvbi1rZXl3b3JkcwogIChyZWFkLWxpbmVzICJ+Ly5lbWFjcy5kL1ItZnVu Y3Rpb24tbmFtZXMudHh0IikpCiAgKHNldHEgZXNzLVItbW9kZS1mb250LWxvY2sta2V5d29yZHMK ICAoYXBwZW5kIGVzcy1SLW1vZGUtZm9udC1sb2NrLWtleXdvcmRzCiAgKGxpc3QgKGNvbnMgKGNv bmNhdCAiXFw8IiAocmVnZXhwLW9wdAogIGVzcy1teS1leHRyYS1SLWZ1bmN0aW9uLWtleXdvcmRz ICdlbmMtcGFyZW4pICJcXD4iKQogICdmb250LWxvY2stZnVuY3Rpb24tbmFtZS1mYWNlKSkpKSkp CiMrZW5kX3NyYwoqIGVzcy10cmFjZWJ1Z3MKKiogbG9hZCBlc3MtdHJhY2VidWcgYW5kIGFjdGl2 YXRlCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAocmVxdWlyZSAnZXNzLXRyYWNlYnVnKQogIChh ZGQtaG9vayAnZXNzLXBvc3QtcnVuLWhvb2sgJ2Vzcy10cmFjZWJ1ZyB0KQojK2VuZF9zcmMKCioq IEVycm9yIFRyYWNpbmcKIytiZWdpbl9zcmMgZW1hY3MtbGlzcAogIChkZWZpbmUta2V5IGVzcy1t b2RlLW1hcCAiXE0tXSIgJ25leHQtZXJyb3IpCiAgKGRlZmluZS1rZXkgZXNzLW1vZGUtbWFwICJc TS1bIiAncHJldmlvdXMtZXJyb3IpCiAgKGRlZmluZS1rZXkgaW5mZXJpb3ItZXNzLW1vZGUtbWFw ICJcTS1dIiAnbmV4dC1lcnJvci1uby1zZWxlY3QpCiAgKGRlZmluZS1rZXkgaW5mZXJpb3ItZXNz LW1vZGUtbWFwICJcTS1bIiAncHJldmlvdXMtZXJyb3Itbm8tc2VsZWN0KQojK2VuZF9zcmMKCioq IFRyYWNlYnVnIEJ1ZmZlciAgCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAoZGVmaW5lLWtleSBj b21waWxhdGlvbi1taW5vci1tb2RlLW1hcCBbKD9uKV0gJ25leHQtZXJyb3Itbm8tc2VsZWN0KQog IChkZWZpbmUta2V5IGNvbXBpbGF0aW9uLW1pbm9yLW1vZGUtbWFwIFsoP3ApXSAncHJldmlvdXMt ZXJyb3Itbm8tc2VsZWN0KQojK2VuZF9zcmMKCioqIFZpc3VhbCBEZWJ1Z2dlcgoqKiogQ09NTUVO VCBPd24gQnJlYWtwb2ludHMKIytiZWdpbl9zcmMgZW1hY3MtbGlzcCA6dGFuZ2xlIG5vCiAgKGNv bmMgZXNzLWJwLXR5cGUtc3BlYy1hbGlzdAogICAgICAgICcoKG15LWJyb3dzZXIgImJyb3dzZXIo ZXhwciA9IGV4aXN0cyhcImFcIikgJiYgYT4uNSkiCiAgICAgICAgICAgICAgICAgICAgICAiTXkt QnI+XG4iCiAgICAgICAgICAgICAgICAgICAgICBxdWVzdGlvbi1tYXJrCiAgICAgICAgICAgICAg ICAgICAgICBmb250LWxvY2stZG9jLWZhY2UpKSkKIytlbmRfc3JjCiogQ09NTUVOVCBHcmFwaHZp egpMb2FkIGdyYXBodml6LWRvdC1tb2RlCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnRhbmdsZSBu bwogIChsb2FkLWZpbGUgIn4vZW1hY3MvZ3JhcGh2aXotZG90LW1vZGUuZWwiKSAKICAoc2V0cSBn cmFwaHZpei1kb3Qtdmlldy1jb21tYW5kICJkaXNwbGF5ICVzIikKIytlbmRfc3JjCiogU1NIIE1h am9yIG1vZGUKIytiZWdpbl9zcmMgZW1hY3MtbGlzcAogIChsb2FkLWZpbGUgIi9ob21lL3JrcnVn Ly5lbWFjcy5kL3NpdGUtbGlzcC9zc2guZWwiKSAKIytlbmRfc3JjCiogQ09NTUVOVCBCb29rbWFy ayAoYm0pCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnRhbmdsZSBubwogIChzZXRxIGJtLXJlc3Rv cmUtcmVwb3NpdG9yeS1vbi1sb2FkIHQpCiAgKHJlcXVpcmUgJ2JtKQogIChnbG9iYWwtc2V0LWtl eSAoa2JkICI8ZjI+IikgJ2JtLXRvZ2dsZSkKICAoZ2xvYmFsLXNldC1rZXkgKGtiZCAiPEMtZjI+ IikgICAnYm0tbmV4dCkKICAoZ2xvYmFsLXNldC1rZXkgKGtiZCAiPHMtZjI+IikgJ2JtLXByZXZp b3VzKQogIAogIDs7IG1ha2UgYm9va21hcmtzIHBlcnNpc3RlbnQgYXMgZGVmYXVsdAogIChzZXRx LWRlZmF1bHQgYm0tYnVmZmVyLXBlcnNpc3RlbmNlIHQpCiAgCiAgOzsgTG9hZGluZyB0aGUgcmVw b3NpdG9yeSBmcm9tIGZpbGUgd2hlbiBvbiBzdGFydCB1cC4KICAoYWRkLWhvb2snIGFmdGVyLWlu aXQtaG9vayAnYm0tcmVwb3NpdG9yeS1sb2FkKQogIAogIDs7IFJlc3RvcmluZyBib29rbWFya3Mg d2hlbiBvbiBmaWxlIGZpbmQuCiAgKGFkZC1ob29rICdmaW5kLWZpbGUtaG9va3MgJ2JtLWJ1ZmZl ci1yZXN0b3JlKQogIAogIDs7IFNhdmluZyBib29rbWFyayBkYXRhIG9uIGtpbGxpbmcgYSBidWZm ZXIKICAoYWRkLWhvb2sgJ2tpbGwtYnVmZmVyLWhvb2sgJ2JtLWJ1ZmZlci1zYXZlKQogIAogIDs7 IFNhdmluZyB0aGUgcmVwb3NpdG9yeSB0byBmaWxlIHdoZW4gb24gZXhpdC4KICA7OyBraWxsLWJ1 ZmZlci1ob29rIGlzIG5vdCBjYWxsZWQgd2hlbiBlbWFjcyBpcyBraWxsZWQsIHNvIHdlCiAgOzsg bXVzdCBzYXZlIGFsbCBib29rbWFya3MgZmlyc3QuCiAgKGFkZC1ob29rICdraWxsLWVtYWNzLWhv b2sgJyhsYW1iZGEgbmlsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJtLWJ1ZmZl ci1zYXZlLWFsbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYm0tcmVwb3NpdG9y eS1zYXZlKSkpCiMrZW5kX3NyYwoqIENPTU1FTlQgYW55dGhpbmcKIytiZWdpbl9zcmMgZW1hY3Mt bGlzcCA6dGFuZ2xlIG5vCiAgKHJlcXVpcmUgJ2FueXRoaW5nKQogIChyZXF1aXJlICdhbnl0aGlu Zy1jb25maWcpCiAgKHJlcXVpcmUgJ3JlY2VudGYpCiAgCiAgKGdsb2JhbC1zZXQta2V5IFtmMTFd ICdhbnl0aGluZykKICAocmVtb3ZlLWhvb2sgJ2tpbGwtZW1hY3MtaG9vayAnYW55dGhpbmctYy1h ZGFwdGl2ZS1zYXZlLWhpc3RvcnkpCiMrZW5kX3NyYwoqKiBSIG9iamVjdHMKIytiZWdpbl9zcmMg ZW1hY3MtbGlzcHMKICAoc2V0cSBhbnl0aGluZy1jLXNvdXJjZS1SLWhlbHAKICAnKChuYW1lIC4g IlIgb2JqZWN0cyAvIGhlbHAiKQogIChpbml0IC4gKGxhbWJkYSAoKQogIDsgdGhpcyBncmFicyB0 aGUgcHJvY2VzcyBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyCiAgKHNldHEgYW55dGhp bmctYy1lc3MtbG9jYWwtcHJvY2Vzcy1uYW1lIGVzcy1sb2NhbC1wcm9jZXNzLW5hbWUpKSkKICAo Y2FuZGlkYXRlcyAuIChsYW1iZGEgKCkKICAoY29uZGl0aW9uLWNhc2UgbmlsCiAgKGVzcy1nZXQt b2JqZWN0LWxpc3QgYW55dGhpbmctYy1lc3MtbG9jYWwtcHJvY2Vzcy1uYW1lKQogIChlcnJvciBu aWwpKSkpCiAgKGFjdGlvbgogICgiaGVscCIgLiBlc3MtZGlzcGxheS1oZWxwLW9uLW9iamVjdCkK ICAoImhlYWQgKDEwKSIgLiAobGFtYmRhKG9iai1uYW1lKQogIChlc3MtZXhlY3V0ZSAoY29uY2F0 ICJoZWFkKCIgb2JqLW5hbWUgIiwgbiA9IDEwKVxuIikgbmlsIChjb25jYXQgIlIgaGVhZDogIiBv YmotbmFtZSkpKSkKICAoImhlYWQgKDEwMCkiIC4gKGxhbWJkYShvYmotbmFtZSkKICAoZXNzLWV4 ZWN1dGUgKGNvbmNhdCAiaGVhZCgiIG9iai1uYW1lICIsIG4gPSAxMDApXG4iKSBuaWwgKGNvbmNh dCAiUiBoZWFkOiAiIG9iai1uYW1lKSkpKQogICgidGFpbCIgLiAobGFtYmRhKG9iai1uYW1lKQog IChlc3MtZXhlY3V0ZSAoY29uY2F0ICJ0YWlsKCIgb2JqLW5hbWUgIiwgbiA9IDEwKVxuIikgbmls IChjb25jYXQgIlIgdGFpbDogIiBvYmotbmFtZSkpKSkKICAoInN0ciIgLiAobGFtYmRhKG9iai1u YW1lKQogIChlc3MtZXhlY3V0ZSAoY29uY2F0ICJzdHIoIiBvYmotbmFtZSAiKVxuIikgbmlsIChj b25jYXQgIlIgc3RyOiAiIG9iai1uYW1lKSkpKQogICgic3VtbWFyeSIgLiAobGFtYmRhKG9iai1u YW1lKQogIChlc3MtZXhlY3V0ZSAoY29uY2F0ICJzdW1tYXJ5KCIgb2JqLW5hbWUgIilcbiIpIG5p bCAoY29uY2F0ICJSIHN1bW1hcnk6ICIgb2JqLW5hbWUpKSkpCiAgKCJ2aWV3IHNvdXJjZSIgLiAo bGFtYmRhKG9iai1uYW1lKQogIChlc3MtZXhlY3V0ZSAoY29uY2F0ICJwcmludCgiIG9iai1uYW1l ICIpXG4iKSBuaWwgKGNvbmNhdCAiUiBvYmplY3Q6ICIgb2JqLW5hbWUpKSkpCiAgKCJkcHV0IiAu IChsYW1iZGEob2JqLW5hbWUpCiAgKGVzcy1leGVjdXRlIChjb25jYXQgImRwdXQoIiBvYmotbmFt ZSAiKVxuIikgbmlsIChjb25jYXQgIlIgZHB1dDogIiBvYmotbmFtZSkpKSkpCiAgKHZvbGF0aWxl KSkpCiMrZW5kX3NyYwoqKiBSIGxvY2FsIG9iamVjdHMKIytiZWdpbl9zcmMgZW1hY3MtbGlzcHMK ICAoc2V0cSBhbnl0aGluZy1jLXNvdXJjZS1SLWxvY2FsCiAgJygobmFtZSAuICJSIGxvY2FsIG9i amVjdHMiKQogIChpbml0IC4gKGxhbWJkYSAoKQogIDsgdGhpcyBncmFicyB0aGUgcHJvY2VzcyBu YW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyCiAgKHNldHEgYW55dGhpbmctYy1lc3MtbG9j YWwtcHJvY2Vzcy1uYW1lIGVzcy1sb2NhbC1wcm9jZXNzLW5hbWUpCiAgOyB0aGlzIGdyYWJzIHRo ZSBidWZmZXIgZm9yIGxhdGVyIHVzZQogIChzZXRxIGFueXRoaW5nLWMtZXNzLWJ1ZmZlciAoY3Vy cmVudC1idWZmZXIpKSkpCiAgKGNhbmRpZGF0ZXMgLiAobGFtYmRhICgpCiAgKGxldCAoYnVmKQog IChjb25kaXRpb24tY2FzZSBuaWwKICAod2l0aC10ZW1wLWJ1ZmZlcgogIChwcm9nbgogIChzZXRx IGJ1ZiAoY3VycmVudC1idWZmZXIpKQogICh3aXRoLWN1cnJlbnQtYnVmZmVyIGFueXRoaW5nLWMt ZXNzLWJ1ZmZlcgogIChlc3MtY29tbWFuZCAicHJpbnQobHMuc3RyKCksIG1heC5sZXZlbD0wKVxu IiBidWYpKQogIChzcGxpdC1zdHJpbmcgKGJ1ZmZlci1zdHJpbmcpICJcbiIgdCkpKQogIChlcnJv ciBuaWwpKSkpKQogIChkaXNwbGF5LXRvLXJlYWwgLiAobGFtYmRhIChvYmotbmFtZSkgKGNhciAo c3BsaXQtc3RyaW5nIG9iai1uYW1lICIgOiAiIHQpKSkpCiAgKGFjdGlvbgogICgic3RyIiAuIChs YW1iZGEob2JqLW5hbWUpCiAgKGVzcy1leGVjdXRlIChjb25jYXQgInN0cigiIG9iai1uYW1lICIp XG4iKSBuaWwgKGNvbmNhdCAiUiBzdHI6ICIgb2JqLW5hbWUpKSkpCiAgKCJzdW1tYXJ5IiAuIChs YW1iZGEob2JqLW5hbWUpCiAgKGVzcy1leGVjdXRlIChjb25jYXQgInN1bW1hcnkoIiBvYmotbmFt ZSAiKVxuIikgbmlsIChjb25jYXQgIlIgc3VtbWFyeTogIiBvYmotbmFtZSkpKSkKICAoImhlYWQg KDEwKSIgLiAobGFtYmRhKG9iai1uYW1lKQogIChlc3MtZXhlY3V0ZSAoY29uY2F0ICJoZWFkKCIg b2JqLW5hbWUgIiwgbiA9IDEwKVxuIikgbmlsIChjb25jYXQgIlIgaGVhZDogIiBvYmotbmFtZSkp KSkKICAoImhlYWQgKDEwMCkiIC4gKGxhbWJkYShvYmotbmFtZSkKICAoZXNzLWV4ZWN1dGUgKGNv bmNhdCAiaGVhZCgiIG9iai1uYW1lICIsIG4gPSAxMDApXG4iKSBuaWwgKGNvbmNhdCAiUiBoZWFk OiAiIG9iai1uYW1lKSkpKQogICgidGFpbCIgLiAobGFtYmRhKG9iai1uYW1lKQogIChlc3MtZXhl Y3V0ZSAoY29uY2F0ICJ0YWlsKCIgb2JqLW5hbWUgIiwgbiA9IDEwKVxuIikgbmlsIChjb25jYXQg IlIgdGFpbDogIiBvYmotbmFtZSkpKSkKICAoInByaW50IiAuIChsYW1iZGEob2JqLW5hbWUpCiAg KGVzcy1leGVjdXRlIChjb25jYXQgInByaW50KCIgb2JqLW5hbWUgIilcbiIpIG5pbCAoY29uY2F0 ICJSIG9iamVjdDogIiBvYmotbmFtZSkpKSkKICAoImRwdXQiIC4gKGxhbWJkYShvYmotbmFtZSkK ICAoZXNzLWV4ZWN1dGUgKGNvbmNhdCAiZHB1dCgiIG9iai1uYW1lICIpXG4iKSBuaWwgKGNvbmNh dCAiUiBkcHV0OiAiIG9iai1uYW1lKSkpKSkKICAodm9sYXRpbGUpKSkKIytlbmRfc3JjCioqIE9j Y3VyCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3BzCiAgKHNldHEgYW55dGhpbmctYy1zb3VyY2Utb2Nj dXIKICAnKChuYW1lIC4gIk9jY3VyIikKICAoaW5pdCAuIChsYW1iZGEgKCkKICAoc2V0cSBhbnl0 aGluZy1vY2N1ci1jdXJyZW50LWJ1ZmZlcgogIChjdXJyZW50LWJ1ZmZlcikpKSkKICAoY2FuZGlk YXRlcyAuIChsYW1iZGEgKCkKICAobGV0ICgoYW55dGhpbmctb2NjdXItYnVmZmVyIChnZXQtYnVm ZmVyLWNyZWF0ZSAiKkFueXRoaW5nIE9jY3VyKiIpKSkKICAod2l0aC1jdXJyZW50LWJ1ZmZlciBh bnl0aGluZy1vY2N1ci1idWZmZXIKICAob2NjdXItbW9kZSkKICAoZXJhc2UtYnVmZmVyKQogIChs ZXQgKChjb3VudCAob2NjdXItZW5naW5lIGFueXRoaW5nLXBhdHRlcm4KICAobGlzdCBhbnl0aGlu Zy1vY2N1ci1jdXJyZW50LWJ1ZmZlcikgYW55dGhpbmctb2NjdXItYnVmZmVyCiAgbGlzdC1tYXRj aGluZy1saW5lcy1kZWZhdWx0LWNvbnRleHQtbGluZXMgY2FzZS1mb2xkLXNlYXJjaAogIGxpc3Qt bWF0Y2hpbmctbGluZXMtYnVmZmVyLW5hbWUtZmFjZQogIG5pbCBsaXN0LW1hdGNoaW5nLWxpbmVz LWZhY2UKICAobm90IChlcSBvY2N1ci1leGNsdWRlZC1wcm9wZXJ0aWVzIHQpKSkpKQogICh3aGVu ICg+IGNvdW50IDApCiAgKHNldHEgbmV4dC1lcnJvci1sYXN0LWJ1ZmZlciBhbnl0aGluZy1vY2N1 ci1idWZmZXIpCiAgKGNkciAoc3BsaXQtc3RyaW5nIChidWZmZXItc3RyaW5nKSAiXG4iIHQpKSkp KSkpKQogIChhY3Rpb24gLiAoKCJHb3RvIGxpbmUiIC4gKGxhbWJkYSAoY2FuZGlkYXRlKQogICh3 aXRoLWN1cnJlbnQtYnVmZmVyICIqQW55dGhpbmcgT2NjdXIqIgogIChzZWFyY2gtZm9yd2FyZCBj YW5kaWRhdGUpKQogIChnb3RvLWxpbmUgKHN0cmluZy10by1udW1iZXIgY2FuZGlkYXRlKSBhbnl0 aGluZy1vY2N1ci1jdXJyZW50LWJ1ZmZlcikpKSkpCiAgKHJlcXVpcmVzLXBhdHRlcm4gLiAzKQog ICh2b2xhdGlsZSkKICAoZGVsYXllZCkpKQojK2VuZF9zcmMKKiogaW1lbnUgLS0tIHByb2JhYmx5 IC0tLQojK2JlZ2luX3NyYyBlbWFjcy1saXNwcwogIChkZWZ2YXIgYW55dGhpbmctYy1pbWVudS1k ZWxpbWl0ZXIgIi8iKQogIChkZWZ2YXIgYW55dGhpbmctYy1jYWNoZWQtaW1lbnUtYWxpc3Qgbmls KQogIChkZWZ2YXIgYW55dGhpbmctYy1jYWNoZWQtaW1lbnUtY2FuZGlkYXRlcyBuaWwpCiAgKGRl ZnZhciBhbnl0aGluZy1jLWNhY2hlZC1pbWVudS10aWNrIG5pbCkKICAobWFrZS12YXJpYWJsZS1i dWZmZXItbG9jYWwgJ2FueXRoaW5nLWMtY2FjaGVkLWltZW51LWFsaXN0KQogIChtYWtlLXZhcmlh YmxlLWJ1ZmZlci1sb2NhbCAnYW55dGhpbmctYy1jYWNoZWQtaW1lbnUtY2FuZGlkYXRlcykKICAo bWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ2FueXRoaW5nLWMtY2FjaGVkLWltZW51LXRpY2sp CiAgKHNldHEgYW55dGhpbmctYy1zb3VyY2UtaW1lbnUKICAnKChuYW1lIC4gIkltZW51IikKICAo aW5pdCAuIChsYW1iZGEgKCkKICAoc2V0cSBhbnl0aGluZy1jLWltZW51LWN1cnJlbnQtYnVmZmVy CiAgKGN1cnJlbnQtYnVmZmVyKSkpKQogIChjYW5kaWRhdGVzCiAgLiAobGFtYmRhICgpCiAgKHdp dGgtY3VycmVudC1idWZmZXIgYW55dGhpbmctYy1pbWVudS1jdXJyZW50LWJ1ZmZlcgogIChsZXQg KCh0aWNrIChidWZmZXItbW9kaWZpZWQtdGljaykpKQogIChpZiAoZXEgYW55dGhpbmctYy1jYWNo ZWQtaW1lbnUtdGljayB0aWNrKQogIGFueXRoaW5nLWMtY2FjaGVkLWltZW51LWNhbmRpZGF0ZXMK ICAoc2V0cSBhbnl0aGluZy1jLWNhY2hlZC1pbWVudS10aWNrIHRpY2sKICBhbnl0aGluZy1jLWNh Y2hlZC1pbWVudS1jYW5kaWRhdGVzCiAgKGNvbmRpdGlvbi1jYXNlIG5pbAogIChtYXBjYW4KICAo bGFtYmRhIChlbnRyeSkKICAoaWYgKGxpc3RwIChjZHIgZW50cnkpKQogIChtYXBjYXIgKGxhbWJk YSAoc3ViKQogIChjb25jYXQgKGNhciBlbnRyeSkgYW55dGhpbmctYy1pbWVudS1kZWxpbWl0ZXIg KGNhciBzdWIpKSkKICAoY2RyIGVudHJ5KSkKICAobGlzdCAoY2FyIGVudHJ5KSkpKQogIChzZXRx IGFueXRoaW5nLWMtY2FjaGVkLWltZW51LWFsaXN0IChpbWVudS0tbWFrZS1pbmRleC1hbGlzdCkp KQogIChlcnJvciBuaWwpKSkpKSkpKQogICh2b2xhdGlsZSkKICAoYWN0aW9uCiAgLiAobGFtYmRh IChlbnRyeSkKICAobGV0KiAoKHBhaXIgKHNwbGl0LXN0cmluZyBlbnRyeSBhbnl0aGluZy1jLWlt ZW51LWRlbGltaXRlcikpCiAgKGZpcnN0IChjYXIgcGFpcikpCiAgKHNlY29uZCAoY2FkciBwYWly KSkpCiAgKGltZW51CiAgKGlmIHNlY29uZAogIChhc3NvYyBzZWNvbmQgKGNkciAoYXNzb2MgZmly c3QgYW55dGhpbmctYy1jYWNoZWQtaW1lbnUtYWxpc3QpKSkKICAoYXNzb2MgZW50cnkgYW55dGhp bmctYy1jYWNoZWQtaW1lbnUtYWxpc3QpKSkpKSkpKQojK2VuZF9zcmMKKiogVmlzaWJsZSBib29r bWFya3MKIytiZWdpbl9zcmMgZW1hY3MtbGlzcHMKICA7OyAoZGVmdmFyIGFueXRoaW5nLWMtc291 cmNlLWJtCiAgOzsgICAnKChuYW1lIC4gIlZpc2libGUgQm9va21hcmtzIikKICA7OyAgICAgKGlu aXQgLiAobGFtYmRhICgpCiAgOzsgICAgICAgICAgICAgICAobGV0ICgoYm9va21hcmtzIChibS1s aXN0cykpKQogIDs7ICAgICAgICAgICAgICAgICAoc2V0cSBhbnl0aGluZy1ibS1tYXJrcwogIDs7 ICAgICAgICAgICAgICAgICAgICAgICAoZGVscSBuaWwKICA7OyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hcGNhciAobGFtYmRhIChibSkKICA7OyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsZXQgKChzdGFydCAob3ZlcmxheS1zdGFydCBibSkpCiAgOzsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5kIChvdmVybGF5LWVu ZCBibSkpKQogIDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYg KDwgKC0gZW5kIHN0YXJ0KSAyKQogIDs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmlsCiAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGZvcm1hdCAiJTdkOiAlcyIKICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsaW5lLW51bWJlci1hdC1wb3Mgc3RhcnQpCiAgOzsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1 YnN0cmluZyBzdGFydCAoMS0gZW5kKSkpKSkpCiAgOzsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGFwcGVuZCAoY2FyIGJvb2ttYXJrcykgKGNkciBib29rbWFya3MpKSkpKSkp KQogIDs7ICAgICAoY2FuZGlkYXRlcyAuIChsYW1iZGEgKCkKICA7OyAgICAgICAgICAgICAgICAg ICAgIGFueXRoaW5nLWJtLW1hcmtzKSkKICA7OyAgICAgKGFjdGlvbiAuICgoIkdvdG8gbGluZSIg LiAobGFtYmRhIChjYW5kaWRhdGUpCiAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZ290by1saW5lIChzdHJpbmctdG8tbnVtYmVyIGNhbmRpZGF0ZSkpKSkpKSkpCiMrZW5kX3Ny YwoqKiBJIGRvbid0IGtub3cKIytiZWdpbl9zcmMgZW1hY3MtbGlzcHMKICA7OwogIChzZXRxIGFu eXRoaW5nLXNvdXJjZXMKICAobGlzdCAKICBhbnl0aGluZy1jLXNvdXJjZS1idWZmZXJzIDsgYnVm ZmVycwogIDs7ICAgICAgICBhbnl0aGluZy1jLXNvdXJjZS1ibQogIGFueXRoaW5nLWMtc291cmNl LWltZW51ICAgOyBlLmcuIEltZW51LVMgbWVudQogIDs7ICAgICAgICBhbnl0aGluZy1jLXNvdXJj ZS1yZWNlbnRmIDsgcmVjZW50IGZpbGVzOiBuZWVkcyAocmVxdWlyZSAncmVjZW50ZikKICBhbnl0 aGluZy1jLXNvdXJjZS1SLWxvY2FsCiAgYW55dGhpbmctYy1zb3VyY2UtUi1oZWxwCiAgYW55dGhp bmctYy1zb3VyY2UtZmlsZXMtaW4tY3VycmVudC1kaXIKICBhbnl0aGluZy1jLXNvdXJjZS1vY2N1 cgogIGFueXRoaW5nLWMtc291cmNlLWxvY2F0ZSAgOyBuZWVkcyB0aGUgdXRpbGl0eSBsb2NhdGUK ICApKQojK2VuZF9zcmMKKiBDT01NRU5UIGljaWNsZXMKIytiZWdpbl9zcmMgZW1hY3MtbGlzcCA6 dGFuZ2xlIG5vCiAgKGxvYWQgIn4vLmVtYWNzLmQvc2l0ZS1saXNwL2ljaWNsZXMtaW5zdGFsbCIp CiAgKGFkZC10by1saXN0ICdsb2FkLXBhdGggIn4vLmVtYWNzLmQvaWNpY2xlcyIpCiAgOzsgKHJl cXVpcmUgJ2ljaWNsZXMpCiMrZW5kX3NyYwoqIGhpZ2hsaWdodC1wYXJlbnRoZXNlcwogIGh0dHA6 Ly9uc2NodW0uZGUvc3JjL2VtYWNzL2hpZ2hsaWdodC1wYXJlbnRoZXNlcy9oaWdobGlnaHQtcGFy ZW50aGVzZXMuZWwKICBoaWdobGlnaHQgcGFyZW50aGVzaXMgd2l0aCBkaWZmZXJlbnQgY29sb3Vy cwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKHJlcXVpcmUgJ2hpZ2hsaWdodC1wYXJlbnRoZXNl cykKICAoc2V0cSBobC1wYXJlbi1jb2xvcnMgJygiZ29sZCIgIkluZGlhblJlZCIgImN5YW4iICJn cmVlbiIgIm9yYW5nZSIKICAibWFnZW50YSIpKQogIChkZWZ1biBocG0tb24gKCkKICAoaGlnaGxp Z2h0LXBhcmVudGhlc2VzLW1vZGUgdCkpCiAgKGFkZC1ob29rICdlc3MtbW9kZS1ob29rICdocG0t b24pCiAgKGFkZC1ob29rICdpbmZlcmlvci1lc3MtbW9kZS1ob29rICdocG0tb24pCiMrZW5kX3Ny YwoKKiBhdXRvbWF0aWNhbGx5IGNsb3NpbmcgYnJhY2tldHMKICBmb2xsb3dpbmcgZnJvbSBNYXJj IFNjaHdhcnR6IGZyb20gRVNTIGxpc3QsIHdvcmtzIGdsb2JhbGx5CiAgaW5zZXJ0IGNsb3Npbmcg YnJhY2V0cyBhdXRvbWF0aWNhbGx5CiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAoc2V0cSBza2Vs ZXRvbi1wYWlyIHQpCiAgOyhzZXRxIHNrZWxldG9uLXBhaXItb24td29yZCB0KQogICAoZ2xvYmFs LXNldC1rZXkgKGtiZCAiKCIpICdza2VsZXRvbi1wYWlyLWluc2VydC1tYXliZSkKICAgKGdsb2Jh bC1zZXQta2V5IChrYmQgIlsiKSAnc2tlbGV0b24tcGFpci1pbnNlcnQtbWF5YmUpCiAgIChnbG9i YWwtc2V0LWtleSAoa2JkICJ7IikgJ3NrZWxldG9uLXBhaXItaW5zZXJ0LW1heWJlKQogICAoZ2xv YmFsLXNldC1rZXkgKGtiZCAiXCIiKSAnc2tlbGV0b24tcGFpci1pbnNlcnQtbWF5YmUpCiAgIChn bG9iYWwtc2V0LWtleSAoa2JkICJcJyIpICdza2VsZXRvbi1wYWlyLWluc2VydC1tYXliZSkKICAg KGdsb2JhbC1zZXQta2V5IChrYmQgIlxgIikgJ3NrZWxldG9uLXBhaXItaW5zZXJ0LW1heWJlKQog ICA7OyAoZ2xvYmFsLXNldC1rZXkgKGtiZCAiPCIpICdza2VsZXRvbi1wYWlyLWluc2VydC1tYXli ZSkKICA7OyBEZWxldGUgZW1wdHkgcGFpcnMgbGlrZSAnKCknIHRha2VuIGZyb20KICA7OyBbW2h0 dHA6Ly93d3cuZW1hY3N3aWtpLm9yZy9jZ2ktYmluL3dpa2kvU2tlbGV0b25Nb2RlI3RvYzE0XV0g IyNEZWxldGlvbiBzZWN0aW9uCiAgKGRlZnZhciBza2VsZXRvbnMtYWxpc3QKICAnKCg/XCggLiA/ XCkpCiAgKD9cJyAuID9cJykKICAoP1wiIC4gP1wiKQogICg/WyAgLiA/XSkKICAoP3sgIC4gP30p CiAgOzsgKD88ICAuID8+KQogICg/JCAgLiA/JCkpKQogIChkZWZhZHZpY2UgZGVsZXRlLWJhY2t3 YXJkLWNoYXIgKGJlZm9yZSBkZWxldGUtZW1wdHktcGFpciBhY3RpdmF0ZSkKICAoaWYgKGVxIChj ZHIgKGFzc3EgKGNoYXItYmVmb3JlKSBza2VsZXRvbnMtYWxpc3QpKSAoY2hhci1hZnRlcikpCiAg KGFuZCAoY2hhci1hZnRlcikgKGRlbGV0ZS1jaGFyIDEpKSkpCiMrZW5kX3NyYwoKKiBvcmctbW9k ZQoqKiBCYXNpYyBvcmcgbW9kZQoqKiogSW5pdGlhbGlzZSBvcmctbW9kZQogIGh0dHA6Ly9vcmdt b2RlLm9yZy9tYW51YWwvSW5zdGFsbGF0aW9uLmh0bWwjSW5zdGFsbGF0aW9uCiAgaHR0cDovL29y Z21vZGUub3JnL21hbnVhbC9BY3RpdmF0aW9uLmh0bWwjQWN0aXZhdGlvbiAKIytiZWdpbl9zcmMg ZW1hY3MtbGlzcAogIDs7IFRoZSBmb2xsb3dpbmcgbGluZXMgYXJlIGFsd2F5cyBuZWVkZWQuICBD aG9vc2UgeW91ciBvd24ga2V5cy4KICAoYWRkLXRvLWxpc3QgJ2F1dG8tbW9kZS1hbGlzdCAnKCJc XC5vcmdcXCciIC4gb3JnLW1vZGUpKQogIChnbG9iYWwtc2V0LWtleSAiXEMtY2wiICdvcmctc3Rv cmUtbGluaykKICAoZ2xvYmFsLXNldC1rZXkgIlxDLWNhIiAnb3JnLWFnZW5kYSkKICAoZ2xvYmFs LXNldC1rZXkgIlxDLWNiIiAnb3JnLWlzd2l0Y2hiKQogIDs7IGFjdGl2YXRlIGZvbnQtbG9jay1t b2RlCiAgKGdsb2JhbC1mb250LWxvY2stbW9kZSAxKSAgICAgICAgICAgICAgICAgICAgIDsgZm9y IGFsbCBidWZmZXJzCiAgOzsgKGFkZC1ob29rICdvcmctbW9kZS1ob29rICd0dXJuLW9uLWZvbnQt bG9jaykgIDsgT3JnIGJ1ZmZlcnMgb25seQogICh0cmFuc2llbnQtbWFyay1tb2RlIDEpCiMrZW5k X3NyYwoKKioqIFN0YXJ0dXAgc2V0dGluZ3MKKioqKiBIaWRlIGxlYWRpbmcgc3RhcnMKIytiZWdp bl9zcmMgZW1hY3MtbGlzcAogIChzZXRxIG9yZy1oaWRlLWxlYWRpbmctc3RhcnMgdCkKIytlbmRf c3JjCioqKiogSW5kZW50IGJ5IGRlZmF1bHQKIytiZWdpbl9zcmMgZW1hY3MtbGlzcAooc2V0cSBv cmctc3RhcnR1cC1pbmRlbnRlZCB0KQojK2VuZF9zcmMKKioqKiBTdGFydCB3aXRoIGhpZGRlbiBz b3VyY2UgYmxvY2tzCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKKHNldHEgb3JnLWhpZGUtYmxvY2st c3RhcnR1cCBuaWwpCiMrZW5kX3NyYwoKKioqIFVzZSB0aGUgaW5mbyBmaWxlcyBmcm9tIHRoZSBh Y3R1YWwgb3JnLW1vZGUgdXNlZAojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKGFkZC10by1saXN0 ICdJbmZvLWRlZmF1bHQtZGlyZWN0b3J5LWxpc3QgIn4vLmVtYWNzLmQvb3JnLW1vZGUvZG9jLyIp CiMrZW5kX3NyYwoKKioqIEVuYWJsZSBmb250aWZpY2F0aW9uIG9mIGlubGluZSBjb2RlIGJsb2Nr cwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKHNldHEgb3JnLXNyYy1mb250aWZ5LW5hdGl2ZWx5 IHQpCiMrZW5kX3NyYwoKKioqIEVuYWJsZSB0YWIgaW4gc291cmNlIGJsb2NrCiMrYmVnaW5fc3Jj IGVtYWNzLWxpc3AKICAoc2V0cSBvcmctc3JjLXRhYi1hY3RzLW5hdGl2ZWx5IHQpCiMrZW5kX3Ny YwoKKioqIENPTU1FTlQgVXNlIHRleHQgc2VhcmNoIGluc3RlYWQgb2YgOklEOiBwcm9wZXJ0aWVz IGZvciBsaW5rcwojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDp0YW5nbGUgbm8KICAoc2V0IG9yZy1s aW5rLXRvLW9yZy11c2UtaWQgbmlsKQojK2VuZF9zcmMKCioqKiBFbmFibGUgZm9udGlmaWVkIGNv ZGUgZXhwb3J0IHRvIExhVGVYIC8gcGRmCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAocmVxdWly ZSAnb3JnLWxhdGV4KQogIChzZXRxIG9yZy1leHBvcnQtbGF0ZXgtbGlzdGluZ3MgdCkKICAoYWRk LXRvLWxpc3QgJ29yZy1leHBvcnQtbGF0ZXgtcGFja2FnZXMtYWxpc3QgJygiIiAibGlzdGluZ3Mi KSkKICAoYWRkLXRvLWxpc3QgJ29yZy1leHBvcnQtbGF0ZXgtcGFja2FnZXMtYWxpc3QgJygiIiAi Y29sb3IiKSkKIytlbmRfc3JjCgoqKiogRGlzcGxheSBzb3VyY2UgY29kZSBlZGl0IGJ1ZmZlciBp biB0aGUgY3VycmVudCB3aW5kb3csIGtlZXBpbmcgYWxsIG90aGVyIHdpbmRvd3MKIytiZWdpbl9z cmMgZW1hY3MtbGlzcAogIChzZXRxIG9yZy1zcmMtd2luZG93LXNldHVwICdjdXJyZW50LXdpbmRv dykKIytlbmRfc3JjCgoqKiogU2NhbGUgTGFUZVggbWF0aCBzeW1ib2xzIGV0IGFsCiMrQkVHSU5f U1JDIGVtYWNzLWxpc3AKICAoc2V0cSBvcmctZm9ybWF0LWxhdGV4LW9wdGlvbnMgCiAgICAgICAg KHBsaXN0LXB1dCBvcmctZm9ybWF0LWxhdGV4LW9wdGlvbnMgOnNjYWxlIDEuMykpCiMrRU5EX1NS QwoKKioqIEtpbGwgZXhwb3J0IGJ1ZmZlciB3aGVuIGNyZWF0ZWQKIytiZWdpbl9zcmMgZW1hY3Mt bGlzcAogIChzZXRxIG9yZy1leHBvcnQta2lsbC1wcm9kdWN0LWJ1ZmZlci13aGVuLWRpc3BsYXll ZCB0KQojK2VuZF9zcmMKCioqKiBDaGFuZ2UgImZvbGRpbmcgZWxsaXBzZXMiCiMrYmVnaW5fc3Jj IGVtYWNzLWxpc3AKICAoc2V0cSBvcmctZWxsaXBzaXMgIiAgX19fKipGT0xERUQqKl9fXyIpCiMr ZW5kX3NyYwoKKioqIEFzayB3aGVuIGRlbGV0aW5nIHN1YnRyZWUKIytiZWdpbl9zcmMgZW1hY3Mt bGlzcAogIChzZXRxIG9yZy1jdHJsLWstcHJvdGVjdC1zdWJ0cmVlICJhc2siKQojK2VuZF9zcmMK CiMrcmVzdWx0czoKOiBhc2sKCioqIG9yZy1taW1lCltbaHR0cDovL29yZ21vZGUub3JnL3dvcmcv b3JnLWNvbnRyaWIvb3JnLW1pbWUucGhwXV0KIytiZWdpbl9zcmMgZW1hY3MtbGlzcAogIChyZXF1 aXJlICdvcmctbWltZSkKICAoYWRkLWhvb2sgJ21lc3NhZ2UtbW9kZS1ob29rCiAgICAgICAgICAg IChsYW1iZGEgKCkKICAgICAgICAgICAgICAobG9jYWwtc2V0LWtleSAiXEMtY1xNLW8iICdvcmct bWltZS1odG1saXplKSkpCiAgCiAgKGFkZC1ob29rICdvcmctbW9kZS1ob29rCiAgICAgICAgICAg IChsYW1iZGEgKCkKICAgICAgICAgICAgICAobG9jYWwtc2V0LWtleSAiXEMtY1xNLW8iICdvcmct bWltZS1vcmctYnVmZmVyLWh0bWxpemUpKSkKIytlbmRfc3JjCioqIG9yZy1wcm90b2NvbApbW2h0 dHA6Ly9vcmdtb2RlLm9yZy93b3JnL29yZy1jb250cmliL29yZy1wcm90b2NvbC5waHBdXSAKIyti ZWdpbl9zcmMgZW1hY3MtbGlzcAogIChzZXJ2ZXItc3RhcnQpCiAgKGFkZC10by1saXN0ICdsb2Fk LXBhdGggIn4vLmVtYWNzLmQvb3JnLW1vZGUvbGlzcC8iKQogIChyZXF1aXJlICdvcmctcHJvdG9j b2wpCiMrZW5kX3NyYwoKKiogb3JnLWNhcHR1cmUKICBTZXQgdGhlIGtleWJvYXJkIHNob3J0Y3V0 IGFuZCBkZWZpbmUgdGhlIHRlbXBsYXRlcwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgICAoZGVm aW5lLWtleSBnbG9iYWwtbWFwICJcQy1jYyIgJ29yZy1jYXB0dXJlKSAKICAgIChzZXRxIG9yZy1j YXB0dXJlLXRlbXBsYXRlcwogICAgICAgICAgJyhxdW90ZSAKICAgICAgICAgICAgICgKICAgICAg ICAgICAgICAoInQiICJUb2RvIiBlbnRyeSAoZmlsZStoZWFkbGluZSAifi9Eb2N1bWVudHMvb3Jn ZmlsZXMvL25vdGVzLm9yZyIgIlRhc2tzIikgIiogVE9ETyAlVSAlPyVpICVhIikgCiAgICAgICAg ICAgICAgKCJqIiAiSm91cm5hbCIgZW50cnkgKGZpbGUraGVhZGxpbmUgIn4vRG9jdW1lbnRzL29y Z2ZpbGVzLy9ub3Rlcy5vcmciICIiKSAiKiAlVSAlPyAlaSAlYSIpCiAgICAgICAgICAgICAgKCJp IiAiSWRlYSIgZW50cnkgKGZpbGUraGVhZGxpbmUgIn4vRG9jdW1lbnRzL29yZ2ZpbGVzLy9ub3Rl cy5vcmciICJOZXcgSWRlYXMiKSAiKiAlXntUaXRsZX0gJWkgJWEiKSAKICAgICAgICAgICAgICAo InIiICJSZWZlcmVuY2UgTWF0ZXJpYWwiIGVudHJ5IChmaWxlK2hlYWRsaW5lICJyZWZlcmVuY2Uu b3JnIiAiIikgIiolPyAlJiVeZyIpCiAgICAgICAgICAgICAgKCJ4IiAiTWVzc2FnZSIgZW50cnkg KGZpbGUrZGF0ZXRyZWUgKGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpKSAi KiBNU0cgQCAlVSAlP1xuICVhIikpCiAgICAgICAgICAgICApKQojK2VuZF9zcmMKCioqIG9yZy1i YWJlbAoqKiogRGlzYWJsZSBwcm9tcHRpbmcgZm9yIGNvZGUgZXhlY3V0aW9uCiMrYmVnaW5fc3Jj IGVtYWNzLWxpc3AKKHNldHEgb3JnLWNvbmZpcm0tYmFiZWwtZXZhbHVhdGUgbmlsKQojK2VuZF9z cmMKCioqKiBTZXQgcHJvbXB0aW5nIGZvciBzaGVsbCBsaW5rIGV4ZWN1dGlvbgojK2JlZ2luX3Ny YyBlbWFjcy1saXNwCiAgKHNldHEgb3JnLWNvbmZpcm0tc2hlbGwtbGluay1mdW5jdGlvbiAneS1v ci1uLXApCiMrZW5kX3NyYwoKKioqIExvYWQgbGlicmFyeS1vZi1iYWJlbC5lbApMb2FkIHRoZSBz b3VyY2UtY29kZSBibG9ja3MgZGVmaW5lZCBpbiBhbiBPcmctbW9kZSBmaWxlIGludG8gdGhlIGds b2JhbCAib3JnLWJhYmVsLWxpYnJhcnktb2YtYmFiZWwiIHZhcmlhYmxlCiMrYmVnaW5fc3JjIGVt YWNzLWxpc3AKKG9yZy1iYWJlbC1sb2ItaW5nZXN0ICJ+Ly5lbWFjcy5kL29yZy1tb2RlL2NvbnRy aWIvYmFiZWwvbGlicmFyeS1vZi1iYWJlbC5vcmciKQojK2VuZF9zcmMKCioqKiBUYW5nbGUgd2l0 aCBjb21tZW50cwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKHNldHEgb3JnLWJhYmVsLXRhbmds ZS13LWNvbW1lbnRzIHQpCiAgOzsgKGFkZC10by1saXN0ICdvcmctYmFiZWwtZGVmYXVsdC1oZWFk ZXItYXJnczpSICcoOmNvbW1lbnRzIC4gInllcyIpKQojK2VuZF9zcmMKCioqKiBTZXQgOm5vd2Vi IHBlciBkZWZhdWx0IHRvIG5vClRoaXMgaXMgbmVlZGVkIGZvciBwbGFudHVtbApTZWUgbWFudWFs ICIxNC4xMCBOb3dlYiByZWZlcmVuY2Ugc3ludGF4IiBmb3IgZGV0YWlscy4KIytiZWdpbl9zcmMg ZW1hY3MtbGlzcAogIChzZXRxIG9yZy1iYWJlbC1kZWZhdWx0LWhlYWRlci1hcmdzCiAgICAgICAg KGNvbnMgJyg6bm93ZWIgLiAibm8iKQogICAgICAgICAgICAgIChhc3NxLWRlbGV0ZS1hbGwgOm5v d2ViIG9yZy1iYWJlbC1kZWZhdWx0LWhlYWRlci1hcmdzKSkpCiMrZW5kX3NyYwoKKioqIHNoCioq Kiogc2V0IHNoZWJhbmcgZm9yIHNoIHNjcmlwdCB0byAiIyEvYmluL2Jhc2giCiMrYmVnaW5fc3Jj IGVtYWNzLWxpc3AKOzsgZW5zdXJlIHRoaXMgdmFyaWFibGUgaXMgZGVmaW5lZAoodW5sZXNzIChi b3VuZHAgJ29yZy1iYWJlbC1kZWZhdWx0LWhlYWRlci1hcmdzOnNoKQooc2V0cSBvcmctYmFiZWwt ZGVmYXVsdC1oZWFkZXItYXJnczpzaCAnKCkpKQoKOzsgYWRkIGEgZGVmYXVsdCBzaGViYW5nIGhl YWRlciBhcmd1bWVudAooYWRkLXRvLWxpc3QgJ29yZy1iYWJlbC1kZWZhdWx0LWhlYWRlci1hcmdz OnNoCicoOnNoZWJhbmcgLiAiIyEvYmluL2Jhc2giKSkKIytlbmRfc3JjCioqKiogRW5hYmxlIGxh bmd1YWdlIGV4ZWN1dGlvbgojK2JlZ2luX3NyYyBlbWFjcy1saXNwCihyZXF1aXJlICdvYi1zaCkg ICAgICAgICA7OyByZXF1aXJlcyBSIGFuZCBlc3MtbW9kZQojK2VuZF9zcmMKKioqIFIKRW5hYmxl IGxhbmd1YWdlIGV4ZWN1dGlvbgojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKHJlcXVpcmUgJ29i LVIpICAgICAgICAgOzsgcmVxdWlyZXMgUiBhbmQgZXNzLW1vZGUKIytlbmRfc3JjCgoqKiogQ09N TUVOVCBwbGFudHVtbCAKRnVydGhlciBpbmZvIGNhbiBiZSBmaW5kIGF0IGh0dHA6Ly9lc2NodWx0 ZS5naXRodWIuY29tL2JhYmVsLWRldi9ET05FLWludGVncmF0ZS1wbGFudHVtbC1zdXBwb3J0Lmh0 bWwgaHR0cDovL3BsYW50dW1sLnNvdXJjZWZvcmdlLm5ldC8KRW5hYmxlIGxhbmd1YWdlIGV4ZWN1 dGlvbgojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDogdGFuZ2xlIG5vCihyZXF1aXJlICdvYi1wbGFu dHVtbCkgICAgICAgICA7OyByZXF1aXJlcyBSIGFuZCBlc3MtbW9kZQojK2VuZF9zcmMKU2V0IGxv Y2F0aW9uIHdoZXJlIHBsYW50dW1sLmphciBpcyBsb2NhdGVkCiMrYmVnaW5fc3JjIGVtYWNzLWxp c3AgOnRhbmdsZSBubwooc2V0cSBvcmctcGxhbnR1bWwtamFyLXBhdGgKICAgICAgKGV4cGFuZC1m aWxlLW5hbWUgIn4vLmVtYWNzLmQvb3JnLW1vZGUvY29udHJpYi9zY3JpcHRzL3BsYW50dW1sLmph ciIpKQojK2VuZF9zcmMKCioqKiBMYVRlWApTZXR0aW5ncyBjb3BpZWQgZnJvbSBodHRwOi8vb3Jn bW9kZS5vcmcvd29yZy9vcmctY29udHJpYi9iYWJlbC9sYW5ndWFnZXMvb3JnLWJhYmVsLWRvYy1M YVRlWC5waHAKKioqKiBBY3RpdmF0ZSBMYVRlWCBFdmFsdWF0aW9uCiMrYmVnaW5fc3JjIGVtYWNz LWxpc3AKKHJlcXVpcmUgJ29iLWxhdGV4KQojK2VuZF9zcmMKKioqKiBBdWNUZVgKU3Ryb25nbHkg cmVjb21tZW5kZWQgZm9yIGVkaXRpbmcgLnRleCBmaWxlcy4gQWRkIHRoZSBmb2xsb3dpbmcgbGlu ZSB0byAuZW1hY3M6IAojK2JlZ2luX3NyYyBlbWFjcy1saXNwCihhZGQtdG8tbGlzdCAnbG9hZC1w YXRoICJ+Ly5lbWFjcy5kL2F1Y3RleCIpCihsb2FkICJhdWN0ZXguZWwiIG5pbCB0IHQpCiMrZW5k X3NyYwoqKiogUmFpc2UgTm93ZWItdHlwZSBFcnJvcnMKQWRkIExhVGVYIHRvIGEgbGlzdCBvZiBs YW5ndWFnZXMgdGhhdCByYWlzZSBub3dlYi10eXBlIGVycm9ycwpFZGl0IHRoZSBmb2xsb3dpbmcg ZXhhbXBsZSB0byBpbmNsdWRlIHRoZSBsYW5ndWFnZXMgeW91IHVzZSBpbiBPcmctYmFiZWwKIyti ZWdpbl9zcmMgZW1hY3MtbGlzcAooc2V0cSBvcmctYmFiZWwtbm93ZWItZXJyb3ItbGFuZ3MgJygi UiIgImxhdGV4IikpCiMrZW5kX3NyYwoKKioqIFNldCBwb3N0LXRhbmdsZS1ob29rIGZvciBSClRo aXMgaXMgYW4gZXhhbXBsZSBvbiBob3cgdG8gc2V0IHRoZSBob29rIGZvciBsb2FkaW5nIFIgZmls ZXMgdmlhIGVzcy1sb2FkLWZpbGUgYWZ0ZXIgdGFuZ2xpbmcuIFRoaXMgY29kZSBzaG91bGQgYmUg Y29waWVkIGludG8gdGhlIC5vcmcgZmlsZSwgdG8gZW5hYmxlIHBlci1maWxlIHNldHRpbmcgb2Yg dGhlIGhvb2suCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnJlc3VsdHMgc2lsZW50IDp0YW5nbGUg bm8KICAoYWRkLWhvb2sgJ29yZy1iYWJlbC1wb3N0LXRhbmdsZS1ob29rCiAgICAgICAgICAgIChs YW1iZGEgKCkgKGVzcy1sb2FkLWZpbGUgKGJ1ZmZlci1maWxlLW5hbWUpKSkpCiMrZW5kX3NyYwoK KioqIEVuYWJsZSBmb250aWZpZWQgTGFUZVggbGlzdGluZyBleHBvcnRzLiAKU2V0IG9yZy1leHBv cnQtbGF0ZXgtbGlzdGluZ3MgdG8gYSBub24tbmlsIHZhbHVlIGFuZCBtYWtlIHN1cmUgdGhhdCB0 aGUgcGFja2FnZXMgbGlzdGluZ3MgYW5kIGNvbG9yIGFyZSBsb2FkZWQgaW50byBMYVRlWAojK2Jl Z2luX3NyYyBlbWFjcy1saXNwCiAgKHNldHEgb3JnLWV4cG9ydC1sYXRleC1saXN0aW5ncyB0KQog IChyZXF1aXJlICdvcmctbGF0ZXgpCiAgKGFkZC10by1saXN0ICdvcmctZXhwb3J0LWxhdGV4LXBh Y2thZ2VzLWFsaXN0ICcoIiIgImxpc3RpbmdzIikpCiAgKGFkZC10by1saXN0ICdvcmctZXhwb3J0 LWxhdGV4LXBhY2thZ2VzLWFsaXN0ICcoIiIgImNvbG9yIikpCiMrZW5kX3NyYwoKKioqIG9yZy1i YWJlbC10YW5nbGUtanVtcC10by1vcmcKIytiZWdpbl9zcmMgZW1hY3MtbGlzcAogIChkZWZ1biBv cmctYmFiZWwtdGFuZ2xlLWp1bXAtdG8tb3JnICgpCiAgIkp1bXAgZnJvbSBhIHRhbmdsZWQgY29k ZSBmaWxlIHRvIHRoZSByZWxhdGVkIE9yZy1tb2RlIGZpbGUuIgogIChpbnRlcmFjdGl2ZSkKICAo bGV0ICgobWlkIChwb2ludCkpCiAgdGFyZ2V0LWJ1ZmZlciB0YXJnZXQtY2hhcgogIHN0YXJ0IGVu ZCBsaW5rIHBhdGggYmxvY2stbmFtZSkKICAgIChzYXZlLXdpbmRvdy1leGN1cnNpb24KICAoc2F2 ZS1leGN1cnNpb24KICAodW5sZXNzIChhbmQgKHJlLXNlYXJjaC1iYWNrd2FyZCBvcmctYnJhY2tl dC1saW5rLWFuYWx5dGljLXJlZ2V4cCBuaWwgdCkKICAoc2V0cSBzdGFydCAocG9pbnQpKQogIChz ZXRxIGxpbmsgKG1hdGNoLXN0cmluZyAwKSkKICAoc2V0cSBwYXRoIChtYXRjaC1zdHJpbmcgMykp CiAgKHNldHEgYmxvY2stbmFtZSAobWF0Y2gtc3RyaW5nIDUpKQogIChyZS1zZWFyY2gtZm9yd2Fy ZCAoY29uY2F0ICIgIiAocmVnZXhwLXF1b3RlIGJsb2NrLW5hbWUpCiAgIiBlbmRzIGhlcmVbXG5c cl0iKSBuaWwgdCkKICAoc2V0cSBlbmQgKHBvaW50KSkKICAoPCBzdGFydCBtaWQpICg8IG1pZCBl bmQpKQogIChlcnJvciAibm90IGluIHRhbmdsZWQgY29kZSIpKSkKICAod2hlbiAoc3RyaW5nLW1h dGNoICI6OiIgcGF0aCkKICAoc2V0cSBwYXRoIChzdWJzdHJpbmcgcGF0aCAwIChtYXRjaC1iZWdp bm5pbmcgMCkpKSkKICAoZmluZC1maWxlIHBhdGgpIChzZXRxIHRhcmdldC1idWZmZXIgKGN1cnJl bnQtYnVmZmVyKSkKICAoZ290by1jaGFyIHN0YXJ0KSAob3JnLW9wZW4tbGluay1mcm9tLXN0cmlu ZyBsaW5rKQogIChpZiAoc3RyaW5nLW1hdGNoICJbXiBcdFxuXHJdOlxcKFtbOmRpZ2l0Ol1dK1xc KSIgYmxvY2stbmFtZSkKICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2NrCiAgKHN0cmluZy10by1p bnQgKG1hdGNoLXN0cmluZyAxIGJsb2NrLW5hbWUpKSkKICAob3JnLWJhYmVsLWdvdG8tbmFtZWQt c3JjLWJsb2NrIGJsb2NrLW5hbWUpKQogIChzZXRxIHRhcmdldC1jaGFyIChwb2ludCkpKQogIChw b3AtdG8tYnVmZmVyIHRhcmdldC1idWZmZXIpCiAgKGdvdG8tY2hhciB0YXJnZXQtY2hhcikpKQoj K2VuZF9zcmMKCioqKiBpbmhpYml0cyB0aGUgaW5zZXJ0aW9uIG9mIGJsYW5rIGxpbmVzIG9uIHRh bmdsaW5nCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKICAoc2V0cSBvcmctYmFiZWwtdGFuZ2xlLXBh ZC1uZXdsaW5lIG5pbCkKIytlbmRfc3JjCgoqKiogQ09NTUVOVCBhZGQgcGxhbnR1bWwgbGFuZ3Vh Z2UgbW9kZQojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDp0YW5nbGUgbm8KICAoYWRkLXRvLWxpc3Qg J29yZy1zcmMtbGFuZy1tb2RlcyAnKCJwbGFudHVtbCIgLiBmdW5kYW1lbnRhbCkpCiMrZW5kX3Ny YwoKKiogT3JnLW1vYmlsZSBzZXR0aW5ncwojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgOyBTZXQg dG8gdGhlIGxvY2F0aW9uIG9mIHlvdXIgT3JnIGZpbGVzIG9uIHlvdXIgbG9jYWwgc3lzdGVtCiAg KHNldHEgb3JnLWRpcmVjdG9yeSAifi9Eb2N1bWVudHMvb3JnZmlsZXMiKQogIDs7IFNldCB0byB0 aGUgbmFtZSBvZiB0aGUgZmlsZSB3aGVyZSBuZXcgbm90ZXMgd2lsbCBiZSBzdG9yZWQKICAoc2V0 cSBvcmctbW9iaWxlLWluYm94LWZvci1wdWxsICJ+L0RvY3VtZW50cy9vcmdmaWxlcy9mbGFnZ2Vk Lm9yZyIpCiAgOzsgU2V0IHRvIDx5b3VyIERyb3Bib3ggcm9vdCBkaXJlY3Rvcnk+L01vYmlsZU9y Zy4KICAoc2V0cSBvcmctbW9iaWxlLWRpcmVjdG9yeSAifi9Ecm9wYm94L01vYmlsZU9yZyIpCiMr ZW5kX3NyYwoKKiBEZWZpbmUgc2NyZWVuc2hvdCBmdW5jdGlvbltbCi9ob21lL3JrcnVnLy5lbWFj cy5kLzM1MzR4NHkucG5nXV0KIytCRUdJTl9TUkMgZW1hY3MtbGlzcAogIChkZWZ1biBteS1zY3Jl ZW5zaG90ICgpCiAgICAiVGFrZSBhIHNjcmVlbnNob3QgaW50byBhIHVuaXF1ZS1uYW1lZCBmaWxl IGluIHRoZSBjdXJyZW50IGJ1ZmZlciBmaWxlIGRpcmVjdG9yeSBhbmQgaW5zZXJ0IGEgbGluayB0 byB0aGlzIGZpbGUuIgogICAgKGludGVyYWN0aXZlKQogICAgKHNldHEgZmlsZW5hbWUKICAgICAg ICAgIChjb25jYXQKICAgICAgICAgICAobWFrZS10ZW1wLW5hbWUKICAgICAgICAgICAgKGZpbGUt bmFtZS1kaXJlY3RvcnkgKGJ1ZmZlci1maWxlLW5hbWUpKQogICAgICAgICAgICApCiAgICAgICAg ICAgIi5wbmciCiAgICAgICAgICAgKQogICAgICAgICAgKQogIAogICAgKGNhbGwtcHJvY2VzcyAi aW1wb3J0IiBuaWwgbmlsIG5pbCBmaWxlbmFtZSkKICAgIChpbnNlcnQgKGNvbmNhdCAiW1siIGZp bGVuYW1lICJdXSIpKQogICAgKG9yZy1kaXNwbGF5LWlubGluZS1pbWFnZXMpCiAgICApIAojK0VO RF9TUkMKCiogQ09NTUVOVCBwbGFudHVtbAoqKiBMb2FkIHBsYW50dW1sLW1vZGUKaHR0cDovL3po YW5nd2VpemUud29yZHByZXNzLmNvbS8yMDEwLzA5LzIwL3VwZGF0ZS1wbGFudHVtbC1tb2RlLwoj K2JlZ2luX3NyYyBlbWFjcy1saXNwIDp0YW5nbGUgbm8KICAobG9hZC1maWxlICJ+Ly5lbWFjcy5k L3NpdGUtbGlzcC9wbGFudHVtbC1tb2RlLmVsIikKIytlbmRfc3JjCgoqIENPTU1FTlQgWUFTbmlw cGV0ClNlZSBbW2h0dHA6Ly95YXNuaXBwZXQuZ29vZ2xlY29kZS5jb20vc3ZuL3RydW5rL2RvYy9p bmRleC5odG1sXV0gZm9yIGRldGFpbHMKKiogTG9hZCBhbmQgYWN0aXZhdGUKIytiZWdpbl9zcmMg ZW1hY3MtbGlzcCA6dGFuZ2xlIG5vCiAgKGFkZC10by1saXN0ICdsb2FkLXBhdGgKICAgICAgICAg ICAgICAgICJ+Ly5lbWFjcy5kL3lhc25pcHBldCIpCiAgKHJlcXVpcmUgJ3lhc25pcHBldCkgOzsg bm90IHlhc25pcHBldC1idW5kbGUKICAoeWFzL2luaXRpYWxpemUpCiAgKHlhcy9sb2FkLWRpcmVj dG9yeSAifi8uZW1hY3MuZC95YXNuaXBwZXQvc25pcHBldHMiKQojK2VuZF9zcmMKKiogT3JnLU1v ZGUgSG9vawpBb21lIG1vZGlmaWNhdGlvbnMgKHNlZSBbW2h0dHA6Ly9lc2NodWx0ZS5naXRodWIu Y29tL2VtYWNzLXN0YXJ0ZXIta2l0L3N0YXJ0ZXIta2l0LW9yZy5odG1sXV0gZm9yIGRldGFpbHMu CiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnRhbmdsZSBubwogIChkZWZ1biB5YXMvb3JnLXZlcnkt c2FmZS1leHBhbmQgKCkKICAgKGxldCAoKHlhcy9mYWxsYmFjay1iZWhhdmlvciAncmV0dXJuLW5p bCkpICh5YXMvZXhwYW5kKSkpICAgCiMrZW5kX3NyYwoKIytiZWdpbl9zcmMgZW1hY3MtbGlzcCA6 dGFuZ2xlIG5vCihhZGQtaG9vayAnb3JnLW1vZGUtaG9vawogICAgICAgICAgKGxhbWJkYSAoKQog ICAgICAgICAgICAobG9jYWwtc2V0LWtleSAiXE0tXEMtbiIgJ291dGxpbmUtbmV4dC12aXNpYmxl LWhlYWRpbmcpCiAgICAgICAgICAgIChsb2NhbC1zZXQta2V5ICJcTS1cQy1wIiAnb3V0bGluZS1w cmV2aW91cy12aXNpYmxlLWhlYWRpbmcpCiAgICAgICAgICAgIChsb2NhbC1zZXQta2V5ICJcTS1c Qy11IiAnb3V0bGluZS11cC1oZWFkaW5nKQogICAgICAgICAgICA7OyB0YWJsZQogICAgICAgICAg ICAobG9jYWwtc2V0LWtleSAiXE0tXEMtdyIgJ29yZy10YWJsZS1jb3B5LXJlZ2lvbikKICAgICAg ICAgICAgKGxvY2FsLXNldC1rZXkgIlxNLVxDLXkiICdvcmctdGFibGUtcGFzdGUtcmVjdGFuZ2xl KQogICAgICAgICAgICAobG9jYWwtc2V0LWtleSAiXE0tXEMtbCIgJ29yZy10YWJsZS1zb3J0LWxp bmVzKQogICAgICAgICAgICA7OyB5YXNuaXBwZXQgKHVzaW5nIHRoZSBuZXcgb3JnLWN5Y2xlIGhv b2tzKQogICAgICAgICAgICAobWFrZS12YXJpYWJsZS1idWZmZXItbG9jYWwgJ3lhcy90cmlnZ2Vy LWtleSkKICAgICAgICAgICAgKHNldHEgeWFzL3RyaWdnZXIta2V5IFt0YWJdKQogICAgICAgICAg ICAoYWRkLXRvLWxpc3QgJ29yZy10YWItZmlyc3QtaG9vayAneWFzL29yZy12ZXJ5LXNhZmUtZXhw YW5kKQogICAgICAgICAgICAoZGVmaW5lLWtleSB5YXMva2V5bWFwIFt0YWJdICd5YXMvbmV4dC1m aWVsZCkKICAgICAgICAgICAgKSkKIytlbmRfc3JjIAoKKiBDb2xvciB0aGVtZXMKKiogbG9hZCBj b2xvci10aGVtZSBwYWNrYWdlCmxvYWQgY29sb3ItdGhlbWUgcGFja2FnZQojK2JlZ2luX3NyYyBl bWFjcy1saXNwCiAgKGFkZC10by1saXN0ICdsb2FkLXBhdGggIn4vLmVtYWNzLmQvY29sb3ItdGhl bWUiKQogIChyZXF1aXJlICdjb2xvci10aGVtZSkKICAoZXZhbC1hZnRlci1sb2FkICJjb2xvci10 aGVtZSIKICAgICcocHJvZ24KICAgICAgIChjb2xvci10aGVtZS1pbml0aWFsaXplKQogICAgICAg KGNvbG9yLXRoZW1lLWhvYmVyKSkpCiMrZW5kX3NyYwphbmQgaW5pdGlhbGl6ZSBhbmQgbG9hZCBo b2JlciBjb2xvciB0aGVtZQojK2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKGV2YWwtYWZ0ZXItbG9h ZCAiY29sb3ItdGhlbWUiCiAgICAnKHByb2duCiAgICAgICAoY29sb3ItdGhlbWUtaW5pdGlhbGl6 ZSkKICAgICAgIChjb2xvci10aGVtZS1ob2JlcikpKQojK2VuZF9zcmMKKiogQ3ljbGUgdGhyb3Vn aCBsb2FkZWQgY29sb3IgdGhlbWVzCmJhc2VkIG9uIFtbaHR0cDovL29yZ21vZGUub3JnL3dvcmcv b3JnLWNvbG9yLXRoZW1lcy5waHBdXSAgICAgICAgICAgIAojK0JFR0lOX1NSQyBlbWFjcy1saXNw CiAgKGFkZC10by1saXN0ICdsb2FkLXBhdGggIn4vLmVtYWNzLmQvY29sb3ItdGhlbWVzIikKICAo c2V0cSBjb2xvci10aGVtZS1pcy1nbG9iYWwgdCkKICAoY29sb3ItdGhlbWUtaW5pdGlhbGl6ZSkK ICAKICA7Oyhsb2FkICJjb2xvci10aGVtZS1jb2xvcmZ1bC1vYnNvbGVzY2VuY2UiKQogIChsb2Fk ICJjb2xvci10aGVtZS16ZW5idXJuIikKICAobG9hZCAiY29sb3ItdGhlbWUtdGFuZ290YW5nbyIp CiAgOzsobG9hZCAiY29sb3ItdGhlbWUtcmFpbHNjYXN0IikKICAobG9hZCAiY29sb3ItdGhlbWUt c3ZhIikKICA7Oyhsb2FkICJjb2xvci10aGVtZS1mb2xpbyIpCiAgKGxvYWQgImNvbG9yLXRoZW1l LXplbmFzaCIpCiAgOzsobG9hZCAiY29sb3ItdGhlbWUtbWFub2oiKQogIDs7KGxvYWQgImNvbG9y LXRoZW1lLWRhcmstZW1hY3MiKQogIDs7KGxvYWQgImNvbG9yLXRoZW1lLWhvYmVyIikKICAKICAo c2V0cSBteS1jb2xvci10aGVtZXMgKGxpc3QKICAgICdjb2xvci10aGVtZS1ob2JlcgogICAgJ2Nv bG9yLXRoZW1lLXRhbmdvdGFuZ28KICAgIDs7J2NvbG9yLXRoZW1lLWNvbG9yZnVsLW9ic29sZXNj ZW5jZSAKICAgICdjb2xvci10aGVtZS16ZW5idXJuCiAgICAnY29sb3ItdGhlbWUtc3ZhIAogICAg J2NvbG9yLXRoZW1lLXplbmFzaAogICAgOzsnY29sb3ItdGhlbWUtZm9saW8gCiAgICA7Oydjb2xv ci10aGVtZS1kYXJrLWVtYWNzIAogICAgOzsnY29sb3ItdGhlbWUtbWFub2ogJ2NvbG9yLXRoZW1l LXplbmFzaAogICAgOzsnY29sb3ItdGhlbWUtcmFpbHNjYXN0CiAgICA7Oydjb2xvci10aGVtZS1o b2JlcgogICkpCiAgCiAgKGRlZnVuIG15LXRoZW1lLXNldC1kZWZhdWx0ICgpIDsgU2V0IHRoZSBm aXJzdCByb3cKICAgICAgICAoaW50ZXJhY3RpdmUpCiAgICAgICAgKHNldHEgdGhlbWUtY3VycmVu dCBteS1jb2xvci10aGVtZXMpCiAgICAgICAgKGZ1bmNhbGwgKGNhciB0aGVtZS1jdXJyZW50KSkp CiAgCiAgICAgIChkZWZ1biBteS1kZXNjcmliZS10aGVtZSAoKSA7IFNob3cgdGhlIGN1cnJlbnQg dGhlbWUKICAgICAgICAoaW50ZXJhY3RpdmUpCiAgICAgICAgKG1lc3NhZ2UgIiVzIiAoY2FyIHRo ZW1lLWN1cnJlbnQpKSkKICAKICAgICA7IFNldCB0aGUgbmV4dCB0aGVtZSAoZml4ZWQgYnkgQ2hy aXMgV2ViYmVyIC0gdGFua3MpCiAgICAgIChkZWZ1biBteS10aGVtZS1jeWNsZSAoKSAgICAgICAg ICAgIAogICAgICAgIChpbnRlcmFjdGl2ZSkKICAgICAgICAoc2V0cSB0aGVtZS1jdXJyZW50IChj ZHIgdGhlbWUtY3VycmVudCkpCiAgICAgICAgKGlmIChudWxsIHRoZW1lLWN1cnJlbnQpCiAgICAg ICAgKHNldHEgdGhlbWUtY3VycmVudCBteS1jb2xvci10aGVtZXMpKQogICAgICAgIChmdW5jYWxs IChjYXIgdGhlbWUtY3VycmVudCkpCiAgICAgICAgKG1lc3NhZ2UgIiVTIiAoY2FyIHRoZW1lLWN1 cnJlbnQpKSkKICAKICAgICAgKHNldHEgdGhlbWUtY3VycmVudCBteS1jb2xvci10aGVtZXMpCiAg KHNldHEgY29sb3ItdGhlbWUtaXMtZ2xvYmFsIG5pbCkgOyBJbml0aWFsaXphdGlvbgogICAgICAo bXktdGhlbWUtc2V0LWRlZmF1bHQpCiAgKGdsb2JhbC1zZXQta2V5IFtmNF0gJ215LXRoZW1lLWN5 Y2xlKQojK0VORF9TUkMKKiBNYWlsCioqIFNldCB1c2VyIG5hbWUgYW5kIG1haWwgYWRkcmVzcwoj K2JlZ2luX3NyYyBlbWFjcy1saXNwCiAgKHNldHEgdXNlci1tYWlsLWFkZHJlc3MgIlJhaW5lckBr cnVncy5kZSIpCiAgKHNldHEgdXNlci1mdWxsLW5hbWUgIlJhaW5lciBNLiBLcnVnIikKIytlbmRf c3JjCioqIFNldHVwIHNtdHAgZm9yIHNlbmRpbmcgbWFpbApCYXNlZCBvbiBhbiBlbWFpbCBmcm9t IE9zY2FyIENhcmxzb246IFtbc2hlbGw6eGRnLW9wZW4lMjBpbWFwLW1lc3NhZ2U6Ly9SLk0uS3J1 ZyU0MGdtYWlsLmNvbUBpbWFwLmdvb2dsZW1haWwuY29tL0xpc3RzL29yZ21vZGUjMTMyNDddW21h aWw6IHtPcmdtb2RlfSBSZTogU2VuZGluZyBvcmcgYnVmZmVyIGFzIG1haWw/XV0KIytiZWdpbl9z cmMgZW1hY3MtbGlzcAogIChzZXRxIG1lc3NhZ2Utc2VuZC1tYWlsLWZ1bmN0aW9uICdzbXRwbWFp bC1zZW5kLWl0CiAgICAgICAgc210cG1haWwtc3RhcnR0bHMtY3JlZGVudGlhbHMgJygoInNtdHAu Z21haWwuY29tIiA1ODcgbmlsIG5pbCkpCiAgICAgICAgc210cG1haWwtYXV0aC1jcmVkZW50aWFs cyAifi8uYXV0aGluZm8iCiAgICAgICAgc210cG1haWwtZGVmYXVsdC1zbXRwLXNlcnZlciAic210 cC5nbWFpbC5jb20iCiAgICAgICAgc210cG1haWwtc210cC1zZXJ2ZXIgInNtdHAuZ21haWwuY29t IgogICAgICAgIHNtdHBtYWlsLXNtdHAtc2VydmljZSA1ODcpCiMrZW5kX3NyYwoKCiogQWRkIG1l c3NhZ2UgaG9vayB0byBpbmNsdWRlIHNlbGVjdGVkIHRleHQgYXMgYm9keQpUaGFua3MgdG8gRGVu aXogRG9nYW4gKFtbc2hlbGw6eGRnLW9wZW4lMjBpbWFwLW1lc3NhZ2U6Ly9SLk0uS3J1ZyU0MGdt YWlsLmNvbUBpbWFwLmdvb2dsZW1haWwuY29tL2VtYWlsL1IuTS5LcnVnQGdtYWlsLmNvbSM0NDY4 XVttYWlsOiBDcmVhdGUgZW1haWwgd2l0aCBzZWxlY3RlZCB0ZXh0IGFzIGJvZHk/XV0pCiMrYmVn aW5fc3JjIGVtYWNzLWxpc3AKICAoYWRkLWhvb2sgJ21lc3NhZ2UtbW9kZS1ob29rCiAgICAgICAg ICAgIChsYW1iZGEgKCkKICAgICAgICAgICAgICAobGV0ICh0ZXh0KQogICAgICAgICAgICAgICAg KHdpdGgtY3VycmVudC1idWZmZXIgKG90aGVyLWJ1ZmZlcikKICAgICAgICAgICAgICAgICAgKHdo ZW4gKHJlZ2lvbi1hY3RpdmUtcCkKICAgICAgICAgICAgICAgICAgICAoc2V0cSB0ZXh0CiAgICAg ICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmcgKHJlZ2lvbi1iZWdpbm5pbmcp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZ2lvbi1lbmQp KSkpKQogICAgICAgICAgICAgICAgKHdoZW4gdGV4dAogICAgICAgICAgICAgICAgICAoZW5kLW9m LWJ1ZmZlcikKICAgICAgICAgICAgICAgICAgKGluc2VydCB0ZXh0KSkpKSkKIytlbmRfc3JjCg== --00163630f8ddc82934049d55c236 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --00163630f8ddc82934049d55c236--