From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Juanma Barranquero" Newsgroups: gmane.emacs.devel Subject: Re: Back to emacsclient/server Date: Sat, 28 Oct 2006 02:24:56 +0200 Message-ID: References: <45426C6B.10401@student.lu.se> <454276CB.9000002@student.lu.se> <45427A24.8020107@student.lu.se> <45427F8E.5040507@student.lu.se> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_70488_22198930.1161995096590" X-Trace: sea.gmane.org 1161995134 12368 80.91.229.2 (28 Oct 2006 00:25:34 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 28 Oct 2006 00:25:34 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Oct 28 02:25:33 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1Gdc0j-0005fj-Tz for ged-emacs-devel@m.gmane.org; Sat, 28 Oct 2006 02:25:31 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Gdc0g-0001tv-GG for ged-emacs-devel@m.gmane.org; Fri, 27 Oct 2006 20:25:14 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Gdc0T-0001sA-77 for emacs-devel@gnu.org; Fri, 27 Oct 2006 20:25:01 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Gdc0R-0001pl-LB for emacs-devel@gnu.org; Fri, 27 Oct 2006 20:25:00 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Gdc0R-0001pY-Gk for emacs-devel@gnu.org; Fri, 27 Oct 2006 20:24:59 -0400 Original-Received: from [64.233.182.186] (helo=nf-out-0910.google.com) by monty-python.gnu.org with esmtp (Exim 4.52) id 1Gdc0Q-0000FZ-Sc for emacs-devel@gnu.org; Fri, 27 Oct 2006 20:24:59 -0400 Original-Received: by nf-out-0910.google.com with SMTP id q29so1667061nfc for ; Fri, 27 Oct 2006 17:24:57 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=TidMMEPRII1LO0h99wvBnO6+kvmALQxt4uybSuo33E70ip9pexFeAOV7iu7sFq/3/o38HZmME8825BTMjlVT9Ezb5mP11qwBDPIkpNk0Rmn7rRhX5F1utEvRgHVow91FBpDCWNYFr2QtkjNhyxPQ4C52rM8/ez3VGrMsig3oMjI= Original-Received: by 10.82.106.14 with SMTP id e14mr68279buc; Fri, 27 Oct 2006 17:24:56 -0700 (PDT) Original-Received: by 10.82.136.11 with HTTP; Fri, 27 Oct 2006 17:24:56 -0700 (PDT) Original-To: "Emacs Devel" In-Reply-To: X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:61259 Archived-At: ------=_Part_70488_22198930.1161995096590 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Updated patch; mainly changes in emacsclient.c: - Now --server-file=xxx (or EMACS_SERVER_FILE=xxx) tries to open: - "xxx" (as an absolute or relative path) - "%HOME%/.emacs.d/server/xxx" - "%APPDATA%/.emacs.d/server/xxx" (on Windows) - With no --server-file, it tries to open a local socket. - If no --server-file and no local sockets, acts like "--server-file=server" (which is the same default that server.el uses). Some more unresolved questions: - Ideas about making server.el bring the frame to the front? Also, making it compatible with pop-up-frames = t (requested by Drew). - In GNU/Linux, is the above search sequence the right one, or should it use getpwnam (...)->pw_dir to locate the user home directory? (Note: I'm beating this into shape with the idea of installing it in the next few days; I sure hope the pretest is not a problem...) /L/e/k/t/u ------=_Part_70488_22198930.1161995096590 Content-Type: application/octet-stream; name=newserver-u.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_ett9uf4f Content-Disposition: attachment; filename="newserver-u.patch" SW5kZXg6IGxpc3Avc2VydmVyLmVsDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2c3Jvb3QvZW1h Y3MvZW1hY3MvbGlzcC9zZXJ2ZXIuZWwsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjExMw0KZGlm ZiAtdSAtMiAtcjEuMTEzIHNlcnZlci5lbA0KLS0tIGxpc3Avc2VydmVyLmVsCTYgSnVsIDIwMDYg MjI6NDg6MTYgLTAwMDAJMS4xMTMNCisrKyBsaXNwL3NlcnZlci5lbAkyNyBPY3QgMjAwNiAyMjow MjoyOCAtMDAwMA0KQEAgLTgzLDQgKzgzLDM4IEBADQogICA6Z3JvdXAgJ2V4dGVybmFsKQ0KIA0K KyhkZWZjdXN0b20gc2VydmVyLXVzZS10Y3AgbmlsDQorICAiSWYgbm9uLW5pbCwgdXNlIFRDUCBz b2NrZXRzIGluc3RlYWQgb2YgbG9jYWwgc29ja2V0cy4iDQorICA6c2V0ICMnKGxhbWJkYSAoc3lt IHZhbCkNCisgICAgICAgICAgICh1bmxlc3MgKGZlYXR1cmVwICdtYWtlLW5ldHdvcmstcHJvY2Vz cyAnKDpmYW1pbHkgbG9jYWwpKQ0KKyAgICAgICAgICAgICAoc2V0cSB2YWwgdCkNCisgICAgICAg ICAgICAgKHVubGVzcyBsb2FkLWluLXByb2dyZXNzDQorICAgICAgICAgICAgICAgKG1lc3NhZ2Ug IkxvY2FsIHNvY2tldHMgdW5zdXBwb3J0ZWQsIHVzaW5nIFRDUCBzb2NrZXRzIikpKQ0KKyAgICAg ICAgICAgKHdoZW4gdmFsIChyYW5kb20gdCkpDQorICAgICAgICAgICAoc2V0LWRlZmF1bHQgc3lt IHZhbCkpDQorICA6Z3JvdXAgJ3NlcnZlcg0KKyAgOnR5cGUgJ2Jvb2xlYW4NCisgIDp2ZXJzaW9u ICIyMi4xIikNCisNCisoZGVmY3VzdG9tIHNlcnZlci1ob3N0IG5pbA0KKyAgIlRoZSBuYW1lIG9y IElQIGFkZHJlc3MgdG8gdXNlIGFzIGhvc3QgYWRkcmVzcyBvZiB0aGUgc2VydmVyIHByb2Nlc3Mu DQorSWYgc2V0LCB0aGUgc2VydmVyIGFjY2VwdHMgcmVtb3RlIGNvbm5lY3Rpb25zOyBvdGhlcndp c2UgaXQgaXMgbG9jYWwuIg0KKyAgOmdyb3VwICdzZXJ2ZXINCisgIDp0eXBlICcoY2hvaWNlDQor ICAgICAgICAgIChzdHJpbmcgOnRhZyAiTmFtZSBvciBJUCBhZGRyZXNzIikNCisgICAgICAgICAg KGNvbnN0IDp0YWcgIkxvY2FsIiBuaWwpKQ0KKyAgOnZlcnNpb24gIjIyLjEiKQ0KKyhwdXQgJ3Nl cnZlci1ob3N0ICdyaXNreS1sb2NhbC12YXJpYWJsZSB0KQ0KKw0KKyhkZWZjdXN0b20gc2VydmVy LWF1dGgtZGlyICJ+Ly5lbWFjcy5kL3NlcnZlci8iDQorICAiRGlyZWN0b3J5IGZvciBzZXJ2ZXIg YXV0aGVudGljYXRpb24gZmlsZXMuIg0KKyAgOmdyb3VwICdzZXJ2ZXINCisgIDp0eXBlICdkaXJl Y3RvcnkNCisgIDp2ZXJzaW9uICIyMi4xIikNCisocHV0ICdzZXJ2ZXItYXV0aC1kaXIgJ3Jpc2t5 LWxvY2FsLXZhcmlhYmxlIHQpDQorDQorKGRlZnZhciBzZXJ2ZXItYXV0aC1rZXkgbmlsDQorICAi VGhlIGN1cnJlbnQgc2VydmVyIGF1dGhlbnRpY2F0aW9uIGtleS4iKQ0KKyhwdXQgJ3NlcnZlci1h dXRoLWtleSAncmlza3ktbG9jYWwtdmFyaWFibGUgdCkNCisNCiAoZGVmY3VzdG9tIHNlcnZlci12 aXNpdC1ob29rIG5pbA0KICAgIipIb29rIHJ1biB3aGVuIHZpc2l0aW5nIGEgZmlsZSBmb3IgdGhl IEVtYWNzIHNlcnZlci4iDQpAQCAtMTY3LDExICsyMDEsMTEgQEANCiAoZGVmdW4gc2VydmVyLWxv ZyAoc3RyaW5nICZvcHRpb25hbCBjbGllbnQpDQogICAiSWYgYSAqc2VydmVyKiBidWZmZXIgZXhp c3RzLCB3cml0ZSBTVFJJTkcgdG8gaXQgZm9yIGxvZ2dpbmcgcHVycG9zZXMuIg0KLSAgKGlmIChn ZXQtYnVmZmVyICIqc2VydmVyKiIpDQotICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgIipzZXJ2 ZXIqIg0KLQkoZ290by1jaGFyIChwb2ludC1tYXgpKQ0KLQkoaW5zZXJ0IChjdXJyZW50LXRpbWUt c3RyaW5nKQ0KLQkJKGlmIGNsaWVudCAoZm9ybWF0ICIgJXM6IiBjbGllbnQpICIgIikNCi0JCXN0 cmluZykNCi0JKG9yIChib2xwKSAobmV3bGluZSkpKSkpDQorICAod2hlbiAoZ2V0LWJ1ZmZlciAi KnNlcnZlcioiKQ0KKyAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAiKnNlcnZlcioiDQorICAgICAg KGdvdG8tY2hhciAocG9pbnQtbWF4KSkNCisgICAgICAoaW5zZXJ0IChjdXJyZW50LXRpbWUtc3Ry aW5nKQ0KKwkgICAgICAoaWYgY2xpZW50IChmb3JtYXQgIiAlczoiIGNsaWVudCkgIiAiKQ0KKwkg ICAgICBzdHJpbmcpDQorICAgICAgKG9yIChib2xwKSAobmV3bGluZSkpKSkpDQogDQogKGRlZnVu IHNlcnZlci1zZW50aW5lbCAocHJvYyBtc2cpDQpAQCAtMjMyLDkgKzI2NiwxMCBAQA0KICAgKGxl dCAoKGF0dHJzIChmaWxlLWF0dHJpYnV0ZXMgZGlyKSkpDQogICAgICh1bmxlc3MgYXR0cnMNCi0g ICAgICAobGV0ZiAoKChkZWZhdWx0LWZpbGUtbW9kZXMpID9cNzAwKSkgKG1ha2UtZGlyZWN0b3J5 IGRpcikpDQorICAgICAgKGxldGYgKCgoZGVmYXVsdC1maWxlLW1vZGVzKSA/XDcwMCkpIChtYWtl LWRpcmVjdG9yeSBkaXIgdCkpDQogICAgICAgKHNldHEgYXR0cnMgKGZpbGUtYXR0cmlidXRlcyBk aXIpKSkNCiAgICAgOzsgQ2hlY2sgdGhhdCBpdCdzIHNhZmUgZm9yIHVzZS4NCiAgICAgKHVubGVz cyAoYW5kIChlcSB0IChjYXIgYXR0cnMpKSAoZXEgKG50aCAyIGF0dHJzKSAodXNlci11aWQpKQ0K LQkJICh6ZXJvcCAobG9nYW5kID9cMDc3IChmaWxlLW1vZGVzIGRpcikpKSkNCisgICAgICAgICAg ICAgICAgIChvciAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpDQorICAgICAgICAgICAgICAg ICAgICAgKHplcm9wIChsb2dhbmQgP1wwNzcgKGZpbGUtbW9kZXMgZGlyKSkpKSkNCiAgICAgICAo ZXJyb3IgIlRoZSBkaXJlY3RvcnkgJXMgaXMgdW5zYWZlIiBkaXIpKSkpDQogDQpAQCAtMjQ5LDEx ICsyODQsMTMgQEANCiBQcmVmaXggYXJnIG1lYW5zIGp1c3Qga2lsbCBhbnkgZXhpc3Rpbmcgc2Vy dmVyIGNvbW11bmljYXRpb25zIHN1YnByb2Nlc3MuIg0KICAgKGludGVyYWN0aXZlICJQIikNCisg ICh3aGVuIHNlcnZlci1wcm9jZXNzDQogICA7OyBraWxsIGl0IGRlYWQhDQotICAoaWYgc2VydmVy LXByb2Nlc3MNCi0gICAgICAoY29uZGl0aW9uLWNhc2UgKCkgKGRlbGV0ZS1wcm9jZXNzIHNlcnZl ci1wcm9jZXNzKSAoZXJyb3IgbmlsKSkpDQotICA7OyBEZWxldGUgdGhlIHNvY2tldCBmaWxlcyBt YWRlIGJ5IHByZXZpb3VzIHNlcnZlciBpbnZvY2F0aW9ucy4NCi0gIChjb25kaXRpb24tY2FzZSAo KQ0KKyAgICAoaWdub3JlLWVycm9ycyAoZGVsZXRlLXByb2Nlc3Mgc2VydmVyLXByb2Nlc3MpKQ0K KyAgICAoaWdub3JlLWVycm9ycw0KKyAgICAgIDs7IERlbGV0ZSB0aGUgc29ja2V0IG9yIGF1dGhl bnRpY2F0aW9uIGZpbGVzIG1hZGUgYnkgcHJldmlvdXMgc2VydmVyIGludm9jYXRpb25zLg0KKyAg ICAgIChpZiAoZXEgKHByb2Nlc3MtY29udGFjdCBzZXJ2ZXItcHJvY2VzcyA6ZmFtaWx5KSAnbG9j YWwpDQogICAgICAgKGRlbGV0ZS1maWxlIChleHBhbmQtZmlsZS1uYW1lIHNlcnZlci1uYW1lIHNl cnZlci1zb2NrZXQtZGlyKSkNCi0gICAgKGVycm9yIG5pbCkpDQorICAgICAgICAoc2V0cSBzZXJ2 ZXItYXV0aC1rZXkgbmlsKQ0KKyAgICAgICAgKGRlbGV0ZS1maWxlIChleHBhbmQtZmlsZS1uYW1l IHNlcnZlci1uYW1lIHNlcnZlci1hdXRoLWRpcikpKSkpDQogICA7OyBJZiB0aGlzIEVtYWNzIGFs cmVhZHkgaGFkIGEgc2VydmVyLCBjbGVhciBvdXQgYXNzb2NpYXRlZCBzdGF0dXMuDQogICAod2hp bGUgc2VydmVyLWNsaWVudHMNCkBAIC0yNjMsMTcgKzMwMCw0MSBAQA0KICAgKHVubGVzcyBsZWF2 ZS1kZWFkDQogICAgIDs7IE1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNhZmUgZGlyZWN0b3J5IGluIHdo aWNoIHRvIHBsYWNlIHRoZSBzb2NrZXQuDQotICAgIChzZXJ2ZXItZW5zdXJlLXNhZmUtZGlyIHNl cnZlci1zb2NrZXQtZGlyKQ0KLSAgICAoaWYgc2VydmVyLXByb2Nlc3MNCisgICAgKHNlcnZlci1l bnN1cmUtc2FmZS1kaXIgKGlmIHNlcnZlci11c2UtdGNwIHNlcnZlci1hdXRoLWRpciBzZXJ2ZXIt c29ja2V0LWRpcikpDQorICAgICh3aGVuIHNlcnZlci1wcm9jZXNzDQogCShzZXJ2ZXItbG9nICht ZXNzYWdlICJSZXN0YXJ0aW5nIHNlcnZlciIpKSkNCiAgICAgKGxldGYgKCgoZGVmYXVsdC1maWxl LW1vZGVzKSA/XDcwMCkpDQogICAgICAgKHNldHEgc2VydmVyLXByb2Nlc3MNCi0JICAgIChtYWtl LW5ldHdvcmstcHJvY2Vzcw0KLQkgICAgIDpuYW1lICJzZXJ2ZXIiIDpmYW1pbHkgJ2xvY2FsIDpz ZXJ2ZXIgdCA6bm9xdWVyeSB0DQotCSAgICAgOnNlcnZpY2UgKGV4cGFuZC1maWxlLW5hbWUgc2Vy dmVyLW5hbWUgc2VydmVyLXNvY2tldC1kaXIpDQotCSAgICAgOnNlbnRpbmVsICdzZXJ2ZXItc2Vu dGluZWwgOmZpbHRlciAnc2VydmVyLXByb2Nlc3MtZmlsdGVyDQorICAgICAgICAgICAgKGFwcGx5 ICMnbWFrZS1uZXR3b3JrLXByb2Nlc3MNCisgICAgICAgICAgICAgICAgICAgOm5hbWUgc2VydmVy LW5hbWUNCisgICAgICAgICAgICAgICAgICAgOnNlcnZlciB0DQorICAgICAgICAgICAgICAgICAg IDpub3F1ZXJ5IHQNCisgICAgICAgICAgICAgICAgICAgOnNlbnRpbmVsICdzZXJ2ZXItc2VudGlu ZWwNCisgICAgICAgICAgICAgICAgICAgOmZpbHRlciAnc2VydmVyLXByb2Nlc3MtZmlsdGVyDQog CSAgICAgOzsgV2UgbXVzdCByZWNlaXZlIGZpbGUgbmFtZXMgd2l0aG91dCBiZWluZyBkZWNvZGVk Lg0KIAkgICAgIDs7IFRob3NlIGFyZSBkZWNvZGVkIGJ5IHNlcnZlci1wcm9jZXNzLWZpbHRlciBh Y2NvcmRpbmcNCiAJICAgICA7OyB0byBmaWxlLW5hbWUtY29kaW5nLXN5c3RlbS4NCi0JICAgICA6 Y29kaW5nICdyYXctdGV4dCkpKSkpDQorICAgICAgICAgICAgICAgICAgIDpjb2RpbmcgJ3Jhdy10 ZXh0DQorICAgICAgICAgICAgICAgICAgIDs7IFRoZSByZXN0IG9mIHRoZSBhcmd1bWVudHMgZGVw ZW5kIG9uIHRoZSBraW5kIG9mIHNvY2tldCB1c2VkDQorICAgICAgICAgICAgICAgICAgIChpZiBz ZXJ2ZXItdXNlLXRjcA0KKyAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgOmZhbWlseSBuaWwN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpzZXJ2aWNlIHQNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDpob3N0IChvciBzZXJ2ZXItaG9zdCAnbG9jYWwpDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6cGxpc3QgJyg6YXV0aGVudGljYXRlZCBuaWwpKQ0KKyAgICAg ICAgICAgICAgICAgICAgIChsaXN0IDpmYW1pbHkgJ2xvY2FsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgOnNlcnZpY2UgKGV4cGFuZC1maWxlLW5hbWUgc2VydmVyLW5hbWUgc2VydmVyLXNv Y2tldC1kaXIpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgOnBsaXN0ICcoOmF1dGhlbnRp Y2F0ZWQgdCkpKSkpKQ0KKyAgICAodW5sZXNzIHNlcnZlci1wcm9jZXNzIChlcnJvciAiQ291bGQg bm90IHN0YXJ0IHNlcnZlciBwcm9jZXNzIikpDQorICAgICh3aGVuIHNlcnZlci11c2UtdGNwDQor ICAgICAgKHNldHEgc2VydmVyLWF1dGgta2V5DQorCSAgICAobG9vcA0KKyAgICAgICAgICAgICAg IDs7IFRoZSBhdXRoIGtleSBpcyBhIDY0LWJ5dGUgc3RyaW5nIG9mIHJhbmRvbSBjaGFycyBpbiB0 aGUgcmFuZ2UgYCEnLi5gficuDQorCSAgICAgICBmb3IgaSBiZWxvdyA2NA0KKwkgICAgICAgY29s bGVjdCAoKyAzMyAocmFuZG9tIDk0KSkgaW50byBhdXRoDQorCSAgICAgICBmaW5hbGx5IHJldHVy biAoY29uY2F0IGF1dGgpKSkNCisgICAgICAod2l0aC10ZW1wLWZpbGUgKGV4cGFuZC1maWxlLW5h bWUgc2VydmVyLW5hbWUgc2VydmVyLWF1dGgtZGlyKQ0KKyAgICAgICAgKHNldC1idWZmZXItbXVs dGlieXRlIG5pbCkNCisgICAgICAgIChzZXRxIGJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW0gJ25v LWNvbnZlcnNpb24pDQorICAgICAgICAoaW5zZXJ0IChmb3JtYXQtbmV0d29yay1hZGRyZXNzIChw cm9jZXNzLWNvbnRhY3Qgc2VydmVyLXByb2Nlc3MgOmxvY2FsKSkNCisgICAgICAgICAgICAgICAg IlxuIiBzZXJ2ZXItYXV0aC1rZXkpKSkpKQ0KIA0KIDs7OyMjI2F1dG9sb2FkDQpAQCAtMjkwLDEy ICszNTEsMjQgQEANCiAgIChzZXJ2ZXItc3RhcnQgKG5vdCBzZXJ2ZXItbW9kZSkpKQ0KIAwNCi0o ZGVmdW4gc2VydmVyLXByb2Nlc3MtZmlsdGVyIChwcm9jIHN0cmluZykNCisoZGVmdW4qIHNlcnZl ci1wcm9jZXNzLWZpbHRlciAocHJvYyBzdHJpbmcpDQogICAiUHJvY2VzcyBhIHJlcXVlc3QgZnJv bSB0aGUgc2VydmVyIHRvIGVkaXQgc29tZSBmaWxlcy4NCiBQUk9DIGlzIHRoZSBzZXJ2ZXIgcHJv Y2Vzcy4gIEZvcm1hdCBvZiBTVFJJTkcgaXMgXCJQQVRIIFBBVEggUEFUSC4uLiBcXG5cIi4iDQor ICA7OyBGaXJzdCB0aGluZ3MgZmlyc3Q6IGxldCdzIGNoZWNrIHRoZSBhdXRoZW50aWNhdGlvbg0K KyAgKHVubGVzcyAocHJvY2Vzcy1nZXQgcHJvYyA6YXV0aGVudGljYXRlZCkNCisgICAgKGlmIChh bmQgKHN0cmluZy1tYXRjaCAiLWF1dGggXFwoLio/XFwpXG4iIHN0cmluZykNCisgICAgICAgICAg ICAgKHN0cmluZz0gKG1hdGNoLXN0cmluZyAxIHN0cmluZykgc2VydmVyLWF1dGgta2V5KSkNCisg ICAgICAgIChwcm9nbg0KKyAgICAgICAgICAoc2V0cSBzdHJpbmcgKHN1YnN0cmluZyBzdHJpbmcg KG1hdGNoLWVuZCAwKSkpDQorICAgICAgICAgIChwcm9jZXNzLXB1dCBwcm9jIDphdXRoZW50aWNh dGVkIHQpDQorICAgICAgICAgIChzZXJ2ZXItbG9nICJBdXRoZW50aWNhdGlvbiBzdWNjZXNzZnVs IiBwcm9jKSkNCisgICAgICAoc2VydmVyLWxvZyAiQXV0aGVudGljYXRpb24gZmFpbGVkIiBwcm9j KQ0KKyAgICAgIChkZWxldGUtcHJvY2VzcyBwcm9jKQ0KKyAgICAgIDs7IFdlIHJldHVybiBpbW1l ZGlhdGVseQ0KKyAgICAgIChyZXR1cm4tZnJvbSBzZXJ2ZXItcHJvY2Vzcy1maWx0ZXIpKSkNCiAg IChzZXJ2ZXItbG9nIHN0cmluZyBwcm9jKQ0KLSAgKGxldCAoKHByZXYgKHByb2Nlc3MtZ2V0IHBy b2MgJ3ByZXZpb3VzLXN0cmluZykpKQ0KKyAgKGxldCAoKHByZXYgKHByb2Nlc3MtZ2V0IHByb2Mg OnByZXZpb3VzLXN0cmluZykpKQ0KICAgICAod2hlbiBwcmV2DQogICAgICAgKHNldHEgc3RyaW5n IChjb25jYXQgcHJldiBzdHJpbmcpKQ0KLSAgICAgIChwcm9jZXNzLXB1dCBwcm9jICdwcmV2aW91 cy1zdHJpbmcgbmlsKSkpDQorICAgICAgKHByb2Nlc3MtcHV0IHByb2MgOnByZXZpb3VzLXN0cmlu ZyBuaWwpKSkNCiAgIDs7IElmIHRoZSBpbnB1dCBpcyBtdWx0aXBsZSBsaW5lcywNCiAgIDs7IHBy b2Nlc3MgZWFjaCBsaW5lIGluZGl2aWR1YWxseS4NCkBAIC0zMDgsNSArMzgxLDUgQEANCiAJICAo ZmlsZXMgbmlsKQ0KIAkgIChsaW5lbm8gMSkNCi0JICAodG1wLWZyYW1lIG5pbCkgOyBTb21ldGlt ZXMgdXNlZCB0byBlbWJvZHkgdGhlIHNlbGVjdGVkIGRpc3BsYXkuDQorCSAgKHRtcC1mcmFtZSBu aWwpIDs7IFNvbWV0aW1lcyB1c2VkIHRvIGVtYm9keSB0aGUgc2VsZWN0ZWQgZGlzcGxheS4NCiAJ ICAoY29sdW1ubm8gMCkpDQogICAgICAgOzsgUmVtb3ZlIHRoaXMgbGluZSBmcm9tIFNUUklORy4N CkBAIC0zMzgsNiArNDExLDYgQEANCiAJICAgIChzZXRxIGFyZyAoc2VydmVyLXVucXVvdGUtYXJn IGFyZykpDQogCSAgICA7OyBOb3cgZGVjb2RlIHRoZSBmaWxlIG5hbWUgaWYgbmVjZXNzYXJ5Lg0K LQkgICAgKGlmIGNvZGluZy1zeXN0ZW0NCi0JCShzZXRxIGFyZyAoZGVjb2RlLWNvZGluZy1zdHJp bmcgYXJnIGNvZGluZy1zeXN0ZW0pKSkNCisJICAgICh3aGVuIGNvZGluZy1zeXN0ZW0NCisJICAg ICAgKHNldHEgYXJnIChkZWNvZGUtY29kaW5nLXN0cmluZyBhcmcgY29kaW5nLXN5c3RlbSkpKQ0K IAkgICAgKGlmIGV2YWwNCiAJCShsZXQqIChlcnJvcnANCkBAIC0zODQsMTcgKzQ1NywxNyBAQA0K ICAgICAgIDs7IGNhbGwgcG9wLXRvLWJ1ZmZlciBldGMuKSwgZGVsZXRlIGl0IHRvIGF2b2lkIHBy ZXNlcnZpbmcgdGhlDQogICAgICAgOzsgY29ubmVjdGlvbiBhZnRlciB0aGUgbGFzdCByZWFsIGZy YW1lIGlzIGRlbGV0ZWQuDQotICAgICAgKGlmIHRtcC1mcmFtZQ0KLQkgIChpZiAoZXEgKHNlbGVj dGVkLWZyYW1lKSB0bXAtZnJhbWUpDQotCSAgICAgIChzZXQtZnJhbWUtcGFyYW1ldGVyIHRtcC1m cmFtZSAndmlzaWJpbGl0eSB0KQ0KLQkgICAgKGRlbGV0ZS1mcmFtZSB0bXAtZnJhbWUpKSkpKQ0K KyAgICAgICh3aGVuIHRtcC1mcmFtZQ0KKwkoaWYgKGVxIChzZWxlY3RlZC1mcmFtZSkgdG1wLWZy YW1lKQ0KKwkgICAgKHNldC1mcmFtZS1wYXJhbWV0ZXIgdG1wLWZyYW1lICd2aXNpYmlsaXR5IHQp DQorCSAgKGRlbGV0ZS1mcmFtZSB0bXAtZnJhbWUpKSkpKQ0KICAgOzsgU2F2ZSBmb3IgbGF0ZXIg YW55IHBhcnRpYWwgbGluZSB0aGF0IHJlbWFpbnMuDQogICAod2hlbiAoPiAobGVuZ3RoIHN0cmlu ZykgMCkNCi0gICAgKHByb2Nlc3MtcHV0IHByb2MgJ3ByZXZpb3VzLXN0cmluZyBzdHJpbmcpKSkN CisgICAgKHByb2Nlc3MtcHV0IHByb2MgOnByZXZpb3VzLXN0cmluZyBzdHJpbmcpKSkNCiANCiAo ZGVmdW4gc2VydmVyLWdvdG8tbGluZS1jb2x1bW4gKGZpbGUtbGluZS1jb2wpDQogICAoZ290by1s aW5lIChudGggMSBmaWxlLWxpbmUtY29sKSkNCiAgIChsZXQgKChjb2x1bW4tbnVtYmVyIChudGgg MiBmaWxlLWxpbmUtY29sKSkpDQotICAgIChpZiAoPiBjb2x1bW4tbnVtYmVyIDApDQotCShtb3Zl LXRvLWNvbHVtbiAoMS0gY29sdW1uLW51bWJlcikpKSkpDQorICAgICh3aGVuICg+IGNvbHVtbi1u dW1iZXIgMCkNCisgICAgICAobW92ZS10by1jb2x1bW4gKDEtIGNvbHVtbi1udW1iZXIpKSkpKQ0K IA0KIChkZWZ1biBzZXJ2ZXItdmlzaXQtZmlsZXMgKGZpbGVzIGNsaWVudCAmb3B0aW9uYWwgbm93 YWl0KQ0KQEAgLTQ2OCwzMSArNTQxLDMxIEBADQogCSAgKHNldHEgc2VydmVyLWNsaWVudHMgKGRl bHEgY2xpZW50IHNlcnZlci1jbGllbnRzKSkpKQ0KICAgICAgIChzZXRxIG9sZC1jbGllbnRzIChj ZHIgb2xkLWNsaWVudHMpKSkNCi0gICAgKGlmIChhbmQgKGJ1ZmZlcnAgYnVmZmVyKSAoYnVmZmVy LW5hbWUgYnVmZmVyKSkNCi0JOzsgV2UgbWF5IG9yIG1heSBub3Qga2lsbCB0aGlzIGJ1ZmZlcjsN Ci0JOzsgaWYgd2UgZG8sIGRvIG5vdCBjYWxsIHNlcnZlci1idWZmZXItZG9uZSByZWN1cnNpdmVs eQ0KLQk7OyBmcm9tIGtpbGwtYnVmZmVyLWhvb2suDQotCShsZXQgKChzZXJ2ZXIta2lsbC1idWZm ZXItcnVubmluZyB0KSkNCi0JICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZmZXINCi0JICAgIChz ZXRxIHNlcnZlci1idWZmZXItY2xpZW50cyBuaWwpDQotCSAgICAocnVuLWhvb2tzICdzZXJ2ZXIt ZG9uZS1ob29rKSkNCi0JICA7OyBOb3RpY2Ugd2hldGhlciBzZXJ2ZXItZG9uZS1ob29rIGtpbGxl ZCB0aGUgYnVmZmVyLg0KLQkgIChpZiAobnVsbCAoYnVmZmVyLW5hbWUgYnVmZmVyKSkNCisgICAg KHdoZW4gKGFuZCAoYnVmZmVycCBidWZmZXIpIChidWZmZXItbmFtZSBidWZmZXIpKQ0KKyAgICAg IDs7IFdlIG1heSBvciBtYXkgbm90IGtpbGwgdGhpcyBidWZmZXI7DQorICAgICAgOzsgaWYgd2Ug ZG8sIGRvIG5vdCBjYWxsIHNlcnZlci1idWZmZXItZG9uZSByZWN1cnNpdmVseQ0KKyAgICAgIDs7 IGZyb20ga2lsbC1idWZmZXItaG9vay4NCisgICAgICAobGV0ICgoc2VydmVyLWtpbGwtYnVmZmVy LXJ1bm5pbmcgdCkpDQorCSh3aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcg0KKwkgIChzZXRxIHNl cnZlci1idWZmZXItY2xpZW50cyBuaWwpDQorCSAgKHJ1bi1ob29rcyAnc2VydmVyLWRvbmUtaG9v aykpDQorCTs7IE5vdGljZSB3aGV0aGVyIHNlcnZlci1kb25lLWhvb2sga2lsbGVkIHRoZSBidWZm ZXIuDQorCShpZiAobnVsbCAoYnVmZmVyLW5hbWUgYnVmZmVyKSkNCisJICAgIChzZXRxIGtpbGxl ZCB0KQ0KKwkgIDs7IERvbid0IGJvdGhlciBraWxsaW5nIG9yIGJ1cnlpbmcgdGhlIGJ1ZmZlcg0K KwkgIDs7IHdoZW4gd2UgYXJlIGNhbGxlZCBmcm9tIGtpbGwtYnVmZmVyLg0KKwkgICh1bmxlc3Mg Zm9yLWtpbGxpbmcNCisJICAgICh3aGVuIChhbmQgKG5vdCBraWxsZWQpDQorCQkgICAgICAgc2Vy dmVyLWtpbGwtbmV3LWJ1ZmZlcnMNCisJCSAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBidWZm ZXINCisJCQkgKG5vdCBzZXJ2ZXItZXhpc3RpbmctYnVmZmVyKSkpDQogCSAgICAgIChzZXRxIGtp bGxlZCB0KQ0KLQkgICAgOzsgRG9uJ3QgYm90aGVyIGtpbGxpbmcgb3IgYnVyeWluZyB0aGUgYnVm ZmVyDQotCSAgICA7OyB3aGVuIHdlIGFyZSBjYWxsZWQgZnJvbSBraWxsLWJ1ZmZlci4NCi0JICAg ICh1bmxlc3MgZm9yLWtpbGxpbmcNCi0JICAgICAgKHdoZW4gKGFuZCAobm90IGtpbGxlZCkNCi0J CQkgc2VydmVyLWtpbGwtbmV3LWJ1ZmZlcnMNCi0JCQkgKHdpdGgtY3VycmVudC1idWZmZXIgYnVm ZmVyDQotCQkJICAgKG5vdCBzZXJ2ZXItZXhpc3RpbmctYnVmZmVyKSkpDQotCQkoc2V0cSBraWxs ZWQgdCkNCi0JCShidXJ5LWJ1ZmZlciBidWZmZXIpDQotCQkoa2lsbC1idWZmZXIgYnVmZmVyKSkN Ci0JICAgICAgKHVubGVzcyBraWxsZWQNCi0JCShpZiAoc2VydmVyLXRlbXAtZmlsZS1wIGJ1ZmZl cikNCi0JCSAgICAocHJvZ24NCi0JCSAgICAgIChraWxsLWJ1ZmZlciBidWZmZXIpDQotCQkgICAg ICAoc2V0cSBraWxsZWQgdCkpDQotCQkgIChidXJ5LWJ1ZmZlciBidWZmZXIpKSkpKSkpDQorCSAg ICAgIChidXJ5LWJ1ZmZlciBidWZmZXIpDQorCSAgICAgIChraWxsLWJ1ZmZlciBidWZmZXIpKQ0K KwkgICAgKHVubGVzcyBraWxsZWQNCisJICAgICAgKGlmIChzZXJ2ZXItdGVtcC1maWxlLXAgYnVm ZmVyKQ0KKwkJICAocHJvZ24NCisJCSAgICAoa2lsbC1idWZmZXIgYnVmZmVyKQ0KKwkJICAgIChz ZXRxIGtpbGxlZCB0KSkNCisJCShidXJ5LWJ1ZmZlciBidWZmZXIpKSkpKSkpDQogICAgIChsaXN0 IG5leHQtYnVmZmVyIGtpbGxlZCkpKQ0KIA0KQEAgLTUyMSw4ICs1OTQsOCBAQA0KIAkgICAgICAo YnVmZmVyLWJhY2tlZC11cCBuaWwpKQ0KIAkgIChzYXZlLWJ1ZmZlcikpDQotICAgICAgKGlmIChh bmQgKGJ1ZmZlci1tb2RpZmllZC1wKQ0KLQkgICAgICAgYnVmZmVyLWZpbGUtbmFtZQ0KLQkgICAg ICAgKHktb3Itbi1wIChjb25jYXQgIlNhdmUgZmlsZSAiIGJ1ZmZlci1maWxlLW5hbWUgIj8gIikp KQ0KLQkgIChzYXZlLWJ1ZmZlcikpKQ0KKyAgICAgICh3aGVuIChhbmQgKGJ1ZmZlci1tb2RpZmll ZC1wKQ0KKwkJIGJ1ZmZlci1maWxlLW5hbWUNCisJCSAoeS1vci1uLXAgKGNvbmNhdCAiU2F2ZSBm aWxlICIgYnVmZmVyLWZpbGUtbmFtZSAiPyAiKSkpDQorCShzYXZlLWJ1ZmZlcikpKQ0KICAgICAo c2VydmVyLWJ1ZmZlci1kb25lIChjdXJyZW50LWJ1ZmZlcikpKSkNCiANCkBAIC01NDQsNiArNjE3 LDYgQEANCiAgICAgOzsgU2VlIGlmIGFueSBjbGllbnRzIGhhdmUgYW55IGJ1ZmZlcnMgdGhhdCBh cmUgc3RpbGwgYWxpdmUuDQogICAgICh3aGlsZSB0YWlsDQotICAgICAgKGlmIChtZW1xIHQgKG1h cGNhciAnc3RyaW5ncCAobWFwY2FyICdidWZmZXItbmFtZSAoY2RyIChjYXIgdGFpbCkpKSkpDQot CSAgKHNldHEgbGl2ZS1jbGllbnQgdCkpDQorICAgICAgKHdoZW4gKG1lbXEgdCAobWFwY2FyICdz dHJpbmdwIChtYXBjYXIgJ2J1ZmZlci1uYW1lIChjZHIgKGNhciB0YWlsKSkpKSkNCisJKHNldHEg bGl2ZS1jbGllbnQgdCkpDQogICAgICAgKHNldHEgdGFpbCAoY2RyIHRhaWwpKSkNCiAgICAgKG9y IChub3QgbGl2ZS1jbGllbnQpDQpAQCAtNjExLDYgKzY4NCw2IEBADQogCSAgICAgIDs7IFRoZSBi dWZmZXIgaXMgYWxyZWFkeSBkaXNwbGF5ZWQ6IGp1c3QgcmV1c2UgdGhlIHdpbmRvdy4NCiAJICAg ICAgKGxldCAoKGZyYW1lICh3aW5kb3ctZnJhbWUgd2luKSkpDQotCQkoaWYgKGVxIChmcmFtZS12 aXNpYmxlLXAgZnJhbWUpICdpY29uKQ0KLQkJICAgIChyYWlzZS1mcmFtZSBmcmFtZSkpDQorCQko d2hlbiAoZXEgKGZyYW1lLXZpc2libGUtcCBmcmFtZSkgJ2ljb24pDQorCQkgIChyYWlzZS1mcmFt ZSBmcmFtZSkpDQogCQkoc2VsZWN0LXdpbmRvdyB3aW4pDQogCQkoc2V0LWJ1ZmZlciBuZXh0LWJ1 ZmZlcikpDQpAQCAtNjIwLDkgKzY5Myw5IEBADQogCQkgICAoc2VsZWN0LXdpbmRvdyBzZXJ2ZXIt d2luZG93KSkNCiAJCSAgKChmcmFtZXAgc2VydmVyLXdpbmRvdykNCi0JCSAgIChpZiAobm90IChm cmFtZS1saXZlLXAgc2VydmVyLXdpbmRvdykpDQotCQkgICAgICAgKHNldHEgc2VydmVyLXdpbmRv dyAobWFrZS1mcmFtZSkpKQ0KKwkJICAgKHVubGVzcyAoZnJhbWUtbGl2ZS1wIHNlcnZlci13aW5k b3cpDQorCQkgICAgIChzZXRxIHNlcnZlci13aW5kb3cgKG1ha2UtZnJhbWUpKSkNCiAJCSAgIChz ZWxlY3Qtd2luZG93IChmcmFtZS1zZWxlY3RlZC13aW5kb3cgc2VydmVyLXdpbmRvdykpKSkNCi0J ICAgIChpZiAod2luZG93LW1pbmlidWZmZXItcCAoc2VsZWN0ZWQtd2luZG93KSkNCi0JCShzZWxl Y3Qtd2luZG93IChuZXh0LXdpbmRvdyBuaWwgJ25vbWluaSAwKSkpDQorCSAgICAod2hlbiAod2lu ZG93LW1pbmlidWZmZXItcCAoc2VsZWN0ZWQtd2luZG93KSkNCisJICAgICAgKHNlbGVjdC13aW5k b3cgKG5leHQtd2luZG93IG5pbCAnbm9taW5pIDApKSkNCiAJICAgIDs7IE1vdmUgdG8gYSBub24t ZGVkaWNhdGVkIHdpbmRvdywgaWYgd2UgaGF2ZSBvbmUuDQogCSAgICAod2hlbiAod2luZG93LWRl ZGljYXRlZC1wIChzZWxlY3RlZC13aW5kb3cpKQ0KSW5kZXg6IGxpYi1zcmMvZW1hY3NjbGllbnQu Yw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnNyb290L2VtYWNzL2VtYWNzL2xpYi1zcmMvZW1h Y3NjbGllbnQuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzcNCmRpZmYgLXUgLTIgLXIxLjc3 IGVtYWNzY2xpZW50LmMNCi0tLSBsaWItc3JjL2VtYWNzY2xpZW50LmMJMTggSnVsIDIwMDYgMTY6 MzM6NDUgLTAwMDAJMS43Nw0KKysrIGxpYi1zcmMvZW1hY3NjbGllbnQuYwkyOCBPY3QgMjAwNiAw MDowOToyNyAtMDAwMA0KQEAgLTI3LDkgKzI3LDE0IEBADQogI2VuZGlmDQogDQorI2lmZGVmIFdJ TkRPV1NOVA0KKyNkZWZpbmUgSEFWRV9TT0NLRVRTDQorI2RlZmluZSBOT19TT0NLRVRTX0lOX0ZJ TEVfU1lTVEVNDQorI2VuZGlmDQorDQogI3VuZGVmIHNpZ25hbA0KIA0KICNpbmNsdWRlIDxjdHlw ZS5oPg0KICNpbmNsdWRlIDxzdGRpby5oPg0KLSNpbmNsdWRlIDxnZXRvcHQuaD4NCisjaW5jbHVk ZSAiZ2V0b3B0LmgiDQogI2lmZGVmIEhBVkVfVU5JU1REX0gNCiAjaW5jbHVkZSA8dW5pc3RkLmg+ DQpAQCAtMzgsNiArNDMsMTAgQEANCiAjaWZkZWYgVk1TDQogIyBpbmNsdWRlICJ2bXMtcHdkLmgi DQotI2Vsc2UNCisjZWxzZSAvKiBub3QgVk1TICovDQorI2lmZGVmIFdJTkRPV1NOVA0KKyMgaW5j bHVkZSA8aW8uaD4NCisjZWxzZSAvKiBub3QgV0lORE9XU05UICovDQogIyBpbmNsdWRlIDxwd2Qu aD4NCisjZW5kaWYgLyogbm90IFdJTkRPV1NOVCAqLw0KICNlbmRpZiAvKiBub3QgVk1TICovDQog DQpAQCAtNDksNCArNTgsMTkgQEANCiAjZW5kaWYNCiAMDQorI2RlZmluZSBTRU5EX1NUUklORyhk YXRhKSAoc2VuZF90b19lbWFjcyAocywgKGRhdGEpKSkNCisjZGVmaW5lIFNFTkRfUVVPVEVEKGRh dGEpIChxdW90ZV9maWxlX25hbWUgKHMsIChkYXRhKSkpDQorDQorI2lmbmRlZiBFWElUX1NVQ0NF U1MNCisjZGVmaW5lIEVYSVRfU1VDQ0VTUyAwDQorI2VuZGlmDQorDQorI2lmbmRlZiBFWElUX0ZB SUxVUkUNCisjZGVmaW5lIEVYSVRfRkFJTFVSRSAxDQorI2VuZGlmDQorDQorI2lmbmRlZiBOT19S RVRVUk4NCisjZGVmaW5lIE5PX1JFVFVSTg0KKyNlbmRpZg0KKwwNCiAvKiBOYW1lIHVzZWQgdG8g aW52b2tlIHRoaXMgcHJvZ3JhbS4gICovDQogY2hhciAqcHJvZ25hbWU7DQpAQCAtNjgsNCArOTIs NyBAQA0KIGNoYXIgKnNvY2tldF9uYW1lID0gTlVMTDsNCiANCisvKiBJZiBub24tTlVMTCwgdGhl IGZpbGVuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBmaWxlLiAgKi8NCitjaGFyICpzZXJ2ZXJf ZmlsZSA9IE5VTEw7DQorDQogdm9pZCBwcmludF9oZWxwX2FuZF9leGl0ICgpIE5PX1JFVFVSTjsN CiANCkBAIC03OCw0ICsxMDUsNSBAQA0KICAgeyAiYWx0ZXJuYXRlLWVkaXRvciIsIHJlcXVpcmVk X2FyZ3VtZW50LCBOVUxMLCAnYScgfSwNCiAgIHsgInNvY2tldC1uYW1lIiwJcmVxdWlyZWRfYXJn dW1lbnQsIE5VTEwsICdzJyB9LA0KKyAgeyAic2VydmVyLWZpbGUiLAlyZXF1aXJlZF9hcmd1bWVu dCwgTlVMTCwgJ2YnIH0sDQogICB7ICJkaXNwbGF5IiwJcmVxdWlyZWRfYXJndW1lbnQsIE5VTEws ICdkJyB9LA0KICAgeyAwLCAwLCAwLCAwIH0NCkBAIC05MSw5ICsxMTksMTAgQEANCiB7DQogICBh bHRlcm5hdGVfZWRpdG9yID0gZ2V0ZW52ICgiQUxURVJOQVRFX0VESVRPUiIpOw0KKyAgc2VydmVy X2ZpbGUgPSBnZXRlbnYgKCJFTUFDU19TRVJWRVJfRklMRSIpOw0KIA0KICAgd2hpbGUgKDEpDQog ICAgIHsNCiAgICAgICBpbnQgb3B0ID0gZ2V0b3B0X2xvbmcgKGFyZ2MsIGFyZ3YsDQotCQkJICAg ICAiVkhuZWE6czpkOiIsIGxvbmdvcHRzLCAwKTsNCisJCQkgICAgICJWSG5lYTpzOmY6ZDoiLCBs b25nb3B0cywgMCk7DQogDQogICAgICAgaWYgKG9wdCA9PSBFT0YpDQpAQCAtMTE1LDQgKzE0NCw4 IEBADQogCSAgYnJlYWs7DQogDQorCWNhc2UgJ2YnOg0KKwkgIHNlcnZlcl9maWxlID0gb3B0YXJn Ow0KKwkgIGJyZWFrOw0KKw0KIAljYXNlICdkJzoNCiAJICBkaXNwbGF5ID0gb3B0YXJnOw0KQEAg LTE1Nyw3ICsxOTAsMTEgQEANCiAtbiwgLS1uby13YWl0ICAgICAgICAgICBEb24ndCB3YWl0IGZv ciB0aGUgc2VydmVyIHRvIHJldHVyblxuXA0KIC1lLCAtLWV2YWwgICAgICAgICAgICAgIEV2YWx1 YXRlIHRoZSBGSUxFIGFyZ3VtZW50cyBhcyBFTGlzcCBleHByZXNzaW9uc1xuXA0KLS1kLCAtLWRp c3BsYXk9RElTUExBWSAgIFZpc2l0IHRoZSBmaWxlIGluIHRoZSBnaXZlbiBkaXNwbGF5XG5cDQot LXMsIC0tc29ja2V0LW5hbWU9RklMRU5BTUVcblwNCi0gICAgICAgICAgICAgICAgICAgICAgICBT ZXQgdGhlIGZpbGVuYW1lIG9mIHRoZSBVTklYIHNvY2tldCBmb3IgY29tbXVuaWNhdGlvblxuXA0K Ky1kLCAtLWRpc3BsYXk9RElTUExBWSAgIFZpc2l0IHRoZSBmaWxlIGluIHRoZSBnaXZlbiBkaXNw bGF5XG4iDQorI2lmbmRlZiBOT19TT0NLRVRTX0lOX0ZJTEVfU1lTVEVNDQorIi1zLCAtLXNvY2tl dC1uYW1lPUZJTEVOQU1FXG5cDQorICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRoZSBmaWxl bmFtZSBvZiB0aGUgVU5JWCBzb2NrZXQgZm9yIGNvbW11bmljYXRpb25cbiINCisjZW5kaWYNCisi LWYsIC0tc2VydmVyLWZpbGU9RklMRU5BTUVcblwNCisJCQlTZXQgdGhlIGZpbGVuYW1lIG9mIHRo ZSBUQ1AgY29uZmlndXJhdGlvbiBmaWxlXG5cDQogLWEsIC0tYWx0ZXJuYXRlLWVkaXRvcj1FRElU T1JcblwNCiAgICAgICAgICAgICAgICAgICAgICAgICBFZGl0b3IgdG8gZmFsbGJhY2sgdG8gaWYg dGhlIHNlcnZlciBpcyBub3QgcnVubmluZ1xuXA0KQEAgLTE2NywxMiArMjA0LDExNiBAQA0KIH0N CiANCisMDQorLyoNCisgIFRyeSB0byBydW4gYSBkaWZmZXJlbnQgY29tbWFuZCwgb3IgLS1pZiBu byBhbHRlcm5hdGUgZWRpdG9yIGlzDQorICBkZWZpbmVkLS0gZXhpdCB3aXRoIGFuIGVycm9yY29k ZS4NCisqLw0KK3ZvaWQNCitmYWlsIChhcmdjLCBhcmd2KQ0KKyAgICAgaW50IGFyZ2M7DQorICAg ICBjaGFyICoqYXJndjsNCit7DQorICBpZiAoYWx0ZXJuYXRlX2VkaXRvcikNCisgICAgew0KKyAg ICAgIGludCBpID0gb3B0aW5kIC0gMTsNCisgICAgICBleGVjdnAgKGFsdGVybmF0ZV9lZGl0b3Is IGFyZ3YgKyBpKTsNCisgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczogZXJyb3IgZXhlY3V0aW5n IGFsdGVybmF0ZSBlZGl0b3IgXCIlc1wiXG4iLA0KKyAgICAgICAgICAgICAgIHByb2duYW1lLCBh bHRlcm5hdGVfZWRpdG9yKTsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAgICAgZnByaW50 ZiAoc3RkZXJyLCAiJXM6IE5vIHNvY2tldCBvciBhbHRlcm5hdGUgZWRpdG9yLiAgUGxlYXNlIHVz ZTpcblxuIg0KKyNpZiAhZGVmaW5lZCAoTk9fU09DS0VUU19JTl9GSUxFX1NZU1RFTSkNCisiXHQt LXNvY2tldC1uYW1lXG4iDQorI2VuZGlmDQorIlx0LS1zZXJ2ZXItZmlsZSAgICAgIChvciBlbnZp cm9ubWVudCB2YXJpYWJsZSBFTUFDU19TRVJWRVJfRklMRSlcblwNCitcdC0tYWx0ZXJuYXRlLWVk aXRvciAob3IgZW52aXJvbm1lbnQgdmFyaWFibGUgQUxURVJOQVRFX0VESVRPUilcbiIsDQorICAg ICAgICAgICAgICAgcHJvZ25hbWUpOw0KKyAgICB9DQorICBleGl0IChFWElUX0ZBSUxVUkUpOw0K K30NCisNCisMDQorI2lmICFkZWZpbmVkIChIQVZFX1NPQ0tFVFMpDQorDQoraW50DQorbWFpbiAo YXJnYywgYXJndikNCisgICAgIGludCBhcmdjOw0KKyAgICAgY2hhciAqKmFyZ3Y7DQorew0KKyAg ZnByaW50ZiAoc3RkZXJyLCAiJXM6IFNvcnJ5LCB0aGUgRW1hY3Mgc2VydmVyIGlzIHN1cHBvcnRl ZCBvbmx5XG4iLA0KKwkgICBhcmd2WzBdKTsNCisgIGZwcmludGYgKHN0ZGVyciwgIm9uIHN5c3Rl bXMgd2l0aCBCZXJrZWxleSBzb2NrZXRzLlxuIik7DQorDQorICBmYWlsIChhcmdjLCBhcmd2KTsN Cit9DQorDQorI2Vsc2UgLyogSEFWRV9TT0NLRVRTICovDQorDQorI2lmZGVmIFdJTkRPV1NOVA0K KyMgaW5jbHVkZSA8d2luc29jazIuaD4NCisjZWxzZQ0KKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ DQorIyBpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQorIyBpbmNsdWRlIDxzeXMvdW4uaD4NCisjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+DQorIyBpbmNsdWRlIDxlcnJuby5oPg0KKyNlbmRpZg0KKw0KKyNk ZWZpbmUgQVVUSF9LRVlfTEVOR1RIICAgICAgNjQNCisjZGVmaW5lIFNFTkRfQlVGRkVSX1NJWkUg ICA0MDk2DQorDQorZXh0ZXJuIGNoYXIgKnN0cmVycm9yICgpOw0KK2V4dGVybiBpbnQgZXJybm87 DQorDQorLyogQnVmZmVyIHRvIGFjY3VtdWxhdGUgZGF0YSB0byBzZW5kIGluIFRDUCBjb25uZWN0 aW9ucy4gICovDQorY2hhciBzZW5kX2J1ZmZlcltTRU5EX0JVRkZFUl9TSVpFICsgMV07DQoraW50 IHNibGVuID0gMDsJLyogRmlsbCBwb2ludGVyIGZvciB0aGUgc2VuZCBidWZmZXIuICAqLw0KKw0K Ky8qIExldCdzIHNlbmQgdGhlIGRhdGEgdG8gRW1hY3Mgd2hlbiBlaXRoZXINCisgICAtIHRoZSBk YXRhIGVuZHMgaW4gIlxuIiwgb3INCisgICAtIHRoZSBidWZmZXIgaXMgZnVsbCAoYnV0IHRoaXMg c2hvdWxkbid0IGhhcHBlbikNCisgICBPdGhlcndpc2UsIHdlIGp1c3QgYWNjdW11bGF0ZSBpdC4g ICovDQordm9pZCBzZW5kX3RvX2VtYWNzIChzLCBkYXRhKQ0KKyAgICAgU09DS0VUIHM7DQorICAg ICBjaGFyICpkYXRhOw0KK3sNCisgIHdoaWxlIChkYXRhKQ0KKyAgICB7DQorICAgICAgaW50IGRs ZW4gPSBzdHJsZW4gKGRhdGEpOw0KKyAgICAgIGlmIChkbGVuICsgc2JsZW4gPj0gU0VORF9CVUZG RVJfU0laRSkNCisJew0KKwkgIGludCBwYXJ0ID0gU0VORF9CVUZGRVJfU0laRSAtIHNibGVuOw0K KwkgIHN0cm5jcHkgKCZzZW5kX2J1ZmZlcltzYmxlbl0sIGRhdGEsIHBhcnQpOw0KKwkgIGRhdGEg Kz0gcGFydDsNCisJICBzYmxlbiA9IFNFTkRfQlVGRkVSX1NJWkU7DQorCX0NCisgICAgICBlbHNl IGlmIChkbGVuKQ0KKwl7DQorCSAgc3RyY3B5ICgmc2VuZF9idWZmZXJbc2JsZW5dLCBkYXRhKTsN CisJICBkYXRhID0gTlVMTDsNCisJICBzYmxlbiArPSBkbGVuOw0KKwl9DQorICAgICAgZWxzZQ0K KwlicmVhazsNCisNCisgICAgICBpZiAoc2JsZW4gPT0gU0VORF9CVUZGRVJfU0laRQ0KKwkgIHx8 IChzYmxlbiA+IDAgJiYgc2VuZF9idWZmZXJbc2JsZW4tMV0gPT0gJ1xuJykpDQorCXsNCisJICBp bnQgc2VudCA9IHNlbmQgKHMsIHNlbmRfYnVmZmVyLCBzYmxlbiwgMCk7DQorCSAgaWYgKHNlbnQg IT0gc2JsZW4pDQorCSAgICBzdHJjcHkgKHNlbmRfYnVmZmVyLCAmc2VuZF9idWZmZXJbc2VudF0p Ow0KKwkgIHNibGVuIC09IHNlbnQ7DQorCX0NCisgICAgfQ0KK30NCisNCiAvKiBJbiBOQU1FLCBp bnNlcnQgYSAmIGJlZm9yZSBlYWNoICYsIGVhY2ggc3BhY2UsIGVhY2ggbmV3bGluZSwgYW5kDQog ICAgYW55IGluaXRpYWwgLS4gIENoYW5nZSBzcGFjZXMgdG8gdW5kZXJzY29yZXMsIHRvbywgc28g dGhhdCB0aGUNCiAgICByZXR1cm4gdmFsdWUgbmV2ZXIgY29udGFpbnMgYSBzcGFjZS4gICovDQot DQogdm9pZA0KLXF1b3RlX2ZpbGVfbmFtZSAobmFtZSwgc3RyZWFtKQ0KK3F1b3RlX2ZpbGVfbmFt ZSAocywgbmFtZSkNCisgICAgIFNPQ0tFVCBzOw0KICAgICAgY2hhciAqbmFtZTsNCi0gICAgIEZJ TEUgKnN0cmVhbTsNCiB7DQogICBjaGFyICpjb3B5ID0gKGNoYXIgKikgbWFsbG9jIChzdHJsZW4g KG5hbWUpICogMiArIDEpOw0KQEAgLTIwNCw3MSArMzQ1LDE0MCBAQA0KICAgKnErKyA9IDA7DQog DQotICBmcHJpbnRmIChzdHJlYW0sICIlcyIsIGNvcHkpOw0KKyAgU0VORF9TVFJJTkcgKGNvcHkp Ow0KIA0KICAgZnJlZSAoY29weSk7DQogfQ0KIA0KLS8qIExpa2UgbWFsbG9jIGJ1dCBnZXQgZmF0 YWwgZXJyb3IgaWYgbWVtb3J5IGlzIGV4aGF1c3RlZC4gICovDQorI2lmZGVmIFdJTkRPV1NOVA0K Ky8qIFdyYXBwZXIgdG8gbWFrZSBXU0FDbGVhbnVwIGEgY2RlY2wsIGFzIHJlcXVpcmVkIGJ5IGF0 ZXhpdCgpLgkgKi8NCit2b2lkIGNsb3NlX3dpbnNvY2sgKCkNCit7DQorICBXU0FDbGVhbnVwICgp Ow0KK30NCisjZW5kaWYgLyogV0lORE9XU05UICovDQogDQotbG9uZyAqDQoteG1hbGxvYyAoc2l6 ZSkNCi0gICAgIHVuc2lnbmVkIGludCBzaXplOw0KK3ZvaWQgaW5pdGlhbGl6ZV9zb2NrZXRzICgp DQogew0KLSAgbG9uZyAqcmVzdWx0ID0gKGxvbmcgKikgbWFsbG9jIChzaXplKTsNCi0gIGlmIChy ZXN1bHQgPT0gTlVMTCkNCi0gIHsNCi0gICAgcGVycm9yICgibWFsbG9jIik7DQotICAgIGV4aXQg KEVYSVRfRkFJTFVSRSk7DQotICB9DQotICByZXR1cm4gcmVzdWx0Ow0KKyNpZmRlZiBXSU5ET1dT TlQNCisgIFdTQURBVEEgd3NhRGF0YTsNCisNCisgIC8qIEluaXRpYWxpemUgdGhlIFdpblNvY2sy IGxpYnJhcnkuICAqLw0KKyAgaWYgKFdTQVN0YXJ0dXAgKE1BS0VXT1JEICgyLCAwKSwgJndzYURh dGEpKQ0KKyAgICB7DQorICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IGVycm9yIGluaXRpYWxp emluZyBXaW5Tb2NrMiIsIHByb2duYW1lKTsNCisgICAgICBleGl0IChFWElUX0ZBSUxVUkUpOw0K KyAgICB9DQorDQorICBhdGV4aXQgKGNsb3NlX3dpbnNvY2spOw0KKyNlbmRpZiAvKiBXSU5ET1dT TlQgKi8NCiB9DQogDA0KIC8qDQotICBUcnkgdG8gcnVuIGEgZGlmZmVyZW50IGNvbW1hbmQsIG9y IC0taWYgbm8gYWx0ZXJuYXRlIGVkaXRvciBpcw0KLSAgZGVmaW5lZC0tIGV4aXQgd2l0aCBhbiBl cnJvcmNvZGUuDQorICogUmVhZCB0aGUgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHNldCB1cCBhIFRD UCBjb21tIGNoYW5uZWwgd2l0aA0KKyAqIHRoZSBFbWFjcyBzZXJ2ZXI6IGhvc3QsIHBvcnQgYW5k IGF1dGhlbnRpY2F0aW9uIHN0cmluZy4NCiAqLw0KLXZvaWQNCi1mYWlsIChhcmdjLCBhcmd2KQ0K LSAgICAgaW50IGFyZ2M7DQotICAgICBjaGFyICoqYXJndjsNCit2b2lkIGdldF9zZXJ2ZXJfY29u ZmlnIChzZXJ2ZXIsIGF1dGhlbnRpY2F0aW9uKQ0KKyAgICAgc3RydWN0IHNvY2thZGRyX2luICpz ZXJ2ZXI7DQorICAgICBjaGFyICphdXRoZW50aWNhdGlvbjsNCiB7DQotICBpZiAoYWx0ZXJuYXRl X2VkaXRvcikNCisgIEZJTEUgKmNvbmZpZzsNCisgIGNoYXIgZG90dGVkWzMyXTsNCisgIGNoYXIg KnBvcnQ7DQorDQorICBpZiAoISAoY29uZmlnID0gZm9wZW4gKHNlcnZlcl9maWxlLCAicmIiKSkp DQorICAgIHsNCisgICAgICBjaGFyICpob21lID0gZ2V0ZW52ICgiSE9NRSIpOw0KKyNpZmRlZiBX SU5ET1dTTlQNCisgICAgICBpZiAoISBob21lKQ0KKyAgICAgICAgICBob21lID0gZ2V0ZW52ICgi QVBQREFUQSIpOw0KKyNlbmRpZg0KKyAgICAgIGlmIChob21lKQ0KKyAgICAgICAgew0KKyAgICAg ICAgICBjaGFyICpwYXRoID0gYWxsb2NhICgzMiArIHN0cmxlbiAoaG9tZSkgKyBzdHJsZW4gKHNl cnZlcl9maWxlKSk7DQorICAgICAgICAgIHNwcmludGYgKHBhdGgsICIlcy8uZW1hY3MuZC9zZXJ2 ZXIvJXMiLCBob21lLCBzZXJ2ZXJfZmlsZSk7DQorICAgICAgICAgIGNvbmZpZyA9IGZvcGVuIChw YXRoLCAicmIiKTsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgaWYgKCEgY29uZmlnKQ0KICAg ICB7DQotICAgICAgaW50IGkgPSBvcHRpbmQgLSAxOw0KLSAgICAgIGV4ZWN2cCAoYWx0ZXJuYXRl X2VkaXRvciwgYXJndiArIGkpOw0KLSAgICAgIHJldHVybjsNCisgICAgICBmcHJpbnRmIChzdGRl cnIsICIlczogY2Fubm90IHJlYWQgY29uZmlndXJhdGlvbiBmaWxlICVzIiwNCisgICAgICAgICAg ICAgICBwcm9nbmFtZSwgc2VydmVyX2ZpbGUpOw0KKyAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7 DQorICAgIH0NCisNCisgIGlmIChmZ2V0cyAoZG90dGVkLCBzaXplb2YgZG90dGVkLCBjb25maWcp DQorICAgICAgJiYgKHBvcnQgPSBzdHJjaHIgKGRvdHRlZCwgJzonKSkpDQorICAgIHsNCisgICAg ICAqcG9ydCsrID0gJ1wwJzsNCiAgICAgfQ0KICAgZWxzZQ0KICAgICB7DQorICAgICAgZnByaW50 ZiAoc3RkZXJyLCAiJXM6IGludmFsaWQgY29uZmlndXJhdGlvbiBpbmZvIiwgcHJvZ25hbWUpOw0K ICAgICAgIGV4aXQgKEVYSVRfRkFJTFVSRSk7DQogICAgIH0NCi19DQogDQorICBzZXJ2ZXItPnNp bl9mYW1pbHkgPSBBRl9JTkVUOw0KKyAgc2VydmVyLT5zaW5fYWRkci5zX2FkZHIgPSBpbmV0X2Fk ZHIgKGRvdHRlZCk7DQorICBzZXJ2ZXItPnNpbl9wb3J0ID0gaHRvbnMgKGF0b2kgKHBvcnQpKTsN CiANCi0MDQotI2lmICFkZWZpbmVkIChIQVZFX1NPQ0tFVFMpIHx8IGRlZmluZWQgKE5PX1NPQ0tF VFNfSU5fRklMRV9TWVNURU0pDQorICBpZiAoISBmcmVhZCAoYXV0aGVudGljYXRpb24sIEFVVEhf S0VZX0xFTkdUSCwgMSwgY29uZmlnKSkNCisgICAgew0KKyAgICAgIGZwcmludGYgKHN0ZGVyciwg IiVzOiBjYW5ub3QgcmVhZCBhdXRoZW50aWNhdGlvbiBpbmZvIiwgcHJvZ25hbWUpOw0KKyAgICAg IGV4aXQgKEVYSVRfRkFJTFVSRSk7DQorICAgIH0NCiANCi1pbnQNCi1tYWluIChhcmdjLCBhcmd2 KQ0KLSAgICAgaW50IGFyZ2M7DQotICAgICBjaGFyICoqYXJndjsNCisgIGZjbG9zZSAoY29uZmln KTsNCit9DQorDQorU09DS0VUDQorc2V0X3RjcF9zb2NrZXQgKCkNCiB7DQotICBmcHJpbnRmIChz dGRlcnIsICIlczogU29ycnksIHRoZSBFbWFjcyBzZXJ2ZXIgaXMgc3VwcG9ydGVkIG9ubHlcbiIs DQotCSAgIGFyZ3ZbMF0pOw0KLSAgZnByaW50ZiAoc3RkZXJyLCAib24gc3lzdGVtcyB3aXRoIEJl cmtlbGV5IHNvY2tldHMuXG4iKTsNCisgIFNPQ0tFVCBzOw0KKyAgc3RydWN0IHNvY2thZGRyX2lu IHNlcnZlcjsNCisgIHVuc2lnbmVkIGxvbmcgY19hcmcgPSAwOw0KKyAgc3RydWN0IGxpbmdlciBs X2FyZyA9IHsxLCAxfTsNCisgIGNoYXIgYXV0aF9zdHJpbmdbQVVUSF9LRVlfTEVOR1RIICsgMV07 DQogDQotICBmYWlsIChhcmdjLCBhcmd2KTsNCi19DQorICBpbml0aWFsaXplX3NvY2tldHMgKCk7 DQogDQotI2Vsc2UgLyogSEFWRV9TT0NLRVRTICovDQorICBnZXRfc2VydmVyX2NvbmZpZyAoJnNl cnZlciwgYXV0aF9zdHJpbmcpOw0KKw0KKyAgLyoNCisgICAqIE9wZW4gdXAgYW4gQUZfSU5FVCBz b2NrZXQNCisgICAqLw0KKyAgaWYgKChzID0gc29ja2V0IChBRl9JTkVULCBTT0NLX1NUUkVBTSwg SVBQUk9UT19UQ1ApKSA8IDApDQorICAgIHsNCisgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczog IiwgcHJvZ25hbWUpOw0KKyAgICAgIHBlcnJvciAoInNvY2tldCIpOw0KKyAgICAgIHJldHVybiBJ TlZBTElEX1NPQ0tFVDsNCisgICAgfQ0KKw0KKyAgLyoNCisgICAqIFNldCB1cCB0aGUgc29ja2V0 DQorICAgKi8NCisgIGlmIChjb25uZWN0IChzLCAoc3RydWN0IHNvY2thZGRyICopICZzZXJ2ZXIs IHNpemVvZiBzZXJ2ZXIpIDwgMCkNCisgICAgew0KKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVz OiAiLCBwcm9nbmFtZSk7DQorICAgICAgcGVycm9yICgiY29ubmVjdCIpOw0KKyAgICAgIHJldHVy biBJTlZBTElEX1NPQ0tFVDsNCisgICAgfQ0KIA0KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCi0j aW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KLSNpbmNsdWRlIDxzeXMvdW4uaD4NCi0jaW5jbHVkZSA8 c3lzL3N0YXQuaD4NCi0jaW5jbHVkZSA8ZXJybm8uaD4NCisgIGlvY3Rsc29ja2V0IChzLCBGSU9O QklPLCAmY19hcmcpOw0KKyAgc2V0c29ja29wdCAocywgU09MX1NPQ0tFVCwgU09fTElOR0VSLCAo Y2hhciAqKSAmbF9hcmcsIHNpemVvZiBsX2FyZyk7DQogDQotZXh0ZXJuIGNoYXIgKnN0cmVycm9y ICgpOw0KLWV4dGVybiBpbnQgZXJybm87DQorICAvKg0KKyAgICogU2VuZCB0aGUgYXV0aGVudGlj YXRpb24NCisgICAqLw0KKyAgYXV0aF9zdHJpbmdbQVVUSF9LRVlfTEVOR1RIXSA9ICdcMCc7DQor DQorICBTRU5EX1NUUklORyAoIi1hdXRoICIpOw0KKyAgU0VORF9TVFJJTkcgKGF1dGhfc3RyaW5n KTsNCisgIFNFTkRfU1RSSU5HICgiXG4iKTsNCisNCisgIHJldHVybiBzOw0KK30NCisNCisjaWYg IWRlZmluZWQgKE5PX1NPQ0tFVFNfSU5fRklMRV9TWVNURU0pDQogDQogLyogVGhyZWUgcG9zc2li aWxpdGllczoNCkBAIC0yOTIsMjYgKzUwMiw5IEBADQogfQ0KIA0KLWludA0KLW1haW4gKGFyZ2Ms IGFyZ3YpDQotICAgICBpbnQgYXJnYzsNCi0gICAgIGNoYXIgKiphcmd2Ow0KK1NPQ0tFVA0KK3Nl dF9sb2NhbF9zb2NrZXQgKCkNCiB7DQotICBpbnQgcywgaSwgbmVlZGxmID0gMDsNCi0gIEZJTEUg Km91dCwgKmluOw0KKyAgU09DS0VUIHM7DQogICBzdHJ1Y3Qgc29ja2FkZHJfdW4gc2VydmVyOw0K LSAgY2hhciAqY3dkLCAqc3RyOw0KLSAgY2hhciBzdHJpbmdbQlVGU0laXTsNCi0NCi0gIHByb2du YW1lID0gYXJndlswXTsNCi0NCi0gIC8qIFByb2Nlc3Mgb3B0aW9ucy4gICovDQotICBkZWNvZGVf b3B0aW9ucyAoYXJnYywgYXJndik7DQotDQotICBpZiAoKGFyZ2MgLSBvcHRpbmQgPCAxKSAmJiAh ZXZhbCkNCi0gICAgew0KLSAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiBmaWxlIG5hbWUgb3Ig YXJndW1lbnQgcmVxdWlyZWRcbiIsIHByb2duYW1lKTsNCi0gICAgICBmcHJpbnRmIChzdGRlcnIs ICJUcnkgYCVzIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb25cbiIsIHByb2duYW1lKTsNCi0g ICAgICBleGl0IChFWElUX0ZBSUxVUkUpOw0KLSAgICB9DQogDQogICAvKg0KQEAgLTMyMSw3ICs1 MTQsNyBAQA0KICAgaWYgKChzID0gc29ja2V0IChBRl9VTklYLCBTT0NLX1NUUkVBTSwgMCkpIDwg MCkNCiAgICAgew0KLSAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiAiLCBhcmd2WzBdKTsNCisg ICAgICBmcHJpbnRmIChzdGRlcnIsICIlczogIiwgcHJvZ25hbWUpOw0KICAgICAgIHBlcnJvciAo InNvY2tldCIpOw0KLSAgICAgIGZhaWwgKGFyZ2MsIGFyZ3YpOw0KKyAgICAgIHJldHVybiBJTlZB TElEX1NPQ0tFVDsNCiAgICAgfQ0KIA0KQEAgLTM1Myw1ICs1NDYsNSBAQA0KICAgICAgIHsNCiAJ ZnByaW50ZiAoc3RkZXJyLCAiJXM6IHNvY2tldC1uYW1lICVzIHRvbyBsb25nIiwNCi0JCSBhcmd2 WzBdLCBzb2NrZXRfbmFtZSk7DQorCQkgcHJvZ25hbWUsIHNvY2tldF9uYW1lKTsNCiAJZXhpdCAo RVhJVF9GQUlMVVJFKTsNCiAgICAgICB9DQpAQCAtMzg4LDUgKzU4MSw1IEBADQogCQkgIHsNCiAJ CSAgICBmcHJpbnRmIChzdGRlcnIsICIlczogc29ja2V0LW5hbWUgJXMgdG9vIGxvbmciLA0KLQkJ CSAgICAgYXJndlswXSwgc29ja2V0X25hbWUpOw0KKwkJCSAgICAgcHJvZ25hbWUsIHNvY2tldF9u YW1lKTsNCiAJCSAgICBleGl0IChFWElUX0ZBSUxVUkUpOw0KIAkJICB9DQpAQCAtNDAwLDI5ICs1 OTMsMjggQEANCiAgICAgICB9DQogDQotICAgICBzd2l0Y2ggKHNvY2tfc3RhdHVzKQ0KLSAgICAg ICB7DQotICAgICAgIGNhc2UgMToNCi0JIC8qIFRoZXJlJ3MgYSBzb2NrZXQsIGJ1dCBpdCBpc24n dCBvd25lZCBieSB1cy4gIFRoaXMgaXMgT0sgaWYNCi0JICAgIHdlIGFyZSByb290LiAqLw0KLQkg aWYgKDAgIT0gZ2V0ZXVpZCAoKSkNCi0JICAgew0KLQkgICAgIGZwcmludGYgKHN0ZGVyciwgIiVz OiBJbnZhbGlkIHNvY2tldCBvd25lclxuIiwgYXJndlswXSk7DQotCSAgICAgZmFpbCAoYXJnYywg YXJndik7DQotCSAgIH0NCi0JIGJyZWFrOw0KLQ0KLSAgICAgICBjYXNlIDI6DQotCSAvKiBgc3Rh dCcgZmFpbGVkICovDQotCSBpZiAoc2F2ZWRfZXJybm8gPT0gRU5PRU5UKQ0KLQkgICBmcHJpbnRm IChzdGRlcnIsDQotCQkgICAgIiVzOiBjYW4ndCBmaW5kIHNvY2tldDsgaGF2ZSB5b3Ugc3RhcnRl ZCB0aGUgc2VydmVyP1xuXA0KKyAgICBzd2l0Y2ggKHNvY2tfc3RhdHVzKQ0KKyAgICAgIHsNCisg ICAgICBjYXNlIDE6DQorICAgICAgICAvKiBUaGVyZSdzIGEgc29ja2V0LCBidXQgaXQgaXNuJ3Qg b3duZWQgYnkgdXMuICBUaGlzIGlzIE9LIGlmDQorICAgICAgICAgICB3ZSBhcmUgcm9vdC4gKi8N CisgICAgICAgIGlmICgwICE9IGdldGV1aWQgKCkpDQorICAgICAgICAgIHsNCisgICAgICAgICAg ICBmcHJpbnRmIChzdGRlcnIsICIlczogSW52YWxpZCBzb2NrZXQgb3duZXJcbiIsIGFyZ3ZbMF0p Ow0KKwkgICAgcmV0dXJuIElOVkFMSURfU09DS0VUOw0KKyAgICAgICAgICB9DQorICAgICAgICBi cmVhazsNCisNCisgICAgICBjYXNlIDI6DQorICAgICAgICAvKiBgc3RhdCcgZmFpbGVkICovDQor ICAgICAgICBpZiAoc2F2ZWRfZXJybm8gPT0gRU5PRU5UKQ0KKyAgICAgICAgICBmcHJpbnRmIChz dGRlcnIsDQorICAgICAgICAgICAgICAgICAgICIlczogY2FuJ3QgZmluZCBzb2NrZXQ7IGhhdmUg eW91IHN0YXJ0ZWQgdGhlIHNlcnZlcj9cblwNCiBUbyBzdGFydCB0aGUgc2VydmVyIGluIEVtYWNz LCB0eXBlIFwiTS14IHNlcnZlci1zdGFydFwiLlxuIiwNCi0JCSAgICBhcmd2WzBdKTsNCi0JIGVs c2UNCi0JICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IGNhbid0IHN0YXQgJXM6ICVzXG4iLA0KLQkJ ICAgIGFyZ3ZbMF0sIHNlcnZlci5zdW5fcGF0aCwgc3RyZXJyb3IgKHNhdmVkX2Vycm5vKSk7DQot CSBmYWlsIChhcmdjLCBhcmd2KTsNCi0JIGJyZWFrOw0KLSAgICAgICB9DQorCQkgICBwcm9nbmFt ZSk7DQorICAgICAgICBlbHNlDQorICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiBjYW4n dCBzdGF0ICVzOiAlc1xuIiwNCisJCSAgIHByb2duYW1lLCBzZXJ2ZXIuc3VuX3BhdGgsIHN0cmVy cm9yIChzYXZlZF9lcnJubykpOw0KKwlyZXR1cm4gSU5WQUxJRF9TT0NLRVQ7DQorICAgICAgfQ0K ICAgfQ0KIA0KQEAgLTQzMCwyOSArNjIyLDU0IEBADQogICAgICAgPCAwKQ0KICAgICB7DQotICAg ICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6ICIsIGFyZ3ZbMF0pOw0KKyAgICAgIGZwcmludGYgKHN0 ZGVyciwgIiVzOiAiLCBwcm9nbmFtZSk7DQogICAgICAgcGVycm9yICgiY29ubmVjdCIpOw0KLSAg ICAgIGZhaWwgKGFyZ2MsIGFyZ3YpOw0KKyAgICAgIHJldHVybiBJTlZBTElEX1NPQ0tFVDsNCiAg ICAgfQ0KIA0KLSAgLyogV2UgdXNlIHRoZSBzdHJlYW0gT1VUIHRvIHNlbmQgb3VyIGNvbW1hbmQg dG8gdGhlIHNlcnZlci4gICovDQotICBpZiAoKG91dCA9IGZkb3BlbiAocywgInIrIikpID09IE5V TEwpDQorICByZXR1cm4gczsNCit9DQorI2VuZGlmIC8qICEgTk9fU09DS0VUU19JTl9GSUxFX1NZ U1RFTSAqLw0KKw0KK1NPQ0tFVA0KK3NldF9zb2NrZXQgKCkNCit7DQorICBpZiAoc2VydmVyX2Zp bGUpDQorICAgIHJldHVybiBzZXRfdGNwX3NvY2tldCAoKTsNCisgIGVsc2UNCisjaWZuZGVmIE5P X1NPQ0tFVFNfSU5fRklMRV9TWVNURU0NCisgICAgcmV0dXJuIHNldF9sb2NhbF9zb2NrZXQgKCk7 DQorI2Vsc2UNCiAgICAgew0KLSAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiAiLCBhcmd2WzBd KTsNCi0gICAgICBwZXJyb3IgKCJmZG9wZW4iKTsNCi0gICAgICBmYWlsIChhcmdjLCBhcmd2KTsN CisgICAgICBzZXJ2ZXJfZmlsZSA9ICJzZXJ2ZXIiOw0KKyAgICAgIHJldHVybiBzZXRfdGNwX3Nv Y2tldCAoKTsNCiAgICAgfQ0KKyNlbmRpZg0KK30NCiANCi0gIC8qIFdlIHVzZSB0aGUgc3RyZWFt IElOIHRvIHJlYWQgdGhlIHJlc3BvbnNlLg0KLSAgICAgV2UgdXNlZCB0byB1c2UganVzdCBvbmUg c3RyZWFtIGZvciBib3RoIG91dHB1dCBhbmQgaW5wdXQNCi0gICAgIG9uIHRoZSBzb2NrZXQsIGJ1 dCByZXZlcnNpbmcgZGlyZWN0aW9uIHdvcmtzIG5vbnBvcnRhYmx5Og0KLSAgICAgb24gc29tZSBz eXN0ZW1zLCB0aGUgb3V0cHV0IGFwcGVhcnMgYXMgdGhlIGZpcnN0IGlucHV0Ow0KLSAgICAgb24g b3RoZXIgc3lzdGVtcyBpdCBkb2VzIG5vdC4gICovDQotICBpZiAoKGluID0gZmRvcGVuIChzLCAi cisiKSkgPT0gTlVMTCkNCitpbnQNCittYWluIChhcmdjLCBhcmd2KQ0KKyAgICAgaW50IGFyZ2M7 DQorICAgICBjaGFyICoqYXJndjsNCit7DQorICBTT0NLRVQgczsNCisgIGludCBpLCBybCwgbmVl ZGxmID0gMDsNCisgIGNoYXIgKmN3ZDsNCisgIGNoYXIgc3RyaW5nW0JVRlNJWisxXTsNCisNCisg IHByb2duYW1lID0gYXJndlswXTsNCisNCisgIC8qIFByb2Nlc3Mgb3B0aW9ucy4gICovDQorICBk ZWNvZGVfb3B0aW9ucyAoYXJnYywgYXJndik7DQorDQorICBpZiAoKGFyZ2MgLSBvcHRpbmQgPCAx KSAmJiAhZXZhbCkNCiAgICAgew0KLSAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiAiLCBhcmd2 WzBdKTsNCi0gICAgICBwZXJyb3IgKCJmZG9wZW4iKTsNCi0gICAgICBmYWlsIChhcmdjLCBhcmd2 KTsNCisgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczogZmlsZSBuYW1lIG9yIGFyZ3VtZW50IHJl cXVpcmVkXG4iLCBwcm9nbmFtZSk7DQorICAgICAgZnByaW50ZiAoc3RkZXJyLCAiVHJ5IGAlcyAt LWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uXG4iLCBwcm9nbmFtZSk7DQorICAgICAgZXhpdCAo RVhJVF9GQUlMVVJFKTsNCiAgICAgfQ0KIA0KKyAgaWYgKChzID0gc2V0X3NvY2tldCAoKSkgPT0g SU5WQUxJRF9TT0NLRVQpDQorICAgIGZhaWwgKGFyZ2MsIGFyZ3YpOw0KKw0KICNpZmRlZiBIQVZF X0dFVENXRA0KICAgY3dkID0gZ2V0Y3dkIChzdHJpbmcsIHNpemVvZiBzdHJpbmcpOw0KQEAgLTQ2 NSw4ICs2ODIsOCBAQA0KIA0KICNpZmRlZiBIQVZFX0dFVENXRA0KLSAgICAgIGZwcmludGYgKHN0 ZGVyciwgIiVzOiAlcyAoJXMpXG4iLCBhcmd2WzBdLA0KKyAgICAgIGZwcmludGYgKHN0ZGVyciwg IiVzOiAlcyAoJXMpXG4iLCBwcm9nbmFtZSwNCiAJICAgICAgICJDYW5ub3QgZ2V0IGN1cnJlbnQg d29ya2luZyBkaXJlY3RvcnkiLCBzdHJlcnJvciAoZXJybm8pKTsNCiAjZWxzZQ0KLSAgICAgIGZw cmludGYgKHN0ZGVyciwgIiVzOiAlcyAoJXMpXG4iLCBhcmd2WzBdLCBzdHJpbmcsIHN0cmVycm9y IChlcnJubykpOw0KKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIiVzOiAlcyAoJXMpXG4iLCBwcm9n bmFtZSwgc3RyaW5nLCBzdHJlcnJvciAoZXJybm8pKTsNCiAjZW5kaWYNCiAgICAgICBmYWlsIChh cmdjLCBhcmd2KTsNCkBAIC00NzQsMTQgKzY5MSwxNCBAQA0KIA0KICAgaWYgKG5vd2FpdCkNCi0g ICAgZnByaW50ZiAob3V0LCAiLW5vd2FpdCAiKTsNCisgICAgU0VORF9TVFJJTkcgKCItbm93YWl0 ICIpOw0KIA0KICAgaWYgKGV2YWwpDQotICAgIGZwcmludGYgKG91dCwgIi1ldmFsICIpOw0KKyAg ICBTRU5EX1NUUklORyAoIi1ldmFsICIpOw0KIA0KICAgaWYgKGRpc3BsYXkpDQogICAgIHsNCi0g ICAgICBmcHJpbnRmIChvdXQsICItZGlzcGxheSAiKTsNCi0gICAgICBxdW90ZV9maWxlX25hbWUg KGRpc3BsYXksIG91dCk7DQotICAgICAgZnByaW50ZiAob3V0LCAiICIpOw0KKyAgICAgIFNFTkRf U1RSSU5HICgiLWRpc3BsYXkgIik7DQorICAgICAgU0VORF9RVU9URUQgKGRpc3BsYXkpOw0KKyAg ICAgIFNFTkRfU1RSSU5HICgiICIpOw0KICAgICB9DQogDQpAQCAtNDk4LDU5ICs3MTUsNjkgQEAN CiAJICAgICAgaWYgKCpwICE9IDApDQogCQl7DQotCQkgIHF1b3RlX2ZpbGVfbmFtZSAoY3dkLCBv dXQpOw0KLQkJICBmcHJpbnRmIChvdXQsICIvIik7DQorCQkgIFNFTkRfUVVPVEVEIChjd2QpOw0K KwkJICBTRU5EX1NUUklORyAoIi8iKTsNCiAJCX0NCiAJICAgIH0NCisjaWZuZGVmIFdJTkRPV1NO VA0KIAkgIGVsc2UgaWYgKCphcmd2W2ldICE9ICcvJykNCisjZWxzZQ0KKwkgIGVsc2UgaWYgKCgq YXJndltpXSAhPSAnLycpDQorCQkgICAvKiBBYnNvbHV0ZSBwYXRocyBjYW4gYWxzbyBzdGFydCB3 aXRoIGJhY2tzbGFzaA0KKwkJICAgICAgb3IgZHJpdmUgbGV0dGVycy4JICovDQorCQkgICAmJiAo KmFyZ3ZbaV0gIT0gJ1xcJykNCisJCSAgICYmICghaXNsb3dlciAodG9sb3dlciAoKmFyZ3ZbaV0p KQ0KKwkJICAgICAgIHx8IChhcmd2W2ldWzFdICE9ICc6JykpKQ0KKyNlbmRpZg0KIAkgICAgew0K LQkgICAgICBxdW90ZV9maWxlX25hbWUgKGN3ZCwgb3V0KTsNCi0JICAgICAgZnByaW50ZiAob3V0 LCAiLyIpOw0KKwkgICAgICBTRU5EX1FVT1RFRCAoY3dkKTsNCisJICAgICAgU0VORF9TVFJJTkcg KCIvIik7DQogCSAgICB9DQogDQotCSAgcXVvdGVfZmlsZV9uYW1lIChhcmd2W2ldLCBvdXQpOw0K LQkgIGZwcmludGYgKG91dCwgIiAiKTsNCisJICBTRU5EX1FVT1RFRCAoYXJndltpXSk7DQorCSAg U0VORF9TVFJJTkcgKCIgIik7DQogCX0NCiAgICAgfQ0KICAgZWxzZQ0KICAgICB7DQotICAgICAg d2hpbGUgKChzdHIgPSBmZ2V0cyAoc3RyaW5nLCBCVUZTSVosIHN0ZGluKSkpDQorICAgICAgd2hp bGUgKGZnZXRzIChzdHJpbmcsIEJVRlNJWiwgc3RkaW4pKQ0KIAl7DQotCSAgcXVvdGVfZmlsZV9u YW1lIChzdHIsIG91dCk7DQorCSAgU0VORF9RVU9URUQgKHN0cmluZyk7DQogCX0NCi0gICAgICBm cHJpbnRmIChvdXQsICIgIik7DQorICAgICAgU0VORF9TVFJJTkcgKCIgIik7DQogICAgIH0NCiAN Ci0gIGZwcmludGYgKG91dCwgIlxuIik7DQotICBmZmx1c2ggKG91dCk7DQorICBTRU5EX1NUUklO RyAoIlxuIik7DQogDQogICAvKiBNYXliZSB3YWl0IGZvciBhbiBhbnN3ZXIuICAgKi8NCi0gIGlm IChub3dhaXQpDQotICAgIHJldHVybiBFWElUX1NVQ0NFU1M7DQotDQotICBpZiAoIWV2YWwpDQor ICBpZiAoIW5vd2FpdCkNCiAgICAgew0KLSAgICAgIHByaW50ZiAoIldhaXRpbmcgZm9yIEVtYWNz Li4uIik7DQotICAgICAgbmVlZGxmID0gMjsNCisgICAgICBpZiAoIWV2YWwpDQorICAgICAgICB7 DQorICAgICAgICAgIHByaW50ZiAoIldhaXRpbmcgZm9yIEVtYWNzLi4uIik7DQorICAgICAgICAg IG5lZWRsZiA9IDI7DQorICAgICAgICB9DQorICAgICAgZmZsdXNoIChzdGRvdXQpOw0KKw0KKyAg ICAgIC8qIE5vdywgd2FpdCBmb3IgYW4gYW5zd2VyIGFuZCBwcmludCBhbnkgbWVzc2FnZXMuICAq Lw0KKyAgICAgIHdoaWxlICgocmwgPSByZWN2IChzLCBzdHJpbmcsIEJVRlNJWiwgMCkpID4gMCkN CisgICAgICAgIHsNCisJICBzdHJpbmdbcmxdID0gJ1wwJzsNCisgICAgICAgICAgaWYgKG5lZWRs ZiA9PSAyKQ0KKyAgICAgICAgICAgIHByaW50ZiAoIlxuIik7DQorCSAgcHJpbnRmICgiJXMiLCBz dHJpbmcpOw0KKwkgIG5lZWRsZiA9IHN0cmluZ1swXSA9PSAnXDAnID8gbmVlZGxmIDogc3RyaW5n W3N0cmxlbiAoc3RyaW5nKSAtIDFdICE9ICdcbic7DQorICAgICAgICB9DQorDQorICAgICAgaWYg KG5lZWRsZikNCisgICAgICAgIHByaW50ZiAoIlxuIik7DQorICAgICAgZmZsdXNoIChzdGRvdXQp Ow0KICAgICB9DQotICBmZmx1c2ggKHN0ZG91dCk7DQotDQotICAvKiBOb3csIHdhaXQgZm9yIGFu IGFuc3dlciBhbmQgcHJpbnQgYW55IG1lc3NhZ2VzLiAgKi8NCi0gIHdoaWxlICgoc3RyID0gZmdl dHMgKHN0cmluZywgQlVGU0laLCBpbikpKQ0KLSAgICB7DQotICAgICAgaWYgKG5lZWRsZiA9PSAy KQ0KLQlwcmludGYgKCJcbiIpOw0KLSAgICAgIHByaW50ZiAoIiVzIiwgc3RyKTsNCi0gICAgICBu ZWVkbGYgPSBzdHJbMF0gPT0gJ1wwJyA/IG5lZWRsZiA6IHN0cltzdHJsZW4gKHN0cikgLSAxXSAh PSAnXG4nOw0KLSAgICB9DQotDQotICBpZiAobmVlZGxmKQ0KLSAgICBwcmludGYgKCJcbiIpOw0K LSAgZmZsdXNoIChzdGRvdXQpOw0KIA0KKyAgY2xvc2Vzb2NrZXQgKHMpOw0KICAgcmV0dXJuIEVY SVRfU1VDQ0VTUzsNCiB9DQogDQogI2VuZGlmIC8qIEhBVkVfU09DS0VUUyAqLw0KLQwNCisNCiAj aWZuZGVmIEhBVkVfU1RSRVJST1INCiBjaGFyICoNCkluZGV4OiBsaWItc3JjL21ha2VmaWxlLncz Mi1pbg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnNyb290L2VtYWNzL2VtYWNzL2xpYi1zcmMv bWFrZWZpbGUudzMyLWluLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMi40Ng0KZGlmZiAtdSAtMiAt cjIuNDYgbWFrZWZpbGUudzMyLWluDQotLS0gbGliLXNyYy9tYWtlZmlsZS53MzItaW4JOSBPY3Qg MjAwNiAxOTo1Nzo0MyAtMDAwMAkyLjQ2DQorKysgbGliLXNyYy9tYWtlZmlsZS53MzItaW4JMjcg T2N0IDIwMDYgMjI6MDI6MjggLTAwMDANCkBAIC0yMSw1ICsyMSw1IEBADQogIw0KIA0KLUFMTCA9 IG1ha2UtZG9jZmlsZSBoZXhsIGN0YWdzIGV0YWdzIG1vdmVtYWlsIGVicm93c2Ugc29ydGVkLWRv YyBkaWdlc3QtZG9jDQorQUxMID0gbWFrZS1kb2NmaWxlIGhleGwgY3RhZ3MgZXRhZ3MgbW92ZW1h aWwgZWJyb3dzZSBzb3J0ZWQtZG9jIGRpZ2VzdC1kb2MgZW1hY3NjbGllbnQNCiANCiAuUEhPTlk6 ICQoQUxMKQ0KQEAgLTMzLDUgKzMzLDQgQEANCiAjCQkkKEJMRCkvc2VydmVyLmV4ZQlcDQogIwkJ JChCTEQpL2VtYWNzdG9vbC5leGUJXA0KLSMJCSQoQkxEKS9lbWFjc2NsaWVudC5leGUJXA0KICMJ CSQoQkxEKS9jdnRtYWlsLmV4ZQlcDQogDQpAQCAtNjAsNCArNTksNSBAQA0KIHNvcnRlZC1kb2M6 CSQoQkxEKSAkKEJMRCkvc29ydGVkLWRvYy5leGUNCiBkaWdlc3QtZG9jOgkkKEJMRCkgJChCTEQp L2RpZ2VzdC1kb2MuZXhlDQorZW1hY3NjbGllbnQ6CSQoQkxEKSAkKEJMRCkvZW1hY3NjbGllbnQu ZXhlDQogDQogdGVzdC1kaXN0cmliOgkkKEJMRCkgJChCTEQpL3Rlc3QtZGlzdHJpYi5leGUNCkBA IC03NSw0ICs3NSwxNyBAQA0KIAkJJChMSU5LKSAkKExJTktfT1VUKSRAICQoTElOS19GTEFHUykg JChNT1ZFTUFJTE9CSlMpICQoV1NPQ0szMikgJChMSUJTKQ0KIA0KK0VDTElFTlRfQ0ZMQUdTID0g LURXSU5ET1dTTlQgLURIQVZFX0dFVENXRCAtREhBVkVfU1RSRVJST1IgLWMNCitFQ0xJRU5UT0JK UyA9CSQoQkxEKS9lbWFjc2NsaWVudC4kKE8pIFwNCisJCSQoQkxEKS9nZXRvcHQuJChPKSBcDQor CQkkKEJMRCkvZ2V0b3B0MS4kKE8pIFwNCisJCSQoQkxEKS9udGxpYi4kKE8pDQorDQorJChCTEQp L2VtYWNzY2xpZW50LmV4ZToJCSQoRUNMSUVOVE9CSlMpDQorIyBwdXQgd3NvY2szMi5saWIgYmVm b3JlICQoTElCUykgdG8gZW5zdXJlIHdlIGRvbid0IGxpbmsgdG8gd3MyXzMyLmxpYg0KKwkJJChM SU5LKSAkKExJTktfT1VUKSRAICQoTElOS19GTEFHUykgJChFQ0xJRU5UT0JKUykgJChXU09DSzMy KSAkKExJQlMpDQorDQorJChCTEQpL2VtYWNzY2xpZW50LiQoTyk6CWVtYWNzY2xpZW50LmMNCisJ CSQoQ0MpICQoRUNMSUVOVF9DRkxBR1MpICQoQ0NfT1VUKSRAIGVtYWNzY2xpZW50LmMNCisNCiBF VEFHU09CSiAgICAgID0gJChCTEQpL2V0YWdzLiQoTykgXA0KIAkJJChCTEQpL2dldG9wdC4kKE8p IFwNCkBAIC0yOTcsNCArMzEwLDUgQEANCiAJCSQoQ1ApICQoQkxEKS9zb3J0ZWQtZG9jLmV4ZSAk KElOU1RBTExfRElSKS9iaW4NCiAJCSQoQ1ApICQoQkxEKS9kaWdlc3QtZG9jLmV4ZSAkKElOU1RB TExfRElSKS9iaW4NCisJCSQoQ1ApICQoQkxEKS9lbWFjc2NsaWVudC5leGUgJChJTlNUQUxMX0RJ UikvYmluDQogCQktIG1rZGlyICIkKElOU1RBTExfRElSKS9ldGMiDQogCQkkKENQKSAkKERPQykg JChJTlNUQUxMX0RJUikvZXRjDQo= ------=_Part_70488_22198930.1161995096590 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ------=_Part_70488_22198930.1161995096590--